diff --git a/docs/content/docs/openui-lang/examples/harnesses/vercel-eve.mdx b/docs/content/docs/openui-lang/examples/harnesses/vercel-eve.mdx new file mode 100644 index 000000000..1f7875e1d --- /dev/null +++ b/docs/content/docs/openui-lang/examples/harnesses/vercel-eve.mdx @@ -0,0 +1,133 @@ +--- +title: Vercel Eve +description: Connect a Vercel Eve agent to OpenUI and render streamed responses and tool calls as live generative UI. +--- + +OpenUI can render output from a [Vercel Eve](https://github.com/vercel/eve) agent without replacing Eve's session protocol. This example uses Eve's built-in HTTP channel for delivery and resumable streaming, translates its events to AG-UI, and passes that stream to OpenUI's `` chat. + +The agent receives the OpenUI component-library prompt when a session starts, so its responses use OpenUI Lang and render as cards, tables, charts, forms, and other interactive components. + +[View source on GitHub →](https://github.com/thesysdev/openui/tree/main/examples/harnesses/vercel-eve) + +## Architecture + +```text +browser ── Eve session HTTP ──▶ Eve agent ── model + tools + ▲ │ + └── AG-UI SSE ── event adapter ─┘ + rendered by +``` + +The integration has four main pieces: + +| Piece | File | Role | +| --- | --- | --- | +| OpenUI chat | `src/app/page.tsx` | Renders `` with `agUIAdapter()` and the built-in OpenUI component library. | +| Session bridge | `src/eve-chat.ts` | Delivers turns through Eve's HTTP API, follows its resumable event stream, and returns AG-UI SSE to OpenUI. | +| Event adapter | `src/eve-stream.ts` | Maps Eve text, tool-call, and failure events to AG-UI events. | +| Agent instructions | `agent/instructions/openui.ts` | Adds the generated OpenUI system prompt when each Eve session starts. | + +## Connecting OpenUI + +The page creates Eve-backed chat callbacks and passes them to ``. OpenUI's AG-UI adapter consumes the SSE response produced by `processMessage`: + +```tsx +import { agUIAdapter } from "@openuidev/react-headless"; +import { FullScreen } from "@openuidev/react-ui"; +import { openuiChatLibrary } from "@openuidev/react-ui/genui-lib"; +import { createEveChatProps } from "../eve-chat"; + +const chatProps = createEveChatProps(); + +; +``` + +`createEveChatProps()` also provides OpenUI's thread callbacks. The example stores thread metadata, transcripts, Eve session IDs, continuation tokens, and stream cursors in `localStorage`, so each OpenUI thread resumes the corresponding Eve conversation. + +## Teaching Eve OpenUI Lang + +Eve loads instructions from `agent/instructions`. A dynamic instruction adds the component library's generated prompt once when a session starts: + +```ts +import { openuiChatLibrary, openuiChatPromptOptions } from "@openuidev/react-ui/genui-lib"; +import { defineDynamic, defineInstructions } from "eve/instructions"; + +export default defineDynamic({ + events: { + "session.started": () => + defineInstructions({ + markdown: openuiChatLibrary.prompt(openuiChatPromptOptions), + }), + }, +}); +``` + +This keeps the model's instructions synchronized with the exact component library used by the renderer. + +## Translating Eve events + +Eve emits typed session events. The adapter in `src/eve-stream.ts` converts the events OpenUI needs: + +```text +actions.requested -> TOOL_CALL_START / TOOL_CALL_ARGS / TOOL_CALL_END +message.appended -> TEXT_MESSAGE_CONTENT +message.completed -> TEXT_MESSAGE_CONTENT (non-streaming fallback) +turn.failed -> RUN_ERROR +session.failed -> RUN_ERROR +``` + +Tool calls and text share one assistant message ID. OpenUI renders tool activity in its behind-the-scenes section and the final OpenUI Lang response in the conversation. + +## Eve session protocol + +The browser talks to the same-origin Eve endpoints installed by `withEve()`: + +```text +POST /eve/v1/session +POST /eve/v1/session/:id +GET /eve/v1/session/:id/stream?startIndex=N +``` + +For a follow-up turn, the bridge sends the saved continuation token and resumes from the saved stream index. A completed session clears the cursor; waiting and failed sessions remain resumable. + +The demo channel uses anonymous authentication for local development. Replace `none()` in `agent/channels/eve.ts` with an authenticated Eve channel before exposing the application. + +## Project layout + +```text +examples/harnesses/vercel-eve/ +|- agent/agent.ts # Eve model and build configuration +|- agent/channels/eve.ts # Eve HTTP session channel +|- agent/instructions/openui.ts # Generated OpenUI Lang instructions +|- agent/tools/get_current_time.ts # Example Eve tool +|- src/app/page.tsx # OpenUI FullScreen chat +|- src/eve-chat.ts # Session transport and persistence +|- src/eve-stream.ts # Eve-to-AG-UI event mapping +|- src/thread-store.ts # Browser thread and transcript storage +|- next.config.ts # Installs Eve with withEve() +``` + +## Run the example + +Eve 0.11 requires Node.js 24. From the repository root: + +```bash +pnpm install + +cd examples/harnesses/vercel-eve +LLM_API_KEY=your-api-key pnpm dev +``` + +By default the agent uses OpenAI. Configure `LLM_MODEL` and `LLM_BASE_URL` to use another OpenAI-compatible endpoint. Open [http://localhost:3000](http://localhost:3000) and start a conversation. + +The repository scripts also expose Eve directly when you need to build or run the agent separately: + +```bash +pnpm eve:build +pnpm eve:start +``` diff --git a/docs/content/docs/openui-lang/meta.json b/docs/content/docs/openui-lang/meta.json index 6369fffc1..89cd30c0f 100644 --- a/docs/content/docs/openui-lang/meta.json +++ b/docs/content/docs/openui-lang/meta.json @@ -33,6 +33,7 @@ "examples/langgraph-chat", "examples/react-email", "---Harnesses---", - "examples/harnesses/pi-agent-harness" + "examples/harnesses/pi-agent-harness", + "examples/harnesses/vercel-eve" ] } diff --git a/examples/harnesses/vercel-eve/.gitignore b/examples/harnesses/vercel-eve/.gitignore new file mode 100644 index 000000000..3af2cf2c9 --- /dev/null +++ b/examples/harnesses/vercel-eve/.gitignore @@ -0,0 +1,15 @@ +node_modules +.env* +.eve +.vercel +.workflow-data +.next +.output +.nitro +dist +.DS_Store +*.tsbuildinfo + +# Local-only live integration smoke test (needs a running agent + API key) +scripts/verify-thread-context.mjs + diff --git a/examples/harnesses/vercel-eve/.vercelignore b/examples/harnesses/vercel-eve/.vercelignore new file mode 100644 index 000000000..aba8ba946 --- /dev/null +++ b/examples/harnesses/vercel-eve/.vercelignore @@ -0,0 +1,8 @@ +node_modules +.env* +.eve +.workflow-data +.next +.output +.nitro +dist diff --git a/examples/harnesses/vercel-eve/AGENTS.md b/examples/harnesses/vercel-eve/AGENTS.md new file mode 100644 index 000000000..ef84069db --- /dev/null +++ b/examples/harnesses/vercel-eve/AGENTS.md @@ -0,0 +1,3 @@ +# eve Agent App + +This project uses the eve framework. Before writing code, always read the relevant guide in `node_modules/eve/docs/`. diff --git a/examples/harnesses/vercel-eve/agent/agent.ts b/examples/harnesses/vercel-eve/agent/agent.ts new file mode 100644 index 000000000..5e8c32161 --- /dev/null +++ b/examples/harnesses/vercel-eve/agent/agent.ts @@ -0,0 +1,20 @@ +import { createOpenAI } from "@ai-sdk/openai"; +import { defineAgent } from "eve"; + +const apiKey = process.env.LLM_API_KEY || process.env.OPENAI_API_KEY; +const baseURL = + process.env.LLM_BASE_URL || process.env.OPENAI_BASE_URL || "https://api.openai.com/v1"; +const modelName = process.env.LLM_MODEL || process.env.OPENAI_MODEL || "gpt-5.5"; +const openai = createOpenAI({ + apiKey, + baseURL, +}); + +const model = openai(modelName); + +export default defineAgent({ + model, + build: { + externalDependencies: ["@openuidev/react-lang", "@openuidev/react-ui", "react", "react-dom"], + }, +}); diff --git a/examples/harnesses/vercel-eve/agent/channels/eve.ts b/examples/harnesses/vercel-eve/agent/channels/eve.ts new file mode 100644 index 000000000..6813beeb3 --- /dev/null +++ b/examples/harnesses/vercel-eve/agent/channels/eve.ts @@ -0,0 +1,12 @@ +import { none } from "eve/channels/auth"; +import { eveChannel } from "eve/channels/eve"; + +/** + * Eve's built-in HTTP channel: serves the standard `/eve/v1/session*` routes + * (deliver + resumable NDJSON event stream). The OpenUI client talks to these + * directly via `eve/client`, so there is no custom transport to maintain. + * + * `none()` allows anonymous traffic for the local demo — swap in `bearer()` / + * `basic()` before exposing this publicly. + */ +export default eveChannel({ auth: none() }); diff --git a/examples/harnesses/vercel-eve/agent/instructions.md b/examples/harnesses/vercel-eve/agent/instructions.md new file mode 100644 index 000000000..bce87b044 --- /dev/null +++ b/examples/harnesses/vercel-eve/agent/instructions.md @@ -0,0 +1,3 @@ +# Identity + +You are a helpful assistant. diff --git a/examples/harnesses/vercel-eve/agent/instructions/openui.ts b/examples/harnesses/vercel-eve/agent/instructions/openui.ts new file mode 100644 index 000000000..ccba9b78d --- /dev/null +++ b/examples/harnesses/vercel-eve/agent/instructions/openui.ts @@ -0,0 +1,15 @@ +import { openuiChatLibrary, openuiChatPromptOptions } from "@openuidev/react-ui/genui-lib"; +import { defineDynamic, defineInstructions } from "eve/instructions"; + +/** + * Teach the agent to answer in OpenUI Lang. Resolved once per session so the + * (large) component-library prompt is only attached when a conversation starts. + */ +export default defineDynamic({ + events: { + "session.started": () => + defineInstructions({ + markdown: openuiChatLibrary.prompt(openuiChatPromptOptions), + }), + }, +}); diff --git a/examples/harnesses/vercel-eve/agent/tools/get_current_time.ts b/examples/harnesses/vercel-eve/agent/tools/get_current_time.ts new file mode 100644 index 000000000..6aebf9c89 --- /dev/null +++ b/examples/harnesses/vercel-eve/agent/tools/get_current_time.ts @@ -0,0 +1,47 @@ +import { defineTool } from "eve/tools"; +import { z } from "zod"; + +/** + * A tiny, dependency-free tool so the demo exercises the full tool-call path: + * the model emits a tool call, Eve runs `execute`, and OpenUI renders the call + * (name + arguments) in its "behind the scenes" panel. The runtime tool name is + * the filename slug, `get_current_time`. + */ +export default defineTool({ + description: + "Get the current date and time, optionally for a specific IANA timezone " + + "(e.g. 'America/New_York', 'Asia/Tokyo'). Use this whenever the user asks " + + "what the current time or date is.", + inputSchema: z.object({ + timezone: z + .string() + .optional() + .describe("IANA timezone name such as 'Asia/Kolkata'. Defaults to UTC."), + }), + outputSchema: z.object({ + iso: z.string(), + formatted: z.string(), + timezone: z.string(), + }), + execute({ timezone }) { + const now = new Date(); + let tz = timezone?.trim() || "UTC"; + let formatted: string; + try { + formatted = new Intl.DateTimeFormat("en-US", { + dateStyle: "full", + timeStyle: "long", + timeZone: tz, + }).format(now); + } catch { + // Unknown timezone: fall back to UTC rather than failing the turn. + tz = "UTC"; + formatted = new Intl.DateTimeFormat("en-US", { + dateStyle: "full", + timeStyle: "long", + timeZone: tz, + }).format(now); + } + return { iso: now.toISOString(), formatted, timezone: tz }; + }, +}); diff --git a/examples/harnesses/vercel-eve/eslint.config.mjs b/examples/harnesses/vercel-eve/eslint.config.mjs new file mode 100644 index 000000000..68f1a3b10 --- /dev/null +++ b/examples/harnesses/vercel-eve/eslint.config.mjs @@ -0,0 +1,26 @@ +import nextVitals from "eslint-config-next/core-web-vitals"; +import nextTs from "eslint-config-next/typescript"; +import { defineConfig, globalIgnores } from "eslint/config"; + +const eslintConfig = defineConfig([ + ...nextVitals, + ...nextTs, + // ESLint's flat config only auto-ignores node_modules, so mirror the build + // artifacts from .gitignore (the eve/next/nitro output dirs ship huge bundles + // that would otherwise blow the parser's stack). + globalIgnores([ + ".next/**", + ".eve/**", + ".output/**", + ".nitro/**", + ".vercel/**", + ".workflow-data/**", + "out/**", + "build/**", + "dist/**", + "next-env.d.ts", + "scripts/**", + ]), +]); + +export default eslintConfig; diff --git a/examples/harnesses/vercel-eve/next-env.d.ts b/examples/harnesses/vercel-eve/next-env.d.ts new file mode 100644 index 000000000..c4b7818fb --- /dev/null +++ b/examples/harnesses/vercel-eve/next-env.d.ts @@ -0,0 +1,6 @@ +/// +/// +import "./.next/dev/types/routes.d.ts"; + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/examples/harnesses/vercel-eve/next.config.ts b/examples/harnesses/vercel-eve/next.config.ts new file mode 100644 index 000000000..eb73e4dc3 --- /dev/null +++ b/examples/harnesses/vercel-eve/next.config.ts @@ -0,0 +1,8 @@ +import { withEve } from "eve/next"; +import type { NextConfig } from "next"; + +const nextConfig: NextConfig = { + turbopack: {}, +}; + +export default withEve(nextConfig); diff --git a/examples/harnesses/vercel-eve/package.json b/examples/harnesses/vercel-eve/package.json new file mode 100644 index 000000000..d5a76eab8 --- /dev/null +++ b/examples/harnesses/vercel-eve/package.json @@ -0,0 +1,50 @@ +{ + "name": "vercel-eve", + "version": "0.0.0", + "type": "module", + "imports": { + "#*": "./agent/*", + "#evals/*": "./evals/*" + }, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "eve:dev": "eve dev", + "eve:build": "eve build", + "eve:start": "eve start", + "lint": "eslint", + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "@ai-sdk/openai": "^3.0.41", + "@openuidev/react-headless": "workspace:*", + "@openuidev/react-lang": "workspace:*", + "@openuidev/react-ui": "workspace:*", + "@vercel/connect": "0.2.2", + "ai": "7.0.0-beta.178", + "eve": "^0.11.7", + "next": "16.2.6", + "react": "19.2.3", + "react-dom": "19.2.3", + "zod": "4.4.3" + }, + "devDependencies": { + "@types/node": "24.x", + "@types/react": "^19", + "@types/react-dom": "^19", + "@typescript/native-preview": "7.0.0-dev.20260523.1", + "eslint": "^9", + "eslint-config-next": "16.2.6", + "typescript": "^5" + }, + "overrides": { + "ai": "7.0.0-beta.178" + }, + "resolutions": { + "ai": "7.0.0-beta.178" + }, + "engines": { + "node": "24.x" + } +} diff --git a/examples/harnesses/vercel-eve/src/app/globals.css b/examples/harnesses/vercel-eve/src/app/globals.css new file mode 100644 index 000000000..7107c10c0 --- /dev/null +++ b/examples/harnesses/vercel-eve/src/app/globals.css @@ -0,0 +1,13 @@ +@import "@openuidev/react-ui/styles/index.css"; + +html, +body { + margin: 0; +} + +.app-shell { + height: 100vh; + overflow: hidden; + position: relative; + width: 100vw; +} diff --git a/examples/harnesses/vercel-eve/src/app/layout.tsx b/examples/harnesses/vercel-eve/src/app/layout.tsx new file mode 100644 index 000000000..860ec804f --- /dev/null +++ b/examples/harnesses/vercel-eve/src/app/layout.tsx @@ -0,0 +1,22 @@ +import { ThemeProvider } from "@/hooks/use-system-theme"; +import type { Metadata } from "next"; +import "./globals.css"; + +export const metadata: Metadata = { + title: "Eve + OpenUI", + description: "Generative UI Chat powered by an Eve agent", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + + + {children} + + + ); +} diff --git a/examples/harnesses/vercel-eve/src/app/page.tsx b/examples/harnesses/vercel-eve/src/app/page.tsx new file mode 100644 index 000000000..aa56a1f70 --- /dev/null +++ b/examples/harnesses/vercel-eve/src/app/page.tsx @@ -0,0 +1,46 @@ +"use client"; + +import { useTheme } from "@/hooks/use-system-theme"; +import { agUIAdapter } from "@openuidev/react-headless"; +import { FullScreen } from "@openuidev/react-ui"; +import { openuiChatLibrary } from "@openuidev/react-ui/genui-lib"; +import { useMemo } from "react"; +import { createEveChatProps } from "../eve-chat"; + +export default function Page() { + const mode = useTheme(); + const chatProps = useMemo(() => createEveChatProps(), []); + + return ( +
+ +
+ ); +} diff --git a/examples/harnesses/vercel-eve/src/eve-chat.ts b/examples/harnesses/vercel-eve/src/eve-chat.ts new file mode 100644 index 000000000..31d3f7458 --- /dev/null +++ b/examples/harnesses/vercel-eve/src/eve-chat.ts @@ -0,0 +1,219 @@ +import type { Message } from "@openuidev/react-headless"; +import type { HandleMessageStreamEvent, SessionState } from "eve/client"; +import { eveEventsToAGUI } from "./eve-stream"; +import { + createThreadStore, + getClientStorage, + type KVStorage, + type ThreadStore, +} from "./thread-store"; + +// Eve's native HTTP session protocol (same-origin, proxied by `withEve`): +// POST /eve/v1/session -> create a session, returns { sessionId, continuationToken } +// POST /eve/v1/session/:id -> deliver a follow-up turn (with continuationToken) +// GET /eve/v1/session/:id/stream -> resumable NDJSON event feed (?startIndex=N) +// We talk to it with plain fetch rather than `eve/client` because the client +// barrel pulls Node-only modules into the browser bundle. The serializable +// SessionState cursor is the same shape `eve/client` exposes, persisted per +// thread so reopening a thread resumes the same Eve conversation. +const EVE_PREFIX = "/eve/v1"; +const SESSION_ID_HEADER = "x-eve-session-id"; + +const isTurnBoundary = (event: HandleMessageStreamEvent): boolean => + event.type === "session.completed" || + event.type === "session.failed" || + event.type === "session.waiting"; + +function messageText(message: Pick): string { + const content = message.content as unknown; + if (typeof content === "string") return content; + if (Array.isArray(content)) { + return content + .map((part) => + part && typeof part === "object" && "text" in part ? String(part.text ?? "") : "", + ) + .join("\n"); + } + return ""; +} + +function latestUserText(messages: Message[]): string { + const user = [...messages].reverse().find((m) => m.role === "user"); + return user ? messageText(user).trim() : ""; +} + +const sessionKey = (threadId: string) => `eve-openui:session:${threadId}`; + +function loadSession(storage: KVStorage, threadId: string): SessionState { + try { + const raw = storage.getItem(sessionKey(threadId)); + if (raw) return JSON.parse(raw) as SessionState; + } catch { + // fall through to a fresh cursor + } + return { streamIndex: 0 }; +} + +function saveSession(storage: KVStorage, threadId: string, state: SessionState): void { + storage.setItem(sessionKey(threadId), JSON.stringify(state)); +} + +async function* readNdjson( + body: ReadableStream, +): AsyncIterable { + const reader = body.getReader(); + const decoder = new TextDecoder(); + let buffer = ""; + try { + for (;;) { + const { done, value } = await reader.read(); + if (done) break; + buffer += decoder.decode(value, { stream: true }); + const lines = buffer.split("\n"); + buffer = lines.pop() ?? ""; + for (const line of lines) { + if (line.trim()) yield JSON.parse(line) as HandleMessageStreamEvent; + } + } + if (buffer.trim()) yield JSON.parse(buffer) as HandleMessageStreamEvent; + } finally { + reader.releaseLock(); + } +} + +/** + * Delivers one user turn to the Eve agent and tails just that turn's events, + * advancing the session cursor via `onState` when the turn closes. + */ +async function* runTurn( + state: SessionState, + message: string, + signal: AbortSignal, + onState: (next: SessionState) => void, +): AsyncIterable { + const deliverPath = state.sessionId + ? `${EVE_PREFIX}/session/${encodeURIComponent(state.sessionId)}` + : `${EVE_PREFIX}/session`; + const deliverBody: Record = { message }; + if (state.sessionId && state.continuationToken) { + deliverBody.continuationToken = state.continuationToken; + } + + const delivered = await fetch(deliverPath, { + method: "POST", + headers: { "content-type": "application/json" }, + body: JSON.stringify(deliverBody), + signal, + }); + if (!delivered.ok) { + throw new Error(`Eve session POST failed (${delivered.status}): ${await delivered.text()}`); + } + + const meta = (await delivered.json().catch(() => ({}))) as { + sessionId?: string; + continuationToken?: string; + }; + const sessionId = + meta.sessionId ?? delivered.headers.get(SESSION_ID_HEADER)?.trim() ?? state.sessionId; + if (!sessionId) throw new Error("Eve did not return a session id."); + const continuationToken = meta.continuationToken ?? state.continuationToken; + + // Resume the cursor only when the server kept the same session. + let index = state.sessionId === sessionId ? state.streamIndex : 0; + const streamPath = + `${EVE_PREFIX}/session/${encodeURIComponent(sessionId)}/stream` + + (index > 0 ? `?startIndex=${index}` : ""); + + const streamed = await fetch(streamPath, { signal }); + if (!streamed.ok || !streamed.body) { + throw new Error(`Eve session stream GET failed (${streamed.status}).`); + } + + let completed = false; + try { + for await (const event of readNdjson(streamed.body)) { + index += 1; + yield event; + if (isTurnBoundary(event)) { + completed = event.type === "session.completed"; + break; + } + } + } finally { + // `session.completed` ends the conversation; `waiting`/`failed` stay resumable. + onState(completed ? { streamIndex: 0 } : { sessionId, continuationToken, streamIndex: index }); + } +} + +/** + * Wires OpenUI's chat surface to an Eve agent over Eve's native session + * protocol. `processMessage` delivers the latest user turn, maps Eve's events to + * AG-UI, and persists the session cursor + transcript per thread. Pair with + * `streamProtocol={agUIAdapter()}`. + */ +export function createEveChatProps( + storage: KVStorage = getClientStorage(), + store: ThreadStore = createThreadStore(storage), +) { + return { + createThread: store.createThread, + fetchThreadList: store.fetchThreadList, + loadThread: store.loadThread, + deleteThread: store.deleteThread, + updateThread: store.updateThread, + processMessage: async ({ + messages, + threadId, + abortController, + }: { + messages: Message[]; + threadId: string; + abortController: AbortController; + }): Promise => { + store.saveMessages(threadId, messages); + + let nextSession = loadSession(storage, threadId); + const turn = runTurn( + nextSession, + latestUserText(messages), + abortController.signal, + (state) => { + nextSession = state; + }, + ); + + const encoder = new TextEncoder(); + let assistant = ""; + + const body = new ReadableStream({ + async start(controller) { + try { + for await (const event of eveEventsToAGUI(turn)) { + if (event.type === "TEXT_MESSAGE_CONTENT") { + assistant += (event as { delta: string }).delta; + } + controller.enqueue(encoder.encode(`data: ${JSON.stringify(event)}\n\n`)); + } + } catch (error) { + const message = error instanceof Error ? error.message : String(error); + controller.enqueue( + encoder.encode(`data: ${JSON.stringify({ type: "RUN_ERROR", message })}\n\n`), + ); + } finally { + saveSession(storage, threadId, nextSession); + if (assistant) { + store.saveMessages(threadId, [ + ...messages, + { id: crypto.randomUUID(), role: "assistant", content: assistant } as Message, + ]); + } + controller.enqueue(encoder.encode("data: [DONE]\n\n")); + controller.close(); + } + }, + }); + + return new Response(body, { headers: { "content-type": "text/event-stream" } }); + }, + }; +} diff --git a/examples/harnesses/vercel-eve/src/eve-stream.ts b/examples/harnesses/vercel-eve/src/eve-stream.ts new file mode 100644 index 000000000..321a2752b --- /dev/null +++ b/examples/harnesses/vercel-eve/src/eve-stream.ts @@ -0,0 +1,65 @@ +import { EventType, type AGUIEvent } from "@openuidev/react-headless"; +import type { HandleMessageStreamEvent } from "eve/client"; + +/** + * The only wire-format glue in this integration: translate Eve's harness event + * stream into the AG-UI events OpenUI's renderer consumes. Everything else + * (delivery, the per-session stream cursor, reconnection) is handled by the Eve + * session protocol, which already yields just the current turn's events. + * + * actions.requested -> TOOL_CALL_START + TOOL_CALL_ARGS + TOOL_CALL_END + * message.appended -> TEXT_MESSAGE_CONTENT (streaming deltas) + * message.completed -> TEXT_MESSAGE_CONTENT (fallback when a step streamed no deltas) + * turn/session.failed -> RUN_ERROR + * + * Tool calls and the final text share one assistant message id, so OpenUI shows + * the tool call in its "behind the scenes" panel above the rendered reply. + */ +export async function* eveEventsToAGUI( + events: AsyncIterable, +): AsyncIterable { + const messageId = crypto.randomUUID(); + const streamedSteps = new Set(); + let started = false; + + function* start(): Generator { + if (started) return; + started = true; + yield { type: EventType.TEXT_MESSAGE_START, messageId, role: "assistant" }; + } + + for await (const event of events) { + if (event.type === "actions.requested") { + for (const action of event.data.actions) { + if (action.kind !== "tool-call") continue; + yield* start(); + yield { + type: EventType.TOOL_CALL_START, + toolCallId: action.callId, + toolCallName: action.toolName, + parentMessageId: messageId, + }; + const args = JSON.stringify(action.input ?? {}); + if (args && args !== "{}") { + yield { type: EventType.TOOL_CALL_ARGS, toolCallId: action.callId, delta: args }; + } + yield { type: EventType.TOOL_CALL_END, toolCallId: action.callId }; + } + } else if (event.type === "message.appended") { + const { messageDelta, stepIndex } = event.data; + if (!messageDelta) continue; + streamedSteps.add(stepIndex); + yield* start(); + yield { type: EventType.TEXT_MESSAGE_CONTENT, messageId, delta: messageDelta }; + } else if (event.type === "message.completed") { + const { message, stepIndex } = event.data; + if (!message || streamedSteps.has(stepIndex)) continue; + yield* start(); + yield { type: EventType.TEXT_MESSAGE_CONTENT, messageId, delta: message }; + } else if (event.type === "turn.failed" || event.type === "session.failed") { + yield { type: EventType.RUN_ERROR, message: event.data.message } as AGUIEvent; + } + } + + if (started) yield { type: EventType.TEXT_MESSAGE_END, messageId }; +} diff --git a/examples/harnesses/vercel-eve/src/hooks/use-system-theme.tsx b/examples/harnesses/vercel-eve/src/hooks/use-system-theme.tsx new file mode 100644 index 000000000..7c110c21d --- /dev/null +++ b/examples/harnesses/vercel-eve/src/hooks/use-system-theme.tsx @@ -0,0 +1,41 @@ +"use client"; + +import { createContext, useContext, useLayoutEffect, useState } from "react"; + +type ThemeMode = "light" | "dark"; + +interface ThemeContextType { + mode: ThemeMode; +} + +const ThemeContext = createContext(undefined); + +function getSystemMode(): ThemeMode { + if (typeof window === "undefined") return "light"; + return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"; +} + +export function ThemeProvider({ children }: { children: React.ReactNode }) { + const [mode, setMode] = useState(getSystemMode); + + useLayoutEffect(() => { + const mq = window.matchMedia("(prefers-color-scheme: dark)"); + const handler = (e: MediaQueryListEvent) => setMode(e.matches ? "dark" : "light"); + mq.addEventListener("change", handler); + return () => mq.removeEventListener("change", handler); + }, []); + + useLayoutEffect(() => { + document.body.setAttribute("data-theme", mode); + }, [mode]); + + return {children}; +} + +export function useTheme(): ThemeMode { + const ctx = useContext(ThemeContext); + if (!ctx) { + throw new Error("useTheme must be used within a ThemeProvider"); + } + return ctx.mode; +} diff --git a/examples/harnesses/vercel-eve/src/thread-store.ts b/examples/harnesses/vercel-eve/src/thread-store.ts new file mode 100644 index 000000000..ac101445f --- /dev/null +++ b/examples/harnesses/vercel-eve/src/thread-store.ts @@ -0,0 +1,120 @@ +import type { Message, Thread, UserMessage } from "@openuidev/react-headless"; + +/** + * Minimal key/value storage contract so the thread store can run against + * `window.localStorage` in the browser and an in-memory map in tests. + */ +export interface KVStorage { + getItem(key: string): string | null; + setItem(key: string, value: string): void; + removeItem(key: string): void; +} + +const THREADS_KEY = "eve-openui:threads"; +const messagesKey = (threadId: string) => `eve-openui:messages:${threadId}`; + +function readJson(storage: KVStorage, key: string, fallback: T): T { + try { + const raw = storage.getItem(key); + return raw ? (JSON.parse(raw) as T) : fallback; + } catch { + return fallback; + } +} + +function messageText(message: Pick): string { + const content = message.content as unknown; + if (typeof content === "string") return content; + if (Array.isArray(content)) { + return content + .map((part) => + part && typeof part === "object" && "text" in part + ? String((part as { text?: unknown }).text ?? "") + : "", + ) + .join(" "); + } + return ""; +} + +function deriveTitle(message: UserMessage): string { + const text = messageText(message).trim().replace(/\s+/g, " "); + if (!text) return "New chat"; + return text.length > 60 ? `${text.slice(0, 57)}...` : text; +} + +export interface ThreadStore { + createThread(firstMessage: UserMessage): Promise; + fetchThreadList(): Promise<{ threads: Thread[] }>; + loadThread(threadId: string): Promise; + deleteThread(threadId: string): Promise; + updateThread(updated: Thread): Promise; + saveMessages(threadId: string, messages: Message[]): void; +} + +/** + * Client-side thread manager. Each OpenUI thread gets a stable unique id which + * the harness forwards as the Eve continuation token, so every thread maps to + * its own isolated Eve session/context. + */ +export function createThreadStore( + storage: KVStorage, + generateId: () => string = () => crypto.randomUUID(), +): ThreadStore { + const listThreads = (): Thread[] => readJson(storage, THREADS_KEY, []); + const writeThreads = (threads: Thread[]) => storage.setItem(THREADS_KEY, JSON.stringify(threads)); + + return { + async createThread(firstMessage) { + const thread: Thread = { + id: generateId(), + title: deriveTitle(firstMessage), + createdAt: Date.now(), + }; + writeThreads([thread, ...listThreads().filter((t) => t.id !== thread.id)]); + return thread; + }, + + async fetchThreadList() { + return { threads: listThreads() }; + }, + + async loadThread(threadId) { + return readJson(storage, messagesKey(threadId), []); + }, + + async deleteThread(threadId) { + writeThreads(listThreads().filter((t) => t.id !== threadId)); + storage.removeItem(messagesKey(threadId)); + }, + + async updateThread(updated) { + writeThreads(listThreads().map((t) => (t.id === updated.id ? updated : t))); + return updated; + }, + + saveMessages(threadId, messages) { + storage.setItem(messagesKey(threadId), JSON.stringify(messages)); + }, + }; +} + +/** In-memory storage, primarily for tests and SSR fallback. */ +export function createMemoryStorage(): KVStorage { + const map = new Map(); + return { + getItem: (key) => (map.has(key) ? (map.get(key) as string) : null), + setItem: (key, value) => { + map.set(key, value); + }, + removeItem: (key) => { + map.delete(key); + }, + }; +} + +/** Returns `window.localStorage` in the browser, or an in-memory fallback. */ +export function getClientStorage(): KVStorage { + if (typeof window !== "undefined" && window.localStorage) return window.localStorage; + return createMemoryStorage(); +} diff --git a/examples/harnesses/vercel-eve/tsconfig.json b/examples/harnesses/vercel-eve/tsconfig.json new file mode 100644 index 000000000..cc550c6e9 --- /dev/null +++ b/examples/harnesses/vercel-eve/tsconfig.json @@ -0,0 +1,36 @@ +{ + "compilerOptions": { + "target": "ES2022", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "module": "esnext", + "moduleResolution": "bundler", + "types": ["node"], + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "noEmit": true, + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "react-jsx", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./src/*"] + } + }, + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts", + ".next/dev/types/**/*.ts", + ".eve/**/*.d.ts", + "**/*.mts" + ], + "exclude": ["node_modules"] +} diff --git a/examples/openui-react-native/backend/package.json b/examples/openui-react-native/backend/package.json index b7e871082..f4fcecb02 100644 --- a/examples/openui-react-native/backend/package.json +++ b/examples/openui-react-native/backend/package.json @@ -20,6 +20,6 @@ "@types/react": "^19", "@types/react-dom": "^19", "typescript": "^5", - "zod": "^4.0.0" + "zod": "4.4.3" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e98e6ecd5..a3f2e860f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,57 +4,6 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -catalogs: - default: - '@types/node': - specifier: ^22.15.32 - version: 22.19.19 - '@types/react': - specifier: '>=19.0.0' - version: 19.2.14 - '@typescript-eslint/eslint-plugin': - specifier: ^8.56.1 - version: 8.59.4 - eslint: - specifier: ^9.0.0 - version: 9.29.0 - eslint-config-prettier: - specifier: ^10.1.8 - version: 10.1.8 - eslint-plugin-prettier: - specifier: ^5.5.5 - version: 5.5.5 - eslint-plugin-react-hooks: - specifier: ^7.0.1 - version: 7.1.1 - eslint-plugin-react-refresh: - specifier: ^0.5.2 - version: 0.5.2 - eslint-plugin-storybook: - specifier: ^10.2.14 - version: 10.2.14 - eslint-plugin-unused-imports: - specifier: ^4.4.1 - version: 4.4.1 - jsdom: - specifier: ^26.1.0 - version: 26.1.0 - react: - specifier: ^18.3.1 || ^19.0.0 - version: 19.2.4 - react-dom: - specifier: ^18.0.0 || ^19.0.0 - version: 19.2.4 - typescript: - specifier: ^5.9.3 - version: 5.9.3 - zod: - specifier: ^3.25.0 || ^4.0.0 - version: 4.3.6 - zustand: - specifier: ^4.5.5 - version: 4.5.7 - overrides: langsmith@<0.6.0: ^0.6.0 ip-address@<10.1.1: '>=10.1.1' @@ -110,7 +59,7 @@ importers: version: 0.3.18 tsdown: specifier: ^0.21.7 - version: 0.21.10(@arethetypeswrong/core@0.18.2)(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3) + version: 0.21.10(@arethetypeswrong/core@0.18.2)(@typescript/native-preview@7.0.0-dev.20260523.1)(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3) typescript: specifier: 'catalog:' version: 5.9.3 @@ -219,10 +168,10 @@ importers: version: 0.8.2(react@19.2.4)(zustand@4.5.7(@types/react@19.2.14)(react@19.2.4)) '@openuidev/react-lang': specifier: latest - version: 0.2.6(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.3.6))(react@19.2.4)(zod@4.3.6) + version: 0.2.6(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(react@19.2.4)(zod@4.4.3) '@openuidev/react-ui': specifier: latest - version: 0.11.8(@openuidev/react-headless@0.8.2(react@19.2.4)(zustand@4.5.7(@types/react@19.2.14)(react@19.2.4)))(@openuidev/react-lang@0.2.6(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.3.6))(react@19.2.4)(zod@4.3.6))(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6)(zustand@4.5.7(@types/react@19.2.14)(react@19.2.4)) + version: 0.11.9(@openuidev/react-headless@0.8.2(react@19.2.4)(zustand@4.5.7(@types/react@19.2.14)(react@19.2.4)))(@openuidev/react-lang@0.2.6(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(react@19.2.4)(zod@4.4.3))(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.4.3)(zustand@4.5.7(@types/react@19.2.14)(react@19.2.4)) react: specifier: ^19.0.0 version: 19.2.4 @@ -378,7 +327,7 @@ importers: dependencies: '@earendil-works/pi-coding-agent': specifier: ^0.79.4 - version: 0.79.4(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.3.6))(ws@8.21.0)(zod@4.3.6) + version: 0.79.4(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) '@openuidev/react-headless': specifier: workspace:* version: link:../../../packages/react-headless @@ -423,6 +372,64 @@ importers: specifier: ^5 version: 5.9.3 + examples/harnesses/vercel-eve: + dependencies: + '@ai-sdk/openai': + specifier: ^3.0.41 + version: 3.0.65(zod@4.4.3) + '@openuidev/react-headless': + specifier: workspace:* + version: link:../../../packages/react-headless + '@openuidev/react-lang': + specifier: workspace:* + version: link:../../../packages/react-lang + '@openuidev/react-ui': + specifier: workspace:* + version: link:../../../packages/react-ui + '@vercel/connect': + specifier: 0.2.2 + version: 0.2.2(ai@7.0.0-beta.178(zod@4.4.3))(eve@0.11.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@2.61.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@5.9.3)(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)))(ai@7.0.0-beta.178(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.2.0)(ioredis@5.10.1)(jiti@2.7.0)(lru-cache@11.5.0)(next@16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.89.2))(react@19.2.3)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))(vue@3.5.34(typescript@5.9.3))) + ai: + specifier: 7.0.0-beta.178 + version: 7.0.0-beta.178(zod@4.4.3) + eve: + specifier: ^0.11.7 + version: 0.11.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@2.61.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@5.9.3)(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)))(ai@7.0.0-beta.178(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.2.0)(ioredis@5.10.1)(jiti@2.7.0)(lru-cache@11.5.0)(next@16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.89.2))(react@19.2.3)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))(vue@3.5.34(typescript@5.9.3)) + next: + specifier: 16.2.6 + version: 16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.89.2) + react: + specifier: 19.2.3 + version: 19.2.3 + react-dom: + specifier: 19.2.3 + version: 19.2.3(react@19.2.3) + zod: + specifier: 4.4.3 + version: 4.4.3 + devDependencies: + '@types/node': + specifier: 24.x + version: 24.13.2 + '@types/react': + specifier: ^19 + version: 19.2.14 + '@types/react-dom': + specifier: ^19 + version: 19.2.3(@types/react@19.2.14) + '@typescript/native-preview': + specifier: 7.0.0-dev.20260523.1 + version: 7.0.0-dev.20260523.1 + eslint: + specifier: ^9 + version: 9.29.0(jiti@2.7.0) + eslint-config-next: + specifier: 16.2.6 + version: 16.2.6(@typescript-eslint/parser@8.59.4(eslint@9.29.0(jiti@2.7.0))(typescript@5.9.3))(eslint@9.29.0(jiti@2.7.0))(typescript@5.9.3) + typescript: + specifier: ^5 + version: 5.9.3 + examples/langgraph-chat: dependencies: '@langchain/core': @@ -877,7 +884,7 @@ importers: version: 15.5.18(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.89.2) openai: specifier: ^4.90.0 - version: 4.104.0(ws@8.21.0)(zod@4.3.6) + version: 4.104.0(ws@8.21.0)(zod@4.4.3) react: specifier: ^19.0.0 version: 19.2.4 @@ -901,8 +908,8 @@ importers: specifier: ^5 version: 5.9.3 zod: - specifier: ^4.0.0 - version: 4.3.6 + specifier: 4.4.3 + version: 4.4.3 examples/openui-react-native/chat-app: dependencies: @@ -1190,7 +1197,7 @@ importers: version: 16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.89.2) openai: specifier: ^6.22.0 - version: 6.39.0(ws@8.21.0)(zod@4.3.6) + version: 6.39.0(ws@8.21.0)(zod@4.4.3) react: specifier: 19.2.3 version: 19.2.3 @@ -1362,7 +1369,7 @@ importers: version: 2.6.1 nuxt: specifier: ^3.17.0 - version: 3.21.6(@parcel/watcher@2.5.6)(@types/node@25.3.2)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(eslint@9.29.0(jiti@2.7.0))(ioredis@5.10.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(typescript@5.9.3)(vite@7.3.3(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))(vue-tsc@2.2.12(typescript@5.9.3))(yaml@2.9.0) + version: 3.21.6(@parcel/watcher@2.5.6)(@types/node@25.3.2)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(eslint@9.29.0(jiti@2.7.0))(ioredis@5.10.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rolldown@1.1.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.89.2)(srvx@0.11.16)(terser@5.48.0)(tsx@4.20.3)(typescript@5.9.3)(vite@7.3.3(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))(vue-tsc@2.2.12(typescript@5.9.3))(yaml@2.9.0) tailwindcss: specifier: ^4 version: 4.2.1 @@ -1475,7 +1482,7 @@ importers: version: 19.2.14 openai: specifier: ^6.22.0 - version: 6.22.0(ws@8.21.0)(zod@4.3.6) + version: 6.22.0(ws@8.21.0)(zod@4.4.3) vitest: specifier: ^4.1.0 version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.3.2)(jsdom@29.1.1)(vite@7.3.3(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)) @@ -1885,6 +1892,12 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 + '@ai-sdk/gateway@4.0.0-beta.109': + resolution: {integrity: sha512-W/1kLlPb6Bgbhwep3CA3R6do0HD7SXV5gyuz2XBLY1YABqgxYkw+IhEcjOYlmn9v+Tifjqy5yJqmWdSHMJhyPQ==} + engines: {node: '>=22'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + '@ai-sdk/google@2.0.74': resolution: {integrity: sha512-Lhw1742RXc+4pRIvqVXa0jdl5+qdpmw8lj0lm6OchUg9rVGHzymlaxe7CDiYX5U2af4jbjKeTY22LDi3bIycgQ==} engines: {node: '>=18'} @@ -1927,6 +1940,12 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 + '@ai-sdk/provider-utils@5.0.0-beta.49': + resolution: {integrity: sha512-7xnpAQLpW0KGIsh0CQERcIZuXEGqv7FtFW2BdFk14iuMxRMVpXhTVvEQyqkm6tWAbQ7OsGQJhO6M0Me9gHQ52g==} + engines: {node: '>=22'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + '@ai-sdk/provider@1.1.3': resolution: {integrity: sha512-qZMxYJ0qqX/RfnuIaab+zp8UAeJn/ygXXAffR5I4N0n1IrvA6qBsjc8hXLmBiMV2zoXlifkacF7sEFnYnjBcqg==} engines: {node: '>=18'} @@ -1955,6 +1974,10 @@ packages: resolution: {integrity: sha512-2Xmoq6DBJqmSl80U6V9z5jJSJP7ehaJJQMy2iFUqTay06wdCqTnPVBBQbtEL8RCChenL+q5DC5H5WzU3vV3v8w==} engines: {node: '>=18'} + '@ai-sdk/provider@4.0.0-beta.19': + resolution: {integrity: sha512-Aca/KiGeRtMM7rOJ38Qio+Dc2V45PpiGoWgdrdtIkgM9zkhYpS043t0ggKoNOWgm/csv99XWGrfSF63PSkVeHw==} + engines: {node: '>=22'} + '@ai-sdk/react@3.0.193': resolution: {integrity: sha512-El0jUZ/B7mvBHAD5rfSDqOAhWxutVTq7BCNhfGuwfDPT9SO0TMHybh2bMkieJQI7YOfl+qNBoWrRAOHHaFb99Q==} engines: {node: '>=18'} @@ -2971,15 +2994,24 @@ packages: '@emnapi/core@1.10.0': resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} + '@emnapi/core@1.11.1': + resolution: {integrity: sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==} + '@emnapi/runtime@1.10.0': resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} + '@emnapi/runtime@1.11.1': + resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==} + '@emnapi/runtime@1.8.1': resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} + '@emnapi/wasi-threads@1.2.2': + resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==} + '@emotion/babel-plugin@11.13.5': resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} @@ -4583,6 +4615,12 @@ packages: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 + '@napi-rs/wasm-runtime@1.1.5': + resolution: {integrity: sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 + '@next/env@15.5.18': resolution: {integrity: sha512-hAV85Ckd9QR6RvH04MEKwsfLTksvFpO47j9xwtoIuvuPnlwecpSi+uZTtm8HirVbtlI2Fnz//xpcSTjFdyJk+g==} @@ -5099,8 +5137,8 @@ packages: '@modelcontextprotocol/sdk': optional: true - '@openuidev/react-ui@0.11.8': - resolution: {integrity: sha512-hKqmTRATiEXXbL8FO0zDPa1Tvw1rYCCFBB4uKKsVA1Z680014zRskVYz386Q0P9kt+1GQfaBxnZBsyfy+pc4KQ==} + '@openuidev/react-ui@0.11.9': + resolution: {integrity: sha512-UQlqjycpppAl8oCO50dffLMq60N23xZx5HD6P6lHzSYJgeEjh/p0T0g3EpN6fb5M3ZjpfVPQw8EgCtVMDo0HfA==} peerDependencies: '@openuidev/react-headless': ^0.8.2 '@openuidev/react-lang': ^0.2.6 @@ -5357,8 +5395,8 @@ packages: '@oxc-project/types@0.131.0': resolution: {integrity: sha512-PgnWDfV0h+b16XNKbXU7Daib/BFSt/J2mEzfYIBu6JB/wNdlU+kVYXCkGA1A9fWkTbOgbjh4e6NhPeQOYvFhEA==} - '@oxc-project/types@0.132.0': - resolution: {integrity: sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ==} + '@oxc-project/types@0.137.0': + resolution: {integrity: sha512-WT+Gb24i8hmvo85AIv2oEYouEXkRlKAlT9WaCa3TfLgNCN+GhrJOGZuIlMouAh38Qe4QOx26eUOVsq70qXrywA==} '@oxc-transform/binding-android-arm-eabi@0.131.0': resolution: {integrity: sha512-rcNvLlbNnxTfYVlZVF+Rev2AyCpJDpwVPphG4HOJxauaT1+w5VxL+kRdxCReof4A8ZsszbvIYlvkqvaJKO4Mog==} @@ -7569,8 +7607,8 @@ packages: cpu: [arm64] os: [android] - '@rolldown/binding-android-arm64@1.0.2': - resolution: {integrity: sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ==} + '@rolldown/binding-android-arm64@1.1.2': + resolution: {integrity: sha512-2cZ+7xRS+DBcuJBJKnfzsbleumJhBqSlJVpuzHC0nTqfd3QQ7Vx2/x5YR/D7cBamKSeWplwo82Fn9lqYUDEMfA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] @@ -7578,6 +7616,7 @@ packages: '@rolldown/binding-darwin-arm64@1.0.0-rc.16': resolution: {integrity: sha512-rNz0yK078yrNn3DrdgN+PKiMOW8HfQ92jQiXxwX8yW899ayV00MLVdaCNeVBhG/TbH3ouYVObo8/yrkiectkcQ==} engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] os: [darwin] '@rolldown/binding-darwin-arm64@1.0.0-rc.17': @@ -7586,8 +7625,8 @@ packages: cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-arm64@1.0.2': - resolution: {integrity: sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w==} + '@rolldown/binding-darwin-arm64@1.1.2': + resolution: {integrity: sha512-RkPMJnygxsgOYdkfqgpwY0/Fzm8d0VQe6HGU2/B00Xa9eqdLbrII+DOKAodbJAn3ZL1AJxGHkZRPYazgGY6Ljw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] @@ -7598,8 +7637,8 @@ packages: cpu: [x64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.2': - resolution: {integrity: sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA==} + '@rolldown/binding-darwin-x64@1.1.2': + resolution: {integrity: sha512-Uiczh6vFhwyfd7WNe7Q7mCA4KxAiLdz7jPE/WGizfRpIieoyFuNVMmM8HqZ9HwudTkY6/AeMQwlNJ9NJijguWw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] @@ -7610,8 +7649,8 @@ packages: cpu: [x64] os: [freebsd] - '@rolldown/binding-freebsd-x64@1.0.2': - resolution: {integrity: sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA==} + '@rolldown/binding-freebsd-x64@1.1.2': + resolution: {integrity: sha512-+TpdtTRgHiJFjCVFbw311SuLk3KfytPOQQn+VlAEv+gBxYPtL7E6JS9e/tk+8CwxhIZvemJKo4rTKgfWNsKkkA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] @@ -7622,8 +7661,8 @@ packages: cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm-gnueabihf@1.0.2': - resolution: {integrity: sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w==} + '@rolldown/binding-linux-arm-gnueabihf@1.1.2': + resolution: {integrity: sha512-4lv1/tkmi7ueIVHnyreaOeUpiZP26BH9rRy6hoYfR9310A2B9nUEVRDvBx69vx64Nr3eTPPRkyciqJJs+j9Jmw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] @@ -7634,8 +7673,8 @@ packages: cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.2': - resolution: {integrity: sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig==} + '@rolldown/binding-linux-arm64-gnu@1.1.2': + resolution: {integrity: sha512-gBSUVO0eaWgw1JMjK3gB8BMlX2Mk148s2lTiVT3e9vjVxbl7UDfMWWY8CfIaaqiXuM9fVTMxIpUz6CAo/B6Vlw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] @@ -7646,8 +7685,8 @@ packages: cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.0.2': - resolution: {integrity: sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw==} + '@rolldown/binding-linux-arm64-musl@1.1.2': + resolution: {integrity: sha512-LjQP/iZLBu8o8PjIfk4x3At0/mT6h282pvz8Z5LAyhGbu/kDezyO7ea62rF5uoqmgnIYqbN/MqJ3Si3Aymi7xQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] @@ -7658,8 +7697,8 @@ packages: cpu: [ppc64] os: [linux] - '@rolldown/binding-linux-ppc64-gnu@1.0.2': - resolution: {integrity: sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA==} + '@rolldown/binding-linux-ppc64-gnu@1.1.2': + resolution: {integrity: sha512-X/7bVLWelEsbyWDUSXt7zVsTniLLPIY2n1rH58qr78l9i7MNbbxBWD8gI2vRfBWf4NUXJCUuQnfZDsp32LqsfQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] @@ -7670,8 +7709,8 @@ packages: cpu: [s390x] os: [linux] - '@rolldown/binding-linux-s390x-gnu@1.0.2': - resolution: {integrity: sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ==} + '@rolldown/binding-linux-s390x-gnu@1.1.2': + resolution: {integrity: sha512-gb6dYKW/1KDorGXyy48glEBJs/sxVSC5pcVrox/pFGV4mvwSFeg2sK5L2tRkVsVlh7kueqOgg4GEcuipJcGuKg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] @@ -7682,8 +7721,8 @@ packages: cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-gnu@1.0.2': - resolution: {integrity: sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ==} + '@rolldown/binding-linux-x64-gnu@1.1.2': + resolution: {integrity: sha512-JY4w85pU3iAiJVMh5nuk4/Mh9GjMsupe8MrIN53rwxAZW64GKrWeJBuN6SxQg9QTU5uB1cxyhDzW8jqRn1EABw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] @@ -7694,8 +7733,8 @@ packages: cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.0.2': - resolution: {integrity: sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw==} + '@rolldown/binding-linux-x64-musl@1.1.2': + resolution: {integrity: sha512-xvpA7o5KCYLB0Rwscmuylb1/zHHSUx4g4xilm4prC5jP76pEUlzBmMbgpbh7bVDbId4NcfT96gN5i6mE6UDaiw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] @@ -7706,8 +7745,8 @@ packages: cpu: [arm64] os: [openharmony] - '@rolldown/binding-openharmony-arm64@1.0.2': - resolution: {integrity: sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w==} + '@rolldown/binding-openharmony-arm64@1.1.2': + resolution: {integrity: sha512-p/ts6KBLjuk49Bp21XH77poQGt02iNz7ChgHep7tudPOaLinR/De/RHdxF8w8Yj4r/bF/bqXwH6PZrB2sA+Nvw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] @@ -7717,8 +7756,8 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@rolldown/binding-wasm32-wasi@1.0.2': - resolution: {integrity: sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ==} + '@rolldown/binding-wasm32-wasi@1.1.2': + resolution: {integrity: sha512-VMu/wmrZ9hJzYlRhbw7jK5PODlugyKZ5mOdX78+lS8OvuFkWNQdz1pFLrI2p3P0pjXOmUZ7B48o5VnMH9QOGtg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] @@ -7728,8 +7767,8 @@ packages: cpu: [arm64] os: [win32] - '@rolldown/binding-win32-arm64-msvc@1.0.2': - resolution: {integrity: sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A==} + '@rolldown/binding-win32-arm64-msvc@1.1.2': + resolution: {integrity: sha512-xtUJqs8qEkuSviS0n1tsohaPuz3a1SPhZywOji4Oo+sgrJs8daEDMZ0QtqL0OS7dx8PoVpg2J/ZZycPY5I2+Zg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] @@ -7740,8 +7779,8 @@ packages: cpu: [x64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.2': - resolution: {integrity: sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ==} + '@rolldown/binding-win32-x64-msvc@1.1.2': + resolution: {integrity: sha512-85YiLQqjUKgSO/Zjnf9e0XIn5Ymrh1fLDWBeAkZqpuBR/3R8TpfoHXuyblqyQrftSSgWO9qpcHN8mkyKsLraoA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -8866,9 +8905,6 @@ packages: '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} - '@types/hast@2.3.10': - resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} - '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} @@ -8926,6 +8962,9 @@ packages: '@types/node@22.19.19': resolution: {integrity: sha512-dyh/xO2Fh5bYrfWaaqGrRQQGkNdmYw6AmaAUvYeUMNTWQtvb796ikLdmTchRmOlOiIJ1TDXfWgVx1QkUlQ6Hew==} + '@types/node@24.13.2': + resolution: {integrity: sha512-fRa09kZTgu8o71KFcDjUFuc7F+dEbZYZmkI0mg5YBTRs0yMKjYHsq/c0urDKeDb+D5qVgXOdFcuu+DZPKOITwA==} + '@types/node@25.3.2': resolution: {integrity: sha512-RpV6r/ij22zRRdyBPcxDeKAzH43phWVKEjL2iksqo1Vz3CuBUrgmPpPhALKiRfU7OMCmeeO9vECBMsV0hMTG8Q==} @@ -9073,6 +9112,53 @@ packages: resolution: {integrity: sha512-U3gxVaDVnuZKhSspW/MzMxE1kq7zOdc072FcSNoqA1I9p8HyKbBFfEHoWckBAMgNMph4MamwS5iTVzFmrnt8TQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260523.1': + resolution: {integrity: sha512-4WHj9v41per176h00j3moITcHpR+8SNoAFdbDuJwUDCJiQkbrCjwulK8UwALxLPEGqyBdNARWcM6GXVTexBg1w==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [darwin] + + '@typescript/native-preview-darwin-x64@7.0.0-dev.20260523.1': + resolution: {integrity: sha512-WeVqasFLVwbnwmjLhBTwfNminhaTfCo+ptOW2JT+IgY2WYBGIKXQmhaPPU5bdsHCur7O2RmY5tUAmvqv7V+kog==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [darwin] + + '@typescript/native-preview-linux-arm64@7.0.0-dev.20260523.1': + resolution: {integrity: sha512-2Jd0iJOd77LLwsEDFc9O5nfPxvs75d1FafG7BhGGlfD8RtxL4+BzAy8KYI0++TTmHL6aL7+VIr3+TQ58S68Sfw==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [linux] + + '@typescript/native-preview-linux-arm@7.0.0-dev.20260523.1': + resolution: {integrity: sha512-C+fOL4DO/JTLkKT22Bw34FGiUpS4scqC+5AaaCVBCiHWXn1NknSrbvcMWEmg8HzCWPmiUwSQUryNZIFDqi8tUw==} + engines: {node: '>=16.20.0'} + cpu: [arm] + os: [linux] + + '@typescript/native-preview-linux-x64@7.0.0-dev.20260523.1': + resolution: {integrity: sha512-DiJLdnzh/TolhvDuGxqD1sxlQNnCFLsLLnGPVN6i+/DUPC/cWy0c+5RHruow9lQbtPkZ3aapztkYP2wEP1Ll6Q==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [linux] + + '@typescript/native-preview-win32-arm64@7.0.0-dev.20260523.1': + resolution: {integrity: sha512-axyNrdvX4D6T5ZuZHhufFbPRiKzJyqxusLl5nI3wJqmGN3G5JYCJY9k39LjRYI6oB3ingyKng+3QJ2q7b3IHQA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [win32] + + '@typescript/native-preview-win32-x64@7.0.0-dev.20260523.1': + resolution: {integrity: sha512-NRBlDy12DLqCC7smCWlEgsiwCxUUl0TAVLUikm+c+WvFhnsY909jk1X8FNUHhNZmR3APHS57AMOq2rreQwHdiQ==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [win32] + + '@typescript/native-preview@7.0.0-dev.20260523.1': + resolution: {integrity: sha512-+pkICUeoIbnecsvkEQFmkBC7qQqR5ltQQl+bXuGpKBOURVu2/zDA4i09Ef4KWWD6Kmx7i/EMO2fMZ3IsZEdzPw==} + engines: {node: '>=16.20.0'} + hasBin: true + '@typescript/vfs@1.6.4': resolution: {integrity: sha512-PJFXFS4ZJKiJ9Qiuix6Dz/OwEIqHD7Dme1UwZhTK11vR+5dqW2ACbdndWQexBzCx+CPuMe5WBYQWCsFyGlQLlQ==} peerDependencies: @@ -9211,6 +9297,33 @@ packages: peerDependencies: '@urql/core': ^5.0.0 + '@vercel/cli-config@0.2.0': + resolution: {integrity: sha512-fJRRRB7734BDuXZ89yBEaA2ncYhH7bWX30mk04W80J6VAfQc+4iB8lyzAdaGpFV3/vNlkt9VZt+/uoQoWX6UsQ==} + + '@vercel/cli-exec@0.1.1': + resolution: {integrity: sha512-LMRMEai3Z+BODyxGcU9+KiWrS/UElNiOLKiNRfGNt2Vu3NTEmXgFeXG9wBfocAnTe5yJCX/DY6k3k7S/LkPp/g==} + engines: {node: '>= 18'} + + '@vercel/connect@0.2.2': + resolution: {integrity: sha512-XJti9hGkjoMp1BrHIbAsTyl7kseALOWtizYe6S3C3RAq8xDW4OcdLVPYjowkqE0KRuIzhIzIwtpHPfqohqLG1w==} + peerDependencies: + '@ai-sdk/mcp': ^1 || ^2 + '@auth/core': '>=0.37.0' + ai: ^6 || ^7 + better-auth: '>=1.5.0' + eve: '>=0.6.0-beta.1' + peerDependenciesMeta: + '@ai-sdk/mcp': + optional: true + '@auth/core': + optional: true + ai: + optional: true + better-auth: + optional: true + eve: + optional: true + '@vercel/nft@1.5.0': resolution: {integrity: sha512-IWTDeIoWhQ7ZtRO/JRKH+jhmeQvZYhtGPmzw/QGDY+wDCQqfm25P9yIdoAFagu4fWsK4IwZXDFIjrmp5rRm/sA==} engines: {node: '>=20'} @@ -9224,6 +9337,10 @@ packages: resolution: {integrity: sha512-UycprH3T6n3jH0k44NHMa7pnFHGu/N05MjojYr+Mc6I7obkoLIJujSWwin1pCvdy/eOxrI/l3uDLQsmcrOb4ug==} engines: {node: '>= 20'} + '@vercel/oidc@3.6.1': + resolution: {integrity: sha512-8ipTFoiX3WBRrvXLjSrmgAiwtMDQk3EgSxe8N7v2rXBz39NBIIyoGXeVbJRoBcP8WEuVnvjvIQsggbGU7ZKrMw==} + engines: {node: '>= 20'} + '@vitejs/plugin-react@4.7.0': resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -9496,6 +9613,9 @@ packages: resolution: {integrity: sha512-kMwLlxUbduttIgaPdSkmEarFpP+mSY8FEm+QWMBRJwxOHWkri+cxd8KZHO9EMrB9vgUuz+5WEaCawaL5wGVoXg==} engines: {node: '>=18.0.0'} + '@workflow/serde@4.1.0': + resolution: {integrity: sha512-pav4F2BoirECWR7Nf1TKt+2eETcBj7jj4cBefQ8VXQCA6NPkaKeLfj/zMgi+3zYV5ZIBT4GuUiphsj0/b9hPQQ==} + '@xmldom/xmldom@0.8.13': resolution: {integrity: sha512-KRYzxepc14G/CEpEGc3Yn+JKaAeT63smlDr+vjB8jRfgTBBI9wRj/nkQEO+ucV8p8I9bfKLWp37uHgFrbntPvw==} engines: {node: '>=10.0.0'} @@ -9567,6 +9687,12 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 + ai@7.0.0-beta.178: + resolution: {integrity: sha512-kOfIbf23FDkvvfDHOS1gIjImBF9MlYut8fEMlps57vvS622VKL1PeEDLJ181aVd2LPSiDr3SupAMSzI2rEaW3w==} + engines: {node: '>=22'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + ajv-formats@2.1.1: resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: @@ -10132,21 +10258,12 @@ packages: character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - character-entities-legacy@1.1.4: - resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} - character-entities-legacy@3.0.0: resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - character-entities@1.2.4: - resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} - character-entities@2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - character-reference-invalid@1.1.4: - resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} - character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} @@ -10319,9 +10436,6 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} - comma-separated-tokens@1.0.8: - resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} - comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} @@ -10509,6 +10623,14 @@ packages: crossws@0.3.5: resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} + crossws@0.4.6: + resolution: {integrity: sha512-/Wxe9Z007EbJ496j88nToZEvyPZ8PY/wjZJ18Agh/GCA9cYHyLbxtrpdFlFzAw3TV20F0SUYGl0g6PzChbwUrg==} + peerDependencies: + srvx: '>=0.11.5' + peerDependenciesMeta: + srvx: + optional: true + css-declaration-sorter@7.3.1: resolution: {integrity: sha512-gz6x+KkgNCjxq3Var03pRYLhyNfwhkKF1g/yoLgDNtFvVu0/fOLV9C8fFEZRjACp/XQLumjAYo7JVjzH3wLbxA==} engines: {node: ^14 || ^16 || >=18} @@ -11106,6 +11228,24 @@ packages: resolution: {integrity: sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==} engines: {node: '>=8'} + env-runner@0.1.14: + resolution: {integrity: sha512-qdk5mmgFsd+zPg3r1bkZ+IbvpfUfypyDvNhMGypSMRpz7kOa/kI6SpW8fgyukuEM4Lo24M65r+1Ne0DtT7vFBA==} + hasBin: true + peerDependencies: + '@netlify/runtime': ^4.1.23 + '@vercel/queue': ^0.2.0 + miniflare: ^4.20260515.0 + wrangler: ^4.0.0 + peerDependenciesMeta: + '@netlify/runtime': + optional: true + '@vercel/queue': + optional: true + miniflare: + optional: true + wrangler: + optional: true + environment@1.1.0: resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} engines: {node: '>=18'} @@ -11440,6 +11580,47 @@ packages: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} + eve@0.11.7: + resolution: {integrity: sha512-Nwc4dt0Q6vwb0B8eVHjbTvpkYAng8A/cbJwcyFra5agdwiPw2Rl7HlBoilVceSBqdkOuOPFXB+EdyJHdrgylZQ==} + engines: {node: '>=24'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.0.0 + '@sveltejs/kit': ^2.0.0 + ai: 7.0.0-beta.178 + braintrust: ^3.0.0 + just-bash: ^3.0.0 + microsandbox: ^0.5.0 + next: ^16.0.0 + nuxt: ^4.0.0 + react: ^19.0.0 + svelte: ^5.0.0 + vite: ^8.0.0 + vue: ^3.5.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@sveltejs/kit': + optional: true + braintrust: + optional: true + just-bash: + optional: true + microsandbox: + optional: true + next: + optional: true + nuxt: + optional: true + react: + optional: true + svelte: + optional: true + vite: + optional: true + vue: + optional: true + event-target-shim@5.0.1: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} @@ -11469,6 +11650,10 @@ packages: resolution: {integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==} engines: {node: '>=18.0.0'} + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} @@ -12021,6 +12206,10 @@ packages: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} @@ -12144,6 +12333,16 @@ packages: h3@1.15.11: resolution: {integrity: sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==} + h3@2.0.1-rc.22: + resolution: {integrity: sha512-Esv0DMIuPkCTSWCA0vO73vcTqwzH1wjSrAO1TXNu/K3up1sZHa9EKMapbmxCDYBeymC3fVTk4qxp7ogQWQ+KgA==} + engines: {node: '>=20.11.1'} + hasBin: true + peerDependencies: + crossws: ^0.4.1 + peerDependenciesMeta: + crossws: + optional: true + hachure-fill@0.5.2: resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==} @@ -12200,9 +12399,6 @@ packages: hast-util-is-element@3.0.0: resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} - hast-util-parse-selector@2.2.5: - resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} - hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} @@ -12230,9 +12426,6 @@ packages: hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - hastscript@6.0.0: - resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} - hastscript@9.0.1: resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} @@ -12352,6 +12545,10 @@ packages: httpxy@0.5.3: resolution: {integrity: sha512-SMS9V6Sn7VWaS11lYhoAr0ceoaiolTWf4jYdJn0NJhCdKMu9R2H9Fh0LBDWBHQF6HRLI1PmaePYsjanSpE5PEw==} + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} @@ -12496,15 +12693,9 @@ packages: iron-webcrypto@1.2.1: resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} - is-alphabetical@1.0.4: - resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} - is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - is-alphanumerical@1.0.4: - resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} - is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} @@ -12554,9 +12745,6 @@ packages: resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} engines: {node: '>= 0.4'} - is-decimal@1.0.4: - resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} - is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} @@ -12594,9 +12782,6 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-hexadecimal@1.0.4: - resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} - is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} @@ -13757,6 +13942,10 @@ packages: resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==} engines: {node: '>=4'} + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} @@ -13997,6 +14186,40 @@ packages: sass: optional: true + nf3@0.3.17: + resolution: {integrity: sha512-N9zEWySuJFw+gR0lhS5863YsvNeudOdqRyFvNb+jMXbeTJOdrjDqkCpDginIZfUm0LzT1t1nCRiDeqQm/8kirQ==} + + nitro@3.0.260610-beta: + resolution: {integrity: sha512-KPb4L5yaF/Rx/xoGMpgHRJvZhbhGiqbRKOwwPLCH9jKTKTsEUHLjnJas85AeCzaswqa8Wi52eQBtRsODC4PS0Q==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@vercel/queue': ^0.3.0 + dotenv: '*' + giget: '*' + jiti: ^2.7.0 + rollup: ^4.61.1 + vite: ^7 || ^8 + xml2js: ^0.6.2 + zephyr-agent: ^0.2.0 + peerDependenciesMeta: + '@vercel/queue': + optional: true + dotenv: + optional: true + giget: + optional: true + jiti: + optional: true + rollup: + optional: true + vite: + optional: true + xml2js: + optional: true + zephyr-agent: + optional: true + nitropack@2.13.4: resolution: {integrity: sha512-tX7bT6zxNeMwkc6hxHiZeUoTOjVrcjoh1Z3cmxOlodIqjl4HISgqfGOmkWSayky3Nv9Z5+KQH52F8nmXJY5AAA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -14075,6 +14298,10 @@ packages: resolution: {integrity: sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==} engines: {node: ^16.14.0 || >=18.0.0} + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + npm-run-path@5.3.0: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -14160,6 +14387,9 @@ packages: obug@2.1.1: resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} + ocache@0.1.5: + resolution: {integrity: sha512-kNNnkkVQup/QDvmTz8Q84wc2ntiyoVHDxa6eHWKt5qdGAmFRBIxy83rxgCYEjW0x06UJ9E3P6VgM2yY4rOBH4w==} + octokit@5.0.5: resolution: {integrity: sha512-4+/OFSqOjoyULo7eN7EA97DE0Xydj/PW5aIckxqQIoFjFwqXKuFCvXUJObyJfBF9Khu4RL/jlDRI9FPaMGfPnw==} engines: {node: '>= 20'} @@ -14203,6 +14433,10 @@ packages: resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==} engines: {node: '>=4'} + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} @@ -14288,6 +14522,10 @@ packages: resolution: {integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==} engines: {node: '>=6'} + os-paths@4.4.0: + resolution: {integrity: sha512-wrAwOeXp1RRMFfQY8Sy7VaGVmPocaLwSFOYCGKSyo8qmJ+/yaafCl5BCA1IQZWqFSRBrKDYFeR9d/VyQzfH/jg==} + engines: {node: '>= 6.0'} + own-keys@1.0.1: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} @@ -14377,9 +14615,6 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-entities@2.0.0: - resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} - parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} @@ -14891,9 +15126,6 @@ packages: proper-lockfile@4.1.2: resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} - property-information@5.6.0: - resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} - property-information@7.1.0: resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} @@ -15152,11 +15384,6 @@ packages: '@types/react': optional: true - react-syntax-highlighter@15.6.6: - resolution: {integrity: sha512-DgXrc+AZF47+HvAPEmn7Ua/1p10jNoVZVI/LoPiYdtY+OM+/nG5yefLHKJwdKqY1adMuHFbeyBaG9j64ML7vTw==} - peerDependencies: - react: '>= 0.14.0' - react-syntax-highlighter@16.1.1: resolution: {integrity: sha512-PjVawBGy80C6YbC5DDZJeUjBmC7skaoEUdvfFQediQHgCL7aKyVHe57SaJGfQsloGDac+gCpTfRdtxzWWKmCXA==} engines: {node: '>= 16.20.2'} @@ -15262,9 +15489,6 @@ packages: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} - refractor@3.6.0: - resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==} - refractor@5.0.0: resolution: {integrity: sha512-QXOrHQF5jOpjjLfiNk5GFnWhRXvxjUVnlFxkeDmewR5sXkr3iM46Zo+CnRR8B+MDVqkULW4EcLVcRBNOPXHosw==} @@ -15450,8 +15674,8 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - rolldown@1.0.2: - resolution: {integrity: sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g==} + rolldown@1.1.2: + resolution: {integrity: sha512-x0CrQQqCXWGeI8dTvFfN/Dnv3yMKT9hv5jFjlOreKAx9wqLq9wz7VvLLHyaAXC90/CpggTu9SisSbsJJTPSjNQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -15745,9 +15969,6 @@ packages: resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} engines: {node: '>= 12'} - space-separated-tokens@1.1.5: - resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} - space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} @@ -15890,6 +16111,10 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} @@ -16655,6 +16880,80 @@ packages: uploadthing: optional: true + unstorage@2.0.0-alpha.7: + resolution: {integrity: sha512-ELPztchk2zgFJnakyodVY3vJWGW9jy//keJ32IOJVGUMyaPydwcA1FtVvWqT0TNRch9H+cMNEGllfVFfScImog==} + peerDependencies: + '@azure/app-configuration': ^1.11.0 + '@azure/cosmos': ^4.9.1 + '@azure/data-tables': ^13.3.2 + '@azure/identity': ^4.13.0 + '@azure/keyvault-secrets': ^4.10.0 + '@azure/storage-blob': ^12.31.0 + '@capacitor/preferences': ^6 || ^7 || ^8 + '@deno/kv': '>=0.13.0' + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 + '@planetscale/database': ^1.19.0 + '@upstash/redis': ^1.36.2 + '@vercel/blob': '>=0.27.3' + '@vercel/functions': ^2.2.12 || ^3.0.0 + '@vercel/kv': ^1.0.1 + aws4fetch: ^1.0.20 + chokidar: ^4 || ^5 + db0: '>=0.3.4' + idb-keyval: ^6.2.2 + ioredis: ^5.9.3 + lru-cache: ^11.2.6 + mongodb: ^6 || ^7 + ofetch: '*' + uploadthing: ^7.7.4 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@deno/kv': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/blob': + optional: true + '@vercel/functions': + optional: true + '@vercel/kv': + optional: true + aws4fetch: + optional: true + chokidar: + optional: true + db0: + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + lru-cache: + optional: true + mongodb: + optional: true + ofetch: + optional: true + uploadthing: + optional: true + untruncate-json@0.0.1: resolution: {integrity: sha512-4W9enDK4X1y1s2S/Rz7ysw6kDuMS3VmRjMFg7GZrNO+98OSe+x5Lh7PKYoVjy3lW/1wmhs6HW0lusnQRHgMarA==} @@ -17217,6 +17516,14 @@ packages: resolution: {integrity: sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==} engines: {node: '>=10.0.0'} + xdg-app-paths@5.5.1: + resolution: {integrity: sha512-hI3flOB4PLZIy5prbtTpirobtPE2ZtZ52szO+2mM9Efp6ErM398La+C1lIpNWDfNoQk+6Lsi6nMcCwVB7pxeMQ==} + engines: {node: '>= 6.0'} + + xdg-portable@7.3.0: + resolution: {integrity: sha512-sqMMuL1rc0FmMBOzCpd0yuy9trqF2yTTVe+E9ogwCSWQCdDEtQUwrZPT6AxqtsFGRNxycgncbP/xmOOSPw5ZUw==} + engines: {node: '>= 6.0'} + xml-name-validator@5.0.0: resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} engines: {node: '>=18'} @@ -17240,10 +17547,6 @@ packages: xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - xxhash-wasm@1.1.0: resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} @@ -17340,9 +17643,15 @@ packages: zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + zod@4.1.11: + resolution: {integrity: sha512-WPsqwxITS2tzx1bzhIKsEs19ABD5vmCVa4xBo2tq/SrV4RNZtfws1EnCWQXM6yh8bD08a1idvkB5MZSBiZsjwg==} + zod@4.3.6: resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} + zod@4.4.3: + resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} + zustand@4.5.7: resolution: {integrity: sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==} engines: {node: '>=12.7.0'} @@ -17361,6 +17670,57 @@ packages: zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} +catalogs: + default: + '@types/node': + specifier: ^22.15.32 + version: 22.19.19 + '@types/react': + specifier: '>=19.0.0' + version: 19.2.14 + '@typescript-eslint/eslint-plugin': + specifier: ^8.56.1 + version: 8.59.4 + eslint: + specifier: ^9.0.0 + version: 9.29.0 + eslint-config-prettier: + specifier: ^10.1.8 + version: 10.1.8 + eslint-plugin-prettier: + specifier: ^5.5.5 + version: 5.5.5 + eslint-plugin-react-hooks: + specifier: ^7.0.1 + version: 7.1.1 + eslint-plugin-react-refresh: + specifier: ^0.5.2 + version: 0.5.2 + eslint-plugin-storybook: + specifier: ^10.2.14 + version: 10.2.14 + eslint-plugin-unused-imports: + specifier: ^4.4.1 + version: 4.4.1 + jsdom: + specifier: ^26.1.0 + version: 26.1.0 + react: + specifier: ^18.3.1 || ^19.0.0 + version: 19.2.4 + react-dom: + specifier: ^18.0.0 || ^19.0.0 + version: 19.2.4 + typescript: + specifier: ^5.9.3 + version: 5.9.3 + zod: + specifier: ^3.25.0 || ^4.0.0 + version: 4.3.6 + zustand: + specifier: ^4.5.5 + version: 4.5.7 + snapshots: '@0no-co/graphql.web@1.2.0(graphql@16.14.0)': @@ -17495,6 +17855,13 @@ snapshots: '@vercel/oidc': 3.2.0 zod: 4.3.6 + '@ai-sdk/gateway@4.0.0-beta.109(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) + '@vercel/oidc': 3.2.0 + zod: 4.4.3 + '@ai-sdk/google@2.0.74(zod@3.25.76)': dependencies: '@ai-sdk/provider': 2.0.3 @@ -17520,6 +17887,12 @@ snapshots: '@ai-sdk/provider-utils': 4.0.27(zod@4.3.6) zod: 4.3.6 + '@ai-sdk/openai@3.0.65(zod@4.4.3)': + dependencies: + '@ai-sdk/provider': 3.0.10 + '@ai-sdk/provider-utils': 4.0.27(zod@4.4.3) + zod: 4.4.3 + '@ai-sdk/provider-utils@3.0.20(zod@4.3.6)': dependencies: '@ai-sdk/provider': 2.0.1 @@ -17548,6 +17921,21 @@ snapshots: eventsource-parser: 3.0.8 zod: 4.3.6 + '@ai-sdk/provider-utils@4.0.27(zod@4.4.3)': + dependencies: + '@ai-sdk/provider': 3.0.10 + '@standard-schema/spec': 1.1.0 + eventsource-parser: 3.0.8 + zod: 4.4.3 + + '@ai-sdk/provider-utils@5.0.0-beta.49(zod@4.4.3)': + dependencies: + '@ai-sdk/provider': 4.0.0-beta.19 + '@standard-schema/spec': 1.1.0 + '@workflow/serde': 4.1.0 + eventsource-parser: 3.0.8 + zod: 4.4.3 + '@ai-sdk/provider@1.1.3': dependencies: json-schema: 0.4.0 @@ -17576,6 +17964,10 @@ snapshots: dependencies: json-schema: 0.4.0 + '@ai-sdk/provider@4.0.0-beta.19': + dependencies: + json-schema: 0.4.0 + '@ai-sdk/react@3.0.193(react@19.2.3)(zod@4.3.6)': dependencies: '@ai-sdk/provider-utils': 4.0.27(zod@4.3.6) @@ -17619,11 +18011,11 @@ snapshots: package-manager-detector: 1.6.0 tinyexec: 1.2.2 - '@anthropic-ai/sdk@0.91.1(zod@4.3.6)': + '@anthropic-ai/sdk@0.91.1(zod@4.4.3)': dependencies: json-schema-to-ts: 3.1.1 optionalDependencies: - zod: 4.3.6 + zod: 4.4.3 '@arethetypeswrong/cli@0.18.2': dependencies: @@ -18943,9 +19335,9 @@ snapshots: '@dxup/unimport@0.1.2': {} - '@earendil-works/pi-agent-core@0.79.4(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.3.6))(ws@8.21.0)(zod@4.3.6)': + '@earendil-works/pi-agent-core@0.79.4(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(ws@8.21.0)(zod@4.4.3)': dependencies: - '@earendil-works/pi-ai': 0.79.4(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.3.6))(ws@8.21.0)(zod@4.3.6) + '@earendil-works/pi-ai': 0.79.4(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) ignore: 7.0.5 typebox: 1.1.38 yaml: 2.9.0 @@ -18957,16 +19349,16 @@ snapshots: - ws - zod - '@earendil-works/pi-ai@0.79.4(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.3.6))(ws@8.21.0)(zod@4.3.6)': + '@earendil-works/pi-ai@0.79.4(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(ws@8.21.0)(zod@4.4.3)': dependencies: - '@anthropic-ai/sdk': 0.91.1(zod@4.3.6) + '@anthropic-ai/sdk': 0.91.1(zod@4.4.3) '@aws-sdk/client-bedrock-runtime': 3.1048.0 - '@google/genai': 1.52.0(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.3.6)) + '@google/genai': 1.52.0(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3)) '@mistralai/mistralai': 2.2.1 '@smithy/node-http-handler': 4.7.3 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 - openai: 6.26.0(ws@8.21.0)(zod@4.3.6) + openai: 6.26.0(ws@8.21.0)(zod@4.4.3) partial-json: 0.1.7 typebox: 1.1.38 transitivePeerDependencies: @@ -18977,10 +19369,10 @@ snapshots: - ws - zod - '@earendil-works/pi-coding-agent@0.79.4(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.3.6))(ws@8.21.0)(zod@4.3.6)': + '@earendil-works/pi-coding-agent@0.79.4(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(ws@8.21.0)(zod@4.4.3)': dependencies: - '@earendil-works/pi-agent-core': 0.79.4(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.3.6))(ws@8.21.0)(zod@4.3.6) - '@earendil-works/pi-ai': 0.79.4(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.3.6))(ws@8.21.0)(zod@4.3.6) + '@earendil-works/pi-agent-core': 0.79.4(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) + '@earendil-works/pi-ai': 0.79.4(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) '@earendil-works/pi-tui': 0.79.4 '@silvia-odwyer/photon-node': 0.3.4 chalk: 5.6.2 @@ -19018,11 +19410,22 @@ snapshots: tslib: 2.8.1 optional: true + '@emnapi/core@1.11.1': + dependencies: + '@emnapi/wasi-threads': 1.2.2 + tslib: 2.8.1 + optional: true + '@emnapi/runtime@1.10.0': dependencies: tslib: 2.8.1 optional: true + '@emnapi/runtime@1.11.1': + dependencies: + tslib: 2.8.1 + optional: true + '@emnapi/runtime@1.8.1': dependencies: tslib: 2.8.1 @@ -19033,6 +19436,11 @@ snapshots: tslib: 2.8.1 optional: true + '@emnapi/wasi-threads@1.2.2': + dependencies: + tslib: 2.8.1 + optional: true + '@emotion/babel-plugin@11.13.5': dependencies: '@babel/helper-module-imports': 7.29.7 @@ -19756,14 +20164,14 @@ snapshots: '@tailwindcss/oxide': 4.2.2 tailwindcss: 4.2.1 - '@google/genai@1.52.0(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.3.6))': + '@google/genai@1.52.0(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))': dependencies: google-auth-library: 10.7.0 p-retry: 4.6.2 protobufjs: 7.6.1 ws: 8.21.0 optionalDependencies: - '@modelcontextprotocol/sdk': 1.29.0(@cfworker/json-schema@4.1.1)(zod@4.3.6) + '@modelcontextprotocol/sdk': 1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) transitivePeerDependencies: - bufferutil - supports-color @@ -19882,10 +20290,10 @@ snapshots: - bufferutil - utf-8-validate - '@hono/zod-validator@0.7.6(hono@4.12.23)(zod@4.3.6)': + '@hono/zod-validator@0.7.6(hono@4.12.23)(zod@4.4.3)': dependencies: hono: 4.12.23 - zod: 4.3.6 + zod: 4.4.3 '@humanfs/core@0.19.1': {} @@ -20180,14 +20588,14 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 25.3.2 + '@types/node': 24.13.2 jest-mock: 29.7.0 '@jest/fake-timers@29.7.0': dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 25.3.2 + '@types/node': 24.13.2 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -20221,7 +20629,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 25.3.2 + '@types/node': 24.13.2 '@types/yargs': 17.0.35 chalk: 4.1.2 @@ -20302,7 +20710,7 @@ snapshots: langsmith: 0.6.3(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.39.0(ws@8.21.0)(zod@4.3.6))(ws@8.21.0) mustache: 4.2.0 p-queue: 6.6.2 - zod: 4.3.6 + zod: 4.4.3 transitivePeerDependencies: - '@opentelemetry/api' - '@opentelemetry/exporter-trace-otlp-proto' @@ -20315,7 +20723,7 @@ snapshots: '@babel/code-frame': 7.29.7 '@hono/node-server': 1.19.14(hono@4.12.23) '@hono/node-ws': 1.3.1(@hono/node-server@1.19.14(hono@4.12.23))(hono@4.12.23) - '@hono/zod-validator': 0.7.6(hono@4.12.23)(zod@4.3.6) + '@hono/zod-validator': 0.7.6(hono@4.12.23)(zod@4.4.3) '@langchain/core': 1.1.48(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.39.0(ws@8.21.0)(zod@4.3.6))(ws@8.21.0) '@langchain/langgraph': 1.4.1(@langchain/core@1.1.48(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.39.0(ws@8.21.0)(zod@4.3.6))(ws@8.21.0))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vue@3.5.34(typescript@5.9.3))(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6) '@langchain/langgraph-checkpoint': 1.1.0(@langchain/core@1.1.48(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.39.0(ws@8.21.0)(zod@4.3.6))(ws@8.21.0)) @@ -20337,7 +20745,7 @@ snapshots: uuid: 14.0.0 winston: 3.19.0 winston-console-format: 1.0.8 - zod: 4.3.6 + zod: 4.4.3 optionalDependencies: '@langchain/langgraph-sdk': 1.9.21(@langchain/core@1.1.48(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.39.0(ws@8.21.0)(zod@4.3.6))(ws@8.21.0))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vue@3.5.34(typescript@5.9.3)) transitivePeerDependencies: @@ -20377,7 +20785,7 @@ snapshots: winston: 3.19.0 winston-console-format: 1.0.8 yaml: 2.8.3 - zod: 4.3.6 + zod: 4.4.3 transitivePeerDependencies: - '@langchain/core' - '@langchain/langgraph' @@ -20440,7 +20848,7 @@ snapshots: commander: 13.1.0 esbuild: 0.25.12 esbuild-plugin-tailwindcss: 2.2.0 - zod: 4.3.6 + zod: 4.4.3 '@langchain/langgraph@1.4.1(@langchain/core@1.1.48(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.39.0(ws@8.21.0)(zod@4.3.6))(ws@8.21.0))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vue@3.5.34(typescript@5.9.3))(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6)': dependencies: @@ -20463,8 +20871,8 @@ snapshots: dependencies: '@langchain/core': 0.3.80(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@4.104.0(ws@8.21.0)(zod@4.3.6))(ws@8.21.0) js-tiktoken: 1.0.21 - openai: 6.39.0(ws@8.21.0)(zod@4.3.6) - zod: 4.3.6 + openai: 6.39.0(ws@8.21.0)(zod@4.4.3) + zod: 4.4.3 transitivePeerDependencies: - ws optional: true @@ -20473,8 +20881,8 @@ snapshots: dependencies: '@langchain/core': 1.1.48(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.39.0(ws@8.21.0)(zod@4.3.6))(ws@8.21.0) js-tiktoken: 1.0.21 - openai: 6.39.0(ws@8.21.0)(zod@4.3.6) - zod: 4.3.6 + openai: 6.39.0(ws@8.21.0)(zod@4.4.3) + zod: 4.4.3 transitivePeerDependencies: - ws @@ -20710,8 +21118,8 @@ snapshots: '@mistralai/mistralai@2.2.1': dependencies: ws: 8.21.0 - zod: 4.3.6 - zod-to-json-schema: 3.25.2(zod@4.3.6) + zod: 4.4.3 + zod-to-json-schema: 3.25.2(zod@4.4.3) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -20764,6 +21172,31 @@ snapshots: transitivePeerDependencies: - supports-color + '@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3)': + dependencies: + '@hono/node-server': 1.19.14(hono@4.12.23) + ajv: 8.18.0 + ajv-formats: 3.0.1(ajv@8.18.0) + content-type: 1.0.5 + cors: 2.8.6 + cross-spawn: 7.0.6 + eventsource: 3.0.7 + eventsource-parser: 3.0.6 + express: 5.2.1 + express-rate-limit: 8.3.2(express@5.2.1) + hono: 4.12.23 + jose: 6.2.2 + json-schema-typed: 8.0.2 + pkce-challenge: 5.0.1 + raw-body: 3.0.2 + zod: 4.4.3 + zod-to-json-schema: 3.25.2(zod@4.4.3) + optionalDependencies: + '@cfworker/json-schema': 4.1.1 + transitivePeerDependencies: + - supports-color + optional: true + '@mui/core-downloads-tracker@6.5.0': {} '@mui/icons-material@6.5.0(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.3))(@types/react@19.2.14)(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react@19.2.3)': @@ -20920,6 +21353,13 @@ snapshots: '@tybys/wasm-util': 0.10.2 optional: true + '@napi-rs/wasm-runtime@1.1.5(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': + dependencies: + '@emnapi/core': 1.11.1 + '@emnapi/runtime': 1.11.1 + '@tybys/wasm-util': 0.10.2 + optional: true + '@next/env@15.5.18': {} '@next/env@16.1.6': {} @@ -21063,7 +21503,7 @@ snapshots: fzf: 0.5.2 giget: 3.2.0 jiti: 2.7.0 - listhen: 1.10.0 + listhen: 1.10.0(srvx@0.11.16) nypm: 0.6.6 ofetch: 1.5.1 ohash: 2.0.11 @@ -21199,7 +21639,7 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/nitro-server@3.21.6(db0@0.3.4)(ioredis@5.10.1)(magicast@0.5.2)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@types/node@25.3.2)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(eslint@9.29.0(jiti@2.7.0))(ioredis@5.10.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(typescript@5.9.3)(vite@7.3.3(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))(vue-tsc@2.2.12(typescript@5.9.3))(yaml@2.9.0))(oxc-parser@0.131.0)(rolldown@1.0.2)(typescript@5.9.3)': + '@nuxt/nitro-server@3.21.6(db0@0.3.4)(ioredis@5.10.1)(magicast@0.5.2)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@types/node@25.3.2)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(eslint@9.29.0(jiti@2.7.0))(ioredis@5.10.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rolldown@1.1.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.89.2)(srvx@0.11.16)(terser@5.48.0)(tsx@4.20.3)(typescript@5.9.3)(vite@7.3.3(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))(vue-tsc@2.2.12(typescript@5.9.3))(yaml@2.9.0))(oxc-parser@0.131.0)(rolldown@1.1.2)(srvx@0.11.16)(typescript@5.9.3)': dependencies: '@nuxt/devalue': 2.0.2 '@nuxt/kit': 3.21.6(magicast@0.5.2) @@ -21216,8 +21656,8 @@ snapshots: impound: 1.1.5 klona: 2.0.6 mocked-exports: 0.1.1 - nitropack: 2.13.4(oxc-parser@0.131.0)(rolldown@1.0.2) - nuxt: 3.21.6(@parcel/watcher@2.5.6)(@types/node@25.3.2)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(eslint@9.29.0(jiti@2.7.0))(ioredis@5.10.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(typescript@5.9.3)(vite@7.3.3(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))(vue-tsc@2.2.12(typescript@5.9.3))(yaml@2.9.0) + nitropack: 2.13.4(oxc-parser@0.131.0)(rolldown@1.1.2)(srvx@0.11.16) + nuxt: 3.21.6(@parcel/watcher@2.5.6)(@types/node@25.3.2)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(eslint@9.29.0(jiti@2.7.0))(ioredis@5.10.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rolldown@1.1.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.89.2)(srvx@0.11.16)(terser@5.48.0)(tsx@4.20.3)(typescript@5.9.3)(vite@7.3.3(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))(vue-tsc@2.2.12(typescript@5.9.3))(yaml@2.9.0) ohash: 2.0.11 pathe: 2.0.3 pkg-types: 2.3.1 @@ -21261,6 +21701,7 @@ snapshots: - react-native-b4a - rolldown - sqlite3 + - srvx - supports-color - typescript - uploadthing @@ -21283,7 +21724,7 @@ snapshots: rc9: 3.0.1 std-env: 4.1.0 - '@nuxt/vite-builder@3.21.6(@types/node@25.3.2)(eslint@9.29.0(jiti@2.7.0))(lightningcss@1.32.0)(magicast@0.5.2)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@types/node@25.3.2)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(eslint@9.29.0(jiti@2.7.0))(ioredis@5.10.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(typescript@5.9.3)(vite@7.3.3(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))(vue-tsc@2.2.12(typescript@5.9.3))(yaml@2.9.0))(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(typescript@5.9.3)(vue-tsc@2.2.12(typescript@5.9.3))(vue@3.5.34(typescript@5.9.3))(yaml@2.9.0)': + '@nuxt/vite-builder@3.21.6(@types/node@25.3.2)(eslint@9.29.0(jiti@2.7.0))(lightningcss@1.32.0)(magicast@0.5.2)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@types/node@25.3.2)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(eslint@9.29.0(jiti@2.7.0))(ioredis@5.10.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rolldown@1.1.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.89.2)(srvx@0.11.16)(terser@5.48.0)(tsx@4.20.3)(typescript@5.9.3)(vite@7.3.3(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))(vue-tsc@2.2.12(typescript@5.9.3))(yaml@2.9.0))(optionator@0.9.4)(rolldown@1.1.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(typescript@5.9.3)(vue-tsc@2.2.12(typescript@5.9.3))(vue@3.5.34(typescript@5.9.3))(yaml@2.9.0)': dependencies: '@nuxt/kit': 3.21.6(magicast@0.5.2) '@rollup/plugin-replace': 6.0.3(rollup@4.60.4) @@ -21302,7 +21743,7 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 3.21.6(@parcel/watcher@2.5.6)(@types/node@25.3.2)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(eslint@9.29.0(jiti@2.7.0))(ioredis@5.10.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(typescript@5.9.3)(vite@7.3.3(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))(vue-tsc@2.2.12(typescript@5.9.3))(yaml@2.9.0) + nuxt: 3.21.6(@parcel/watcher@2.5.6)(@types/node@25.3.2)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(eslint@9.29.0(jiti@2.7.0))(ioredis@5.10.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rolldown@1.1.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.89.2)(srvx@0.11.16)(terser@5.48.0)(tsx@4.20.3)(typescript@5.9.3)(vite@7.3.3(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))(vue-tsc@2.2.12(typescript@5.9.3))(yaml@2.9.0) nypm: 0.6.6 ohash: 2.0.11 pathe: 2.0.3 @@ -21319,8 +21760,8 @@ snapshots: vue: 3.5.34(typescript@5.9.3) vue-bundle-renderer: 2.2.0 optionalDependencies: - rolldown: 1.0.2 - rollup-plugin-visualizer: 7.0.1(rolldown@1.0.2)(rollup@4.60.4) + rolldown: 1.1.2 + rollup-plugin-visualizer: 7.0.1(rolldown@1.1.2)(rollup@4.60.4) transitivePeerDependencies: - '@biomejs/biome' - '@types/node' @@ -21574,11 +22015,11 @@ snapshots: '@opentelemetry/semantic-conventions@1.41.1': {} - '@openuidev/lang-core@0.2.5(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.3.6))(zod@4.3.6)': + '@openuidev/lang-core@0.2.5(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(zod@4.4.3)': dependencies: - zod: 4.3.6 + zod: 4.4.3 optionalDependencies: - '@modelcontextprotocol/sdk': 1.29.0(@cfworker/json-schema@4.1.1)(zod@4.3.6) + '@modelcontextprotocol/sdk': 1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) '@openuidev/react-headless@0.8.2(react@19.2.4)(zustand@4.5.7(@types/react@19.2.14)(react@19.2.4))': dependencies: @@ -21589,26 +22030,26 @@ snapshots: '@openuidev/react-lang@0.1.3(react@19.2.0)': dependencies: react: 19.2.0 - zod: 4.3.6 + zod: 4.4.3 '@openuidev/react-lang@0.1.3(react@19.2.4)': dependencies: react: 19.2.4 - zod: 4.3.6 + zod: 4.4.3 - '@openuidev/react-lang@0.2.6(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.3.6))(react@19.2.4)(zod@4.3.6)': + '@openuidev/react-lang@0.2.6(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(react@19.2.4)(zod@4.4.3)': dependencies: - '@openuidev/lang-core': 0.2.5(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.3.6))(zod@4.3.6) + '@openuidev/lang-core': 0.2.5(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(zod@4.4.3) react: 19.2.4 - zod: 4.3.6 + zod: 4.4.3 optionalDependencies: - '@modelcontextprotocol/sdk': 1.29.0(@cfworker/json-schema@4.1.1)(zod@4.3.6) + '@modelcontextprotocol/sdk': 1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) - '@openuidev/react-ui@0.11.8(@openuidev/react-headless@0.8.2(react@19.2.4)(zustand@4.5.7(@types/react@19.2.14)(react@19.2.4)))(@openuidev/react-lang@0.2.6(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.3.6))(react@19.2.4)(zod@4.3.6))(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6)(zustand@4.5.7(@types/react@19.2.14)(react@19.2.4))': + '@openuidev/react-ui@0.11.9(@openuidev/react-headless@0.8.2(react@19.2.4)(zustand@4.5.7(@types/react@19.2.14)(react@19.2.4)))(@openuidev/react-lang@0.2.6(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(react@19.2.4)(zod@4.4.3))(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.4.3)(zustand@4.5.7(@types/react@19.2.14)(react@19.2.4))': dependencies: '@floating-ui/react-dom': 2.1.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@openuidev/react-headless': 0.8.2(react@19.2.4)(zustand@4.5.7(@types/react@19.2.14)(react@19.2.4)) - '@openuidev/react-lang': 0.2.6(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.3.6))(react@19.2.4)(zod@4.3.6) + '@openuidev/react-lang': 0.2.6(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(react@19.2.4)(zod@4.4.3) '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-aspect-ratio': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-checkbox': 1.3.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -21631,7 +22072,7 @@ snapshots: react-day-picker: 9.14.0(react@19.2.4) react-dom: 19.2.4(react@19.2.4) react-markdown: 10.1.0(@types/react@19.2.14)(react@19.2.4) - react-syntax-highlighter: 15.6.6(react@19.2.4) + react-syntax-highlighter: 16.1.1(react@19.2.4) recharts: 2.15.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) rehype-katex: 7.0.1 remark-breaks: 4.0.0 @@ -21639,7 +22080,7 @@ snapshots: remark-gfm: 4.0.1 remark-math: 6.0.0 tiny-invariant: 1.3.3 - zod: 4.3.6 + zod: 4.4.3 zustand: 4.5.7(@types/react@19.2.14)(react@19.2.4) transitivePeerDependencies: - '@types/react' @@ -21780,8 +22221,7 @@ snapshots: '@oxc-project/types@0.131.0': {} - '@oxc-project/types@0.132.0': - optional: true + '@oxc-project/types@0.137.0': {} '@oxc-transform/binding-android-arm-eabi@0.131.0': optional: true @@ -25349,7 +25789,7 @@ snapshots: '@rolldown/binding-android-arm64@1.0.0-rc.17': optional: true - '@rolldown/binding-android-arm64@1.0.2': + '@rolldown/binding-android-arm64@1.1.2': optional: true '@rolldown/binding-darwin-arm64@1.0.0-rc.16': {} @@ -25357,67 +25797,67 @@ snapshots: '@rolldown/binding-darwin-arm64@1.0.0-rc.17': optional: true - '@rolldown/binding-darwin-arm64@1.0.2': + '@rolldown/binding-darwin-arm64@1.1.2': optional: true '@rolldown/binding-darwin-x64@1.0.0-rc.17': optional: true - '@rolldown/binding-darwin-x64@1.0.2': + '@rolldown/binding-darwin-x64@1.1.2': optional: true '@rolldown/binding-freebsd-x64@1.0.0-rc.17': optional: true - '@rolldown/binding-freebsd-x64@1.0.2': + '@rolldown/binding-freebsd-x64@1.1.2': optional: true '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.2': + '@rolldown/binding-linux-arm-gnueabihf@1.1.2': optional: true '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.2': + '@rolldown/binding-linux-arm64-gnu@1.1.2': optional: true '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.2': + '@rolldown/binding-linux-arm64-musl@1.1.2': optional: true '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.2': + '@rolldown/binding-linux-ppc64-gnu@1.1.2': optional: true '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.2': + '@rolldown/binding-linux-s390x-gnu@1.1.2': optional: true '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.2': + '@rolldown/binding-linux-x64-gnu@1.1.2': optional: true '@rolldown/binding-linux-x64-musl@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-x64-musl@1.0.2': + '@rolldown/binding-linux-x64-musl@1.1.2': optional: true '@rolldown/binding-openharmony-arm64@1.0.0-rc.17': optional: true - '@rolldown/binding-openharmony-arm64@1.0.2': + '@rolldown/binding-openharmony-arm64@1.1.2': optional: true '@rolldown/binding-wasm32-wasi@1.0.0-rc.17': @@ -25427,23 +25867,23 @@ snapshots: '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@rolldown/binding-wasm32-wasi@1.0.2': + '@rolldown/binding-wasm32-wasi@1.1.2': dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + '@emnapi/core': 1.11.1 + '@emnapi/runtime': 1.11.1 + '@napi-rs/wasm-runtime': 1.1.5(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) optional: true '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.17': optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.2': + '@rolldown/binding-win32-arm64-msvc@1.1.2': optional: true '@rolldown/binding-win32-x64-msvc@1.0.0-rc.17': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.2': + '@rolldown/binding-win32-x64-msvc@1.1.2': optional: true '@rolldown/pluginutils@1.0.0-beta.27': {} @@ -26079,6 +26519,28 @@ snapshots: '@opentelemetry/api': 1.9.1 typescript: 5.9.3 + '@sveltejs/kit@2.61.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@5.9.3)(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))': + dependencies: + '@standard-schema/spec': 1.1.0 + '@sveltejs/acorn-typescript': 1.0.10(acorn@8.16.0) + '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)) + '@types/cookie': 0.6.0 + acorn: 8.16.0 + cookie: 1.1.1 + devalue: 5.8.1 + esm-env: 1.2.2 + kleur: 4.1.5 + magic-string: 0.30.21 + mrmime: 2.0.1 + set-cookie-parser: 3.1.0 + sirv: 3.0.2 + svelte: 5.55.9(@typescript-eslint/types@8.59.4) + vite: 7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0) + optionalDependencies: + '@opentelemetry/api': 1.9.1 + typescript: 5.9.3 + optional: true + '@sveltejs/package@2.5.7(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@5.9.3)': dependencies: chokidar: 5.0.0 @@ -26099,6 +26561,16 @@ snapshots: transitivePeerDependencies: - supports-color + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))': + dependencies: + '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)) + debug: 4.4.3 + svelte: 5.55.9(@typescript-eslint/types@8.59.4) + vite: 7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0) + transitivePeerDependencies: + - supports-color + optional: true + '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@6.4.2(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))': dependencies: '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@6.4.2(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@6.4.2(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)) @@ -26112,6 +26584,20 @@ snapshots: transitivePeerDependencies: - supports-color + '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))': + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)) + debug: 4.4.3 + deepmerge: 4.3.1 + kleur: 4.1.5 + magic-string: 0.30.21 + svelte: 5.55.9(@typescript-eslint/types@8.59.4) + vite: 7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0) + vitefu: 1.1.2(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)) + transitivePeerDependencies: + - supports-color + optional: true + '@swc/helpers@0.5.15': dependencies: tslib: 2.8.1 @@ -26386,7 +26872,7 @@ snapshots: '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 25.3.2 + '@types/node': 24.13.2 '@types/chai@5.2.3': dependencies: @@ -26395,13 +26881,13 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 25.3.2 + '@types/node': 24.13.2 '@types/cookie@0.6.0': {} '@types/cors@2.8.19': dependencies: - '@types/node': 25.3.2 + '@types/node': 24.13.2 '@types/d3-array@3.2.1': {} @@ -26544,7 +27030,7 @@ snapshots: '@types/express-serve-static-core@4.19.8': dependencies: - '@types/node': 25.3.2 + '@types/node': 24.13.2 '@types/qs': 6.15.0 '@types/range-parser': 1.2.7 '@types/send': 1.2.1 @@ -26560,11 +27046,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 25.3.2 - - '@types/hast@2.3.10': - dependencies: - '@types/unist': 2.0.11 + '@types/node': 24.13.2 '@types/hast@3.0.4': dependencies: @@ -26608,12 +27090,12 @@ snapshots: '@types/node-fetch@2.6.11': dependencies: - '@types/node': 25.3.2 + '@types/node': 24.13.2 form-data: 4.0.5 '@types/node-fetch@2.6.13': dependencies: - '@types/node': 25.3.2 + '@types/node': 24.13.2 form-data: 4.0.5 '@types/node@18.19.130': @@ -26624,9 +27106,14 @@ snapshots: dependencies: undici-types: 6.21.0 + '@types/node@24.13.2': + dependencies: + undici-types: 7.18.2 + '@types/node@25.3.2': dependencies: undici-types: 7.18.2 + optional: true '@types/parse-json@4.0.2': {} @@ -26665,16 +27152,16 @@ snapshots: '@types/send@0.17.6': dependencies: '@types/mime': 1.3.5 - '@types/node': 25.3.2 + '@types/node': 24.13.2 '@types/send@1.2.1': dependencies: - '@types/node': 25.3.2 + '@types/node': 24.13.2 '@types/serve-static@1.15.10': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 25.3.2 + '@types/node': 24.13.2 '@types/send': 0.17.6 '@types/stack-utils@2.0.3': {} @@ -26701,7 +27188,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 25.3.2 + '@types/node': 24.13.2 optional: true '@typescript-eslint/eslint-plugin@8.59.4(@typescript-eslint/parser@8.59.4(eslint@9.29.0(jiti@2.7.0))(typescript@5.9.3))(eslint@9.29.0(jiti@2.7.0))(typescript@5.9.3)': @@ -26795,6 +27282,37 @@ snapshots: '@typescript-eslint/types': 8.59.4 eslint-visitor-keys: 5.0.1 + '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260523.1': + optional: true + + '@typescript/native-preview-darwin-x64@7.0.0-dev.20260523.1': + optional: true + + '@typescript/native-preview-linux-arm64@7.0.0-dev.20260523.1': + optional: true + + '@typescript/native-preview-linux-arm@7.0.0-dev.20260523.1': + optional: true + + '@typescript/native-preview-linux-x64@7.0.0-dev.20260523.1': + optional: true + + '@typescript/native-preview-win32-arm64@7.0.0-dev.20260523.1': + optional: true + + '@typescript/native-preview-win32-x64@7.0.0-dev.20260523.1': + optional: true + + '@typescript/native-preview@7.0.0-dev.20260523.1': + optionalDependencies: + '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20260523.1 + '@typescript/native-preview-darwin-x64': 7.0.0-dev.20260523.1 + '@typescript/native-preview-linux-arm': 7.0.0-dev.20260523.1 + '@typescript/native-preview-linux-arm64': 7.0.0-dev.20260523.1 + '@typescript/native-preview-linux-x64': 7.0.0-dev.20260523.1 + '@typescript/native-preview-win32-arm64': 7.0.0-dev.20260523.1 + '@typescript/native-preview-win32-x64': 7.0.0-dev.20260523.1 + '@typescript/vfs@1.6.4(typescript@5.9.3)': dependencies: debug: 4.4.3 @@ -26899,6 +27417,22 @@ snapshots: '@urql/core': 5.2.0(graphql@16.14.0) wonka: 6.3.5 + '@vercel/cli-config@0.2.0': + dependencies: + xdg-app-paths: 5.5.1 + zod: 4.1.11 + + '@vercel/cli-exec@0.1.1': + dependencies: + execa: 5.1.1 + + '@vercel/connect@0.2.2(ai@7.0.0-beta.178(zod@4.4.3))(eve@0.11.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@2.61.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@5.9.3)(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)))(ai@7.0.0-beta.178(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.2.0)(ioredis@5.10.1)(jiti@2.7.0)(lru-cache@11.5.0)(next@16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.89.2))(react@19.2.3)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))(vue@3.5.34(typescript@5.9.3)))': + dependencies: + '@vercel/oidc': 3.6.1 + optionalDependencies: + ai: 7.0.0-beta.178(zod@4.4.3) + eve: 0.11.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@2.61.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@5.9.3)(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)))(ai@7.0.0-beta.178(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.2.0)(ioredis@5.10.1)(jiti@2.7.0)(lru-cache@11.5.0)(next@16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.89.2))(react@19.2.3)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))(vue@3.5.34(typescript@5.9.3)) + '@vercel/nft@1.5.0(rollup@4.60.4)': dependencies: '@mapbox/node-pre-gyp': 2.0.3 @@ -26922,6 +27456,12 @@ snapshots: '@vercel/oidc@3.2.0': {} + '@vercel/oidc@3.6.1': + dependencies: + '@vercel/cli-config': 0.2.0 + '@vercel/cli-exec': 0.1.1 + jose: 5.10.0 + '@vitejs/plugin-react@4.7.0(vite@6.4.2(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))': dependencies: '@babel/core': 7.29.7 @@ -27382,6 +27922,8 @@ snapshots: '@whatwg-node/promise-helpers': 1.3.2 tslib: 2.8.1 + '@workflow/serde@4.1.0': {} + '@xmldom/xmldom@0.8.13': {} '@xtuc/ieee754@1.2.0': {} @@ -27442,6 +27984,13 @@ snapshots: '@opentelemetry/api': 1.9.1 zod: 4.3.6 + ai@7.0.0-beta.178(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) + zod: 4.4.3 + ajv-formats@2.1.1(ajv@8.20.0): optionalDependencies: ajv: 8.20.0 @@ -28112,16 +28661,10 @@ snapshots: character-entities-html4@2.1.0: {} - character-entities-legacy@1.1.4: {} - character-entities-legacy@3.0.0: {} - character-entities@1.2.4: {} - character-entities@2.0.2: {} - character-reference-invalid@1.1.4: {} - character-reference-invalid@2.0.1: {} chardet@2.1.1: {} @@ -28162,7 +28705,7 @@ snapshots: chrome-launcher@0.15.2: dependencies: - '@types/node': 25.3.2 + '@types/node': 24.13.2 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -28173,7 +28716,7 @@ snapshots: chromium-edge-launcher@0.2.0: dependencies: - '@types/node': 25.3.2 + '@types/node': 24.13.2 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -28292,8 +28835,6 @@ snapshots: dependencies: delayed-stream: 1.0.0 - comma-separated-tokens@1.0.8: {} - comma-separated-tokens@2.0.3: {} commander@10.0.1: {} @@ -28478,6 +29019,10 @@ snapshots: dependencies: uncrypto: 0.1.3 + crossws@0.4.6(srvx@0.11.16): + optionalDependencies: + srvx: 0.11.16 + css-declaration-sorter@7.3.1(postcss@8.5.15): dependencies: postcss: 8.5.15 @@ -29037,6 +29582,13 @@ snapshots: env-editor@0.4.2: {} + env-runner@0.1.14: + dependencies: + crossws: 0.4.6(srvx@0.11.16) + exsolve: 1.0.8 + httpxy: 0.5.3 + srvx: 0.11.16 + environment@1.1.0: {} error-ex@1.3.4: @@ -29604,6 +30156,57 @@ snapshots: etag@1.8.1: {} + eve@0.11.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@2.61.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@5.9.3)(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)))(ai@7.0.0-beta.178(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.2.0)(ioredis@5.10.1)(jiti@2.7.0)(lru-cache@11.5.0)(next@16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.89.2))(react@19.2.3)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))(vue@3.5.34(typescript@5.9.3)): + dependencies: + ai: 7.0.0-beta.178(zod@4.4.3) + nitro: 3.0.260610-beta(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.2.0)(ioredis@5.10.1)(jiti@2.7.0)(lru-cache@11.5.0)(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)) + optionalDependencies: + '@opentelemetry/api': 1.9.1 + '@sveltejs/kit': 2.61.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@5.9.3)(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)) + next: 16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.89.2) + react: 19.2.3 + svelte: 5.55.9(@typescript-eslint/types@8.59.4) + vite: 7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0) + vue: 3.5.34(typescript@5.9.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' + - '@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 + - wrangler + - xml2js + - zephyr-agent + event-target-shim@5.0.1: {} eventemitter3@4.0.7: {} @@ -29626,6 +30229,18 @@ snapshots: dependencies: eventsource-parser: 3.0.6 + execa@5.1.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + execa@8.0.1: dependencies: cross-spawn: 7.0.6 @@ -30312,6 +30927,8 @@ snapshots: dependencies: pump: 3.0.4 + get-stream@6.0.1: {} + get-stream@8.0.1: {} get-stream@9.0.1: @@ -30465,6 +31082,13 @@ snapshots: ufo: 1.6.4 uncrypto: 0.1.3 + h3@2.0.1-rc.22(crossws@0.4.6(srvx@0.11.16)): + dependencies: + rou3: 0.8.1 + srvx: 0.11.16 + optionalDependencies: + crossws: 0.4.6(srvx@0.11.16) + hachure-fill@0.5.2: {} handsontable@17.1.0: @@ -30541,8 +31165,6 @@ snapshots: dependencies: '@types/hast': 3.0.4 - hast-util-parse-selector@2.2.5: {} - hast-util-parse-selector@4.0.0: dependencies: '@types/hast': 3.0.4 @@ -30645,14 +31267,6 @@ snapshots: dependencies: '@types/hast': 3.0.4 - hastscript@6.0.0: - dependencies: - '@types/hast': 2.3.10 - comma-separated-tokens: 1.0.8 - hast-util-parse-selector: 2.2.5 - property-information: 5.6.0 - space-separated-tokens: 1.1.5 - hastscript@9.0.1: dependencies: '@types/hast': 3.0.4 @@ -30778,6 +31392,8 @@ snapshots: httpxy@0.5.3: {} + human-signals@2.1.0: {} + human-signals@5.0.0: {} human-signals@8.0.1: {} @@ -30911,15 +31527,8 @@ snapshots: iron-webcrypto@1.2.1: {} - is-alphabetical@1.0.4: {} - is-alphabetical@2.0.1: {} - is-alphanumerical@1.0.4: - dependencies: - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 - is-alphanumerical@2.0.1: dependencies: is-alphabetical: 2.0.1 @@ -30980,8 +31589,6 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-decimal@1.0.4: {} - is-decimal@2.0.1: {} is-docker@2.2.1: {} @@ -31010,8 +31617,6 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-hexadecimal@1.0.4: {} - is-hexadecimal@2.0.1: {} is-in-ssh@1.0.0: {} @@ -31153,7 +31758,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 25.3.2 + '@types/node': 24.13.2 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -31163,7 +31768,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 25.3.2 + '@types/node': 24.13.2 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -31190,7 +31795,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 25.3.2 + '@types/node': 24.13.2 jest-util: 29.7.0 jest-regex-util@29.6.3: {} @@ -31198,7 +31803,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 25.3.2 + '@types/node': 24.13.2 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -31215,13 +31820,13 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 25.3.2 + '@types/node': 24.13.2 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 25.3.2 + '@types/node': 24.13.2 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -31580,13 +32185,13 @@ snapshots: lines-and-columns@1.2.4: {} - listhen@1.10.0: + listhen@1.10.0(srvx@0.11.16): dependencies: '@parcel/watcher': 2.5.6 '@parcel/watcher-wasm': 2.5.6 citty: 0.2.2 consola: 3.4.2 - crossws: 0.3.5 + crossws: 0.4.6(srvx@0.11.16) defu: 6.1.7 get-port-please: 3.2.0 h3: 1.15.11 @@ -31600,6 +32205,8 @@ snapshots: ufo: 1.6.4 untun: 0.1.3 uqr: 0.1.3 + transitivePeerDependencies: + - srvx loader-runner@4.3.2: {} @@ -32672,6 +33279,8 @@ snapshots: mimic-fn@1.2.0: {} + mimic-fn@2.1.0: {} + mimic-fn@4.0.0: {} min-indent@1.0.1: {} @@ -32920,7 +33529,62 @@ snapshots: - '@babel/core' - babel-plugin-macros - nitropack@2.13.4(oxc-parser@0.131.0)(rolldown@1.0.2): + nf3@0.3.17: {} + + nitro@3.0.260610-beta(chokidar@5.0.0)(dotenv@17.4.2)(giget@3.2.0)(ioredis@5.10.1)(jiti@2.7.0)(lru-cache@11.5.0)(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)): + dependencies: + consola: 3.4.2 + crossws: 0.4.6(srvx@0.11.16) + db0: 0.3.4 + env-runner: 0.1.14 + h3: 2.0.1-rc.22(crossws@0.4.6(srvx@0.11.16)) + hookable: 6.1.1 + nf3: 0.3.17 + ocache: 0.1.5 + ofetch: 2.0.0-alpha.3 + ohash: 2.0.11 + rolldown: 1.1.2 + srvx: 0.11.16 + unenv: 2.0.0-rc.24 + unstorage: 2.0.0-alpha.7(chokidar@5.0.0)(db0@0.3.4)(ioredis@5.10.1)(lru-cache@11.5.0)(ofetch@2.0.0-alpha.3) + optionalDependencies: + dotenv: 17.4.2 + giget: 3.2.0 + jiti: 2.7.0 + vite: 7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.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' + - aws4fetch + - better-sqlite3 + - chokidar + - drizzle-orm + - idb-keyval + - ioredis + - lru-cache + - miniflare + - mongodb + - mysql2 + - sqlite3 + - uploadthing + - wrangler + + nitropack@2.13.4(oxc-parser@0.131.0)(rolldown@1.1.2)(srvx@0.11.16): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 '@rollup/plugin-alias': 6.0.0(rollup@4.60.4) @@ -32958,7 +33622,7 @@ snapshots: jiti: 2.7.0 klona: 2.0.6 knitwork: 1.3.0 - listhen: 1.10.0 + listhen: 1.10.0(srvx@0.11.16) magic-string: 0.30.21 magicast: 0.5.2 mime: 4.1.0 @@ -32973,7 +33637,7 @@ snapshots: pretty-bytes: 7.1.0 radix3: 1.1.2 rollup: 4.60.4 - rollup-plugin-visualizer: 7.0.1(rolldown@1.0.2)(rollup@4.60.4) + rollup-plugin-visualizer: 7.0.1(rolldown@1.1.2)(rollup@4.60.4) scule: 1.3.0 semver: 7.8.1 serve-placeholder: 2.0.2 @@ -32985,7 +33649,7 @@ snapshots: uncrypto: 0.1.3 unctx: 2.5.0 unenv: 2.0.0-rc.24 - unimport: 6.3.0(oxc-parser@0.131.0)(rolldown@1.0.2) + unimport: 6.3.0(oxc-parser@0.131.0)(rolldown@1.1.2) unplugin-utils: 0.3.1 unstorage: 1.17.5(db0@0.3.4)(ioredis@5.10.1) untyped: 2.0.0 @@ -33021,6 +33685,7 @@ snapshots: - react-native-b4a - rolldown - sqlite3 + - srvx - supports-color - uploadthing @@ -33081,6 +33746,10 @@ snapshots: semver: 7.8.1 validate-npm-package-name: 5.0.1 + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + npm-run-path@5.3.0: dependencies: path-key: 4.0.0 @@ -33100,16 +33769,16 @@ snapshots: dependencies: bignumber.js: 9.3.1 - nuxt@3.21.6(@parcel/watcher@2.5.6)(@types/node@25.3.2)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(eslint@9.29.0(jiti@2.7.0))(ioredis@5.10.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(typescript@5.9.3)(vite@7.3.3(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))(vue-tsc@2.2.12(typescript@5.9.3))(yaml@2.9.0): + nuxt@3.21.6(@parcel/watcher@2.5.6)(@types/node@25.3.2)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(eslint@9.29.0(jiti@2.7.0))(ioredis@5.10.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rolldown@1.1.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.89.2)(srvx@0.11.16)(terser@5.48.0)(tsx@4.20.3)(typescript@5.9.3)(vite@7.3.3(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))(vue-tsc@2.2.12(typescript@5.9.3))(yaml@2.9.0): dependencies: '@dxup/nuxt': 0.4.1(magicast@0.5.2)(typescript@5.9.3) '@nuxt/cli': 3.35.2(@nuxt/schema@3.21.6)(cac@6.7.14)(commander@13.1.0)(magicast@0.5.2) '@nuxt/devtools': 3.2.4(vite@7.3.3(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))(vue@3.5.34(typescript@5.9.3)) '@nuxt/kit': 3.21.6(magicast@0.5.2) - '@nuxt/nitro-server': 3.21.6(db0@0.3.4)(ioredis@5.10.1)(magicast@0.5.2)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@types/node@25.3.2)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(eslint@9.29.0(jiti@2.7.0))(ioredis@5.10.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(typescript@5.9.3)(vite@7.3.3(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))(vue-tsc@2.2.12(typescript@5.9.3))(yaml@2.9.0))(oxc-parser@0.131.0)(rolldown@1.0.2)(typescript@5.9.3) + '@nuxt/nitro-server': 3.21.6(db0@0.3.4)(ioredis@5.10.1)(magicast@0.5.2)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@types/node@25.3.2)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(eslint@9.29.0(jiti@2.7.0))(ioredis@5.10.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rolldown@1.1.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.89.2)(srvx@0.11.16)(terser@5.48.0)(tsx@4.20.3)(typescript@5.9.3)(vite@7.3.3(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))(vue-tsc@2.2.12(typescript@5.9.3))(yaml@2.9.0))(oxc-parser@0.131.0)(rolldown@1.1.2)(srvx@0.11.16)(typescript@5.9.3) '@nuxt/schema': 3.21.6 '@nuxt/telemetry': 2.8.0(@nuxt/kit@3.21.6(magicast@0.5.2)) - '@nuxt/vite-builder': 3.21.6(@types/node@25.3.2)(eslint@9.29.0(jiti@2.7.0))(lightningcss@1.32.0)(magicast@0.5.2)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@types/node@25.3.2)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(eslint@9.29.0(jiti@2.7.0))(ioredis@5.10.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(typescript@5.9.3)(vite@7.3.3(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))(vue-tsc@2.2.12(typescript@5.9.3))(yaml@2.9.0))(optionator@0.9.4)(rolldown@1.0.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(typescript@5.9.3)(vue-tsc@2.2.12(typescript@5.9.3))(vue@3.5.34(typescript@5.9.3))(yaml@2.9.0) + '@nuxt/vite-builder': 3.21.6(@types/node@25.3.2)(eslint@9.29.0(jiti@2.7.0))(lightningcss@1.32.0)(magicast@0.5.2)(nuxt@3.21.6(@parcel/watcher@2.5.6)(@types/node@25.3.2)(@vue/compiler-sfc@3.5.34)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(eslint@9.29.0(jiti@2.7.0))(ioredis@5.10.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rolldown@1.1.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.89.2)(srvx@0.11.16)(terser@5.48.0)(tsx@4.20.3)(typescript@5.9.3)(vite@7.3.3(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0))(vue-tsc@2.2.12(typescript@5.9.3))(yaml@2.9.0))(optionator@0.9.4)(rolldown@1.1.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.2)(rollup@4.60.4))(rollup@4.60.4)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(typescript@5.9.3)(vue-tsc@2.2.12(typescript@5.9.3))(vue@3.5.34(typescript@5.9.3))(yaml@2.9.0) '@unhead/vue': 2.1.15(vue@3.5.34(typescript@5.9.3)) '@vue/shared': 3.5.34 c12: 3.3.4(magicast@0.5.2) @@ -33140,7 +33809,7 @@ snapshots: oxc-minify: 0.131.0 oxc-parser: 0.131.0 oxc-transform: 0.131.0 - oxc-walker: 1.0.0(oxc-parser@0.131.0)(rolldown@1.0.2) + oxc-walker: 1.0.0(oxc-parser@0.131.0)(rolldown@1.1.2) pathe: 2.0.3 perfect-debounce: 2.1.0 pkg-types: 2.3.1 @@ -33153,7 +33822,7 @@ snapshots: ultrahtml: 1.6.0 uncrypto: 0.1.3 unctx: 2.5.0 - unimport: 6.3.0(oxc-parser@0.131.0)(rolldown@1.0.2) + unimport: 6.3.0(oxc-parser@0.131.0)(rolldown@1.1.2) unplugin: 3.0.0 unplugin-vue-router: 0.19.2(@vue/compiler-sfc@3.5.34)(vue-router@4.6.4(vue@3.5.31(typescript@5.9.3)))(vue@3.5.34(typescript@5.9.3)) untyped: 2.0.0 @@ -33209,6 +33878,7 @@ snapshots: - sass - sass-embedded - sqlite3 + - srvx - stylelint - stylus - sugarss @@ -33287,6 +33957,10 @@ snapshots: obug@2.1.1: {} + ocache@0.1.5: + dependencies: + ohash: 2.0.11 + octokit@5.0.5: dependencies: '@octokit/app': 16.1.2 @@ -33337,6 +34011,10 @@ snapshots: dependencies: mimic-fn: 1.2.0 + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + onetime@6.0.0: dependencies: mimic-fn: 4.0.0 @@ -33391,21 +34069,41 @@ snapshots: transitivePeerDependencies: - encoding - openai@6.22.0(ws@8.21.0)(zod@4.3.6): + openai@4.104.0(ws@8.21.0)(zod@4.4.3): + dependencies: + '@types/node': 18.19.130 + '@types/node-fetch': 2.6.11 + abort-controller: 3.0.0 + agentkeepalive: 4.6.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + optionalDependencies: + ws: 8.21.0 + zod: 4.4.3 + transitivePeerDependencies: + - encoding + + openai@6.22.0(ws@8.21.0)(zod@4.4.3): optionalDependencies: ws: 8.21.0 - zod: 4.3.6 + zod: 4.4.3 - openai@6.26.0(ws@8.21.0)(zod@4.3.6): + openai@6.26.0(ws@8.21.0)(zod@4.4.3): optionalDependencies: ws: 8.21.0 - zod: 4.3.6 + zod: 4.4.3 openai@6.39.0(ws@8.21.0)(zod@4.3.6): optionalDependencies: ws: 8.21.0 zod: 4.3.6 + openai@6.39.0(ws@8.21.0)(zod@4.4.3): + optionalDependencies: + ws: 8.21.0 + zod: 4.4.3 + openapi-types@12.1.3: {} optionator@0.9.4: @@ -33426,6 +34124,8 @@ snapshots: strip-ansi: 5.2.0 wcwidth: 1.0.1 + os-paths@4.4.0: {} + own-keys@1.0.1: dependencies: get-intrinsic: 1.3.0 @@ -33503,12 +34203,12 @@ snapshots: '@oxc-transform/binding-win32-ia32-msvc': 0.131.0 '@oxc-transform/binding-win32-x64-msvc': 0.131.0 - oxc-walker@1.0.0(oxc-parser@0.131.0)(rolldown@1.0.2): + oxc-walker@1.0.0(oxc-parser@0.131.0)(rolldown@1.1.2): dependencies: magic-regexp: 0.11.0 optionalDependencies: oxc-parser: 0.131.0 - rolldown: 1.0.2 + rolldown: 1.1.2 p-finally@1.0.0: {} @@ -33565,15 +34265,6 @@ snapshots: dependencies: callsites: 3.1.0 - parse-entities@2.0.0: - dependencies: - character-entities: 1.2.4 - character-entities-legacy: 1.1.4 - character-reference-invalid: 1.1.4 - is-alphanumerical: 1.0.4 - is-decimal: 1.0.4 - is-hexadecimal: 1.0.4 - parse-entities@4.0.2: dependencies: '@types/unist': 2.0.11 @@ -34075,10 +34766,6 @@ snapshots: retry: 0.12.0 signal-exit: 3.0.7 - property-information@5.6.0: - dependencies: - xtend: 4.0.2 - property-information@7.1.0: {} proto-list@1.2.4: {} @@ -34095,7 +34782,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.1 - '@types/node': 25.3.2 + '@types/node': 24.13.2 long: 5.3.2 proxy-addr@2.0.7: @@ -34638,16 +35325,6 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 - react-syntax-highlighter@15.6.6(react@19.2.4): - dependencies: - '@babel/runtime': 7.29.7 - highlight.js: 10.7.3 - highlightjs-vue: 1.0.0 - lowlight: 1.20.0 - prismjs: 1.30.0 - react: 19.2.4 - refractor: 3.6.0 - react-syntax-highlighter@16.1.1(react@19.2.3): dependencies: '@babel/runtime': 7.29.7 @@ -34825,12 +35502,6 @@ snapshots: get-proto: 1.0.1 which-builtin-type: 1.2.1 - refractor@3.6.0: - dependencies: - hastscript: 6.0.0 - parse-entities: 2.0.0 - prismjs: 1.30.0 - refractor@5.0.0: dependencies: '@types/hast': 3.0.4 @@ -35052,7 +35723,7 @@ snapshots: robust-predicates@3.0.3: {} - rolldown-plugin-dts@0.23.2(rolldown@1.0.0-rc.17)(typescript@5.9.3): + rolldown-plugin-dts@0.23.2(@typescript/native-preview@7.0.0-dev.20260523.1)(rolldown@1.0.0-rc.17)(typescript@5.9.3): dependencies: '@babel/generator': 8.0.0-rc.3 '@babel/helper-validator-identifier': 8.0.0-rc.3 @@ -35066,6 +35737,7 @@ snapshots: picomatch: 4.0.4 rolldown: 1.0.0-rc.17 optionalDependencies: + '@typescript/native-preview': 7.0.0-dev.20260523.1 typescript: 5.9.3 transitivePeerDependencies: - oxc-resolver @@ -35091,36 +35763,35 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.17 '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.17 - rolldown@1.0.2: + rolldown@1.1.2: dependencies: - '@oxc-project/types': 0.132.0 + '@oxc-project/types': 0.137.0 '@rolldown/pluginutils': 1.0.1 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.2 - '@rolldown/binding-darwin-arm64': 1.0.2 - '@rolldown/binding-darwin-x64': 1.0.2 - '@rolldown/binding-freebsd-x64': 1.0.2 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.2 - '@rolldown/binding-linux-arm64-gnu': 1.0.2 - '@rolldown/binding-linux-arm64-musl': 1.0.2 - '@rolldown/binding-linux-ppc64-gnu': 1.0.2 - '@rolldown/binding-linux-s390x-gnu': 1.0.2 - '@rolldown/binding-linux-x64-gnu': 1.0.2 - '@rolldown/binding-linux-x64-musl': 1.0.2 - '@rolldown/binding-openharmony-arm64': 1.0.2 - '@rolldown/binding-wasm32-wasi': 1.0.2 - '@rolldown/binding-win32-arm64-msvc': 1.0.2 - '@rolldown/binding-win32-x64-msvc': 1.0.2 - optional: true - - rollup-plugin-visualizer@7.0.1(rolldown@1.0.2)(rollup@4.60.4): + '@rolldown/binding-android-arm64': 1.1.2 + '@rolldown/binding-darwin-arm64': 1.1.2 + '@rolldown/binding-darwin-x64': 1.1.2 + '@rolldown/binding-freebsd-x64': 1.1.2 + '@rolldown/binding-linux-arm-gnueabihf': 1.1.2 + '@rolldown/binding-linux-arm64-gnu': 1.1.2 + '@rolldown/binding-linux-arm64-musl': 1.1.2 + '@rolldown/binding-linux-ppc64-gnu': 1.1.2 + '@rolldown/binding-linux-s390x-gnu': 1.1.2 + '@rolldown/binding-linux-x64-gnu': 1.1.2 + '@rolldown/binding-linux-x64-musl': 1.1.2 + '@rolldown/binding-openharmony-arm64': 1.1.2 + '@rolldown/binding-wasm32-wasi': 1.1.2 + '@rolldown/binding-win32-arm64-msvc': 1.1.2 + '@rolldown/binding-win32-x64-msvc': 1.1.2 + + rollup-plugin-visualizer@7.0.1(rolldown@1.1.2)(rollup@4.60.4): dependencies: open: 11.0.0 picomatch: 4.0.4 source-map: 0.7.6 yargs: 18.0.0 optionalDependencies: - rolldown: 1.0.2 + rolldown: 1.1.2 rollup: 4.60.4 rollup@4.60.4: @@ -35503,8 +36174,6 @@ snapshots: source-map@0.7.6: {} - space-separated-tokens@1.1.5: {} - space-separated-tokens@2.0.2: {} split2@4.2.0: {} @@ -35685,6 +36354,8 @@ snapshots: strip-bom@3.0.0: {} + strip-final-newline@2.0.0: {} + strip-final-newline@3.0.0: {} strip-final-newline@4.0.0: {} @@ -36096,7 +36767,7 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 - tsdown@0.21.10(@arethetypeswrong/core@0.18.2)(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3): + tsdown@0.21.10(@arethetypeswrong/core@0.18.2)(@typescript/native-preview@7.0.0-dev.20260523.1)(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3): dependencies: ansis: 4.2.0 cac: 7.0.0 @@ -36107,7 +36778,7 @@ snapshots: obug: 2.1.1 picomatch: 4.0.4 rolldown: 1.0.0-rc.17 - rolldown-plugin-dts: 0.23.2(rolldown@1.0.0-rc.17)(typescript@5.9.3) + rolldown-plugin-dts: 0.23.2(@typescript/native-preview@7.0.0-dev.20260523.1)(rolldown@1.0.0-rc.17)(typescript@5.9.3) semver: 7.8.1 tinyexec: 1.2.2 tinyglobby: 0.2.16 @@ -36155,7 +36826,7 @@ snapshots: type-graphql@2.0.0-rc.1(class-validator@0.14.4)(graphql-scalars@1.25.0(graphql@16.14.0))(graphql@16.14.0): dependencies: '@graphql-yoga/subscription': 5.0.5 - '@types/node': 25.3.2 + '@types/node': 24.13.2 '@types/semver': 7.7.1 graphql: 16.14.0 graphql-query-complexity: 0.12.0(graphql@16.14.0) @@ -36303,7 +36974,7 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 - unimport@6.3.0(oxc-parser@0.131.0)(rolldown@1.0.2): + unimport@6.3.0(oxc-parser@0.131.0)(rolldown@1.1.2): dependencies: acorn: 8.16.0 escape-string-regexp: 5.0.0 @@ -36321,7 +36992,7 @@ snapshots: unplugin-utils: 0.3.1 optionalDependencies: oxc-parser: 0.131.0 - rolldown: 1.0.2 + rolldown: 1.1.2 unist-util-find-after@5.0.0: dependencies: @@ -36469,6 +37140,14 @@ snapshots: db0: 0.3.4 ioredis: 5.10.1 + unstorage@2.0.0-alpha.7(chokidar@5.0.0)(db0@0.3.4)(ioredis@5.10.1)(lru-cache@11.5.0)(ofetch@2.0.0-alpha.3): + optionalDependencies: + chokidar: 5.0.0 + db0: 0.3.4 + ioredis: 5.10.1 + lru-cache: 11.5.0 + ofetch: 2.0.0-alpha.3 + untruncate-json@0.0.1: {} untun@0.1.3: @@ -36748,6 +37427,25 @@ snapshots: yaml: 2.9.0 optional: true + vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0): + dependencies: + esbuild: 0.27.7 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + postcss: 8.5.15 + rollup: 4.60.4 + tinyglobby: 0.2.16 + optionalDependencies: + '@types/node': 24.13.2 + fsevents: 2.3.3 + jiti: 2.7.0 + lightningcss: 1.32.0 + sass: 1.89.2 + terser: 5.48.0 + tsx: 4.20.3 + yaml: 2.9.0 + optional: true + vite@7.3.3(@types/node@25.3.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0): dependencies: esbuild: 0.27.7 @@ -36788,6 +37486,11 @@ snapshots: optionalDependencies: vite: 6.4.2(@types/node@25.3.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0) + vitefu@1.1.2(vite@7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)): + optionalDependencies: + vite: 7.3.3(@types/node@24.13.2)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0) + optional: true + vitest@4.1.7(@opentelemetry/api@1.9.1)(@types/node@22.19.19)(jsdom@29.1.1)(vite@6.4.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.48.0)(tsx@4.20.3)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.7 @@ -37179,6 +37882,15 @@ snapshots: simple-plist: 1.3.1 uuid: 11.1.1 + xdg-app-paths@5.5.1: + dependencies: + os-paths: 4.4.0 + xdg-portable: 7.3.0 + + xdg-portable@7.3.0: + dependencies: + os-paths: 4.4.0 + xml-name-validator@5.0.0: {} xml-naming@0.1.0: {} @@ -37194,8 +37906,6 @@ snapshots: xmlchars@2.2.0: {} - xtend@4.0.2: {} - xxhash-wasm@1.1.0: {} y18n@5.0.8: {} @@ -37281,7 +37991,7 @@ snapshots: zod-from-json-schema@0.5.2: dependencies: - zod: 4.3.6 + zod: 4.4.3 zod-to-json-schema@3.25.2(zod@3.25.76): dependencies: @@ -37291,14 +38001,22 @@ snapshots: dependencies: zod: 4.3.6 + zod-to-json-schema@3.25.2(zod@4.4.3): + dependencies: + zod: 4.4.3 + zod-validation-error@4.0.2(zod@4.3.6): dependencies: zod: 4.3.6 zod@3.25.76: {} + zod@4.1.11: {} + zod@4.3.6: {} + zod@4.4.3: {} + zustand@4.5.7(@types/react@19.2.14)(react@19.2.4): dependencies: use-sync-external-store: 1.6.0(react@19.2.4)