diff --git a/.changeset/soft-cost-errors.md b/.changeset/soft-cost-errors.md new file mode 100644 index 000000000..b31ff4f15 --- /dev/null +++ b/.changeset/soft-cost-errors.md @@ -0,0 +1,12 @@ +--- +"@voltagent/core": patch +--- + +fix: preserve usage and provider cost metadata on structured output failures + +When `generateText` receives a successful model response but structured output is not produced, +VoltAgent now keeps the resolved usage, finish reason, and provider metadata on the resulting +error path. + +This preserves provider-reported cost data for observability spans and makes the same metadata +available to error hooks through `VoltAgentError.metadata`. diff --git a/packages/core/src/agent/agent-observability.spec.ts b/packages/core/src/agent/agent-observability.spec.ts index 0b7cb9c26..44ddb8582 100644 --- a/packages/core/src/agent/agent-observability.spec.ts +++ b/packages/core/src/agent/agent-observability.spec.ts @@ -1,8 +1,10 @@ +import * as ai from "ai"; import { MockLanguageModelV3, mockId, simulateReadableStream } from "ai/test"; import { beforeEach, describe, expect, it, vi } from "vitest"; import { z } from "zod"; import { NodeVoltAgentObservability, WebSocketEventEmitter } from "../observability"; import { SpanKind, SpanStatusCode } from "../observability/types"; +import { Tool } from "../tool"; import { Agent } from "./agent"; import { createOutputGuardrail } from "./guardrail"; @@ -265,6 +267,80 @@ describe("Agent with Observability", () => { unsubscribe(); }); + it("should preserve provider cost when structured output generation fails after a successful model call", async () => { + const events: any[] = []; + const unsubscribe = WebSocketEventEmitter.getInstance().onWebSocketEvent((event) => { + events.push(event); + }); + + const tool = new Tool({ + name: "echo_tool", + description: "Echo tool", + parameters: z.object({ value: z.string() }), + }); + mockModel.doGenerate = async () => ({ + finishReason: makeFinishReason("tool-calls"), + usage: makeProviderUsage(10, 20), + content: [], + toolCalls: [ + { + toolCallId: mockId(), + toolName: "echo_tool", + args: { value: "hello" }, + }, + ], + warnings: [], + logprobs: undefined, + providerMetadata: makeOpenRouterProviderMetadata(), + }); + + const agent = new Agent({ + name: "cost-agent-structured-output-error", + purpose: "Testing provider cost observability on structured output failures", + instructions: "You are a cost test agent", + model: mockModel as any, + observability, + maxRetries: 0, + tools: [tool], + }); + + await expect( + agent.generateText("Track cost", { + output: ai.Output.object({ + schema: z.object({ + message: z.string(), + }), + }), + }), + ).rejects.toThrow("Structured output was requested but no final output was generated"); + + const endSpans = events + .filter((event) => event.type === "span:end") + .map((event) => event.span); + + const llmSpan = endSpans.find( + (span) => + span.attributes["span.type"] === "llm" && + span.attributes["llm.operation"] === "generateText", + ); + expect(llmSpan).toBeDefined(); + expect(llmSpan.status.code).toBe(SpanStatusCode.ERROR); + expect(llmSpan.attributes["usage.cost"]).toBe(0.0012); + + const rootSpan = endSpans.find( + (span) => + span.name === "cost-agent-structured-output-error" && + span.attributes["entity.type"] === "agent" && + span.attributes["span.type"] !== "llm", + ); + expect(rootSpan).toBeDefined(); + expect(rootSpan.status.code).toBe(SpanStatusCode.ERROR); + expect(rootSpan.attributes["usage.cost"]).toBe(0.0012); + expect(rootSpan.attributes["usage.is_byok"]).toBe(true); + + unsubscribe(); + }); + it("should handle errors and set error status", async () => { const events: any[] = []; const unsubscribe = WebSocketEventEmitter.getInstance().onWebSocketEvent((event) => { diff --git a/packages/core/src/agent/agent.spec.ts b/packages/core/src/agent/agent.spec.ts index 7a29ee7d8..54df23d7a 100644 --- a/packages/core/src/agent/agent.spec.ts +++ b/packages/core/src/agent/agent.spec.ts @@ -801,6 +801,8 @@ Use pandas and summarize findings.`.split("\n"), }); it("should throw a descriptive error when structured output is missing", async () => { + const onEnd = vi.fn(); + const onError = vi.fn(); const tool = new Tool({ name: "echo_tool", description: "Echo tool", @@ -814,6 +816,7 @@ Use pandas and summarize findings.`.split("\n"), model: mockModel as any, tools: [tool], maxRetries: 0, + hooks: { onEnd, onError }, }); const toolCall = { @@ -852,6 +855,14 @@ Use pandas and summarize findings.`.split("\n"), timestamp: new Date(), messages: [], }, + providerMetadata: { + openrouter: { + usage: { + cost: 0.0012, + isByok: true, + }, + }, + }, steps: [ { text: "Tool call completed.", @@ -906,6 +917,33 @@ Use pandas and summarize findings.`.split("\n"), stage: "response_parsing", code: "STRUCTURED_OUTPUT_NOT_GENERATED", }); + expect(onEnd).toHaveBeenCalledWith( + expect.objectContaining({ + error: expect.objectContaining({ + code: "STRUCTURED_OUTPUT_NOT_GENERATED", + stage: "response_parsing", + metadata: expect.objectContaining({ + finishReason: "tool-calls", + usage: expect.objectContaining({ + inputTokens: 12, + outputTokens: 6, + totalTokens: 18, + }), + providerMetadata: expect.objectContaining({ + openrouter: expect.any(Object), + }), + }), + }), + }), + ); + expect(onError).toHaveBeenCalledWith( + expect.objectContaining({ + error: expect.objectContaining({ + code: "STRUCTURED_OUTPUT_NOT_GENERATED", + stage: "response_parsing", + }), + }), + ); }); }); diff --git a/packages/core/src/agent/agent.ts b/packages/core/src/agent/agent.ts index 60b3bda3f..39cbdee22 100644 --- a/packages/core/src/agent/agent.ts +++ b/packages/core/src/agent/agent.ts @@ -336,6 +336,40 @@ const extractOpenRouterUsageCost = (providerMetadata: unknown): OpenRouterUsageC return Object.values(result).some((value) => value !== undefined) ? result : undefined; }; +type GenerationErrorDetails = { + usage?: LanguageModelUsage; + providerMetadata?: unknown; + finishReason?: string; +}; + +const toLanguageModelUsage = (value: unknown): LanguageModelUsage | undefined => + isPlainObject(value) ? (value as LanguageModelUsage) : undefined; + +const extractGenerationErrorDetails = (error: unknown): GenerationErrorDetails => { + const metadata = isRecord(error) && isPlainObject(error.metadata) ? error.metadata : undefined; + const originalError = isRecord(error) ? error.originalError : undefined; + + const usage = firstDefined( + isRecord(error) ? toLanguageModelUsage(error.usage) : undefined, + metadata ? toLanguageModelUsage(metadata.usage) : undefined, + isRecord(originalError) ? toLanguageModelUsage(originalError.usage) : undefined, + ); + + const providerMetadata = firstDefined( + metadata?.providerMetadata, + isRecord(error) ? error.providerMetadata : undefined, + isRecord(originalError) ? originalError.providerMetadata : undefined, + ); + + const finishReason = firstNonBlank( + isRecord(error) ? error.finishReason : undefined, + metadata?.finishReason, + isRecord(originalError) ? originalError.finishReason : undefined, + ); + + return { usage, providerMetadata, finishReason }; +}; + const isAssistantContentPart = (value: unknown): boolean => { if (!isRecord(value)) { return false; @@ -1268,7 +1302,7 @@ export class Agent { }), ); - this.ensureStructuredOutputGenerated({ + await this.ensureStructuredOutputGenerated({ result: response, output, tools, @@ -1286,7 +1320,13 @@ export class Agent { return response; } catch (error) { - finalizeLLMSpan(SpanStatusCode.ERROR, { message: (error as Error).message }); + const errorDetails = extractGenerationErrorDetails(error); + finalizeLLMSpan(SpanStatusCode.ERROR, { + message: (error as Error).message, + usage: errorDetails.usage, + finishReason: errorDetails.finishReason, + providerMetadata: errorDetails.providerMetadata, + }); throw error; } }, @@ -3541,7 +3581,7 @@ export class Agent { }; } - private ensureStructuredOutputGenerated< + private async ensureStructuredOutputGenerated< TOOLS extends ToolSet, OUTPUT extends OutputSpec, >(params: { @@ -3549,7 +3589,7 @@ export class Agent { output: OUTPUT | undefined; tools: Record; maxSteps: number; - }): void { + }): Promise { const { result, output, tools, maxSteps } = params; if (!output) { return; @@ -3571,6 +3611,13 @@ export class Agent { const stepCount = result.steps?.length ?? 0; const finishReason = result.finishReason ?? "unknown"; const reachedMaxSteps = stepCount >= maxSteps; + const providerMetadata = (result as { providerMetadata?: unknown }).providerMetadata; + const providerUsage = result.usage ? await Promise.resolve(result.usage) : undefined; + const usageForFinish = resolveFinishUsage({ + providerMetadata, + usage: providerUsage, + totalUsage: (result as { totalUsage?: LanguageModelUsage }).totalUsage, + }); const guidance = configuredToolCount > 0 || toolCalls.length > 0 @@ -3593,6 +3640,11 @@ export class Agent { maxSteps, configuredToolCount, toolCallCount: toolCalls.length, + usage: usageForFinish ? JSON.parse(safeStringify(usageForFinish)) : undefined, + providerMetadata: + providerMetadata !== undefined + ? JSON.parse(safeStringify(providerMetadata)) + : undefined, }, }, ); @@ -7412,7 +7464,19 @@ export class Agent { throw oc.cancellationError; } - const voltagentError = createVoltAgentError(error); + const voltagentError = isVoltAgentError(error) ? error : createVoltAgentError(error); + const errorDetails = extractGenerationErrorDetails(voltagentError); + + if (errorDetails.usage || errorDetails.providerMetadata !== undefined) { + this.recordRootSpanUsageAndProviderCost( + oc.traceContext, + errorDetails.usage, + errorDetails.providerMetadata, + ); + } + if (errorDetails.finishReason) { + oc.traceContext.setFinishReason(errorDetails.finishReason); + } oc.traceContext.end("error", error); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fcc9ea153..88a1f4fba 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -103,7 +103,7 @@ importers: version: 5.9.2 vite: specifier: ^7.2.7 - version: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + version: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) vitest: specifier: ^3.2.4 version: 3.2.4(@types/node@24.2.1)(@vitest/ui@1.6.1)(jsdom@22.1.0)(msw@2.11.6) @@ -139,8 +139,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -179,8 +179,8 @@ importers: specifier: ^0.1.21 version: link:../../packages/cli tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -216,8 +216,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -373,8 +373,8 @@ importers: specifier: ^4.1.4 version: 4.1.14 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 tw-animate-css: specifier: ^1.4.0 version: 1.4.0 @@ -410,8 +410,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -468,8 +468,8 @@ importers: specifier: ^0.15.2 version: 0.15.6(publint@0.3.12)(typescript@5.9.2) tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -490,8 +490,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -527,8 +527,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -561,8 +561,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -595,8 +595,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -701,8 +701,8 @@ importers: specifier: ^4.1.4 version: 4.1.14 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -738,8 +738,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -775,8 +775,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -867,8 +867,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -919,8 +919,8 @@ importers: specifier: ^19 version: 19.1.7(@types/react@19.1.10) tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -984,8 +984,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -1019,7 +1019,7 @@ importers: version: 5.9.2 vite: specifier: ^7.2.7 - version: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + version: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) examples/with-copilotkit/server: dependencies: @@ -1046,8 +1046,8 @@ importers: version: 3.25.76 devDependencies: tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -1080,8 +1080,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -1114,8 +1114,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -1148,8 +1148,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -1176,8 +1176,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.3 @@ -1210,8 +1210,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -1257,7 +1257,7 @@ importers: version: 5.9.2 vite: specifier: ^7.2.7 - version: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + version: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) examples/with-google-drive-mcp/server: dependencies: @@ -1299,8 +1299,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -1333,8 +1333,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -1367,8 +1367,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -1395,8 +1395,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -1429,8 +1429,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -1463,8 +1463,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -1500,8 +1500,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -1537,8 +1537,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.3 @@ -1574,8 +1574,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -1599,8 +1599,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -1633,8 +1633,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -1667,8 +1667,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -1698,8 +1698,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -1726,8 +1726,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -1763,8 +1763,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.3 @@ -1919,8 +1919,8 @@ importers: specifier: ^19 version: 19.1.7(@types/react@19.1.10) tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -2073,8 +2073,8 @@ importers: specifier: ^4.1.4 version: 4.1.14 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 tw-animate-css: specifier: ^1.4.0 version: 1.4.0 @@ -2147,8 +2147,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -2181,8 +2181,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -2215,8 +2215,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.3 @@ -2249,8 +2249,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -2289,8 +2289,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -2326,8 +2326,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -2384,8 +2384,8 @@ importers: specifier: ^10.0.0 version: 10.0.0 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -2418,8 +2418,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -2458,8 +2458,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -2492,8 +2492,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -2523,8 +2523,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -2554,8 +2554,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -2582,8 +2582,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -2619,8 +2619,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.3 @@ -2653,8 +2653,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -2690,8 +2690,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -2727,8 +2727,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -2764,8 +2764,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.3 @@ -2801,8 +2801,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -2835,8 +2835,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -2869,8 +2869,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -2903,8 +2903,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.3 @@ -2940,8 +2940,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -2974,8 +2974,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -3011,8 +3011,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -3045,8 +3045,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -3094,14 +3094,14 @@ importers: specifier: ^16.4.5 version: 16.6.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 viteval: specifier: ^0.5.3 - version: 0.5.3(@tanstack/query-core@5.89.0)(@tanstack/react-query@5.89.0)(@tanstack/router-core@1.131.44)(@types/node@24.2.1)(@types/react@19.2.7)(@vitejs/plugin-react@5.1.2)(tsx@4.20.4)(vite@7.2.7) + version: 0.5.3(@tanstack/query-core@5.89.0)(@tanstack/react-query@5.89.0)(@tanstack/router-core@1.131.44)(@types/node@24.2.1)(@types/react@19.2.7)(@vitejs/plugin-react@5.1.2)(tsx@4.21.0)(vite@7.2.7) examples/with-voice-elevenlabs: dependencies: @@ -3134,8 +3134,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -3177,8 +3177,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -3220,8 +3220,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -3251,8 +3251,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -3285,8 +3285,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -3347,8 +3347,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -3381,8 +3381,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -3421,8 +3421,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -3455,8 +3455,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -3489,8 +3489,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.3 @@ -3523,8 +3523,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -3560,8 +3560,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.3 @@ -3594,8 +3594,8 @@ importers: specifier: ^24.2.1 version: 24.6.2 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -3625,8 +3625,8 @@ importers: specifier: ^24.2.1 version: 24.2.1 tsx: - specifier: ^4.19.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: specifier: ^5.8.2 version: 5.9.2 @@ -9301,7 +9301,6 @@ packages: cpu: [ppc64] os: [aix] requiresBuild: true - dev: true optional: true /@esbuild/android-arm64@0.17.19: @@ -9326,7 +9325,6 @@ packages: cpu: [arm64] os: [android] requiresBuild: true - dev: true optional: true /@esbuild/android-arm@0.17.19: @@ -9351,7 +9349,6 @@ packages: cpu: [arm] os: [android] requiresBuild: true - dev: true optional: true /@esbuild/android-x64@0.17.19: @@ -9376,7 +9373,6 @@ packages: cpu: [x64] os: [android] requiresBuild: true - dev: true optional: true /@esbuild/darwin-arm64@0.17.19: @@ -9401,7 +9397,6 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true - dev: true optional: true /@esbuild/darwin-x64@0.17.19: @@ -9426,7 +9421,6 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: true optional: true /@esbuild/freebsd-arm64@0.17.19: @@ -9451,7 +9445,6 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true - dev: true optional: true /@esbuild/freebsd-x64@0.17.19: @@ -9476,7 +9469,6 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true - dev: true optional: true /@esbuild/linux-arm64@0.17.19: @@ -9501,7 +9493,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-arm@0.17.19: @@ -9526,7 +9517,6 @@ packages: cpu: [arm] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-ia32@0.17.19: @@ -9551,7 +9541,6 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-loong64@0.17.19: @@ -9576,7 +9565,6 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-mips64el@0.17.19: @@ -9601,7 +9589,6 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-ppc64@0.17.19: @@ -9626,7 +9613,6 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-riscv64@0.17.19: @@ -9651,7 +9637,6 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-s390x@0.17.19: @@ -9676,7 +9661,6 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-x64@0.17.19: @@ -9701,7 +9685,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/netbsd-arm64@0.25.10: @@ -9718,7 +9701,6 @@ packages: cpu: [arm64] os: [netbsd] requiresBuild: true - dev: true optional: true /@esbuild/netbsd-x64@0.17.19: @@ -9743,7 +9725,6 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true - dev: true optional: true /@esbuild/openbsd-arm64@0.25.10: @@ -9760,7 +9741,6 @@ packages: cpu: [arm64] os: [openbsd] requiresBuild: true - dev: true optional: true /@esbuild/openbsd-x64@0.17.19: @@ -9785,7 +9765,6 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true - dev: true optional: true /@esbuild/openharmony-arm64@0.25.10: @@ -9802,7 +9781,6 @@ packages: cpu: [arm64] os: [openharmony] requiresBuild: true - dev: true optional: true /@esbuild/sunos-x64@0.17.19: @@ -9827,7 +9805,6 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true - dev: true optional: true /@esbuild/win32-arm64@0.17.19: @@ -9852,7 +9829,6 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: true optional: true /@esbuild/win32-ia32@0.17.19: @@ -9877,7 +9853,6 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true - dev: true optional: true /@esbuild/win32-x64@0.17.19: @@ -9902,7 +9877,6 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: true optional: true /@eslint-community/eslint-utils@4.9.0(eslint@9.33.0): @@ -13270,7 +13244,7 @@ packages: dependencies: '@nuxt/kit': 3.19.3(magicast@0.3.5) execa: 8.0.1 - vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) transitivePeerDependencies: - magicast dev: false @@ -13323,7 +13297,7 @@ packages: sirv: 3.0.2 structured-clone-es: 1.0.0 tinyglobby: 0.2.15 - vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) vite-plugin-inspect: 11.3.3(@nuxt/kit@3.19.3)(vite@7.2.7) vite-plugin-vue-tracer: 1.0.1(vite@7.2.7)(vue@3.5.22) which: 5.0.0 @@ -14330,7 +14304,7 @@ packages: enquirer: 2.3.6 minimatch: 9.0.3 tsconfig-paths: 4.2.0 - vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) vitest: 3.2.4(@types/node@24.2.1)(@vitest/ui@1.6.1)(jsdom@22.1.0)(msw@2.11.6) transitivePeerDependencies: - '@babel/traverse' @@ -19470,7 +19444,7 @@ packages: '@tailwindcss/node': 4.1.11 '@tailwindcss/oxide': 4.1.11 tailwindcss: 4.1.11 - vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) dev: false /@tailwindcss/vite@4.1.14(vite@7.2.7): @@ -19481,7 +19455,7 @@ packages: '@tailwindcss/node': 4.1.14 '@tailwindcss/oxide': 4.1.14 tailwindcss: 4.1.14 - vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) dev: false /@tanstack/directive-functions-plugin@1.131.2(vite@7.2.7): @@ -19497,7 +19471,7 @@ packages: '@tanstack/router-utils': 1.131.2 babel-dead-code-elimination: 1.0.10 tiny-invariant: 1.3.3 - vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) transitivePeerDependencies: - supports-color dev: true @@ -19584,7 +19558,7 @@ packages: '@tanstack/start-plugin-core': 1.131.44(@tanstack/react-router@1.131.44)(vite@7.2.7) '@vitejs/plugin-react': 5.1.2(vite@7.2.7) pathe: 2.0.3 - vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) zod: 3.25.76 transitivePeerDependencies: - '@azure/app-configuration' @@ -19655,7 +19629,7 @@ packages: '@vitejs/plugin-react': 5.1.2(vite@7.2.7) react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -19736,7 +19710,7 @@ packages: prettier: 3.7.4 recast: 0.23.11 source-map: 0.7.6 - tsx: 4.20.4 + tsx: 4.21.0 zod: 3.25.76 transitivePeerDependencies: - supports-color @@ -19777,7 +19751,7 @@ packages: babel-dead-code-elimination: 1.0.10 chokidar: 3.6.0 unplugin: 2.3.10 - vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) zod: 3.25.76 transitivePeerDependencies: - supports-color @@ -19861,7 +19835,7 @@ packages: nitropack: 2.12.6 pathe: 2.0.3 ufo: 1.6.1 - vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) vitefu: 1.1.1(vite@7.2.7) xmlbuilder2: 3.1.1 zod: 3.25.76 @@ -21292,7 +21266,7 @@ packages: '@rolldown/pluginutils': 1.0.0-beta.53 '@types/babel__core': 7.20.5 react-refresh: 0.18.0 - vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) transitivePeerDependencies: - supports-color dev: true @@ -21379,7 +21353,7 @@ packages: estree-walker: 3.0.3 magic-string: 0.30.19 msw: 2.11.6(@types/node@24.2.1)(typescript@5.9.2) - vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) dev: true /@vitest/pretty-format@3.2.4: @@ -21442,12 +21416,12 @@ packages: tinyrainbow: 2.0.0 dev: true - /@viteval/cli@0.5.3(@tanstack/query-core@5.89.0)(@tanstack/react-query@5.89.0)(@tanstack/router-core@1.131.44)(@types/node@24.2.1)(@types/react@19.2.7)(@vitejs/plugin-react@5.1.2)(tsx@4.20.4)(vite@7.2.7): + /@viteval/cli@0.5.3(@tanstack/query-core@5.89.0)(@tanstack/react-query@5.89.0)(@tanstack/router-core@1.131.44)(@types/node@24.2.1)(@types/react@19.2.7)(@vitejs/plugin-react@5.1.2)(tsx@4.21.0)(vite@7.2.7): resolution: {integrity: sha512-S6PUAaUNAHJ4xEb7Pkev1wAyi0dG8OaT/EHmN24gQOJmxvbW5JSXEYbcpCqDxB0LkuRfiKhxcOM+6m/7NWePCw==} hasBin: true dependencies: '@opentf/cli-pbar': 0.7.2 - '@viteval/core': 0.5.3(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + '@viteval/core': 0.5.3(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) '@viteval/internal': 0.5.3 '@viteval/ui': 0.5.3(@tanstack/query-core@5.89.0)(@tanstack/react-query@5.89.0)(@tanstack/router-core@1.131.44)(@types/react@19.2.7)(@vitejs/plugin-react@5.1.2)(vite@7.2.7) c12: 3.3.0(magicast@0.3.5) @@ -21513,7 +21487,7 @@ packages: - yaml dev: true - /@viteval/core@0.5.3(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4): + /@viteval/core@0.5.3(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0): resolution: {integrity: sha512-v3+Z2Icx0QeTqbIPBlc7JcSjIzAwg1BMGPVhS3n9dC0yAf0w1sBMnfSjwefXE2exbRXpAWzMzc44wXyg17Rabg==} dependencies: '@vitest/runner': 3.2.4 @@ -21529,7 +21503,7 @@ packages: mustache: 4.2.0 openai: 5.23.2(zod@4.3.5) ts-pattern: 5.8.0 - vite-node: 3.2.4(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + vite-node: 3.2.4(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) zod: 4.3.5 transitivePeerDependencies: - '@types/node' @@ -26567,7 +26541,6 @@ packages: '@esbuild/win32-arm64': 0.27.4 '@esbuild/win32-ia32': 0.27.4 '@esbuild/win32-x64': 0.27.4 - dev: true /escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} @@ -39633,16 +39606,6 @@ packages: - yaml dev: true - /tsx@4.20.4: - resolution: {integrity: sha512-yyxBKfORQ7LuRt/BQKBXrpcq59ZvSW0XxwfjAt3w2/8PmdxaFzijtMhTawprSHhpzeM5BgU2hXHG3lklIERZXg==} - engines: {node: '>=18.0.0'} - hasBin: true - dependencies: - esbuild: 0.25.10 - get-tsconfig: 4.10.1 - optionalDependencies: - fsevents: 2.3.3 - /tsx@4.21.0: resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} engines: {node: '>=18.0.0'} @@ -39652,7 +39615,6 @@ packages: get-tsconfig: 4.10.1 optionalDependencies: fsevents: 2.3.3 - dev: true /tuf-js@1.1.7: resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==} @@ -40911,7 +40873,7 @@ packages: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.1 || ^7.0.0-0 dependencies: birpc: 2.6.1 - vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) vite-hot-client: 2.1.0(vite@7.2.7) dev: false @@ -40920,10 +40882,10 @@ packages: peerDependencies: vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 dependencies: - vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) dev: false - /vite-node@3.2.4(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4): + /vite-node@3.2.4(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0): resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true @@ -40932,7 +40894,7 @@ packages: debug: 4.4.3(supports-color@10.2.2) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) transitivePeerDependencies: - '@types/node' - jiti @@ -41043,7 +41005,7 @@ packages: perfect-debounce: 2.0.0 sirv: 3.0.2 unplugin-utils: 0.3.0 - vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) vite-dev-rpc: 1.1.0(vite@7.2.7) transitivePeerDependencies: - supports-color @@ -41060,11 +41022,11 @@ packages: magic-string: 0.30.19 pathe: 2.0.3 source-map-js: 1.2.1 - vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) vue: 3.5.22(typescript@5.9.3) dev: false - /vite@7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4): + /vite@7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0): resolution: {integrity: sha512-ITcnkFeR3+fI8P1wMgItjGrR10170d8auB4EpMLPqmx6uxElH3a/hHGQabSHKdqd4FXWO1nFIp9rRn7JQ34ACQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -41112,7 +41074,7 @@ packages: postcss: 8.5.6 rollup: 4.50.2 tinyglobby: 0.2.15 - tsx: 4.20.4 + tsx: 4.21.0 optionalDependencies: fsevents: 2.3.3 @@ -41176,7 +41138,7 @@ packages: vite: optional: true dependencies: - vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) dev: true /vitest@3.2.4(@types/node@24.2.1)(@vitest/ui@1.6.1)(jsdom@22.1.0)(msw@2.11.6): @@ -41230,8 +41192,8 @@ packages: tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) - vite-node: 3.2.4(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + vite: 7.2.7(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) + vite-node: 3.2.4(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) why-is-node-running: 2.3.0 transitivePeerDependencies: - jiti @@ -41248,12 +41210,12 @@ packages: - yaml dev: true - /viteval@0.5.3(@tanstack/query-core@5.89.0)(@tanstack/react-query@5.89.0)(@tanstack/router-core@1.131.44)(@types/node@24.2.1)(@types/react@19.2.7)(@vitejs/plugin-react@5.1.2)(tsx@4.20.4)(vite@7.2.7): + /viteval@0.5.3(@tanstack/query-core@5.89.0)(@tanstack/react-query@5.89.0)(@tanstack/router-core@1.131.44)(@types/node@24.2.1)(@types/react@19.2.7)(@vitejs/plugin-react@5.1.2)(tsx@4.21.0)(vite@7.2.7): resolution: {integrity: sha512-phDrceVUtOje90Oy0v0jeSuAC1FxGrho34KGUntUs9ZG5nJe+CZt59YykasOPdLv0HA5oQgRAkOY2xUvwmaRag==} hasBin: true dependencies: - '@viteval/cli': 0.5.3(@tanstack/query-core@5.89.0)(@tanstack/react-query@5.89.0)(@tanstack/router-core@1.131.44)(@types/node@24.2.1)(@types/react@19.2.7)(@vitejs/plugin-react@5.1.2)(tsx@4.20.4)(vite@7.2.7) - '@viteval/core': 0.5.3(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.20.4) + '@viteval/cli': 0.5.3(@tanstack/query-core@5.89.0)(@tanstack/react-query@5.89.0)(@tanstack/router-core@1.131.44)(@types/node@24.2.1)(@types/react@19.2.7)(@vitejs/plugin-react@5.1.2)(tsx@4.21.0)(vite@7.2.7) + '@viteval/core': 0.5.3(@types/node@24.2.1)(jiti@2.5.1)(tsx@4.21.0) '@viteval/internal': 0.5.3 '@viteval/ui': 0.5.3(@tanstack/query-core@5.89.0)(@tanstack/react-query@5.89.0)(@tanstack/router-core@1.131.44)(@types/react@19.2.7)(@vitejs/plugin-react@5.1.2)(vite@7.2.7) transitivePeerDependencies: