diff --git a/.changeset/eve-approval-configuration.md b/.changeset/eve-approval-configuration.md new file mode 100644 index 0000000..0e35ef8 --- /dev/null +++ b/.changeset/eve-approval-configuration.md @@ -0,0 +1,5 @@ +--- +'@github-tools/sdk': patch +--- + +Object-shaped eve `ApprovalConfiguration` values (`{ request, response }`) passed via `requireApproval` or `overrides.approval` are now honored instead of being silently replaced by `always()`. Configurations pass through to `defineTool` unchanged so a `response` authorizer survives. Also declares the tested eve peer range (`>=0.44.0 <0.48.0` instead of `>=0.19.0`) and deprecates `MISSING_EVE_MESSAGE`, which has not been thrown since eve moved to static imports. diff --git a/.changeset/eve-extension-config-validation.md b/.changeset/eve-extension-config-validation.md new file mode 100644 index 0000000..fe85851 --- /dev/null +++ b/.changeset/eve-extension-config-validation.md @@ -0,0 +1,5 @@ +--- +'@github-tools/eve-extension': patch +--- + +Validate `requireApproval` and `overrides` keys against the GitHub tool catalog at mount time — a mistyped tool name now fails config validation instead of being silently ignored. The eve peer range is bounded to the tested versions (`>=0.44.0 <0.48.0`). diff --git a/.github/workflows/eve-canary.yml b/.github/workflows/eve-canary.yml new file mode 100644 index 0000000..3ad39d8 --- /dev/null +++ b/.github/workflows/eve-canary.yml @@ -0,0 +1,46 @@ +name: eve canary + +# The durable-stamp contract this repo depends on is not part of eve's +# documented API, and eve ships multiple releases a week. The AST guard in +# packages/github-tools-eve-extension/test/ only encodes the rules we know +# about; this job builds and tests against eve@latest on a schedule so +# upstream drift (as at eve 0.44) fails here before it reaches consumers. + +on: + schedule: + - cron: '17 6 * * *' + workflow_dispatch: + +permissions: + contents: read + +env: + TURBO_TELEMETRY_DISABLED: 1 + +jobs: + canary: + name: Build & test against eve@latest + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0 + with: + persist-credentials: false + + - name: Set up pnpm and Node + uses: ./.github/actions/setup + + # minimumReleaseAge is zeroed on purpose: the canary must see the actual latest + - name: Bump eve to latest everywhere + run: | + pnpm -r up 'eve@latest' --config.minimumReleaseAge=0 + pnpm ls -r --depth -1 eve || true + + - name: Build + run: pnpm exec turbo run build --filter=@github-tools/sdk --filter=@github-tools/eve-extension + + - name: Typecheck + run: pnpm exec turbo run typecheck --filter=@github-tools/sdk --filter=@github-tools/eve-extension + + - name: Test + run: pnpm exec turbo run test --filter=@github-tools/sdk --filter=@github-tools/eve-extension diff --git a/AGENTS.md b/AGENTS.md index b25e48c..9d97279 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -97,7 +97,7 @@ Ten presets (`code-review`, `issue-triage`, `repo-explorer`, `ci-ops`, `security ## eve extension durable callbacks (`packages/github-tools-eve-extension`) -On eve 0.44+, a missing durable descriptor on **any** dynamic-tool callback (`execute`, `toModelOutput`, `approval` / `approvalRequest`) discards the **entire** GitHub toolset. In `extension/tools/github.ts`, those three must be **direct** `defineTool` properties with inline functions (or identifiers). Conditional spreads and call expressions (`resolveEveApproval(...)`, `always()`) are invisible to eve's stamp. Callbacks may only close over a serializable tool `name` and re-read config via `buildSessionOptions()`. CI enforces this via `test/durable-define-tool.test.ts`. +On eve 0.44+, a missing durable descriptor on **any** dynamic-tool callback (`execute`, `toModelOutput`, `approval` / `approvalRequest`) discards the **entire** GitHub toolset. In `extension/tools/github.ts`, those three must be **direct** `defineTool` properties with inline functions (or identifiers). Conditional spreads and call expressions (`resolveEveApproval(...)`, `always()`) are invisible to eve's stamp. Callbacks may only close over a serializable tool `name` and re-read config via `buildSessionOptions()`. CI enforces this via `test/durable-define-tool.test.ts`. A scheduled canary (`.github/workflows/eve-canary.yml`) additionally builds and tests against `eve@latest` daily to catch upstream drift the static guard cannot see. ## Chat App Architecture (`apps/chat`) diff --git a/apps/docs/content/docs/2.frameworks/1.eve-extension.md b/apps/docs/content/docs/2.frameworks/1.eve-extension.md index 1736a00..ab83364 100644 --- a/apps/docs/content/docs/2.frameworks/1.eve-extension.md +++ b/apps/docs/content/docs/2.frameworks/1.eve-extension.md @@ -152,7 +152,7 @@ Tools are exposed to the model as `__`, where `` ## Pick exact tools -`preset` scopes to one of five predefined groups. To hand-pick tools instead, standalone or layered on top of a preset, use `include` and `exclude`: +`preset` scopes to one of the ten [predefined presets](/guide/presets). To hand-pick tools instead, standalone or layered on top of a preset, use `include` and `exclude`: ```ts [agent/extensions/github.ts] import githubExtension from '@github-tools/eve-extension' diff --git a/packages/github-tools-eve-extension/extension/extension.ts b/packages/github-tools-eve-extension/extension/extension.ts index 3ab0b47..3de83a4 100644 --- a/packages/github-tools-eve-extension/extension/extension.ts +++ b/packages/github-tools-eve-extension/extension/extension.ts @@ -2,11 +2,13 @@ import type { GithubTokenInput } from '@github-tools/sdk' import type { GithubConnectorInput } from '@github-tools/sdk/connect' import { GITHUB_TOOL_NAMES, + GITHUB_WRITE_TOOLS, type CommitIdentity, type EveApprovalConfig, type EveToolOverrides, type GithubToolName, type GithubToolPreset, + type GithubWriteToolName, } from '@github-tools/sdk/eve-runtime' import { defineExtension } from 'eve/extension' import { z } from 'zod' @@ -90,6 +92,7 @@ const presetNameSchema = z.enum([ 'maintainer', ]) const toolNameSchema = z.enum(Object.values(GITHUB_TOOL_NAMES) as [GithubToolName, ...GithubToolName[]]) +const writeToolNameSchema = z.enum(Object.values(GITHUB_WRITE_TOOLS) as [GithubWriteToolName, ...GithubWriteToolName[]]) const commitIdentitySchema = z.object({ name: z.string(), @@ -114,8 +117,10 @@ const configSchema = z.object({ issueNumber: z.number().optional(), ref: z.string().optional(), }).optional(), - requireApproval: z.union([z.boolean(), z.record(z.string(), z.unknown())]).optional(), - overrides: z.record(z.string(), z.unknown()).optional(), + // Key validation only — a mistyped tool name would otherwise be silently + // ignored and the tool would keep its default behavior with no signal. + requireApproval: z.union([z.boolean(), z.partialRecord(writeToolNameSchema, z.unknown())]).optional(), + overrides: z.partialRecord(toolNameSchema, z.unknown()).optional(), author: commitIdentitySchema.optional(), committer: commitIdentitySchema.optional(), coAuthors: z.array(commitIdentitySchema).optional(), diff --git a/packages/github-tools-eve-extension/package.json b/packages/github-tools-eve-extension/package.json index 3de480e..b0f93fe 100644 --- a/packages/github-tools-eve-extension/package.json +++ b/packages/github-tools-eve-extension/package.json @@ -57,7 +57,7 @@ }, "peerDependencies": { "@vercel/connect": ">=0.3.2", - "eve": ">=0.44.0" + "eve": ">=0.44.0 <0.48.0" }, "peerDependenciesMeta": { "@vercel/connect": { diff --git a/packages/github-tools/package.json b/packages/github-tools/package.json index c62a8b0..cc65734 100644 --- a/packages/github-tools/package.json +++ b/packages/github-tools/package.json @@ -74,7 +74,7 @@ "@vercel/connect": ">=0.3.2", "@workflow/ai": "^4.1.2", "ai": "^6.0.97 || ^7.0.0", - "eve": ">=0.19.0", + "eve": ">=0.44.0 <0.48.0", "workflow": "^4.5.0", "zod": "^4.3.6" }, @@ -103,7 +103,7 @@ "@vercel/connect": "^0.6.1", "ai": "^7.0.58", "eslint": "^10.8.0", - "eve": "~0.40.0", + "eve": "^0.46.1", "tsdown": "^0.22.14", "typescript": "^6.0.3", "typescript-eslint": "^8.65.0", diff --git a/packages/github-tools/src/eve/approval.test.ts b/packages/github-tools/src/eve/approval.test.ts index 281ae95..a9361cd 100644 --- a/packages/github-tools/src/eve/approval.test.ts +++ b/packages/github-tools/src/eve/approval.test.ts @@ -1,6 +1,5 @@ -import type { ApprovalContext } from 'eve/tools' import { describe, expect, it } from 'vitest' -import { always, never, once } from 'eve/tools/approval' +import { always, never, once, type ApprovalContext } from 'eve/tools/approval' import { isEveApprovalDisabled, mapEveApprovalValue, @@ -81,4 +80,21 @@ describe('resolveEveToolApproval', () => { expect(resolveEveToolApproval('createIssue', { createIssue: 'once' })).toBeDefined() expect(resolveEveToolApproval('createIssue', undefined, () => 'not-applicable')).toBeDefined() }) + + it('passes object-shaped ApprovalConfiguration through unchanged', () => { + const configuration = { + request: always(), + response: () => ({ status: 'allowed' as const }), + } + + expect(resolveEveToolApproval('createIssue', { createIssue: configuration })).toBe(configuration) + expect(resolveEveToolApproval('createIssue', undefined, configuration)).toBe(configuration) + }) +}) + +describe('mapEveApprovalValue', () => { + it('extracts the request policy from an object-shaped ApprovalConfiguration', () => { + const request = () => 'user-approval' as const + expect(mapEveApprovalValue({ request })).toBe(request) + }) }) diff --git a/packages/github-tools/src/eve/approval.ts b/packages/github-tools/src/eve/approval.ts index 709ab98..7fe5809 100644 --- a/packages/github-tools/src/eve/approval.ts +++ b/packages/github-tools/src/eve/approval.ts @@ -1,4 +1,4 @@ -import type { Approval, ApprovalPolicy } from 'eve/tools' +import type { Approval, ApprovalPolicy } from 'eve/tools/approval' import type { GithubWriteToolName } from '../core/write-tools' import { getEveApprovalHelpers } from './load-eve' import type { EveApprovalConfig, EveApprovalValue } from './types' @@ -14,14 +14,14 @@ export function isEveApprovalDisabled(value: EveApprovalValue | undefined): bool export function mapEveApprovalValue(value: EveApprovalValue): ApprovalPolicy { if (typeof value === 'function') return value + // Object-shaped eve `ApprovalConfiguration` — the request-time policy lives on `request`. + if (typeof value === 'object') return value.request const { always, never, once } = getEveApprovalHelpers() if (value === true || value === 'always') return always() if (value === false || value === 'never') return never() - if (value === 'once') return once() - - return always() + return once() } export function resolveEveApproval( @@ -48,13 +48,16 @@ export function resolveEveToolApproval( config: EveApprovalConfig | undefined, override?: EveApprovalValue, ): Approval | undefined { - if (override !== undefined) { - if (isEveApprovalDisabled(override)) return undefined - return mapEveApprovalValue(override) - } - if (config === false) return undefined - if (typeof config === 'object' && config !== null && isEveApprovalDisabled(config[toolName])) { - return undefined - } - return resolveEveApproval(toolName, config) + const value = override !== undefined + ? override + : typeof config === 'object' && config !== null + ? config[toolName] + : config + + if (value === undefined) return getEveApprovalHelpers().always() + if (isEveApprovalDisabled(value)) return undefined + // Pass policies and `ApprovalConfiguration` objects through unchanged so a + // response-time authorizer (`response`) survives onto `defineTool`. + if (typeof value === 'function' || typeof value === 'object') return value + return mapEveApprovalValue(value) } diff --git a/packages/github-tools/src/eve/build.test.ts b/packages/github-tools/src/eve/build.test.ts index 536e344..7352c18 100644 --- a/packages/github-tools/src/eve/build.test.ts +++ b/packages/github-tools/src/eve/build.test.ts @@ -1,10 +1,21 @@ import { describe, expect, it, vi } from 'vitest' import { PRESET_TOOLS } from '../core/presets' import * as repositoryCore from '../core/repository' +import { ALL_GITHUB_TOOL_NAMES } from '../core/tool-names' import { buildEveToolDefinition, buildEveToolMap, createEveGithubToolsDynamic, executeGithubEveTool, formatGithubEveToolOutput, hasGithubEveToolModelOutput, listResolvedEveToolNames } from './build' +import { createToolRegistry } from './registry' import { getEveTools } from './load-eve' describe('createGithubTools eve integration', () => { + // TypeScript catches typos in registry names but not omissions: a tool added + // to GITHUB_TOOL_NAMES and the AI SDK layer but forgotten here would silently + // never appear in eve. This pins the two catalogs together. + it('registers every GITHUB_TOOL_NAMES entry exactly once in the eve registry', () => { + const registryNames = createToolRegistry({ token: 'ghp_test' }).map(entry => entry.name) + expect(registryNames.sort()).toEqual([...ALL_GITHUB_TOOL_NAMES].sort()) + expect(new Set(registryNames).size).toBe(registryNames.length) + }) + it('resolves the same tool names as the AI SDK presets', () => { for (const preset of Object.keys(PRESET_TOOLS) as Array) { expect(listResolvedEveToolNames({ preset }).sort()).toEqual([...PRESET_TOOLS[preset]].sort()) diff --git a/packages/github-tools/src/eve/build.ts b/packages/github-tools/src/eve/build.ts index c311a86..7d43f7a 100644 --- a/packages/github-tools/src/eve/build.ts +++ b/packages/github-tools/src/eve/build.ts @@ -47,7 +47,11 @@ function applyOverrides( delete (rest as { approval?: unknown }).approval return rest } - return { ...next, approval: mapEveApprovalValue(override.approval) } + // Preserve policies and `ApprovalConfiguration` objects as-is; only literals need mapping. + const approval = typeof override.approval === 'function' || typeof override.approval === 'object' + ? override.approval + : mapEveApprovalValue(override.approval) + return { ...next, approval } } export function buildEveToolDefinition( @@ -72,15 +76,17 @@ export function buildEveToolDefinition( ? resolveEveToolApproval(entry.writeTool, options.requireApproval) : undefined - const tool = defineTool({ + // Annotated so defineTool resolves to its ToolDefinition overload — inference + // from the bare literal picks the background-tool overload on eve 0.45+. + const definition: ToolDefinition = { description: entry.description, inputSchema: entry.inputSchema, ...(approval && { approval }), toModelOutput: (output: unknown) => formatGithubEveToolOutput(name, output), execute: async (input) => runGithubToolStep(name, input as Record, ctx), - }) + } - return applyOverrides(tool, name, options.overrides) + return applyOverrides(defineTool(definition), name, options.overrides) } export function buildEveToolMap(options: EveGithubToolsOptions = {}): EveToolMap { @@ -104,15 +110,15 @@ export function buildEveToolMap(options: EveGithubToolsOptions = {}): EveToolMap ? resolveEveToolApproval(entry.writeTool, options.requireApproval) : undefined - const tool = defineTool({ + const definition: ToolDefinition = { description: entry.description, inputSchema: entry.inputSchema, ...(approval && { approval }), toModelOutput: (output: unknown) => formatGithubEveToolOutput(entry.name, output), execute: async (input) => runGithubToolStep(entry.name, input as Record, ctx), - }) + } - tools[entry.name] = applyOverrides(tool, entry.name, options.overrides) + tools[entry.name] = applyOverrides(defineTool(definition), entry.name, options.overrides) } return tools diff --git a/packages/github-tools/src/eve/load-eve.test.ts b/packages/github-tools/src/eve/load-eve.test.ts index db1fdca..089ce19 100644 --- a/packages/github-tools/src/eve/load-eve.test.ts +++ b/packages/github-tools/src/eve/load-eve.test.ts @@ -1,13 +1,7 @@ import { describe, expect, it } from 'vitest' -import { MISSING_EVE_MESSAGE, getEveTools } from './load-eve' +import { getEveTools } from './load-eve' describe('load-eve', () => { - it('exports a clear install message for the optional peer dependency', () => { - expect(MISSING_EVE_MESSAGE).toBe( - 'The "eve" package is required to use @github-tools/sdk/eve. Install it with: pnpm add eve', - ) - }) - it('loads eve/tools when the peer dependency is installed', () => { expect(getEveTools().defineTool).toBeTypeOf('function') expect(getEveTools().defineDynamic).toBeTypeOf('function') diff --git a/packages/github-tools/src/eve/load-eve.ts b/packages/github-tools/src/eve/load-eve.ts index 62c1623..c2cbaec 100644 --- a/packages/github-tools/src/eve/load-eve.ts +++ b/packages/github-tools/src/eve/load-eve.ts @@ -9,6 +9,12 @@ import * as eveApproval from 'eve/tools/approval' export type EveToolsModule = typeof import('eve/tools') export type EveApprovalModule = typeof import('eve/tools/approval') +/** + * @deprecated Never thrown since eve moved to static ESM imports — a missing + * `eve` package now fails at module resolution with the bundler/runtime's own + * error. Kept only for backward compatibility of the public export; do not + * match on it. Will be removed in the next major. + */ export const MISSING_EVE_MESSAGE = 'The "eve" package is required to use @github-tools/sdk/eve. Install it with: pnpm add eve' diff --git a/packages/github-tools/src/eve/types.ts b/packages/github-tools/src/eve/types.ts index 39f02a8..1e79ac7 100644 --- a/packages/github-tools/src/eve/types.ts +++ b/packages/github-tools/src/eve/types.ts @@ -1,4 +1,5 @@ -import type { Approval, ToolModelOutput } from 'eve/tools' +import type { ToolModelOutput } from 'eve/tools' +import type { Approval } from 'eve/tools/approval' import type { z } from 'zod' import type { GithubToolsContext } from '../core/context' import type { GithubToolPreset } from '../core/presets' diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c9b9f81..8bf0b36 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -93,7 +93,7 @@ importers: version: 2.3.0(@vueuse/core@14.4.0(vue@3.5.40(typescript@6.0.3)))(vue@3.5.40(typescript@6.0.3)) nuxt: specifier: ^4.5.1 - version: 4.5.1(c66637b111bf65273ad762401e06ff63) + version: 4.5.1(fc316510406ff4e4d8564a57715a560d) nuxt-auth-utils: specifier: ^0.5.29 version: 0.5.29(magicast@0.5.4) @@ -124,7 +124,7 @@ importers: devDependencies: '@nuxt/eslint': specifier: ^1.16.0 - version: 1.16.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(@typescript-eslint/utils@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(@vue/compiler-sfc@3.5.40)(esbuild@0.28.1)(eslint@10.8.0(jiti@2.7.0))(magic-string@1.1.0)(magicast@0.5.4)(rolldown@1.2.2)(rollup@4.62.4)(srvx@0.11.22)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)))(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 1.16.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(@typescript-eslint/utils@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(@vue/compiler-sfc@3.5.40)(esbuild@0.28.1)(eslint@10.8.0(jiti@2.7.0))(magic-string@1.1.0)(magicast@0.5.4)(rolldown@1.2.2)(rollup@4.62.4)(srvx@0.12.5)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)))(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)) '@types/node': specifier: ^26.1.2 version: 26.1.2 @@ -194,13 +194,13 @@ importers: version: link:../../packages/github-tools-eve-extension '@vercel/connect': specifier: ^0.6.1 - version: 0.6.1(@ai-sdk/mcp@1.0.58(zod@4.4.3))(ai@7.0.70(zod@4.4.3))(eve@0.46.1(@opentelemetry/api@1.9.0)(@vercel/queue@0.3.1)(ai@7.0.70(zod@4.4.3))(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0))) + version: 0.6.1(@ai-sdk/mcp@1.0.58(zod@4.4.3))(ai@7.0.70(zod@4.4.3))(eve@0.46.1(@opentelemetry/api@1.9.0)(@vercel/queue@0.3.1)(ai@7.0.70(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0))) ai: specifier: ^7.0.58 version: 7.0.70(zod@4.4.3) eve: specifier: ^0.46.1 - version: 0.46.1(@opentelemetry/api@1.9.0)(@vercel/queue@0.3.1)(ai@7.0.70(zod@4.4.3))(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 0.46.1(@opentelemetry/api@1.9.0)(@vercel/queue@0.3.1)(ai@7.0.70(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)) zod: specifier: ^4.3.6 version: 4.4.3 @@ -274,7 +274,7 @@ importers: version: 26.1.2 '@vercel/connect': specifier: ^0.6.1 - version: 0.6.1(@ai-sdk/mcp@1.0.58(zod@4.4.3))(ai@7.0.70(zod@4.4.3))(eve@0.40.0(@opentelemetry/api@1.9.0)(@vercel/queue@0.3.1)(ai@7.0.70(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0))) + version: 0.6.1(@ai-sdk/mcp@1.0.58(zod@4.4.3))(ai@7.0.70(zod@4.4.3))(eve@0.46.1(@opentelemetry/api@1.9.0)(@vercel/queue@0.3.1)(ai@7.0.70(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0))) ai: specifier: ^7.0.58 version: 7.0.70(zod@4.4.3) @@ -282,8 +282,8 @@ importers: specifier: ^10.8.0 version: 10.8.0(jiti@2.7.0) eve: - specifier: ~0.40.0 - version: 0.40.0(@opentelemetry/api@1.9.0)(@vercel/queue@0.3.1)(ai@7.0.70(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)) + specifier: ^0.46.1 + version: 0.46.1(@opentelemetry/api@1.9.0)(@vercel/queue@0.3.1)(ai@7.0.70(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)) tsdown: specifier: ^0.22.14 version: 0.22.14(@volar/typescript@2.4.28)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.39)(vue-tsc@3.3.9(typescript@6.0.3)) @@ -311,13 +311,13 @@ importers: version: 26.1.2 '@vercel/connect': specifier: ^0.6.1 - version: 0.6.1(@ai-sdk/mcp@1.0.58(zod@4.4.3))(ai@7.0.70(zod@4.4.3))(eve@0.46.1(@opentelemetry/api@1.9.0)(@vercel/queue@0.3.1)(ai@7.0.70(zod@4.4.3))(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0))) + version: 0.6.1(@ai-sdk/mcp@1.0.58(zod@4.4.3))(ai@7.0.70(zod@4.4.3))(eve@0.46.1(@opentelemetry/api@1.9.0)(@vercel/queue@0.3.1)(ai@7.0.70(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0))) eslint: specifier: ^10.8.0 version: 10.8.0(jiti@2.7.0) eve: specifier: ^0.46.1 - version: 0.46.1(@opentelemetry/api@1.9.0)(@vercel/queue@0.3.1)(ai@7.0.70(zod@4.4.3))(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 0.46.1(@opentelemetry/api@1.9.0)(@vercel/queue@0.3.1)(ai@7.0.70(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)) typescript: specifier: ^6.0.3 version: 6.0.3 @@ -7465,26 +7465,6 @@ packages: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} - eve@0.40.0: - resolution: {integrity: sha512-HlAt+DJ+mgDxXVqsPap7SxM1tfRGkZ6MRIqgE3L0bFuyTXeD1Eod9nn8LzJrAYwuL3wGF4SCAVP96ApHWQq2Nw==} - engines: {node: '>=24'} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.0.0 - ai: ^7.0.58 - braintrust: ^3.0.0 - just-bash: ^3.0.0 - microsandbox: ^0.5.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - braintrust: - optional: true - just-bash: - optional: true - microsandbox: - optional: true - eve@0.46.1: resolution: {integrity: sha512-GhsruM+NsOg93fPsKCUTbxZyAOqzGWNfjjqa1r1055GEtQGvi838p/Ng8Z6Oz0KsYiSXC2rp/m2EgexCl/Jfog==} engines: {node: '>=24'} @@ -13266,20 +13246,6 @@ snapshots: dependencies: '@eslint/core': 1.2.1 - '@eslint/config-inspector@3.1.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(eslint@10.8.0(jiti@2.7.0))(srvx@0.11.22)(typescript@6.0.3)': - dependencies: - ansis: 4.3.1 - cac: 7.0.0 - chokidar: 5.0.0 - devframe: 0.7.16(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) - eslint: 10.8.0(jiti@2.7.0) - jiti: 2.7.0 - tinyglobby: 0.2.17 - transitivePeerDependencies: - - '@modelcontextprotocol/sdk' - - srvx - - typescript - '@eslint/config-inspector@3.1.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(eslint@10.8.0(jiti@2.7.0))(srvx@0.12.5)(typescript@6.0.3)': dependencies: ansis: 4.3.1 @@ -14417,9 +14383,9 @@ snapshots: - vite - webpack - '@nuxt/eslint@1.16.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(@typescript-eslint/utils@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(@vue/compiler-sfc@3.5.40)(esbuild@0.28.1)(eslint@10.8.0(jiti@2.7.0))(magic-string@1.1.0)(magicast@0.5.4)(rolldown@1.2.2)(rollup@4.62.4)(srvx@0.11.22)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)))(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0))': + '@nuxt/eslint@1.16.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(@typescript-eslint/utils@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(@vue/compiler-sfc@3.5.40)(esbuild@0.28.1)(eslint@10.8.0(jiti@2.7.0))(magic-string@1.1.0)(magicast@0.5.4)(rolldown@1.2.2)(rollup@4.62.4)(srvx@0.12.5)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)))(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0))': dependencies: - '@eslint/config-inspector': 3.1.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(eslint@10.8.0(jiti@2.7.0))(srvx@0.11.22)(typescript@6.0.3) + '@eslint/config-inspector': 3.1.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(eslint@10.8.0(jiti@2.7.0))(srvx@0.12.5)(typescript@6.0.3) '@nuxt/devtools-kit': 3.4.1(magic-string@1.1.0)(magicast@0.5.4)(oxc-parser@0.135.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)))(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)) '@nuxt/eslint-config': 1.16.0(@typescript-eslint/utils@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(@vue/compiler-sfc@3.5.40)(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) '@nuxt/eslint-plugin': 1.16.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) @@ -14948,10 +14914,10 @@ snapshots: - rolldown - unplugin - '@nuxt/nitro-server@4.5.1(12248e57a0c392743e84adc0c89ebc1a)': + '@nuxt/nitro-server@4.5.1(4b877ca0a1c9964f9a311f81890ca7f7)': dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/kit': 4.5.1(magic-string@1.1.0)(magicast@0.5.4)(oxc-parser@0.135.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0))) + '@nuxt/kit': 4.5.1(magic-string@1.1.0)(magicast@0.5.3)(oxc-parser@0.135.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0))) '@unhead/vue': 3.3.0(@oxc-project/types@0.142.0)(esbuild@0.28.1)(lightningcss@1.33.0)(oxc-parser@0.135.0)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) '@vue/shared': 3.5.40 consola: 3.4.2 @@ -14965,9 +14931,9 @@ snapshots: impound: 1.1.6(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)) klona: 2.0.6 mocked-exports: 0.1.1 - nitropack: 2.13.4(@libsql/client@0.17.4)(@vercel/blob@2.6.1)(@vercel/functions@3.7.7(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.1))(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260702.1)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.0)(better-sqlite3@12.11.1)(pg@8.22.0))(rolldown@1.2.2)(srvx@0.11.22)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)) + nitropack: 2.13.4(@libsql/client@0.17.4)(@vercel/blob@2.6.1)(@vercel/functions@3.7.7(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.1))(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260702.1)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.0)(better-sqlite3@12.11.1)(pg@8.22.0))(oxc-parser@0.135.0)(rolldown@1.2.2)(srvx@0.12.5)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)) nostics: 1.2.0 - nuxt: 4.5.1(c66637b111bf65273ad762401e06ff63) + nuxt: 4.5.1(0b0d3d8d6cba9a6728df52302cad4420) nypm: 0.6.9 ohash: 2.0.11 pathe: 2.0.3 @@ -15034,10 +15000,10 @@ snapshots: - webpack - xml2js - '@nuxt/nitro-server@4.5.1(4b877ca0a1c9964f9a311f81890ca7f7)': + '@nuxt/nitro-server@4.5.1(db2a06f413a03d6dafbdac5962bf5ccb)': dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/kit': 4.5.1(magic-string@1.1.0)(magicast@0.5.3)(oxc-parser@0.135.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0))) + '@nuxt/kit': 4.5.1(magic-string@1.1.0)(magicast@0.5.4)(oxc-parser@0.135.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0))) '@unhead/vue': 3.3.0(@oxc-project/types@0.142.0)(esbuild@0.28.1)(lightningcss@1.33.0)(oxc-parser@0.135.0)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) '@vue/shared': 3.5.40 consola: 3.4.2 @@ -15053,7 +15019,7 @@ snapshots: mocked-exports: 0.1.1 nitropack: 2.13.4(@libsql/client@0.17.4)(@vercel/blob@2.6.1)(@vercel/functions@3.7.7(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.1))(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260702.1)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.0)(better-sqlite3@12.11.1)(pg@8.22.0))(oxc-parser@0.135.0)(rolldown@1.2.2)(srvx@0.12.5)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)) nostics: 1.2.0 - nuxt: 4.5.1(0b0d3d8d6cba9a6728df52302cad4420) + nuxt: 4.5.1(fc316510406ff4e4d8564a57715a560d) nypm: 0.6.9 ohash: 2.0.11 pathe: 2.0.3 @@ -15457,7 +15423,7 @@ snapshots: - vue-tsc - yaml - '@nuxt/vite-builder@4.5.1(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7))(@types/node@26.1.2)(esbuild@0.28.1)(eslint@10.8.0(jiti@2.7.0))(magic-string@1.1.0)(magicast@0.5.4)(nuxt@4.5.1(c66637b111bf65273ad762401e06ff63))(optionator@0.9.4)(rolldown@1.2.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.2)(rollup@4.62.4))(terser@5.49.0)(tsx@4.21.0)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)))(vue-tsc@3.3.9(typescript@6.0.3))(vue@3.5.40(typescript@6.0.3))(yaml@2.9.0)': + '@nuxt/vite-builder@4.5.1(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7))(@types/node@26.1.2)(esbuild@0.28.1)(eslint@10.8.0(jiti@2.7.0))(magic-string@1.1.0)(magicast@0.5.4)(nuxt@4.5.1(fc316510406ff4e4d8564a57715a560d))(optionator@0.9.4)(rolldown@1.2.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.2)(rollup@4.62.4))(terser@5.49.0)(tsx@4.21.0)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)))(vue-tsc@3.3.9(typescript@6.0.3))(vue@3.5.40(typescript@6.0.3))(yaml@2.9.0)': dependencies: '@nuxt/kit': 4.5.1(magic-string@1.1.0)(magicast@0.5.4)(oxc-parser@0.135.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0))) '@vitejs/plugin-vue': 6.0.8(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) @@ -15475,7 +15441,7 @@ snapshots: knitwork: 1.3.0 mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 4.5.1(c66637b111bf65273ad762401e06ff63) + nuxt: 4.5.1(fc316510406ff4e4d8564a57715a560d) nypm: 0.6.9 pathe: 2.0.3 pkg-types: 2.3.1 @@ -18005,21 +17971,13 @@ snapshots: dependencies: execa: 5.1.1 - '@vercel/connect@0.6.1(@ai-sdk/mcp@1.0.58(zod@4.4.3))(ai@7.0.70(zod@4.4.3))(eve@0.40.0(@opentelemetry/api@1.9.0)(@vercel/queue@0.3.1)(ai@7.0.70(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)))': - dependencies: - '@vercel/oidc': 3.8.2 - optionalDependencies: - '@ai-sdk/mcp': 1.0.58(zod@4.4.3) - ai: 7.0.70(zod@4.4.3) - eve: 0.40.0(@opentelemetry/api@1.9.0)(@vercel/queue@0.3.1)(ai@7.0.70(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)) - - '@vercel/connect@0.6.1(@ai-sdk/mcp@1.0.58(zod@4.4.3))(ai@7.0.70(zod@4.4.3))(eve@0.46.1(@opentelemetry/api@1.9.0)(@vercel/queue@0.3.1)(ai@7.0.70(zod@4.4.3))(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)))': + '@vercel/connect@0.6.1(@ai-sdk/mcp@1.0.58(zod@4.4.3))(ai@7.0.70(zod@4.4.3))(eve@0.46.1(@opentelemetry/api@1.9.0)(@vercel/queue@0.3.1)(ai@7.0.70(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)))': dependencies: '@vercel/oidc': 3.8.2 optionalDependencies: '@ai-sdk/mcp': 1.0.58(zod@4.4.3) ai: 7.0.70(zod@4.4.3) - eve: 0.46.1(@opentelemetry/api@1.9.0)(@vercel/queue@0.3.1)(ai@7.0.70(zod@4.4.3))(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)) + eve: 0.46.1(@opentelemetry/api@1.9.0)(@vercel/queue@0.3.1)(ai@7.0.70(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)) '@vercel/functions@3.5.0(@aws-sdk/credential-provider-web-identity@3.972.49)': dependencies: @@ -20353,25 +20311,6 @@ snapshots: devalue@5.9.0: {} - devframe@0.7.16(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3): - dependencies: - '@valibot/to-json-schema': 1.7.1(valibot@1.4.2(typescript@6.0.3)) - birpc: 4.0.0 - crossws: 0.4.10(srvx@0.11.22) - destr: 2.0.5 - h3: 2.0.1-rc.26(crossws@0.4.10(srvx@0.11.22)) - mrmime: 2.0.1 - nostics: 1.2.0 - pathe: 2.0.3 - ufo: 1.6.4 - valibot: 1.4.2(typescript@6.0.3) - optionalDependencies: - '@modelcontextprotocol/sdk': 1.29.0(zod@4.4.3) - cac: 7.0.0 - transitivePeerDependencies: - - srvx - - typescript - devframe@0.7.16(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(cac@7.0.0)(srvx@0.12.5)(typescript@6.0.3): dependencies: '@valibot/to-json-schema': 1.7.1(valibot@1.4.2(typescript@6.0.3)) @@ -21110,53 +21049,6 @@ snapshots: etag@1.8.1: {} - eve@0.40.0(@opentelemetry/api@1.9.0)(@vercel/queue@0.3.1)(ai@7.0.70(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)): - dependencies: - ai: 7.0.70(zod@4.4.3) - nitro: 3.0.260610-beta(@vercel/queue@0.3.1)(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)) - undici: 8.9.0 - optionalDependencies: - '@opentelemetry/api': 1.9.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' - - '@netlify/runtime' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - '@vercel/queue' - - aws4fetch - - better-sqlite3 - - chokidar - - dotenv - - drizzle-orm - - giget - - idb-keyval - - ioredis - - jiti - - lru-cache - - miniflare - - mongodb - - mysql2 - - rollup - - sqlite3 - - uploadthing - - vite - - wrangler - - xml2js - - zephyr-agent - eve@0.46.1(@libsql/client@0.17.4)(@opentelemetry/api@1.9.0)(@vercel/blob@2.6.1)(@vercel/functions@3.7.7(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.1))(@vercel/queue@0.3.1)(ai@6.0.242(zod@4.4.3))(better-sqlite3@12.11.1)(chokidar@5.0.0)(dotenv@17.4.2)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260702.1)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.0)(better-sqlite3@12.11.1)(pg@8.22.0))(giget@3.3.1)(ioredis@5.11.1)(jiti@2.7.0)(lru-cache@11.5.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)): dependencies: ai: 6.0.242(zod@4.4.3) @@ -21205,7 +21097,7 @@ snapshots: - zephyr-agent optional: true - eve@0.46.1(@opentelemetry/api@1.9.0)(@vercel/queue@0.3.1)(ai@7.0.70(zod@4.4.3))(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)): + eve@0.46.1(@opentelemetry/api@1.9.0)(@vercel/queue@0.3.1)(ai@7.0.70(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)): dependencies: ai: 7.0.70(zod@4.4.3) nitro: 3.0.260610-beta(@vercel/queue@0.3.1)(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)) @@ -21799,13 +21691,6 @@ snapshots: optionalDependencies: crossws: 0.4.9(srvx@0.11.21) - h3@2.0.1-rc.26(crossws@0.4.10(srvx@0.11.22)): - dependencies: - rou3: 0.9.1 - srvx: 0.12.5 - optionalDependencies: - crossws: 0.4.10(srvx@0.11.22) - h3@2.0.1-rc.26(crossws@0.4.10(srvx@0.12.5)): dependencies: rou3: 0.9.1 @@ -23512,118 +23397,6 @@ snapshots: - webpack optional: true - nitropack@2.13.4(@libsql/client@0.17.4)(@vercel/blob@2.6.1)(@vercel/functions@3.7.7(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.1))(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260702.1)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.0)(better-sqlite3@12.11.1)(pg@8.22.0))(rolldown@1.2.2)(srvx@0.11.22)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)): - dependencies: - '@cloudflare/kv-asset-handler': 0.4.2 - '@rollup/plugin-alias': 6.0.0(rollup@4.62.4) - '@rollup/plugin-commonjs': 29.0.3(rollup@4.62.4) - '@rollup/plugin-inject': 5.0.5(rollup@4.62.4) - '@rollup/plugin-json': 6.1.0(rollup@4.62.4) - '@rollup/plugin-node-resolve': 16.0.3(rollup@4.62.4) - '@rollup/plugin-replace': 6.0.3(rollup@4.62.4) - '@rollup/plugin-terser': 1.0.0(rollup@4.62.4) - '@vercel/nft': 1.10.2(rollup@4.62.4) - archiver: 7.0.1 - c12: 3.3.4(magicast@0.5.4) - chokidar: 5.0.0 - citty: 0.2.2 - compatx: 0.2.0 - confbox: 0.2.4 - consola: 3.4.2 - cookie-es: 2.0.1 - croner: 10.0.1 - crossws: 0.3.5 - db0: 0.3.4(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260702.1)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.0)(better-sqlite3@12.11.1)(pg@8.22.0)) - defu: 6.1.7 - destr: 2.0.5 - dot-prop: 10.2.0 - esbuild: 0.28.1 - escape-string-regexp: 5.0.0 - etag: 1.8.1 - exsolve: 1.1.1 - globby: 16.2.2 - gzip-size: 7.0.0 - h3: 1.15.11 - hookable: 5.5.3 - httpxy: 0.5.5 - ioredis: 5.11.1 - jiti: 2.7.0 - klona: 2.0.6 - knitwork: 1.3.0 - listhen: 1.10.1(srvx@0.11.22) - magic-string: 0.30.21 - magicast: 0.5.4 - mime: 4.1.0 - mlly: 1.8.2 - node-fetch-native: 1.6.7 - node-mock-http: 1.0.5 - ofetch: 1.5.1 - ohash: 2.0.11 - pathe: 2.0.3 - perfect-debounce: 2.1.0 - pkg-types: 2.3.1 - pretty-bytes: 7.1.1 - radix3: 1.1.2 - rollup: 4.62.4 - rollup-plugin-visualizer: 7.0.1(rolldown@1.2.2)(rollup@4.62.4) - scule: 1.3.0 - semver: 7.8.5 - serve-placeholder: 2.0.2 - serve-static: 2.2.1 - source-map: 0.7.6 - std-env: 4.2.0 - ufo: 1.6.4 - ultrahtml: 1.7.0 - uncrypto: 0.1.3 - unctx: 2.5.0 - unenv: 2.0.0-rc.24 - unimport: 6.4.0(esbuild@0.28.1)(oxc-parser@0.135.0)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)) - unplugin-utils: 0.3.2 - unstorage: 1.17.5(@vercel/blob@2.6.1)(@vercel/functions@3.7.7(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.1))(db0@0.3.4(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260702.1)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.0)(better-sqlite3@12.11.1)(pg@8.22.0)))(ioredis@5.11.1) - untyped: 2.0.0 - unwasm: 0.5.3 - youch: 4.1.1 - youch-core: 0.3.3 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@electric-sql/pglite' - - '@farmfe/core' - - '@libsql/client' - - '@netlify/blobs' - - '@parcel/watcher' - - '@planetscale/database' - - '@rspack/core' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bare-abort-controller - - bare-buffer - - better-sqlite3 - - bun-types-no-globals - - drizzle-orm - - encoding - - idb-keyval - - mysql2 - - oxc-parser - - react-native-b4a - - rolldown - - sqlite3 - - srvx - - supports-color - - unloader - - uploadthing - - vite - - webpack - node-abi@3.94.0: dependencies: semver: 7.8.5 @@ -24031,16 +23804,16 @@ snapshots: - xml2js - yaml - nuxt@4.5.1(c66637b111bf65273ad762401e06ff63): + nuxt@4.5.1(fc316510406ff4e4d8564a57715a560d): dependencies: '@dxup/nuxt': 0.5.6(esbuild@0.28.1)(magicast@0.5.4)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)) '@nuxt/cli': 3.37.0(@nuxt/schema@4.5.1)(cac@7.0.0)(magicast@0.5.4) '@nuxt/devtools': 3.4.1(@vercel/blob@2.6.1)(@vercel/functions@3.7.7(@aws-sdk/credential-provider-web-identity@3.972.49)(ws@8.21.1))(db0@0.3.4(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260702.1)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.0)(better-sqlite3@12.11.1)(pg@8.22.0)))(ioredis@5.11.1)(magic-string@1.1.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)))(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) '@nuxt/kit': 4.5.1(magic-string@1.1.0)(magicast@0.5.4)(oxc-parser@0.135.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0))) - '@nuxt/nitro-server': 4.5.1(12248e57a0c392743e84adc0c89ebc1a) + '@nuxt/nitro-server': 4.5.1(db2a06f413a03d6dafbdac5962bf5ccb) '@nuxt/schema': 4.5.1 '@nuxt/telemetry': 2.8.0(@nuxt/kit@4.5.1(magic-string@1.1.0)(magicast@0.5.4)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)))) - '@nuxt/vite-builder': 4.5.1(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7))(@types/node@26.1.2)(esbuild@0.28.1)(eslint@10.8.0(jiti@2.7.0))(magic-string@1.1.0)(magicast@0.5.4)(nuxt@4.5.1(c66637b111bf65273ad762401e06ff63))(optionator@0.9.4)(rolldown@1.2.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.2)(rollup@4.62.4))(terser@5.49.0)(tsx@4.21.0)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)))(vue-tsc@3.3.9(typescript@6.0.3))(vue@3.5.40(typescript@6.0.3))(yaml@2.9.0) + '@nuxt/vite-builder': 4.5.1(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7))(@types/node@26.1.2)(esbuild@0.28.1)(eslint@10.8.0(jiti@2.7.0))(magic-string@1.1.0)(magicast@0.5.4)(nuxt@4.5.1(fc316510406ff4e4d8564a57715a560d))(optionator@0.9.4)(rolldown@1.2.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.2)(rollup@4.62.4))(terser@5.49.0)(tsx@4.21.0)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0)))(vue-tsc@3.3.9(typescript@6.0.3))(vue@3.5.40(typescript@6.0.3))(yaml@2.9.0) '@unhead/vue': 3.3.0(@oxc-project/types@0.142.0)(esbuild@0.28.1)(lightningcss@1.33.0)(oxc-parser@0.135.0)(rolldown@1.2.2)(rollup@4.62.4)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) '@vue/shared': 3.5.40 chokidar: 5.0.0