chore(eve): dependencies - upgrade to AI SDK 7 (#288)

Signed-off-by: Andrew Barba <barba@hey.com>
This commit is contained in:
Andrew Barba
2026-06-25 11:17:00 -04:00
committed by GitHub
parent 86a1e70cb6
commit 91e43ae7f4
23 changed files with 519 additions and 384 deletions
+5
View File
@@ -0,0 +1,5 @@
---
"eve": patch
---
Upgrade eve to the stable AI SDK 7 release and copy vendored AI SDK declarations directly from the installed packages. Newly scaffolded pnpm workspaces now exempt the AI SDK, Vercel, and Workflow package families from minimum release age checks.
-8
View File
@@ -8,12 +8,6 @@
"!**/templates/**"
],
"versionGroups": [
{
"label": "docs intentionally pins its own ai / @ai-sdk/react versions",
"dependencies": ["ai", "@ai-sdk/react"],
"packages": ["eve-docs"],
"isIgnored": true
},
{
"label": "Workspace packages must use the workspace: protocol",
"dependencies": ["eve-*", "eve"],
@@ -38,10 +32,8 @@
"label": "Shared third-party deps must use the catalog: protocol",
"policy": "catalog",
"dependencies": [
"@ai-sdk/**",
"@types/node",
"typescript",
"ai",
"next",
"@types/react",
"@types/react-dom",
+4 -1
View File
@@ -293,6 +293,7 @@
"@ai-sdk/openai": "catalog:",
"@ai-sdk/otel": "catalog:",
"@ai-sdk/provider": "catalog:",
"@ai-sdk/provider-utils": "catalog:",
"@chat-adapter/slack": "4.31.0",
"@chat-adapter/state-memory": "4.31.0",
"@clack/core": "1.3.1",
@@ -309,6 +310,7 @@
"@vercel/sdk": "1.28.1",
"@workflow/core": "5.0.0-beta.24",
"@workflow/errors": "5.0.0-beta.8",
"@workflow/serde": "4.1.0",
"@workflow/world": "5.0.0-beta.13",
"@workflow/world-local": "5.0.0-beta.21",
"ai": "catalog:",
@@ -316,7 +318,8 @@
"chat": "4.31.0",
"chokidar": "5.0.0",
"commander": "14.0.3",
"emulate": "^0.6.0",
"emulate": "0.6.0",
"eventsource-parser": "3.0.8",
"experimental-ai-sdk-code-mode": "1.0.14",
"gray-matter": "4.0.3",
"jose": "6.2.3",
@@ -1,4 +1,4 @@
import { buildOpaqueTypesStub, createDeclarationCopier } from "../_shared.mjs";
import { createDeclarationCopier } from "../_shared.mjs";
/**
* Type declarations are copied verbatim from the installed
@@ -14,9 +14,7 @@ import { buildOpaqueTypesStub, createDeclarationCopier } from "../_shared.mjs";
* `#compiled/@ai-sdk/provider/index.js`.
* - `zod/v4` → eve's vendored `zod` (which re-exports from the real
* installed `zod` package).
* - `@ai-sdk/provider-utils` → local opaque-type stub; eve doesn't
* surface provider-utils' types to user code. `resolveWebSearchProviderTool`
* casts the returned tool to `ToolSet[string]`.
* - `@ai-sdk/provider-utils` → type-only vendored upstream declarations.
*/
export default {
packageName: "@ai-sdk/anthropic",
@@ -27,9 +25,8 @@ export default {
"@ai-sdk/provider": { kind: "vendored", compiledPath: "@ai-sdk/provider" },
"zod/v4": { kind: "vendored", compiledPath: "zod" },
"@ai-sdk/provider-utils": {
kind: "stub",
stubBaseName: "_provider-utils",
build: buildOpaqueTypesStub,
kind: "vendored",
compiledPath: "@ai-sdk/provider-utils",
},
},
}),
@@ -1,4 +1,4 @@
import { buildOpaqueTypesStub, createDeclarationCopier } from "../_shared.mjs";
import { createDeclarationCopier } from "../_shared.mjs";
/**
* Type declarations are copied verbatim from the installed
@@ -11,9 +11,7 @@ import { buildOpaqueTypesStub, createDeclarationCopier } from "../_shared.mjs";
*
* - `@ai-sdk/provider` → already vendored, re-route to the vendored
* `#compiled/@ai-sdk/provider/index.js`.
* - `@ai-sdk/provider-utils` → local opaque-type stub; eve doesn't
* surface provider-utils' types to user code. `resolveWebSearchProviderTool`
* casts the returned tool to `ToolSet[string]`.
* - `@ai-sdk/provider-utils` → type-only vendored upstream declarations.
*/
export default {
packageName: "@ai-sdk/google",
@@ -23,9 +21,8 @@ export default {
rewrites: {
"@ai-sdk/provider": { kind: "vendored", compiledPath: "@ai-sdk/provider" },
"@ai-sdk/provider-utils": {
kind: "stub",
stubBaseName: "_provider-utils",
build: buildOpaqueTypesStub,
kind: "vendored",
compiledPath: "@ai-sdk/provider-utils",
},
},
}),
@@ -1,8 +1,17 @@
import { loadDeclaration } from "../_shared.mjs";
import { createDeclarationCopier } from "../_shared.mjs";
export default {
packageName: "@ai-sdk/mcp",
compiledPath: "@ai-sdk/mcp",
chunkGroup: "workflow",
declaration: await loadDeclaration("@ai-sdk/mcp.d.ts"),
copyDeclarations: createDeclarationCopier({
rewrites: {
"@ai-sdk/provider": { kind: "vendored", compiledPath: "@ai-sdk/provider" },
"@ai-sdk/provider-utils": {
kind: "vendored",
compiledPath: "@ai-sdk/provider-utils",
},
"zod/v4": { kind: "vendored", compiledPath: "zod" },
},
}),
};
@@ -1,4 +1,4 @@
import { buildOpaqueTypesStub, createDeclarationCopier } from "../_shared.mjs";
import { createDeclarationCopier } from "../_shared.mjs";
/**
* Type declarations are copied verbatim from the installed
@@ -13,9 +13,7 @@ import { buildOpaqueTypesStub, createDeclarationCopier } from "../_shared.mjs";
* - `@ai-sdk/provider` → already vendored, re-route both the named and
* the `import * as _ai_sdk_provider` namespace import at the vendored
* copy.
* - `@ai-sdk/provider-utils` → local opaque-type stub; eve doesn't
* surface provider-utils' types to user code. `resolveWebSearchProviderTool`
* casts the returned tool to `ToolSet[string]`.
* - `@ai-sdk/provider-utils` → type-only vendored upstream declarations.
*/
export default {
packageName: "@ai-sdk/openai",
@@ -25,9 +23,8 @@ export default {
rewrites: {
"@ai-sdk/provider": { kind: "vendored", compiledPath: "@ai-sdk/provider" },
"@ai-sdk/provider-utils": {
kind: "stub",
stubBaseName: "_provider-utils",
build: buildOpaqueTypesStub,
kind: "vendored",
compiledPath: "@ai-sdk/provider-utils",
},
},
}),
@@ -1,4 +1,4 @@
import { loadDeclaration } from "../_shared.mjs";
import { createDeclarationCopier } from "../_shared.mjs";
/**
* `ai` is a peer dep of eve (consumers install it), so it must never be
@@ -15,5 +15,15 @@ export default {
compiledPath: "@ai-sdk/otel",
chunkGroup: "workflow",
external: isAiImport,
declaration: await loadDeclaration("@ai-sdk/otel.d.ts"),
copyDeclarations: createDeclarationCopier({
rewrites: {
ai: { kind: "external" },
"@ai-sdk/provider": { kind: "vendored", compiledPath: "@ai-sdk/provider" },
"@ai-sdk/provider-utils": {
kind: "vendored",
compiledPath: "@ai-sdk/provider-utils",
},
"@opentelemetry/api": { kind: "vendored", compiledPath: "@opentelemetry/api" },
},
}),
};
@@ -0,0 +1,23 @@
import { createDeclarationCopier } from "../_shared.mjs";
export default {
packageName: "@ai-sdk/provider-utils",
compiledPath: "@ai-sdk/provider-utils",
typeOnly: true,
copyDeclarations: createDeclarationCopier({
rewrites: {
"@ai-sdk/provider": { kind: "vendored", compiledPath: "@ai-sdk/provider" },
"@standard-schema/spec": {
kind: "vendored",
compiledPath: "@standard-schema/spec",
},
"@workflow/serde": { kind: "vendored", compiledPath: "@workflow/serde" },
"eventsource-parser/stream": {
kind: "vendored",
compiledPath: "eventsource-parser/stream",
},
"zod/v3": { kind: "vendored", compiledPath: "zod" },
"zod/v4": { kind: "vendored", compiledPath: "zod" },
},
}),
};
@@ -1,34 +1,5 @@
import { createDeclarationCopier } from "../_shared.mjs";
/**
* Stub for `json-schema`. Upstream `@ai-sdk/provider` references
* `JSONSchema7` / `JSONSchema7Definition` from `@types/json-schema`.
* Consumers shouldn't have to install `@types/json-schema` just to
* typecheck against eve, so the names are aliased to opaque structural
* placeholders. Anyone needing the real JSONSchema7 types can install
* `@types/json-schema` and refine downstream.
*/
function buildJsonSchemaStub(names, moduleName) {
const declarations = {
JSONSchema7: `export type JSONSchema7 = Record<string, unknown>;`,
JSONSchema7Definition: `export type JSONSchema7Definition = JSONSchema7 | boolean;`,
};
const lines = [
`// Auto-generated stub for \`${moduleName}\` types referenced by a vendored .d.ts.`,
`// Emitted by scripts/vendor-compiled/@ai-sdk/provider.mjs.`,
``,
];
for (const name of [...names].sort()) {
if (Object.prototype.hasOwnProperty.call(declarations, name)) {
lines.push(declarations[name]);
} else {
lines.push(`export type ${name} = unknown;`);
}
}
return `${lines.join("\n")}\n`;
}
/**
* Type declarations are copied verbatim from the installed
* @ai-sdk/provider version. The previous hand-written stub declared only
@@ -44,9 +15,8 @@ export default {
copyDeclarations: createDeclarationCopier({
rewrites: {
"json-schema": {
kind: "stub",
stubBaseName: "_json-schema",
build: buildJsonSchemaStub,
kind: "vendored",
compiledPath: "json-schema",
},
},
}),
@@ -0,0 +1,8 @@
import { createDeclarationCopier } from "../_shared.mjs";
export default {
packageName: "@workflow/serde",
compiledPath: "@workflow/serde",
typeOnly: true,
copyDeclarations: createDeclarationCopier(),
};
@@ -96,14 +96,21 @@ export async function loadDeclaration(relativePath) {
* `files` can override the default `dist/index.d.ts` copy. Use it for
* packages whose entrypoint declaration imports sibling declaration files,
* or for multi-entry packages that need their upstream declaration tree.
* `declarationRoot` changes the package-relative source directory when
* declarations live outside `dist`.
*
* `discoverExtraFiles` is consulted for chunk files the upstream `.d.ts`
* references by relative path (e.g. chat's `./jsx-runtime-<hash>.d.ts`).
* Each returned filename is co-copied verbatim into the destination.
*/
export function createDeclarationCopier({ rewrites = {}, discoverExtraFiles, files } = {}) {
export function createDeclarationCopier({
declarationRoot = "dist",
rewrites = {},
discoverExtraFiles,
files,
} = {}) {
return async ({ destinationRoot, packageInfo }) => {
const distDir = join(packageInfo.packageRoot, "dist");
const distDir = join(packageInfo.packageRoot, declarationRoot);
const distEntries = await readdir(distDir);
const declarationFiles =
typeof files === "function"
@@ -1,37 +0,0 @@
import type { ToolSet } from "ai";
export interface MCPListToolDefinition {
annotations?: Record<string, unknown> | undefined;
description?: string | undefined;
inputSchema?: Record<string, unknown> | undefined;
name: string;
[key: string]: unknown;
}
export interface MCPListToolsResult {
tools: MCPListToolDefinition[];
[key: string]: unknown;
}
export interface MCPClient {
listTools(options?: unknown): Promise<MCPListToolsResult>;
toolsFromDefinitions(definitions: MCPListToolsResult, options?: unknown): ToolSet;
close(): Promise<void>;
}
export interface MCPClientConfig {
transport:
| {
type: "http" | "sse";
url: string;
headers?: Record<string, string> | undefined;
}
| unknown;
onUncaughtError?: ((error: unknown) => void) | undefined;
clientName?: string | undefined;
name?: string | undefined;
version?: string | undefined;
capabilities?: unknown;
}
export declare function createMCPClient(config: MCPClientConfig): Promise<MCPClient>;
@@ -1,32 +0,0 @@
import type { Telemetry } from "ai";
export interface OpenTelemetryOptions {
tracer?: unknown;
usage?: boolean | undefined;
providerMetadata?: boolean | undefined;
embedding?: boolean | undefined;
reranking?: boolean | undefined;
runtimeContext?: boolean | undefined;
headers?: boolean | undefined;
toolChoice?: boolean | undefined;
schema?: boolean | undefined;
}
export declare class OpenTelemetry implements Telemetry {
constructor(options?: OpenTelemetryOptions);
executeTool: NonNullable<Telemetry["executeTool"]>;
onStart: NonNullable<Telemetry["onStart"]>;
onStepStart: NonNullable<Telemetry["onStepStart"]>;
onLanguageModelCallStart: NonNullable<Telemetry["onLanguageModelCallStart"]>;
onLanguageModelCallEnd: NonNullable<Telemetry["onLanguageModelCallEnd"]>;
onToolExecutionStart: NonNullable<Telemetry["onToolExecutionStart"]>;
onToolExecutionEnd: NonNullable<Telemetry["onToolExecutionEnd"]>;
onStepFinish: NonNullable<Telemetry["onStepFinish"]>;
onFinish: NonNullable<Telemetry["onFinish"]>;
onEmbedStart: NonNullable<Telemetry["onEmbedStart"]>;
onEmbedFinish: NonNullable<Telemetry["onEmbedFinish"]>;
onRerankStart: NonNullable<Telemetry["onRerankStart"]>;
onRerankFinish: NonNullable<Telemetry["onRerankFinish"]>;
onChunk: NonNullable<Telemetry["onChunk"]>;
onError: NonNullable<Telemetry["onError"]>;
}
@@ -0,0 +1,10 @@
import { createDeclarationCopier } from "./_shared.mjs";
export default {
packageName: "eventsource-parser",
compiledPath: "eventsource-parser/stream",
typeOnly: true,
copyDeclarations: createDeclarationCopier({
files: [{ source: "stream.d.ts", output: "index.d.ts" }],
}),
};
@@ -9,6 +9,7 @@ import mcp from "./@ai-sdk/mcp.mjs";
import openai from "./@ai-sdk/openai.mjs";
import otel from "./@ai-sdk/otel.mjs";
import provider from "./@ai-sdk/provider.mjs";
import providerUtils from "./@ai-sdk/provider-utils.mjs";
import chatAdapterSlack from "./@chat-adapter/slack.mjs";
import chatAdapterStateMemory from "./@chat-adapter/state-memory.mjs";
@@ -20,15 +21,18 @@ import vercelOidc from "./@vercel/oidc.mjs";
import vercelSandbox from "./@vercel/sandbox.mjs";
import workflowCore from "./@workflow/core.mjs";
import workflowErrors from "./@workflow/errors.mjs";
import workflowSerde from "./@workflow/serde.mjs";
import workflowWorld from "./@workflow/world.mjs";
import chat from "./chat.mjs";
import chokidar from "./chokidar.mjs";
import commander from "./commander.mjs";
import experimentalAiSdkCodeMode from "./experimental-ai-sdk-code-mode.mjs";
import eventsourceParserStream from "./eventsource-parser-stream.mjs";
import grayMatter from "./gray-matter.mjs";
import jose from "./jose.mjs";
import jsoncParser from "./jsonc-parser.mjs";
import jsonSchema from "./json-schema.mjs";
import picocolors from "./picocolors.mjs";
import semver from "./semver.mjs";
import turndown from "./turndown.mjs";
@@ -43,16 +47,19 @@ export const MODULES = [
chokidar,
commander,
experimentalAiSdkCodeMode,
eventsourceParserStream,
google,
grayMatter,
jose,
jsoncParser,
jsonSchema,
mcp,
openai,
opentelemetryApi,
otel,
picocolors,
provider,
providerUtils,
semver,
standardSchemaSpec,
turndown,
@@ -61,6 +68,7 @@ export const MODULES = [
vercelSandbox,
workflowCore,
workflowErrors,
workflowSerde,
workflowWorld,
zod,
zodValidationError,
@@ -0,0 +1,11 @@
import { createDeclarationCopier } from "./_shared.mjs";
export default {
packageName: "@types/json-schema",
compiledPath: "json-schema",
typeOnly: true,
copyDeclarations: createDeclarationCopier({
declarationRoot: ".",
files: [{ source: "index.d.ts", output: "index.d.ts" }],
}),
};
@@ -37,6 +37,9 @@ const BASE_VERSIONS = {
zodPackageVersion: "4.0.0",
} as const;
const RELEASE_AGE_POLICY =
'minimumReleaseAgeExclude:\n - "@ai-sdk/*"\n - "@rolldown/*"\n - "@vercel/*"\n - "@workflow/*"\n - ai\n - eve\n - nitro\n - rolldown\n - workflow\n';
const WEB_VERSIONS = {
...BASE_VERSIONS,
nextPackageVersion: "16.0.0",
@@ -410,7 +413,7 @@ describe("runInitCommand", () => {
const projectPath = join(appsDirectory, "my-agent");
await expect(pathExists(join(projectPath, "pnpm-workspace.yaml"))).resolves.toBe(false);
await expect(readFile(join(workspaceRoot, "pnpm-workspace.yaml"), "utf8")).resolves.toBe(
"packages:\n - apps/*\n\nallowBuilds:\n sharp: false\n\nminimumReleaseAgeExclude:\n - eve\n",
`packages:\n - apps/*\n\nallowBuilds:\n sharp: false\n\n${RELEASE_AGE_POLICY}`,
);
const projectPackageJson = JSON.parse(
await readFile(join(projectPath, "package.json"), "utf8"),
@@ -459,7 +462,7 @@ describe("runInitCommand", () => {
const projectPath = join(agentsDirectory, "my-agent");
await expect(pathExists(join(projectPath, "pnpm-workspace.yaml"))).resolves.toBe(false);
await expect(readFile(join(workspaceRoot, "pnpm-workspace.yaml"), "utf8")).resolves.toBe(
"packages:\n - apps/*\n - agents/*\n\nallowBuilds:\n sharp: false\n\nminimumReleaseAgeExclude:\n - eve\n",
`packages:\n - apps/*\n - agents/*\n\nallowBuilds:\n sharp: false\n\n${RELEASE_AGE_POLICY}`,
);
const projectPackageJson = JSON.parse(
await readFile(join(projectPath, "package.json"), "utf8"),
@@ -501,7 +504,7 @@ describe("runInitCommand", () => {
await expect(pathExists(join(projectPath, "app/page.tsx"))).resolves.toBe(true);
await expect(pathExists(join(projectPath, "pnpm-workspace.yaml"))).resolves.toBe(false);
await expect(readFile(join(workspaceRoot, "pnpm-workspace.yaml"), "utf8")).resolves.toBe(
"packages:\n - apps/*\n - agents/*\n\nallowBuilds:\n sharp: false\n\nminimumReleaseAgeExclude:\n - eve\n",
`packages:\n - apps/*\n - agents/*\n\nallowBuilds:\n sharp: false\n\n${RELEASE_AGE_POLICY}`,
);
const projectPackageJson = JSON.parse(
await readFile(join(projectPath, "package.json"), "utf8"),
+34 -7
View File
@@ -12,11 +12,27 @@ import type { PackageManagerStrategy } from "./types.js";
export const PNPM_WORKSPACE_PATH = "pnpm-workspace.yaml";
export const PNPM_WORKSPACE_MEMBERSHIP_ARGUMENTS = ["list", "--depth", "-1", "--json"] as const;
const RELEASE_AGE_EXCLUSIONS = [
"@ai-sdk/*",
"@rolldown/*",
"@vercel/*",
"@workflow/*",
"ai",
"eve",
"nitro",
"rolldown",
"workflow",
] as const;
function formatReleaseAgeExclusion(exclusion: string): string {
return ` - ${exclusion.includes("*") ? JSON.stringify(exclusion) : exclusion}`;
}
// eve@0.6.0-beta.13 through 0.7.0 imported `oxc-parser` at runtime while
// declaring it only as a devDependency. Fixed releases use their own manifest.
export const PNPM_WORKSPACE_CONTENT = [
"minimumReleaseAgeExclude:",
" - eve",
...RELEASE_AGE_EXCLUSIONS.map(formatReleaseAgeExclusion),
"allowBuilds:",
" sharp: false",
"# Compatibility for eve releases with an incomplete runtime manifest.",
@@ -27,9 +43,15 @@ export const PNPM_WORKSPACE_CONTENT = [
"",
].join("\n");
const EVE_RELEASE_AGE_EXCLUSION = " - eve";
const SHARP_BUILD_POLICY = " sharp: false";
function releaseAgeExclusionName(line: string): string {
return line
.trim()
.replace(/^-\s+/u, "")
.replace(/^["']|["']$/gu, "");
}
function findYamlBlockEnd(lines: readonly string[], startIndex: number): number {
let blockEnd = startIndex + 1;
while (blockEnd < lines.length) {
@@ -64,19 +86,24 @@ function withSharpBuildPolicy(source: string): string {
return lines.join("\n");
}
function withExperimentalEveReleaseAgeExclusion(source: string): string {
function withReleaseAgeExclusions(source: string): string {
const normalized = source.endsWith("\n") ? source : `${source}\n`;
const lines = normalized.split("\n");
const excludeIndex = lines.findIndex((line) => line === "minimumReleaseAgeExclude:");
if (excludeIndex < 0) {
const prefix = normalized.trim().length === 0 ? "" : `${normalized}\n`;
return `${prefix}minimumReleaseAgeExclude:\n${EVE_RELEASE_AGE_EXCLUSION}\n`;
const exclusions = RELEASE_AGE_EXCLUSIONS.map(formatReleaseAgeExclusion).join("\n");
return `${prefix}minimumReleaseAgeExclude:\n${exclusions}\n`;
}
const blockEnd = findYamlBlockEnd(lines, excludeIndex);
const excludeBlock = lines.slice(excludeIndex + 1, blockEnd);
if (excludeBlock.some((line) => line.trim() === "- eve")) {
const existingExclusions = new Set(excludeBlock.map(releaseAgeExclusionName));
const missingExclusions = RELEASE_AGE_EXCLUSIONS.filter(
(exclusion) => !existingExclusions.has(exclusion),
);
if (missingExclusions.length === 0) {
return source;
}
@@ -84,7 +111,7 @@ function withExperimentalEveReleaseAgeExclusion(source: string): string {
while (insertAt > excludeIndex + 1 && lines[insertAt - 1] === "") {
insertAt -= 1;
}
lines.splice(insertAt, 0, EVE_RELEASE_AGE_EXCLUSION);
lines.splice(insertAt, 0, ...missingExclusions.map(formatReleaseAgeExclusion));
return lines.join("\n");
}
@@ -95,7 +122,7 @@ async function ensurePnpmWorkspacePolicy(filePath: string): Promise<"skipped" |
}
const current = await readFile(filePath, "utf8");
const next = withExperimentalEveReleaseAgeExclusion(withSharpBuildPolicy(current));
const next = withReleaseAgeExclusions(withSharpBuildPolicy(current));
if (next === current) {
return "skipped";
}
@@ -23,6 +23,8 @@ async function createTempDir(): Promise<string> {
const TEST_EVE_PACKAGE = { version: "0.25.0", nodeEngine: ">=24" } as const;
const LATEST_EVE_PACKAGE = { version: "latest", nodeEngine: ">=24" } as const;
const RELEASE_AGE_POLICY =
'minimumReleaseAgeExclude:\n - "@ai-sdk/*"\n - "@rolldown/*"\n - "@vercel/*"\n - "@workflow/*"\n - ai\n - eve\n - nitro\n - rolldown\n - workflow\n';
const TEST_WEB_PACKAGE_VERSIONS = {
evePackage: TEST_EVE_PACKAGE,
@@ -432,7 +434,7 @@ describe("ensureChannel", () => {
});
await expect(readFile(pnpmWorkspacePath, "utf8")).resolves.toBe(
"packages:\n - packages/*\nallowBuilds:\n esbuild: true\n sharp: false\n\nminimumReleaseAgeExclude:\n - eve\n",
`packages:\n - packages/*\nallowBuilds:\n esbuild: true\n sharp: false\n\n${RELEASE_AGE_POLICY}`,
);
expect(result.filesWritten).toContain(pnpmWorkspacePath);
});
@@ -455,12 +457,12 @@ describe("ensureChannel", () => {
});
await expect(readFile(pnpmWorkspacePath, "utf8")).resolves.toBe(
`${existingPolicy}\nminimumReleaseAgeExclude:\n - eve\n`,
`${existingPolicy}\n${RELEASE_AGE_POLICY}`,
);
expect(result.filesWritten).toContain(pnpmWorkspacePath);
});
test("adds the eve release age exclusion to an existing pnpm workspace exclusion list", async () => {
test("adds the release age exclusions to an existing pnpm workspace exclusion list", async () => {
const projectRoot = await createTempDir();
const pnpmWorkspacePath = join(projectRoot, "pnpm-workspace.yaml");
await writeFile(
@@ -481,7 +483,7 @@ describe("ensureChannel", () => {
});
await expect(readFile(pnpmWorkspacePath, "utf8")).resolves.toBe(
"minimumReleaseAgeExclude:\n - react\n - eve\nallowBuilds:\n sharp: false\n",
'minimumReleaseAgeExclude:\n - react\n - "@ai-sdk/*"\n - "@rolldown/*"\n - "@vercel/*"\n - "@workflow/*"\n - ai\n - eve\n - nitro\n - rolldown\n - workflow\nallowBuilds:\n sharp: false\n',
);
expect(result.filesWritten).toContain(pnpmWorkspacePath);
});
@@ -515,7 +517,7 @@ describe("ensureChannel", () => {
expect(result.filesWritten).not.toContain(join(projectRoot, "pnpm-workspace.yaml"));
await expect(pathExists(join(projectRoot, "pnpm-workspace.yaml"))).resolves.toBe(false);
await expect(readFile(join(workspaceRoot, "pnpm-workspace.yaml"), "utf8")).resolves.toBe(
"packages:\n - apps/*\n - agents/*\n\nallowBuilds:\n sharp: false\n\nminimumReleaseAgeExclude:\n - eve\n",
`packages:\n - apps/*\n - agents/*\n\nallowBuilds:\n sharp: false\n\n${RELEASE_AGE_POLICY}`,
);
const projectPackageJson = JSON.parse(
await readFile(join(projectRoot, "package.json"), "utf8"),
@@ -790,7 +792,7 @@ describe("scaffoldBaseProject", () => {
await expect(pathExists(join(projectRoot, "pnpm-workspace.yaml"))).resolves.toBe(false);
await expect(readFile(join(workspaceRoot, "pnpm-workspace.yaml"), "utf8")).resolves.toBe(
"packages:\n - apps/*\n\nallowBuilds:\n sharp: false\n\nminimumReleaseAgeExclude:\n - eve\n",
`packages:\n - apps/*\n\nallowBuilds:\n sharp: false\n\n${RELEASE_AGE_POLICY}`,
);
const projectPackageJson = JSON.parse(
await readFile(join(projectRoot, "package.json"), "utf8"),
@@ -833,7 +835,7 @@ describe("scaffoldBaseProject", () => {
await expect(pathExists(join(projectRoot, "pnpm-workspace.yaml"))).resolves.toBe(false);
await expect(readFile(join(workspaceRoot, "pnpm-workspace.yaml"), "utf8")).resolves.toBe(
"packages:\n - apps/*\n - agents/*\n\nallowBuilds:\n sharp: false\n\nminimumReleaseAgeExclude:\n - eve\n",
`packages:\n - apps/*\n - agents/*\n\nallowBuilds:\n sharp: false\n\n${RELEASE_AGE_POLICY}`,
);
const projectPackageJson = JSON.parse(
await readFile(join(projectRoot, "package.json"), "utf8"),
@@ -36,6 +36,21 @@ function containsSourceMapComment(source: string): boolean {
return /(?:^|\n)\s*\/\/# sourceMappingURL=/u.test(source);
}
function rewriteDeclarationImports(
source: string,
rewrites: Readonly<Record<string, string>>,
): string {
let rewritten = source;
for (const [moduleName, replacement] of Object.entries(rewrites)) {
rewritten = rewritten
.replaceAll(`from '${moduleName}'`, `from '${replacement}'`)
.replaceAll(`from "${moduleName}"`, `from "${replacement}"`)
.replaceAll(`import '${moduleName}'`, `import '${replacement}'`)
.replaceAll(`import "${moduleName}"`, `import "${replacement}"`);
}
return rewritten;
}
describe("compiled vendor assets", () => {
it("does not generate source maps for vendored packages", async () => {
const entries = await readdir(COMPILED_VENDOR_ROOT, {
@@ -183,4 +198,99 @@ describe("compiled vendor assets", () => {
expect(vendoredBaseClient).toContain('from "../_async-retry.js"');
expect(vendoredBaseClient).toContain('import "#compiled/zod/index.js"');
});
it("copies AI SDK declarations from the installed packages without authored stubs", async () => {
const packages = [
{
name: "@ai-sdk/anthropic",
rewrites: {
"@ai-sdk/provider": "#compiled/@ai-sdk/provider/index.js",
"@ai-sdk/provider-utils": "#compiled/@ai-sdk/provider-utils/index.js",
"zod/v4": "#compiled/zod/index.js",
},
},
{
name: "@ai-sdk/google",
rewrites: {
"@ai-sdk/provider": "#compiled/@ai-sdk/provider/index.js",
"@ai-sdk/provider-utils": "#compiled/@ai-sdk/provider-utils/index.js",
},
},
{
name: "@ai-sdk/mcp",
rewrites: {
"@ai-sdk/provider": "#compiled/@ai-sdk/provider/index.js",
"@ai-sdk/provider-utils": "#compiled/@ai-sdk/provider-utils/index.js",
"zod/v4": "#compiled/zod/index.js",
},
},
{
name: "@ai-sdk/openai",
rewrites: {
"@ai-sdk/provider": "#compiled/@ai-sdk/provider/index.js",
"@ai-sdk/provider-utils": "#compiled/@ai-sdk/provider-utils/index.js",
},
},
{
name: "@ai-sdk/otel",
rewrites: {
"@ai-sdk/provider": "#compiled/@ai-sdk/provider/index.js",
"@ai-sdk/provider-utils": "#compiled/@ai-sdk/provider-utils/index.js",
"@opentelemetry/api": "#compiled/@opentelemetry/api/index.js",
},
},
{
name: "@ai-sdk/provider",
rewrites: {
"json-schema": "#compiled/json-schema/index.js",
},
},
{
name: "@ai-sdk/provider-utils",
rewrites: {
"@ai-sdk/provider": "#compiled/@ai-sdk/provider/index.js",
"@standard-schema/spec": "#compiled/@standard-schema/spec/index.js",
"@workflow/serde": "#compiled/@workflow/serde/index.js",
"eventsource-parser/stream": "#compiled/eventsource-parser/stream/index.js",
"zod/v3": "#compiled/zod/index.js",
"zod/v4": "#compiled/zod/index.js",
},
},
] as const;
for (const packageDefinition of packages) {
const upstreamRoot = dirname(require.resolve(`${packageDefinition.name}/package.json`));
const [upstream, vendored] = await Promise.all([
readFile(join(upstreamRoot, "dist/index.d.ts"), "utf8"),
readFile(join(COMPILED_VENDOR_ROOT, packageDefinition.name, "index.d.ts"), "utf8"),
]);
expect(vendored).toBe(rewriteDeclarationImports(upstream, packageDefinition.rewrites));
}
});
it("copies AI SDK declaration dependencies from their installed packages", async () => {
const jsonSchemaRoot = dirname(require.resolve("@types/json-schema/package.json"));
const serdeRoot = dirname(dirname(require.resolve("@workflow/serde")));
const eventSourceParserRoot = dirname(require.resolve("eventsource-parser/package.json"));
const comparisons = [
[join(jsonSchemaRoot, "index.d.ts"), join(COMPILED_VENDOR_ROOT, "json-schema/index.d.ts")],
[
join(serdeRoot, "dist/index.d.ts"),
join(COMPILED_VENDOR_ROOT, "@workflow/serde/index.d.ts"),
],
[
join(eventSourceParserRoot, "dist/stream.d.ts"),
join(COMPILED_VENDOR_ROOT, "eventsource-parser/stream/index.d.ts"),
],
] as const;
for (const [upstreamPath, vendoredPath] of comparisons) {
const [upstream, vendored] = await Promise.all([
readFile(upstreamPath, "utf8"),
readFile(vendoredPath, "utf8"),
]);
expect(vendored).toBe(upstream);
}
});
});
+234 -221
View File
@@ -7,23 +7,26 @@ settings:
catalogs:
default:
'@ai-sdk/anthropic':
specifier: 4.0.0-beta.67
version: 4.0.0-beta.67
specifier: ^4.0.0
version: 4.0.0
'@ai-sdk/google':
specifier: 4.0.0-beta.82
version: 4.0.0-beta.82
specifier: ^4.0.0
version: 4.0.0
'@ai-sdk/mcp':
specifier: 2.0.0-beta.66
version: 2.0.0-beta.66
specifier: ^2.0.0
version: 2.0.0
'@ai-sdk/openai':
specifier: 4.0.0-beta.74
version: 4.0.0-beta.74
specifier: ^4.0.0
version: 4.0.0
'@ai-sdk/otel':
specifier: 1.0.0-beta.124
version: 1.0.0-beta.124
specifier: ^1.0.0
version: 1.0.0
'@ai-sdk/provider':
specifier: 4.0.0-beta.19
version: 4.0.0-beta.19
specifier: ^4.0.0
version: 4.0.0
'@ai-sdk/provider-utils':
specifier: ^5.0.0
version: 5.0.0
'@types/node':
specifier: 25.9.1
version: 25.9.1
@@ -40,8 +43,8 @@ catalogs:
specifier: 2.2.1
version: 2.2.1
ai:
specifier: 7.0.0-beta.178
version: 7.0.0-beta.178
specifier: ^7.0.0
version: 7.0.0
next:
specifier: 16.2.6
version: 16.2.6
@@ -79,7 +82,7 @@ importers:
version: 25.9.1
ai:
specifier: 'catalog:'
version: 7.0.0-beta.178(zod@4.4.3)
version: 7.0.0(zod@4.4.3)
gray-matter:
specifier: 4.0.3
version: 4.0.3
@@ -294,13 +297,13 @@ importers:
version: 0.41.2
'@vercel/connect':
specifier: 'catalog:'
version: 0.2.2(@auth/core@0.41.2)(ai@7.0.0-beta.178(zod@4.4.3))(eve@packages+eve)
version: 0.2.2(@ai-sdk/mcp@2.0.0(zod@4.4.3))(@auth/core@0.41.2)(ai@7.0.0(zod@4.4.3))(eve@packages+eve)
'@vercel/oidc':
specifier: 3.4.1
version: 3.4.1
ai:
specifier: 'catalog:'
version: 7.0.0-beta.178(zod@4.4.3)
version: 7.0.0(zod@4.4.3)
eve:
specifier: workspace:*
version: link:../../../packages/eve
@@ -352,7 +355,7 @@ importers:
version: link:../../../packages/eve
nuxt:
specifier: ^4.0.0
version: 4.4.6(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.0))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.0))(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vercel/blob@2.4.0)(@vercel/functions@3.7.1(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.0))(@vue/compiler-sfc@3.5.35)(cac@6.7.14)(db0@0.3.4)(eslint@10.4.0(jiti@2.7.0))(ioredis@5.11.0)(lightningcss@1.32.0)(magicast@0.5.3)(optionator@0.9.4)(oxlint@1.70.0)(rolldown@1.1.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.0)(rollup@4.60.4))(rollup@4.60.4)(terser@5.48.0)(tsx@4.21.0)(typescript@6.0.3)(vite@8.0.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.9.1)(esbuild@0.27.7)(jiti@2.7.0)(terser@5.48.0)(tsx@4.21.0)(yaml@2.9.0))(yaml@2.9.0)
version: 4.4.6(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.0))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.0))(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vercel/blob@2.4.0)(@vercel/functions@3.7.1(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.0))(@vue/compiler-sfc@3.5.35)(cac@6.7.14)(db0@0.3.4)(eslint@10.4.0(jiti@2.7.0))(ioredis@5.11.0)(lightningcss@1.32.0)(magicast@0.5.3)(optionator@0.9.4)(oxlint@1.70.0)(rolldown@1.1.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.0)(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(tsx@4.21.0)(typescript@6.0.3)(vite@8.0.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.9.1)(esbuild@0.27.7)(jiti@2.7.0)(terser@5.48.0)(tsx@4.21.0)(yaml@2.9.0))(yaml@2.9.0)
vue:
specifier: ^3.5.0
version: 3.5.35(typescript@6.0.3)
@@ -423,7 +426,7 @@ importers:
version: 4.3.0
ai:
specifier: 'catalog:'
version: 7.0.0-beta.178(zod@4.4.3)
version: 7.0.0(zod@4.4.3)
class-variance-authority:
specifier: 0.7.1
version: 0.7.1
@@ -527,7 +530,7 @@ importers:
version: 2.1.2(@opentelemetry/api-logs@0.214.0)(@opentelemetry/api@1.9.1)(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-logs@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-metrics@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))
ai:
specifier: 'catalog:'
version: 7.0.0-beta.178(zod@4.4.3)
version: 7.0.0(zod@4.4.3)
eve:
specifier: workspace:*
version: link:../../../packages/eve
@@ -750,28 +753,31 @@ importers:
devDependencies:
'@ai-sdk/anthropic':
specifier: 'catalog:'
version: 4.0.0-beta.67(zod@4.4.3)
version: 4.0.0(zod@4.4.3)
'@ai-sdk/google':
specifier: 'catalog:'
version: 4.0.0-beta.82(zod@4.4.3)
version: 4.0.0(zod@4.4.3)
'@ai-sdk/mcp':
specifier: 'catalog:'
version: 2.0.0-beta.66(zod@4.4.3)
version: 2.0.0(zod@4.4.3)
'@ai-sdk/openai':
specifier: 'catalog:'
version: 4.0.0-beta.74(zod@4.4.3)
version: 4.0.0(zod@4.4.3)
'@ai-sdk/otel':
specifier: 'catalog:'
version: 1.0.0-beta.124(zod@4.4.3)
version: 1.0.0(zod@4.4.3)
'@ai-sdk/provider':
specifier: 'catalog:'
version: 4.0.0-beta.19
version: 4.0.0
'@ai-sdk/provider-utils':
specifier: 'catalog:'
version: 5.0.0(zod@4.4.3)
'@chat-adapter/slack':
specifier: 4.31.0
version: 4.31.0(ai@7.0.0-beta.178(zod@4.4.3))(zod@4.4.3)
version: 4.31.0(ai@7.0.0(zod@4.4.3))(zod@4.4.3)
'@chat-adapter/state-memory':
specifier: 4.31.0
version: 4.31.0(ai@7.0.0-beta.178(zod@4.4.3))(zod@4.4.3)
version: 4.31.0(ai@7.0.0(zod@4.4.3))(zod@4.4.3)
'@clack/core':
specifier: 1.3.1
version: 1.3.1
@@ -814,6 +820,9 @@ importers:
'@workflow/errors':
specifier: 5.0.0-beta.8
version: 5.0.0-beta.8
'@workflow/serde':
specifier: 4.1.0
version: 4.1.0
'@workflow/world':
specifier: 5.0.0-beta.13
version: 5.0.0-beta.13(zod@4.4.3)
@@ -822,13 +831,13 @@ importers:
version: 5.0.0-beta.21(@opentelemetry/api@1.9.1)
ai:
specifier: 'catalog:'
version: 7.0.0-beta.178(zod@4.4.3)
version: 7.0.0(zod@4.4.3)
autoevals:
specifier: 0.0.132
version: 0.0.132(ws@8.21.0)
chat:
specifier: 4.31.0
version: 4.31.0(ai@7.0.0-beta.178(zod@4.4.3))(zod@4.4.3)
version: 4.31.0(ai@7.0.0(zod@4.4.3))(zod@4.4.3)
chokidar:
specifier: 5.0.0
version: 5.0.0
@@ -836,11 +845,14 @@ importers:
specifier: 14.0.3
version: 14.0.3
emulate:
specifier: ^0.6.0
specifier: 0.6.0
version: 0.6.0
eventsource-parser:
specifier: 3.0.8
version: 3.0.8
experimental-ai-sdk-code-mode:
specifier: 1.0.14
version: 1.0.14(ai@7.0.0-beta.178(zod@4.4.3))
version: 1.0.14(ai@7.0.0(zod@4.4.3))
gray-matter:
specifier: 4.0.3
version: 4.0.3
@@ -901,8 +913,8 @@ importers:
packages:
'@ai-sdk/anthropic@4.0.0-beta.67':
resolution: {integrity: sha512-R0TMMlTui9AoaHTjiJWpnaQLBNBc/oKMCWaqalSnDPtKundJ0sIWZ+wkdNTZbEhq92blzYA7YLDvbDDl8UbGdQ==}
'@ai-sdk/anthropic@4.0.0':
resolution: {integrity: sha512-N0lT1g6/5DEIZvalpkpwYRCdu7n5qb8qPN3PcTem6k4VkPBLC2+T2LAAyx1GS0eNOxavVa0CP7n2kCiye0yyfw==}
engines: {node: '>=22'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
@@ -913,32 +925,32 @@ packages:
peerDependencies:
zod: ^3.25.76 || ^4.1.8
'@ai-sdk/gateway@4.0.0-beta.109':
resolution: {integrity: sha512-W/1kLlPb6Bgbhwep3CA3R6do0HD7SXV5gyuz2XBLY1YABqgxYkw+IhEcjOYlmn9v+Tifjqy5yJqmWdSHMJhyPQ==}
'@ai-sdk/gateway@4.0.0':
resolution: {integrity: sha512-rcKukspbM4h511ot2E8TsPl7rXjRK1zHKrMCP7w4+XF55UKqQHaDzo2kKbGv5rp8Bjb1yQatIHJZE1E2yrOOMw==}
engines: {node: '>=22'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
'@ai-sdk/google@4.0.0-beta.82':
resolution: {integrity: sha512-4dCqVuPduyUtaI0nzDO58pgfMuk4gHOKLSNxGjNQhRlPyzjnWi2O9PDIyrWGd1B5zKParwiGPvYlug3dq9wd8w==}
'@ai-sdk/google@4.0.0':
resolution: {integrity: sha512-UXGGmsYmeJ8VEfFenETFd2SN5tGSU+g2yrLrCuL8uqUkDFpNqV9a9MSKdshh6EXQs8e+2PUELJwqe7qQO3UnSw==}
engines: {node: '>=22'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
'@ai-sdk/mcp@2.0.0-beta.66':
resolution: {integrity: sha512-Jodv9W0aHKRWBLfyGZ3pcc3bXLoEldgEqC4k+E1ozaL5XjYuZfqnjfsGpx6BkX3GCr3mVctPwRGG09QCYP5lJA==}
'@ai-sdk/mcp@2.0.0':
resolution: {integrity: sha512-+N6gJ1AbcDk3+6asoEsdIojVmgEReKNcvWIT716pDL3AepGI6j7RJVdaRyhQLltwzTj0arwpwU4BBzvhOiCd/g==}
engines: {node: '>=22'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
'@ai-sdk/openai@4.0.0-beta.74':
resolution: {integrity: sha512-1iss50q+WXsqUAJ2wxYugsNgczOpM3GNwNeUJPffui1FMOJEq17llhQMbtjby5xP+/sKd8rYciR29wL4Gn6nhA==}
'@ai-sdk/openai@4.0.0':
resolution: {integrity: sha512-XcI/bJEG+Ymx8ZwQMY9GE9waHdEcSzT6wn2o+YW80hOQPf8IAGQvdNWKaD0mxLi6AmOM0L01y/p626w7rImblQ==}
engines: {node: '>=22'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
'@ai-sdk/otel@1.0.0-beta.124':
resolution: {integrity: sha512-U0aSyRAKZjvjwoIyJ6bE2qbyfsDWqlenjmmGYOM+oiZoF2ORSHVD6X83bRHZa4paRQHc5XFlug93AkJXdgD2tA==}
'@ai-sdk/otel@1.0.0':
resolution: {integrity: sha512-XRTAFrerQ042ITLc4Ew5dR+6fiaOntOVBKfIG+H9Vtwpf+HzEhkmpacBhUo/WuSYIxzJTMdlqveZC4gxH5Xocw==}
engines: {node: '>=22'}
'@ai-sdk/provider-utils@4.0.27':
@@ -947,8 +959,8 @@ packages:
peerDependencies:
zod: ^3.25.76 || ^4.1.8
'@ai-sdk/provider-utils@5.0.0-beta.49':
resolution: {integrity: sha512-7xnpAQLpW0KGIsh0CQERcIZuXEGqv7FtFW2BdFk14iuMxRMVpXhTVvEQyqkm6tWAbQ7OsGQJhO6M0Me9gHQ52g==}
'@ai-sdk/provider-utils@5.0.0':
resolution: {integrity: sha512-zj66M02jc6ASYwIgWZowsooDUwaVngeNZQ3H10GwcPMZ+KR6gHMhcUuKl6tkai+JPXTKDyHY1pnszuxRtw2D4A==}
engines: {node: '>=22'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
@@ -957,8 +969,8 @@ packages:
resolution: {integrity: sha512-Q3BZ27qfpYqnCYGvE3vt+Qi6LGOF9R5Nmzn+9JoM1lCRsD9mYaIhfJLkSunN48nfGXJ6n+XNV0J/XVpqGQl7Dw==}
engines: {node: '>=18'}
'@ai-sdk/provider@4.0.0-beta.19':
resolution: {integrity: sha512-Aca/KiGeRtMM7rOJ38Qio+Dc2V45PpiGoWgdrdtIkgM9zkhYpS043t0ggKoNOWgm/csv99XWGrfSF63PSkVeHw==}
'@ai-sdk/provider@4.0.0':
resolution: {integrity: sha512-fr9Gs89prDWiuox/T+kCA+i2cJkHpxU5S+tr4megjTzRC27ZsvFhwjU/+XrqqMbvBUlfmXxTOYWy8ng45dsjIg==}
engines: {node: '>=22'}
'@ai-sdk/react@3.0.193':
@@ -6914,8 +6926,8 @@ packages:
peerDependencies:
zod: ^3.25.76 || ^4.1.8
ai@7.0.0-beta.178:
resolution: {integrity: sha512-kOfIbf23FDkvvfDHOS1gIjImBF9MlYut8fEMlps57vvS622VKL1PeEDLJ181aVd2LPSiDr3SupAMSzI2rEaW3w==}
ai@7.0.0:
resolution: {integrity: sha512-hncs+jamJh8r36K6G8xky7oF4Ai/RLU5TF85FMzI2vElyMJGGnLoHihpdmuDiuY2BsktDWHevKaJM1l0VcRLGw==}
engines: {node: '>=22'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
@@ -12811,10 +12823,10 @@ packages:
snapshots:
'@ai-sdk/anthropic@4.0.0-beta.67(zod@4.4.3)':
'@ai-sdk/anthropic@4.0.0(zod@4.4.3)':
dependencies:
'@ai-sdk/provider': 4.0.0-beta.19
'@ai-sdk/provider-utils': 5.0.0-beta.49(zod@4.4.3)
'@ai-sdk/provider': 4.0.0
'@ai-sdk/provider-utils': 5.0.0(zod@4.4.3)
zod: 4.4.3
'@ai-sdk/gateway@3.0.120(zod@4.4.3)':
@@ -12824,37 +12836,37 @@ snapshots:
'@vercel/oidc': 3.2.0
zod: 4.4.3
'@ai-sdk/gateway@4.0.0-beta.109(zod@4.4.3)':
'@ai-sdk/gateway@4.0.0(zod@4.4.3)':
dependencies:
'@ai-sdk/provider': 4.0.0-beta.19
'@ai-sdk/provider-utils': 5.0.0-beta.49(zod@4.4.3)
'@ai-sdk/provider': 4.0.0
'@ai-sdk/provider-utils': 5.0.0(zod@4.4.3)
'@vercel/oidc': 3.2.0
zod: 4.4.3
'@ai-sdk/google@4.0.0-beta.82(zod@4.4.3)':
'@ai-sdk/google@4.0.0(zod@4.4.3)':
dependencies:
'@ai-sdk/provider': 4.0.0-beta.19
'@ai-sdk/provider-utils': 5.0.0-beta.49(zod@4.4.3)
'@ai-sdk/provider': 4.0.0
'@ai-sdk/provider-utils': 5.0.0(zod@4.4.3)
zod: 4.4.3
'@ai-sdk/mcp@2.0.0-beta.66(zod@4.4.3)':
'@ai-sdk/mcp@2.0.0(zod@4.4.3)':
dependencies:
'@ai-sdk/provider': 4.0.0-beta.19
'@ai-sdk/provider-utils': 5.0.0-beta.49(zod@4.4.3)
'@ai-sdk/provider': 4.0.0
'@ai-sdk/provider-utils': 5.0.0(zod@4.4.3)
pkce-challenge: 5.0.1
zod: 4.4.3
'@ai-sdk/openai@4.0.0-beta.74(zod@4.4.3)':
'@ai-sdk/openai@4.0.0(zod@4.4.3)':
dependencies:
'@ai-sdk/provider': 4.0.0-beta.19
'@ai-sdk/provider-utils': 5.0.0-beta.49(zod@4.4.3)
'@ai-sdk/provider': 4.0.0
'@ai-sdk/provider-utils': 5.0.0(zod@4.4.3)
zod: 4.4.3
'@ai-sdk/otel@1.0.0-beta.124(zod@4.4.3)':
'@ai-sdk/otel@1.0.0(zod@4.4.3)':
dependencies:
'@ai-sdk/provider': 4.0.0-beta.19
'@ai-sdk/provider': 4.0.0
'@opentelemetry/api': 1.9.1
ai: 7.0.0-beta.178(zod@4.4.3)
ai: 7.0.0(zod@4.4.3)
transitivePeerDependencies:
- zod
@@ -12865,9 +12877,9 @@ snapshots:
eventsource-parser: 3.0.8
zod: 4.4.3
'@ai-sdk/provider-utils@5.0.0-beta.49(zod@4.4.3)':
'@ai-sdk/provider-utils@5.0.0(zod@4.4.3)':
dependencies:
'@ai-sdk/provider': 4.0.0-beta.19
'@ai-sdk/provider': 4.0.0
'@standard-schema/spec': 1.1.0
'@workflow/serde': 4.1.0
eventsource-parser: 3.0.8
@@ -12877,7 +12889,7 @@ snapshots:
dependencies:
json-schema: 0.4.0
'@ai-sdk/provider@4.0.0-beta.19':
'@ai-sdk/provider@4.0.0':
dependencies:
json-schema: 0.4.0
@@ -13368,20 +13380,20 @@ snapshots:
human-id: 4.1.3
prettier: 2.8.8
'@chat-adapter/shared@4.31.0(ai@7.0.0-beta.178(zod@4.4.3))(zod@4.4.3)':
'@chat-adapter/shared@4.31.0(ai@7.0.0(zod@4.4.3))(zod@4.4.3)':
dependencies:
chat: 4.31.0(ai@7.0.0-beta.178(zod@4.4.3))(zod@4.4.3)
chat: 4.31.0(ai@7.0.0(zod@4.4.3))(zod@4.4.3)
transitivePeerDependencies:
- ai
- supports-color
- zod
'@chat-adapter/slack@4.31.0(ai@7.0.0-beta.178(zod@4.4.3))(zod@4.4.3)':
'@chat-adapter/slack@4.31.0(ai@7.0.0(zod@4.4.3))(zod@4.4.3)':
dependencies:
'@chat-adapter/shared': 4.31.0(ai@7.0.0-beta.178(zod@4.4.3))(zod@4.4.3)
'@chat-adapter/shared': 4.31.0(ai@7.0.0(zod@4.4.3))(zod@4.4.3)
'@slack/socket-mode': 2.0.7
'@slack/web-api': 7.16.0
chat: 4.31.0(ai@7.0.0-beta.178(zod@4.4.3))(zod@4.4.3)
chat: 4.31.0(ai@7.0.0(zod@4.4.3))(zod@4.4.3)
transitivePeerDependencies:
- ai
- bufferutil
@@ -13390,9 +13402,9 @@ snapshots:
- utf-8-validate
- zod
'@chat-adapter/state-memory@4.31.0(ai@7.0.0-beta.178(zod@4.4.3))(zod@4.4.3)':
'@chat-adapter/state-memory@4.31.0(ai@7.0.0(zod@4.4.3))(zod@4.4.3)':
dependencies:
chat: 4.31.0(ai@7.0.0-beta.178(zod@4.4.3))(zod@4.4.3)
chat: 4.31.0(ai@7.0.0(zod@4.4.3))(zod@4.4.3)
transitivePeerDependencies:
- ai
- supports-color
@@ -14513,6 +14525,75 @@ snapshots:
- uploadthing
- xml2js
'@nuxt/nitro-server@4.4.6(355aa972cbce473ecd0a6783b15860ed)':
dependencies:
'@nuxt/devalue': 2.0.2
'@nuxt/kit': 4.4.6(magicast@0.5.3)
'@unhead/vue': 2.1.15(vue@3.5.35(typescript@6.0.3))
'@vue/shared': 3.5.35
consola: 3.4.2
defu: 6.1.7
destr: 2.0.5
devalue: 5.8.1
errx: 0.1.0
escape-string-regexp: 5.0.0
exsolve: 1.0.8
h3: 1.15.11
impound: 1.1.5
klona: 2.0.6
mocked-exports: 0.1.1
nitropack: 2.13.4(@vercel/blob@2.4.0)(@vercel/functions@3.7.1(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.0))(oxc-parser@0.131.0)(rolldown@1.1.0)(srvx@0.11.16)
nuxt: 4.4.6(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.0))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.0))(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vercel/blob@2.4.0)(@vercel/functions@3.7.1(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.0))(@vue/compiler-sfc@3.5.35)(cac@6.7.14)(db0@0.3.4)(eslint@10.4.0(jiti@2.7.0))(ioredis@5.11.0)(lightningcss@1.32.0)(magicast@0.5.3)(optionator@0.9.4)(oxlint@1.70.0)(rolldown@1.1.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.0)(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(tsx@4.21.0)(typescript@6.0.3)(vite@8.0.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.9.1)(esbuild@0.27.7)(jiti@2.7.0)(terser@5.48.0)(tsx@4.21.0)(yaml@2.9.0))(yaml@2.9.0)
nypm: 0.6.6
ohash: 2.0.11
pathe: 2.0.3
rou3: 0.8.1
std-env: 4.1.0
ufo: 1.6.4
unctx: 2.5.0
unstorage: 1.17.5(@vercel/blob@2.4.0)(@vercel/functions@3.7.1(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.0))(db0@0.3.4)(ioredis@5.11.0)
vue: 3.5.35(typescript@6.0.3)
vue-bundle-renderer: 2.2.0
vue-devtools-stub: 0.1.0
optionalDependencies:
'@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.0)
transitivePeerDependencies:
- '@azure/app-configuration'
- '@azure/cosmos'
- '@azure/data-tables'
- '@azure/identity'
- '@azure/keyvault-secrets'
- '@azure/storage-blob'
- '@capacitor/preferences'
- '@deno/kv'
- '@electric-sql/pglite'
- '@libsql/client'
- '@netlify/blobs'
- '@planetscale/database'
- '@upstash/redis'
- '@vercel/blob'
- '@vercel/functions'
- '@vercel/kv'
- aws4fetch
- bare-abort-controller
- better-sqlite3
- db0
- drizzle-orm
- encoding
- idb-keyval
- ioredis
- magicast
- mysql2
- oxc-parser
- react-native-b4a
- rolldown
- sqlite3
- srvx
- supports-color
- typescript
- uploadthing
- xml2js
'@nuxt/nitro-server@4.4.6(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.0))(@vercel/blob@2.4.0)(@vercel/functions@3.7.1(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.0))(db0@0.3.4)(ioredis@5.11.0)(magicast@0.5.3)(nuxt@4.4.6(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.0))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.0))(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vercel/blob@2.4.0)(@vercel/functions@3.7.1(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.0))(@vue/compiler-sfc@3.5.35)(cac@6.7.14)(db0@0.3.4)(eslint@10.4.0(jiti@2.7.0))(ioredis@5.11.0)(lightningcss@1.32.0)(magicast@0.5.3)(optionator@0.9.4)(oxlint@1.70.0)(rolldown@1.1.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.0)(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(tsx@4.21.0)(typescript@6.0.3)(vite@7.3.3(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.21.0)(yaml@2.9.0))(yaml@2.9.0))(oxc-parser@0.131.0)(rolldown@1.1.0)(srvx@0.11.16)(typescript@6.0.3)':
dependencies:
'@nuxt/devalue': 2.0.2
@@ -14583,75 +14664,6 @@ snapshots:
- xml2js
optional: true
'@nuxt/nitro-server@4.4.6(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.0))(@vercel/blob@2.4.0)(@vercel/functions@3.7.1(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.0))(db0@0.3.4)(ioredis@5.11.0)(magicast@0.5.3)(nuxt@4.4.6(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.0))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.0))(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vercel/blob@2.4.0)(@vercel/functions@3.7.1(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.0))(@vue/compiler-sfc@3.5.35)(cac@6.7.14)(db0@0.3.4)(eslint@10.4.0(jiti@2.7.0))(ioredis@5.11.0)(lightningcss@1.32.0)(magicast@0.5.3)(optionator@0.9.4)(oxlint@1.70.0)(rolldown@1.1.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.0)(rollup@4.60.4))(rollup@4.60.4)(terser@5.48.0)(tsx@4.21.0)(typescript@6.0.3)(vite@8.0.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.9.1)(esbuild@0.27.7)(jiti@2.7.0)(terser@5.48.0)(tsx@4.21.0)(yaml@2.9.0))(yaml@2.9.0))(oxc-parser@0.131.0)(rolldown@1.1.0)(typescript@6.0.3)':
dependencies:
'@nuxt/devalue': 2.0.2
'@nuxt/kit': 4.4.6(magicast@0.5.3)
'@unhead/vue': 2.1.15(vue@3.5.35(typescript@6.0.3))
'@vue/shared': 3.5.35
consola: 3.4.2
defu: 6.1.7
destr: 2.0.5
devalue: 5.8.1
errx: 0.1.0
escape-string-regexp: 5.0.0
exsolve: 1.0.8
h3: 1.15.11
impound: 1.1.5
klona: 2.0.6
mocked-exports: 0.1.1
nitropack: 2.13.4(@vercel/blob@2.4.0)(@vercel/functions@3.7.1(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.0))(oxc-parser@0.131.0)(rolldown@1.1.0)(srvx@0.11.16)
nuxt: 4.4.6(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.0))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.0))(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vercel/blob@2.4.0)(@vercel/functions@3.7.1(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.0))(@vue/compiler-sfc@3.5.35)(cac@6.7.14)(db0@0.3.4)(eslint@10.4.0(jiti@2.7.0))(ioredis@5.11.0)(lightningcss@1.32.0)(magicast@0.5.3)(optionator@0.9.4)(oxlint@1.70.0)(rolldown@1.1.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.0)(rollup@4.60.4))(rollup@4.60.4)(terser@5.48.0)(tsx@4.21.0)(typescript@6.0.3)(vite@8.0.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.9.1)(esbuild@0.27.7)(jiti@2.7.0)(terser@5.48.0)(tsx@4.21.0)(yaml@2.9.0))(yaml@2.9.0)
nypm: 0.6.6
ohash: 2.0.11
pathe: 2.0.3
rou3: 0.8.1
std-env: 4.1.0
ufo: 1.6.4
unctx: 2.5.0
unstorage: 1.17.5(@vercel/blob@2.4.0)(@vercel/functions@3.7.1(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.0))(db0@0.3.4)(ioredis@5.11.0)
vue: 3.5.35(typescript@6.0.3)
vue-bundle-renderer: 2.2.0
vue-devtools-stub: 0.1.0
optionalDependencies:
'@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.0)
transitivePeerDependencies:
- '@azure/app-configuration'
- '@azure/cosmos'
- '@azure/data-tables'
- '@azure/identity'
- '@azure/keyvault-secrets'
- '@azure/storage-blob'
- '@capacitor/preferences'
- '@deno/kv'
- '@electric-sql/pglite'
- '@libsql/client'
- '@netlify/blobs'
- '@planetscale/database'
- '@upstash/redis'
- '@vercel/blob'
- '@vercel/functions'
- '@vercel/kv'
- aws4fetch
- bare-abort-controller
- better-sqlite3
- db0
- drizzle-orm
- encoding
- idb-keyval
- ioredis
- magicast
- mysql2
- oxc-parser
- react-native-b4a
- rolldown
- sqlite3
- srvx
- supports-color
- typescript
- uploadthing
- xml2js
'@nuxt/schema@4.4.6':
dependencies:
'@vue/shared': 3.5.35
@@ -14669,67 +14681,6 @@ snapshots:
rc9: 3.0.1
std-env: 4.1.0
'@nuxt/vite-builder@4.4.6(179cca41d7408deb23af4177246f82d1)':
dependencies:
'@nuxt/kit': 4.4.6(magicast@0.5.3)
'@rollup/plugin-replace': 6.0.3(rollup@4.60.4)
'@vitejs/plugin-vue': 6.0.7(vite@7.3.3(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3))
'@vitejs/plugin-vue-jsx': 5.1.5(vite@7.3.3(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3))
autoprefixer: 10.5.0(postcss@8.5.15)
consola: 3.4.2
cssnano: 8.0.1(postcss@8.5.15)
defu: 6.1.7
escape-string-regexp: 5.0.0
exsolve: 1.0.8
get-port-please: 3.2.0
jiti: 2.7.0
knitwork: 1.3.0
magic-string: 0.30.21
mlly: 1.8.2
mocked-exports: 0.1.1
nuxt: 4.4.6(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.0))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.0))(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vercel/blob@2.4.0)(@vercel/functions@3.7.1(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.0))(@vue/compiler-sfc@3.5.35)(cac@6.7.14)(db0@0.3.4)(eslint@10.4.0(jiti@2.7.0))(ioredis@5.11.0)(lightningcss@1.32.0)(magicast@0.5.3)(optionator@0.9.4)(oxlint@1.70.0)(rolldown@1.1.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.0)(rollup@4.60.4))(rollup@4.60.4)(terser@5.48.0)(tsx@4.21.0)(typescript@6.0.3)(vite@8.0.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.9.1)(esbuild@0.27.7)(jiti@2.7.0)(terser@5.48.0)(tsx@4.21.0)(yaml@2.9.0))(yaml@2.9.0)
nypm: 0.6.6
pathe: 2.0.3
pkg-types: 2.3.1
postcss: 8.5.15
seroval: 1.5.4
std-env: 4.1.0
ufo: 1.6.4
unenv: 2.0.0-rc.24
vite: 7.3.3(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.21.0)(yaml@2.9.0)
vite-node: 5.3.0(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.21.0)(yaml@2.9.0)
vite-plugin-checker: 0.13.0(eslint@10.4.0(jiti@2.7.0))(optionator@0.9.4)(oxlint@1.70.0)(typescript@6.0.3)(vite@7.3.3(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.21.0)(yaml@2.9.0))
vue: 3.5.35(typescript@6.0.3)
vue-bundle-renderer: 2.2.0
optionalDependencies:
'@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.0)
rolldown: 1.1.0
rollup-plugin-visualizer: 7.0.1(rolldown@1.1.0)(rollup@4.60.4)
transitivePeerDependencies:
- '@biomejs/biome'
- '@types/node'
- eslint
- less
- lightningcss
- magicast
- meow
- optionator
- oxlint
- rollup
- sass
- sass-embedded
- stylelint
- stylus
- sugarss
- supports-color
- terser
- tsx
- typescript
- vls
- vti
- vue-tsc
- yaml
'@nuxt/vite-builder@4.4.6(357c5152dbdbefdd44e9614a9454cdd1)':
dependencies:
'@nuxt/kit': 4.4.6(magicast@0.5.3)
@@ -14792,6 +14743,67 @@ snapshots:
- yaml
optional: true
'@nuxt/vite-builder@4.4.6(772227546e20b752c7ab17acaadd8237)':
dependencies:
'@nuxt/kit': 4.4.6(magicast@0.5.3)
'@rollup/plugin-replace': 6.0.3(rollup@4.60.4)
'@vitejs/plugin-vue': 6.0.7(vite@7.3.3(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3))
'@vitejs/plugin-vue-jsx': 5.1.5(vite@7.3.3(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3))
autoprefixer: 10.5.0(postcss@8.5.15)
consola: 3.4.2
cssnano: 8.0.1(postcss@8.5.15)
defu: 6.1.7
escape-string-regexp: 5.0.0
exsolve: 1.0.8
get-port-please: 3.2.0
jiti: 2.7.0
knitwork: 1.3.0
magic-string: 0.30.21
mlly: 1.8.2
mocked-exports: 0.1.1
nuxt: 4.4.6(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.0))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.0))(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vercel/blob@2.4.0)(@vercel/functions@3.7.1(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.0))(@vue/compiler-sfc@3.5.35)(cac@6.7.14)(db0@0.3.4)(eslint@10.4.0(jiti@2.7.0))(ioredis@5.11.0)(lightningcss@1.32.0)(magicast@0.5.3)(optionator@0.9.4)(oxlint@1.70.0)(rolldown@1.1.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.0)(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(tsx@4.21.0)(typescript@6.0.3)(vite@8.0.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.9.1)(esbuild@0.27.7)(jiti@2.7.0)(terser@5.48.0)(tsx@4.21.0)(yaml@2.9.0))(yaml@2.9.0)
nypm: 0.6.6
pathe: 2.0.3
pkg-types: 2.3.1
postcss: 8.5.15
seroval: 1.5.4
std-env: 4.1.0
ufo: 1.6.4
unenv: 2.0.0-rc.24
vite: 7.3.3(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.21.0)(yaml@2.9.0)
vite-node: 5.3.0(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.21.0)(yaml@2.9.0)
vite-plugin-checker: 0.13.0(eslint@10.4.0(jiti@2.7.0))(optionator@0.9.4)(oxlint@1.70.0)(typescript@6.0.3)(vite@7.3.3(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.21.0)(yaml@2.9.0))
vue: 3.5.35(typescript@6.0.3)
vue-bundle-renderer: 2.2.0
optionalDependencies:
'@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.0)
rolldown: 1.1.0
rollup-plugin-visualizer: 7.0.1(rolldown@1.1.0)(rollup@4.60.4)
transitivePeerDependencies:
- '@biomejs/biome'
- '@types/node'
- eslint
- less
- lightningcss
- magicast
- meow
- optionator
- oxlint
- rollup
- sass
- sass-embedded
- stylelint
- stylus
- sugarss
- supports-color
- terser
- tsx
- typescript
- vls
- vti
- vue-tsc
- yaml
'@nuxt/vite-builder@4.4.6(eb203581bd643ab4f7d80d8bc2915558)':
dependencies:
'@nuxt/kit': 4.4.6(magicast@0.5.3)
@@ -18217,12 +18229,13 @@ snapshots:
dependencies:
execa: 5.1.1
'@vercel/connect@0.2.2(@auth/core@0.41.2)(ai@7.0.0-beta.178(zod@4.4.3))(eve@packages+eve)':
'@vercel/connect@0.2.2(@ai-sdk/mcp@2.0.0(zod@4.4.3))(@auth/core@0.41.2)(ai@7.0.0(zod@4.4.3))(eve@packages+eve)':
dependencies:
'@vercel/oidc': 3.6.1
optionalDependencies:
'@ai-sdk/mcp': 2.0.0(zod@4.4.3)
'@auth/core': 0.41.2
ai: 7.0.0-beta.178(zod@4.4.3)
ai: 7.0.0(zod@4.4.3)
eve: link:packages/eve
'@vercel/detect-agent@1.2.3': {}
@@ -18924,11 +18937,11 @@ snapshots:
'@opentelemetry/api': 1.9.1
zod: 4.4.3
ai@7.0.0-beta.178(zod@4.4.3):
ai@7.0.0(zod@4.4.3):
dependencies:
'@ai-sdk/gateway': 4.0.0-beta.109(zod@4.4.3)
'@ai-sdk/provider': 4.0.0-beta.19
'@ai-sdk/provider-utils': 5.0.0-beta.49(zod@4.4.3)
'@ai-sdk/gateway': 4.0.0(zod@4.4.3)
'@ai-sdk/provider': 4.0.0
'@ai-sdk/provider-utils': 5.0.0(zod@4.4.3)
zod: 4.4.3
ajv@6.15.0:
@@ -19395,7 +19408,7 @@ snapshots:
chardet@2.1.1: {}
chat@4.31.0(ai@7.0.0-beta.178(zod@4.4.3))(zod@4.4.3):
chat@4.31.0(ai@7.0.0(zod@4.4.3))(zod@4.4.3):
dependencies:
'@workflow/serde': 4.1.0-beta.2
mdast-util-to-string: 4.0.0
@@ -19405,7 +19418,7 @@ snapshots:
remend: 1.3.0
unified: 11.0.5
optionalDependencies:
ai: 7.0.0-beta.178(zod@4.4.3)
ai: 7.0.0(zod@4.4.3)
zod: 4.4.3
transitivePeerDependencies:
- supports-color
@@ -20712,9 +20725,9 @@ snapshots:
expect-type@1.3.0: {}
experimental-ai-sdk-code-mode@1.0.14(ai@7.0.0-beta.178(zod@4.4.3)):
experimental-ai-sdk-code-mode@1.0.14(ai@7.0.0(zod@4.4.3)):
dependencies:
ai: 7.0.0-beta.178(zod@4.4.3)
ai: 7.0.0(zod@4.4.3)
express@5.2.1:
dependencies:
@@ -23394,16 +23407,16 @@ snapshots:
- yaml
optional: true
nuxt@4.4.6(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.0))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.0))(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vercel/blob@2.4.0)(@vercel/functions@3.7.1(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.0))(@vue/compiler-sfc@3.5.35)(cac@6.7.14)(db0@0.3.4)(eslint@10.4.0(jiti@2.7.0))(ioredis@5.11.0)(lightningcss@1.32.0)(magicast@0.5.3)(optionator@0.9.4)(oxlint@1.70.0)(rolldown@1.1.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.0)(rollup@4.60.4))(rollup@4.60.4)(terser@5.48.0)(tsx@4.21.0)(typescript@6.0.3)(vite@8.0.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.9.1)(esbuild@0.27.7)(jiti@2.7.0)(terser@5.48.0)(tsx@4.21.0)(yaml@2.9.0))(yaml@2.9.0):
nuxt@4.4.6(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.0))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.0))(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vercel/blob@2.4.0)(@vercel/functions@3.7.1(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.0))(@vue/compiler-sfc@3.5.35)(cac@6.7.14)(db0@0.3.4)(eslint@10.4.0(jiti@2.7.0))(ioredis@5.11.0)(lightningcss@1.32.0)(magicast@0.5.3)(optionator@0.9.4)(oxlint@1.70.0)(rolldown@1.1.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.0)(rollup@4.60.4))(rollup@4.60.4)(srvx@0.11.16)(terser@5.48.0)(tsx@4.21.0)(typescript@6.0.3)(vite@8.0.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.9.1)(esbuild@0.27.7)(jiti@2.7.0)(terser@5.48.0)(tsx@4.21.0)(yaml@2.9.0))(yaml@2.9.0):
dependencies:
'@dxup/nuxt': 0.4.1(magicast@0.5.3)(typescript@6.0.3)
'@nuxt/cli': 3.35.2(@nuxt/schema@4.4.6)(cac@6.7.14)(commander@14.0.3)(magicast@0.5.3)
'@nuxt/devtools': 3.2.4(vite@8.0.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.9.1)(esbuild@0.27.7)(jiti@2.7.0)(terser@5.48.0)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3))
'@nuxt/kit': 4.4.6(magicast@0.5.3)
'@nuxt/nitro-server': 4.4.6(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.0))(@vercel/blob@2.4.0)(@vercel/functions@3.7.1(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.0))(db0@0.3.4)(ioredis@5.11.0)(magicast@0.5.3)(nuxt@4.4.6(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.0))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.0))(@parcel/watcher@2.5.6)(@types/node@25.9.1)(@vercel/blob@2.4.0)(@vercel/functions@3.7.1(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.0))(@vue/compiler-sfc@3.5.35)(cac@6.7.14)(db0@0.3.4)(eslint@10.4.0(jiti@2.7.0))(ioredis@5.11.0)(lightningcss@1.32.0)(magicast@0.5.3)(optionator@0.9.4)(oxlint@1.70.0)(rolldown@1.1.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.0)(rollup@4.60.4))(rollup@4.60.4)(terser@5.48.0)(tsx@4.21.0)(typescript@6.0.3)(vite@8.0.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.9.1)(esbuild@0.27.7)(jiti@2.7.0)(terser@5.48.0)(tsx@4.21.0)(yaml@2.9.0))(yaml@2.9.0))(oxc-parser@0.131.0)(rolldown@1.1.0)(typescript@6.0.3)
'@nuxt/nitro-server': 4.4.6(355aa972cbce473ecd0a6783b15860ed)
'@nuxt/schema': 4.4.6
'@nuxt/telemetry': 2.8.0(@nuxt/kit@4.4.6(magicast@0.5.3))
'@nuxt/vite-builder': 4.4.6(179cca41d7408deb23af4177246f82d1)
'@nuxt/vite-builder': 4.4.6(772227546e20b752c7ab17acaadd8237)
'@unhead/vue': 2.1.15(vue@3.5.35(typescript@6.0.3))
'@vue/shared': 3.5.35
chokidar: 5.0.0
+11 -9
View File
@@ -18,20 +18,19 @@ allowBuilds:
vue-demi: false
catalog:
"@ai-sdk/anthropic": "4.0.0-beta.67"
"@ai-sdk/google": "4.0.0-beta.82"
"@ai-sdk/mcp": "2.0.0-beta.66"
"@ai-sdk/openai": "4.0.0-beta.74"
"@ai-sdk/otel": "1.0.0-beta.124"
"@ai-sdk/provider": "4.0.0-beta.19"
"@ai-sdk/provider-utils": "5.0.0-beta.49"
"@ai-sdk/react": "4.0.0-beta.182"
"@ai-sdk/anthropic": "^4.0.0"
"@ai-sdk/google": "^4.0.0"
"@ai-sdk/mcp": "^2.0.0"
"@ai-sdk/openai": "^4.0.0"
"@ai-sdk/otel": "^1.0.0"
"@ai-sdk/provider": "^4.0.0"
"@ai-sdk/provider-utils": "^5.0.0"
"@types/node": "25.9.1"
"@types/react": "19.2.15"
"@types/react-dom": "19.2.3"
"@vercel/connect": "0.2.2"
"@vercel/sandbox": "2.2.1"
ai: "7.0.0-beta.178"
ai: "^7.0.0"
next: "16.2.6"
picocolors: "1.1.1"
react: "19.2.6"
@@ -45,6 +44,7 @@ minimumReleaseAge: 2880 # 2 days
minimumReleaseAgeExclude:
- "@ai-sdk/*"
- "@rolldown/*"
- "@typescript/typescript-*"
- "@turbo/*"
- "@workflow/*"
@@ -54,6 +54,8 @@ minimumReleaseAgeExclude:
- experimental-ai-sdk-code-mode
- eve
- nitro
- rolldown
- turbo
- typescript
- vercel
- workflow