diff --git a/examples/langgraph-chat/.env.example b/examples/langchain-chat/.env.example similarity index 54% rename from examples/langgraph-chat/.env.example rename to examples/langchain-chat/.env.example index bff5c4378..76a1aaca3 100644 --- a/examples/langgraph-chat/.env.example +++ b/examples/langchain-chat/.env.example @@ -1,14 +1,13 @@ -# ── Model (used by the LangGraph server) ────────────────────────── -# The graph runs the LLM, so the API key lives with the LangGraph -# process, not the Next.js app. +# ── Model (used by the LangGraph/deepagents server) ──────────────── +# The deepagent graph runs the LLM, so the API key lives with the +# LangGraph process, not the Next.js app. OPENAI_API_KEY=sk-your-key-here OPENAI_MODEL=gpt-5.5 -# ── LangGraph connection (used by the Next.js /api/chat proxy) ───── +# ── LangGraph protocol connection (used by /api/chat) ────────────── # Local: the URL printed by `pnpm langgraph:dev` (defaults to 2024). LANGGRAPH_API_URL=http://localhost:2024 -# The graph name from langgraph.json ("agent"), or a deployed -# assistant id. +# The graph name from langgraph.json ("agent"), or a deployed assistant id. LANGGRAPH_ASSISTANT_ID=agent # ── LangGraph Cloud / Platform (only for a hosted deployment) ────── diff --git a/examples/langgraph-chat/.gitignore b/examples/langchain-chat/.gitignore similarity index 100% rename from examples/langgraph-chat/.gitignore rename to examples/langchain-chat/.gitignore diff --git a/examples/langchain-chat/README.md b/examples/langchain-chat/README.md new file mode 100644 index 000000000..7d97a1dde --- /dev/null +++ b/examples/langchain-chat/README.md @@ -0,0 +1,102 @@ +# OpenUI + DeepAgents Chat + +A generative-UI chat app where the responses are produced by a +[deepagents](https://www.npmjs.com/package/deepagents) agent and rendered live +with [OpenUI](https://openui.com). + +The agent has mock **weather**, **finance**, and **research** tools. Its +LangGraph protocol stream is transformed locally into AG-UI events on a custom +`openui` channel, so the browser can use OpenUI's default stream adapter. + +``` +browser ──fetch /api/chat──▶ Next.js route ──protocol v2──▶ LangGraph server + ▲ │ (deepagent + tools + └────── SSE (AG-UI) ◀──────────┘ + custom:openui) + parsed by default adapter +``` + +## How it connects + +| Piece | File | Role | +| --- | --- | --- | +| Frontend | `src/app/page.tsx` | `` using the default AG-UI stream protocol. | +| Proxy | `src/app/api/chat/route.ts` | Converts AG-UI messages to LangChain messages, starts a protocol-v2 run, and relays `custom:openui` as AG-UI SSE. Keeps the API key + deployment URL server-side. | +| Graph | `src/agent/agent.ts` | `createDeepAgent` with the generated OpenUI system prompt, the mock tools, and the local stream transformer. | +| Transformer | `src/agent/openui-transformer.ts` | Maps root LangGraph protocol `messages` events into AG-UI events and emits them as `custom:openui`. | +| Stream helper | `src/lib/stream-openui.ts` | Talks to `/threads/:id/stream/events` and `/threads/:id/commands` using raw fetch. | +| Tools | `src/agent/tools.ts` | Mock `get_weather` / `get_stock_price` / `search_web` (no external keys needed). | +| Component library | `src/library.ts` | The OpenUI components the model is allowed to render. `pnpm generate:prompt` turns it into `src/generated/system-prompt.txt`. | + +The transformer is intentionally local to this example for now. It mimics the +LangGraph protocol types instead of adding new toolkit dependencies, making it +easy to extract later if the OpenUI team wants to publish a shared integration. + +## Getting started (local) + +This example runs **two processes**: the LangGraph server (runs the model) and +the Next.js app (serves the UI). The default dev script starts both. + +1. Create a `.env` from the template: + + ```bash + cp .env.example .env + ``` + + ```env + OPENAI_API_KEY=sk-your-key-here + OPENAI_MODEL=gpt-5.5 + LANGGRAPH_API_URL=http://localhost:2024 + LANGGRAPH_ASSISTANT_ID=agent + ``` + +2. Start the LangGraph server and Next.js app together: + + ```bash + pnpm dev + ``` + + This generates the OpenUI prompt once, starts the LangGraph server on + `:2024`, and starts Next.js on `:3000`. + + If you prefer separate terminals, run: + + ```bash + pnpm langgraph:dev + # in another terminal + pnpm exec next dev + ``` + +Open [http://localhost:3000](http://localhost:3000) and try a starter such as +"Weather in Tokyo" or "AAPL stock price". + +> `OPENAI_API_KEY` is read by the **LangGraph server** (it runs the LLM), so it +> belongs in `.env` next to `langgraph.json`. The Next.js app only needs the +> `LANGGRAPH_*` variables. + +## Using LangGraph Cloud / Platform + +Deploy the graph (this folder already has a `langgraph.json`) and point the app +at the deployment instead of localhost — no app code changes: + +```env +LANGGRAPH_API_URL=https://your-deployment.us.langgraph.app +LANGGRAPH_ASSISTANT_ID=agent # graph name, or a created assistant id +LANGSMITH_API_KEY=lsv2-... # auth for the deployment +``` + +`LANGSMITH_API_KEY` is sent as `x-api-key` from the server side only. +Restart `pnpm dev` after changing `.env`. + +## Customizing + +- **Change agent behavior:** update the deepagent prompt or tool list in + `src/agent/agent.ts`. +- **Use real tools:** replace the mock bodies in `src/agent/tools.ts` with real + API calls. +- **Change what the model can render:** edit `src/library.ts`, then re-run + `pnpm generate:prompt` (the dev scripts do this for you). + +## Learn more + +- [OpenUI docs](https://openui.com/docs) and the [LangGraph provider guide](https://www.openui.com/docs/chat/providers) +- [DeepAgents](https://www.npmjs.com/package/deepagents) and [LangGraph.js docs](https://langchain-ai.github.io/langgraphjs/) diff --git a/examples/langgraph-chat/eslint.config.mjs b/examples/langchain-chat/eslint.config.mjs similarity index 100% rename from examples/langgraph-chat/eslint.config.mjs rename to examples/langchain-chat/eslint.config.mjs diff --git a/examples/langgraph-chat/langgraph.json b/examples/langchain-chat/langgraph.json similarity index 67% rename from examples/langgraph-chat/langgraph.json rename to examples/langchain-chat/langgraph.json index 3e9114594..fa46b9f8f 100644 --- a/examples/langgraph-chat/langgraph.json +++ b/examples/langchain-chat/langgraph.json @@ -2,7 +2,7 @@ "node_version": "20", "dependencies": ["."], "graphs": { - "agent": "./src/agent/graph.ts:graph" + "agent": "./src/agent/agent.ts:graph" }, "env": ".env" } diff --git a/examples/langgraph-chat/next.config.ts b/examples/langchain-chat/next.config.ts similarity index 100% rename from examples/langgraph-chat/next.config.ts rename to examples/langchain-chat/next.config.ts diff --git a/examples/langgraph-chat/package.json b/examples/langchain-chat/package.json similarity index 66% rename from examples/langgraph-chat/package.json rename to examples/langchain-chat/package.json index c7cbc09c4..f8354cfb0 100644 --- a/examples/langgraph-chat/package.json +++ b/examples/langchain-chat/package.json @@ -4,20 +4,27 @@ "private": true, "scripts": { "generate:prompt": "pnpm --filter @openuidev/cli build && pnpm exec openui generate src/library.ts --out src/generated/system-prompt.txt", - "langgraph:dev": "pnpm generate:prompt && langgraphjs dev", - "dev": "pnpm generate:prompt && next dev", + "dev:langgraph": "langgraphjs dev", + "dev:next": "next dev", + "dev:serve": "run-p dev:langgraph dev:next", + "langgraph:dev": "run-s generate:prompt dev:langgraph", + "dev": "run-s generate:prompt dev:serve", "build": "next build", "start": "next start", "lint": "eslint" }, "dependencies": { - "@langchain/core": "^1.1.48", - "@langchain/langgraph": "^1.3.6", + "@ag-ui/core": "^0.0.57", + "@langchain/core": "^1.2.1", + "@langchain/langgraph": "^1.4.5", "@langchain/langgraph-sdk": "^1.9.18", - "@langchain/openai": "^1.4.7", + "@langchain/openai": "^1.5.2", + "@langchain/protocol": "^0.0.18", "@openuidev/react-headless": "workspace:*", "@openuidev/react-lang": "workspace:*", "@openuidev/react-ui": "workspace:*", + "deepagents": "^1.10.5", + "langchain": "^1.5.1", "next": "16.1.6", "react": "19.2.3", "react-dom": "19.2.3", @@ -32,6 +39,7 @@ "@types/react-dom": "^19", "eslint": "^9", "eslint-config-next": "16.1.6", + "npm-run-all2": "^9.0.2", "tailwindcss": "^4", "typescript": "^5" } diff --git a/examples/langgraph-chat/postcss.config.mjs b/examples/langchain-chat/postcss.config.mjs similarity index 100% rename from examples/langgraph-chat/postcss.config.mjs rename to examples/langchain-chat/postcss.config.mjs diff --git a/examples/langchain-chat/src/agent/agent.ts b/examples/langchain-chat/src/agent/agent.ts new file mode 100644 index 000000000..813a11d96 --- /dev/null +++ b/examples/langchain-chat/src/agent/agent.ts @@ -0,0 +1,49 @@ +import { existsSync, readFileSync } from "node:fs"; +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; + +import { createDeepAgent } from "deepagents"; + +import { openUIStreamTransformer } from "./openui-transformer"; +import { getStockPrice, getWeather, searchWeb } from "./tools"; + +/** + * The OpenUI system prompt is generated from `src/library.ts` by the OpenUI + * CLI (`pnpm generate:prompt`). It teaches the model to answer in OpenUI Lang + * so the renderer can turn each reply into live React components. + * + * It is loaded with `readFileSync` rather than a `with { type: "text" }` + * import attribute because the LangGraph dev server's CJS/tsx loader does not + * support text import attributes (it tries to evaluate the `.txt` as JS). + */ +function loadSystemPrompt(): string { + const candidates = [ + // Primary: relative to the working dir (how `langgraphjs dev` runs). + join(process.cwd(), "src/generated/system-prompt.txt"), + // Fallback: relative to this module, for runners whose cwd differs. + join(dirname(fileURLToPath(import.meta.url)), "../generated/system-prompt.txt"), + ]; + for (const path of candidates) { + if (existsSync(path)) return readFileSync(path, "utf-8"); + } + throw new Error( + "OpenUI system prompt not found. Run `pnpm generate:prompt` before starting the graph.", + ); +} + +const OPENUI_SYSTEM_PROMPT = loadSystemPrompt(); + +const MODEL = process.env.OPENAI_MODEL || "gpt-5.5"; + +const SYSTEM_PROMPT = [ + OPENUI_SYSTEM_PROMPT, + "You are an OpenUI assistant with weather, finance, and research tools.", + "Use the tools when they help answer the user's request, then answer only in OpenUI Lang.", +].join("\n\n"); + +export const graph = createDeepAgent({ + model: `openai:${MODEL}`, + tools: [getWeather, getStockPrice, searchWeb], + systemPrompt: SYSTEM_PROMPT, + streamTransformers: [openUIStreamTransformer], +}); diff --git a/examples/langchain-chat/src/agent/openui-transformer.ts b/examples/langchain-chat/src/agent/openui-transformer.ts new file mode 100644 index 000000000..e507c3202 --- /dev/null +++ b/examples/langchain-chat/src/agent/openui-transformer.ts @@ -0,0 +1,242 @@ +import { EventType, type AGUIEvent } from "@ag-ui/core"; +import { StreamChannel } from "@langchain/langgraph"; +import type { ProtocolEvent, StreamTransformer } from "@langchain/langgraph"; +import type { ContentBlock, MessagesData } from "@langchain/protocol"; + +/** + * Remote channel name. The LangGraph stream mux auto-forwards every + * `channel.push()` as a `custom:openui` protocol event, which remote clients + * receive by subscribing to the `custom:openui` channel. + */ +const OPENUI_CHANNEL_NAME = "openui"; +const OPENUI_CHANNEL_METHOD = `custom:${OPENUI_CHANNEL_NAME}`; + +const TOOL_BLOCK_TYPES = new Set([ + "tool_call", + "tool_call_chunk", + "server_tool_call", + "server_tool_call_chunk", +]); + +interface ToolCallState { + id: string; + name: string; + started: boolean; + ended: boolean; +} + +/** + * Projects the agent-protocol `messages` stream into AG-UI events and forwards + * them to remote clients on the `custom:openui` channel. + * + * The protocol delivers `MessagesData` envelopes (`message-start`, + * `content-block-start/delta/finish`, `message-finish`). The deep agent emits + * its OpenUI Lang reply as a streamed text block on the second model turn + * (after tool calls resolve); this transformer turns those deltas into the + * `TEXT_MESSAGE_*` and `TOOL_CALL_*` events the OpenUI renderer understands. + */ +export function openUIStreamTransformer(): StreamTransformer<{ + openui: StreamChannel; +}> { + const channel = StreamChannel.remote(OPENUI_CHANNEL_NAME); + + let currentMessageId: string = crypto.randomUUID(); + let textMessageId: string | undefined; + let textStarted = false; + let textEnded = false; + + const toolCallsByIndex = new Map(); + + const emit = (event: AGUIEvent) => channel.push(event); + + const ensureTextStart = () => { + if (textStarted) return; + textMessageId = currentMessageId; + emit({ + type: EventType.TEXT_MESSAGE_START, + messageId: textMessageId, + role: "assistant", + } as AGUIEvent); + textStarted = true; + }; + + const emitTextDelta = (delta: string) => { + if (!delta) return; + ensureTextStart(); + emit({ + type: EventType.TEXT_MESSAGE_CONTENT, + messageId: textMessageId ?? currentMessageId, + delta, + } as AGUIEvent); + }; + + const endText = () => { + if (!textStarted || textEnded) return; + emit({ + type: EventType.TEXT_MESSAGE_END, + messageId: textMessageId ?? currentMessageId, + } as AGUIEvent); + textEnded = true; + }; + + const startToolCall = (index: number | string, block: ContentBlock): ToolCallState | undefined => { + if (!isToolBlock(block)) return undefined; + const key = String(index); + + let state = toolCallsByIndex.get(key); + if (!state) { + state = { + id: getToolCallId(block) ?? `tool-${key}`, + name: getToolCallName(block) ?? "", + started: false, + ended: false, + }; + toolCallsByIndex.set(key, state); + } + + if (!state.started && state.name) { + emit({ + type: EventType.TOOL_CALL_START, + toolCallId: state.id, + toolCallName: state.name, + } as AGUIEvent); + state.started = true; + + const initialArgs = getArgsString(block); + if (initialArgs) emitToolArgs(state, initialArgs); + } + + return state; + }; + + const emitToolArgs = (state: ToolCallState, delta: string) => { + if (!delta || !state.started) return; + emit({ + type: EventType.TOOL_CALL_ARGS, + toolCallId: state.id, + delta, + } as AGUIEvent); + }; + + const endToolCall = (state: ToolCallState) => { + if (state.ended || !state.started) return; + emit({ type: EventType.TOOL_CALL_END, toolCallId: state.id } as AGUIEvent); + state.ended = true; + }; + + const endAllToolCalls = () => { + for (const state of toolCallsByIndex.values()) endToolCall(state); + }; + + const processMessages = (data: MessagesData) => { + switch (data.event) { + case "message-start": { + currentMessageId = typeof data.id === "string" ? data.id : crypto.randomUUID(); + toolCallsByIndex.clear(); + return; + } + + case "content-block-start": { + const block = data.content; + if (isTextBlock(block)) { + ensureTextStart(); + const text = typeof block.text === "string" ? block.text : ""; + if (text) emitTextDelta(text); + } else if (isToolBlock(block)) { + startToolCall(data.index, block); + } + return; + } + + case "content-block-delta": { + const delta = data.delta; + if (delta.type === "text-delta") { + emitTextDelta(typeof delta.text === "string" ? delta.text : ""); + } else if (delta.type === "block-delta") { + const fields = delta.fields as ContentBlock; + if (isToolBlock(fields)) { + const key = String(data.index); + const state = toolCallsByIndex.get(key) ?? startToolCall(data.index, fields); + if (state) emitToolArgs(state, getArgsString(fields)); + } + } + return; + } + + case "content-block-finish": { + const block = data.content; + if (isToolBlock(block)) { + const state = toolCallsByIndex.get(String(data.index)) ?? startToolCall(data.index, block); + if (state) endToolCall(state); + } + return; + } + + case "message-finish": { + endAllToolCalls(); + endText(); + return; + } + + case "error": { + const message = "message" in data && typeof data.message === "string" + ? data.message + : "LangGraph message stream error"; + emit({ type: EventType.RUN_ERROR, message } as AGUIEvent); + endText(); + return; + } + + default: + return; + } + }; + + return { + init: () => ({ openui: channel }), + process: (event: ProtocolEvent) => { + // Ignore the events we forward ourselves to avoid re-entrant processing. + if (event.method === OPENUI_CHANNEL_METHOD) return true; + if (event.method !== "messages") return true; + + processMessages(event.params.data as MessagesData); + return true; + }, + finalize: () => { + endAllToolCalls(); + endText(); + }, + fail: (err) => { + emit({ + type: EventType.RUN_ERROR, + message: err instanceof Error ? err.message : "LangGraph run failed", + } as AGUIEvent); + endText(); + }, + }; +} + +function isTextBlock(block: ContentBlock): boolean { + return block.type === "text"; +} + +function isToolBlock(block: ContentBlock): boolean { + return TOOL_BLOCK_TYPES.has(block.type); +} + +function getToolCallId(block: ContentBlock): string | undefined { + const id = (block as { id?: unknown }).id; + return typeof id === "string" && id.length > 0 ? id : undefined; +} + +function getToolCallName(block: ContentBlock): string | undefined { + const name = (block as { name?: unknown }).name; + return typeof name === "string" && name.length > 0 ? name : undefined; +} + +function getArgsString(block: ContentBlock): string { + const args = (block as { args?: unknown }).args; + if (typeof args === "string") return args; + if (args != null && typeof args === "object") return JSON.stringify(args); + return ""; +} diff --git a/examples/langgraph-chat/src/agent/tools.ts b/examples/langchain-chat/src/agent/tools.ts similarity index 100% rename from examples/langgraph-chat/src/agent/tools.ts rename to examples/langchain-chat/src/agent/tools.ts diff --git a/examples/langchain-chat/src/app/api/chat/route.ts b/examples/langchain-chat/src/app/api/chat/route.ts new file mode 100644 index 000000000..31006bde0 --- /dev/null +++ b/examples/langchain-chat/src/app/api/chat/route.ts @@ -0,0 +1,23 @@ +import { createLangChainStreamResponse } from "@/lib/langchain-stream-response"; +import { NextRequest } from "next/server"; + +export const runtime = "nodejs"; + +/** + * Local LangGraph server configuration defined via langgraph.json + */ +const API_URL = process.env.LANGGRAPH_API_URL || "http://localhost:2024"; +const ASSISTANT_ID = process.env.LANGGRAPH_ASSISTANT_ID || "agent"; + +/** + * Proxies the browser <-> LangGraph server. The browser posts native AG-UI + * messages; {@link createLangChainStreamResponse} converts them to LangChain + * messages, starts the graph over the protocol-v2 endpoints, and relays only + * the custom OpenUI channel. + */ +export async function POST(req: NextRequest) { + return createLangChainStreamResponse(req, { + apiUrl: API_URL, + assistantId: ASSISTANT_ID, + }); +} diff --git a/examples/langgraph-chat/src/app/globals.css b/examples/langchain-chat/src/app/globals.css similarity index 100% rename from examples/langgraph-chat/src/app/globals.css rename to examples/langchain-chat/src/app/globals.css diff --git a/examples/langgraph-chat/src/app/layout.tsx b/examples/langchain-chat/src/app/layout.tsx similarity index 100% rename from examples/langgraph-chat/src/app/layout.tsx rename to examples/langchain-chat/src/app/layout.tsx diff --git a/examples/langgraph-chat/src/app/page.tsx b/examples/langchain-chat/src/app/page.tsx similarity index 61% rename from examples/langgraph-chat/src/app/page.tsx rename to examples/langchain-chat/src/app/page.tsx index 6786d0d5e..16ce7329c 100644 --- a/examples/langgraph-chat/src/app/page.tsx +++ b/examples/langchain-chat/src/app/page.tsx @@ -2,7 +2,6 @@ import "@openuidev/react-ui/components.css"; import { useTheme } from "@/hooks/use-system-theme"; -import { langGraphAdapter, langGraphMessageFormat } from "@openuidev/react-headless"; import { FullScreen } from "@openuidev/react-ui"; import { openuiChatLibrary } from "@openuidev/react-ui/genui-lib"; @@ -12,21 +11,9 @@ export default function Page() { return (
{ - return fetch("/api/chat", { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ - // Convert OpenUI messages to LangChain shape for the graph. - // The run is stateless: the full history is sent each turn. - messages: langGraphMessageFormat.toApi(messages), - }), - signal: abortController.signal, - }); - }} - streamProtocol={langGraphAdapter()} + apiUrl="/api/chat" componentLibrary={openuiChatLibrary} - agentName="OpenUI + LangGraph Chat" + agentName="OpenUI + DeepAgents Chat" theme={{ mode }} conversationStarters={{ variant: "short", diff --git a/examples/langgraph-chat/src/generated/system-prompt.txt b/examples/langchain-chat/src/generated/system-prompt.txt similarity index 100% rename from examples/langgraph-chat/src/generated/system-prompt.txt rename to examples/langchain-chat/src/generated/system-prompt.txt diff --git a/examples/langgraph-chat/src/hooks/use-system-theme.tsx b/examples/langchain-chat/src/hooks/use-system-theme.tsx similarity index 100% rename from examples/langgraph-chat/src/hooks/use-system-theme.tsx rename to examples/langchain-chat/src/hooks/use-system-theme.tsx diff --git a/examples/langchain-chat/src/lib/langchain-stream-response.ts b/examples/langchain-chat/src/lib/langchain-stream-response.ts new file mode 100644 index 000000000..6d015c34e --- /dev/null +++ b/examples/langchain-chat/src/lib/langchain-stream-response.ts @@ -0,0 +1,160 @@ +import type { Message } from "@ag-ui/core"; + +import { streamOpenUI } from "@/lib/stream-openui"; + +/** + * A LangGraph/LangChain input message, i.e. the `{ type, content, ... }` shape + * the graph expects on its `messages` input (as opposed to the AG-UI + * `{ role, content, ... }` shape the browser sends). + */ +interface LangGraphInputMessage { + /** LangChain message type: `"human" | "ai" | "tool" | "system"`. */ + type: string; + content?: unknown; + tool_calls?: unknown; + tool_call_id?: string; + [key: string]: unknown; +} + +/** A single AG-UI assistant tool call, as sent by the browser. */ +type ToolCall = NonNullable["toolCalls"]>[number]; + +/** + * Configuration for {@link createLangChainStreamResponse}. + */ +export interface CreateLangChainStreamResponseOptions { + /** + * Base URL of the LangGraph server (agent protocol v2), e.g. + * `http://localhost:2024`. + */ + apiUrl: string; + /** The id of the graph/assistant to run (its registered `graph_id`). */ + assistantId: string; + /** Optional API key forwarded as `x-api-key` (required for LangSmith). */ + apiKey?: string; +} + +/** + * Turns an incoming chat request into a streaming OpenUI Server-Sent Events + * `Response`, suitable for returning directly from a route handler. + * + * It reads `{ messages }` (AG-UI format) from the request body, converts them + * to LangChain input messages, strips internal tool history that must not be + * replayed, starts the graph over the protocol-v2 endpoints via + * {@link streamOpenUI}, and relays only the custom OpenUI channel back to the + * browser. The request's `signal` is wired through so an aborted/disconnected + * client tears down the upstream run. + * + * @param request - The incoming request (its JSON body and abort signal are used). + * @param options - LangGraph connection settings, see + * {@link CreateLangChainStreamResponseOptions}. + * @returns A `Response` streaming `text/event-stream` AG-UI events. + */ +export async function createLangChainStreamResponse( + request: Request, + options: CreateLangChainStreamResponseOptions, +): Promise { + const { messages = [] } = (await request.json()) as { messages?: Message[] }; + const langChainMessages = toLangChainMessages(messages); + const visibleMessages = stripInternalToolHistory(langChainMessages); + + const readable = streamOpenUI({ + apiUrl: options.apiUrl, + assistantId: options.assistantId, + apiKey: options.apiKey, + input: { messages: visibleMessages }, + signal: request.signal, + }); + + return new Response(readable, { + headers: { + "Content-Type": "text/event-stream", + "Cache-Control": "no-cache, no-transform", + Connection: "keep-alive", + }, + }); +} + +/** + * The browser stores the specialist's streamed tool call and final answer as + * one assistant message, but it does not store the ToolNode result. Replaying + * that partial tool transcript makes OpenAI reject the next request. Tool + * execution belongs to the current graph run, so retain only visible chat + * history between stateless runs. + */ +function stripInternalToolHistory(messages: LangGraphInputMessage[]): LangGraphInputMessage[] { + return messages.flatMap((message) => { + if (message.type === "tool") return []; + if (message.type !== "ai" || !message.tool_calls) return [message]; + + const visibleMessage = { ...message }; + delete visibleMessage.tool_calls; + return [visibleMessage]; + }); +} + +/** + * Converts AG-UI messages (`{ role, content, ... }`) into LangChain input + * messages (`{ type, content, ... }`) understood by the graph. + */ +function toLangChainMessages(messages: Message[]): LangGraphInputMessage[] { + return messages.map((message) => { + switch (message.role) { + case "user": + return { type: "human", content: extractContent(message.content) }; + case "assistant": { + const result: LangGraphInputMessage = { type: "ai", content: message.content ?? "" }; + if (message.toolCalls?.length) { + result.tool_calls = message.toolCalls.map(toLangChainToolCall); + } + return result; + } + case "tool": + return { + type: "tool", + content: message.content, + tool_call_id: message.toolCallId, + }; + case "system": + return { type: "system", content: message.content }; + case "developer": + return { type: "system", content: message.content }; + default: + return { type: "system", content: "" }; + } + }); +} + +/** Maps an AG-UI tool call to the LangChain `{ id, name, args }` shape. */ +function toLangChainToolCall(toolCall: ToolCall) { + return { + id: toolCall.id, + name: toolCall.function.name, + args: safeParseArgs(toolCall.function.arguments), + }; +} + +/** + * Flattens AG-UI message content (string or content blocks) into the plain + * text the graph expects, keeping only `text` blocks. + */ +function extractContent(content: Message["content"]): string { + if (typeof content === "string") return content; + if (!Array.isArray(content)) return ""; + return content + .filter((block) => block.type === "text") + .map((block) => block.text) + .join(""); +} + +/** + * Parses serialized tool-call arguments as JSON, falling back to the raw + * string when the arguments are not valid JSON. + */ +function safeParseArgs(args: string): Record | string { + try { + return JSON.parse(args) as Record; + } catch { + return args; + } +} diff --git a/examples/langchain-chat/src/lib/stream-openui.ts b/examples/langchain-chat/src/lib/stream-openui.ts new file mode 100644 index 000000000..dfdb48061 --- /dev/null +++ b/examples/langchain-chat/src/lib/stream-openui.ts @@ -0,0 +1,402 @@ +import { EventType, type AGUIEvent } from "@ag-ui/core"; + +/** + * Options for {@link streamOpenUI}. + */ +interface StreamOpenUIOptions { + /** + * Base URL of the LangGraph server (agent protocol v2), e.g. + * `http://localhost:2024`. Trailing slashes are stripped before use. + */ + apiUrl: string; + /** + * The id of the graph/assistant to run (the `graph_id` registered with the + * LangGraph server, e.g. `"agent"`). + */ + assistantId: string; + /** + * Optional API key forwarded as the `x-api-key` header (required by + * LangSmith deployments, omitted for local `langgraphjs dev`). + */ + apiKey?: string; + /** + * The run input handed to the graph — typically `{ messages: [...] }` in + * LangChain message format. Kept as `unknown` since this helper does not + * interpret it. + */ + input: unknown; + /** + * Caller's abort signal (Next.js aborts this when the browser disconnects). + * Aborting tears down the upstream LangGraph fetches and closes the stream. + */ + signal?: AbortSignal; +} + +/** + * A single Server-Sent Events frame parsed out of the LangGraph response body, + * reduced to the two fields this helper cares about. + */ +interface ProtocolSSEEvent { + /** The SSE `event:` field, e.g. `"custom"` or `"custom:openui"`. */ + event: string; + /** The concatenated SSE `data:` field (raw JSON string, not yet parsed). */ + data: string; +} + +/** + * The agent-protocol-v2 envelope carried in the SSE `data:` field. The payload + * of interest lives under `params.data` (for `custom` channels this is itself a + * {@link NamedCustomPayload}). + */ +interface ProtocolEvent { + /** Protocol method that produced the event, e.g. `"messages"` or `"custom"`. */ + method?: string; + params: { + /** Channel payload; for `custom:openui` this is a {@link NamedCustomPayload}. */ + data?: unknown; + }; +} + +/** + * The shape the LangGraph mux uses to forward a named custom channel: the + * server emits `event: custom` with `{ name: "openui", payload: }` + * rather than `event: custom:openui` with the bare event, so the channel name + * must be read from `name` and the real event unwrapped from `payload`. + */ +interface NamedCustomPayload { + /** Custom channel name; only `"openui"` payloads are relayed. */ + name?: string; + /** The actual {@link AGUIEvent} emitted by the transformer. */ + payload?: unknown; +} + +const encoder = new TextEncoder(); + +/** + * Drives an agent-protocol-v2 run on a LangGraph server and relays the + * transformer's AG-UI events to the browser as a Server-Sent Events stream. + * + * The flow is: + * 1. Open a `custom:openui` event subscription on a fresh thread. + * 2. Start the run (`run.start`) concurrently to avoid a subscribe/start + * deadlock. + * 3. For every forwarded `custom:openui` frame, unwrap the {@link AGUIEvent} + * and re-emit it to the client as `data: \n\n`. + * + * The stream closes as soon as a terminal event ({@link EventType.TEXT_MESSAGE_END} + * or {@link EventType.RUN_ERROR}) is seen, on upstream completion, or when the + * caller's {@link StreamOpenUIOptions.signal | signal} aborts. Errors are surfaced + * to the client as a {@link EventType.RUN_ERROR} event rather than throwing. + * + * @param options - See {@link StreamOpenUIOptions}. + * @returns A `ReadableStream` of UTF-8 encoded SSE frames suitable for a + * `text/event-stream` HTTP response. + */ +export function streamOpenUI({ + apiUrl, + assistantId, + apiKey, + input, + signal, +}: StreamOpenUIOptions): ReadableStream { + return new ReadableStream({ + async start(controller) { + const upstreamAbort = new AbortController(); + const onAbort = () => upstreamAbort.abort(); + signal?.addEventListener("abort", onAbort, { once: true }); + + const close = () => { + try { + controller.close(); + } catch { + // The browser may have already disconnected. + } + }; + + const send = (event: AGUIEvent) => { + controller.enqueue(encoder.encode(`data: ${JSON.stringify(event)}\n\n`)); + }; + + try { + const headers = buildHeaders(apiKey); + const baseUrl = apiUrl.replace(/\/+$/, ""); + const threadId = crypto.randomUUID(); + + // Subscribe to the `custom:openui` channel without a namespace/depth + // filter: the transformer forwards events from the agent's model node + // (a nested namespace like `model_request:`), so restricting to + // the root namespace would drop them. + const eventsResponsePromise = fetch(`${baseUrl}/threads/${threadId}/stream/events`, { + method: "POST", + headers, + body: JSON.stringify({ + channels: ["custom:openui"], + }), + signal: upstreamAbort.signal, + }); + + const startRunPromise = startRun({ + baseUrl, + threadId, + assistantId, + input, + headers, + signal: upstreamAbort.signal, + }); + + const eventsResponse = await eventsResponsePromise; + + if (!eventsResponse.ok || !eventsResponse.body) { + throw new Error(`LangGraph event stream failed: ${eventsResponse.status}`); + } + + await startRunPromise; + + const reader = eventsResponse.body.getReader(); + const decoder = new TextDecoder(); + let buffer = ""; + + while (true) { + const { done, value } = await reader.read(); + if (done) break; + + buffer += decoder.decode(value, { stream: true }); + const blocks = buffer.split("\n\n"); + buffer = blocks.pop() ?? ""; + + for (const block of blocks) { + const parsed = parseSSEBlock(block); + if (!isOpenUIEventName(parsed.event) || !parsed.data) continue; + + const agUIEvent = extractAGUIEvent(parsed.data); + if (!agUIEvent) continue; + + send(agUIEvent); + + if ( + agUIEvent.type === EventType.TEXT_MESSAGE_END || + agUIEvent.type === EventType.RUN_ERROR + ) { + upstreamAbort.abort(); + close(); + return; + } + } + } + } catch (error) { + if (!signal?.aborted) { + send({ + type: EventType.RUN_ERROR, + message: error instanceof Error ? error.message : "OpenUI stream failed", + } as AGUIEvent); + } + } finally { + signal?.removeEventListener("abort", onAbort); + close(); + } + }, + cancel() { + // The upstream fetch is tied to the caller's request signal, which Next.js + // aborts when the browser disconnects. + }, + }); +} + +/** + * Issues the `run.start` command that kicks off graph execution on the given + * thread. Throws with an enriched message on failure — including a list of + * registered graph ids when the assistant is not found (404). + */ +async function startRun({ + baseUrl, + threadId, + assistantId, + input, + headers, + signal, +}: { + /** Normalized LangGraph base URL (no trailing slash). */ + baseUrl: string; + /** The thread the run is bound to (shared with the event subscription). */ + threadId: string; + /** Graph/assistant id to run. */ + assistantId: string; + /** Run input forwarded verbatim to the graph. */ + input: unknown; + /** Request headers (content type plus optional `x-api-key`). */ + headers: HeadersInit; + /** Abort signal tying this fetch to the overall stream lifecycle. */ + signal: AbortSignal; +}) { + const response = await fetch(`${baseUrl}/threads/${threadId}/commands`, { + method: "POST", + headers, + body: JSON.stringify({ + id: 1, + method: "run.start", + params: { + assistant_id: assistantId, + input, + }, + }), + signal, + }); + + if (!response.ok) { + const details = await response.text(); + const hint = + response.status === 404 + ? await getAssistantHint(baseUrl, headers, assistantId, signal) + : undefined; + throw new Error( + [ + `LangGraph run.start failed: ${response.status}`, + details.trim() || undefined, + hint, + ] + .filter(Boolean) + .join(". "), + ); + } + + const payload = (await response.json()) as { type?: string; message?: string }; + if (payload.type === "error") { + throw new Error(payload.message ?? "LangGraph run.start failed"); + } +} + +/** + * Best-effort diagnostic for a 404 from `run.start`: queries the server's + * registered assistants and returns a human-readable hint listing the + * available graph ids, or `undefined` if it cannot be determined. + */ +async function getAssistantHint( + baseUrl: string, + headers: HeadersInit, + assistantId: string, + signal: AbortSignal, +): Promise { + try { + const response = await fetch(`${baseUrl}/assistants/search`, { + method: "POST", + headers, + body: JSON.stringify({}), + signal, + }); + if (!response.ok) return undefined; + + const assistants = (await response.json()) as Array<{ + assistant_id?: string; + graph_id?: string; + name?: string | null; + }>; + const registered = assistants + .map((assistant) => assistant.graph_id ?? assistant.name ?? assistant.assistant_id) + .filter(Boolean); + + if (!registered.length) return undefined; + return `Configured assistant "${assistantId}" is not registered on this LangGraph server; available graph ids: ${registered.join(", ")}`; + } catch { + return undefined; + } +} + +/** + * Builds the JSON request headers, adding the `x-api-key` header only when an + * {@link StreamOpenUIOptions.apiKey | apiKey} is provided. + */ +function buildHeaders(apiKey?: string): HeadersInit { + const headers: Record = { + "Content-Type": "application/json", + }; + + if (apiKey) { + headers["x-api-key"] = apiKey; + } + + return headers; +} + +/** + * Parses one SSE frame (the text between blank-line delimiters) into its + * `event` and concatenated `data` fields. Lines that are neither are ignored. + */ +function parseSSEBlock(block: string): ProtocolSSEEvent { + let event = ""; + const dataLines: string[] = []; + + for (const line of block.split("\n")) { + if (line.startsWith("event:")) { + event = line.slice(6).trim(); + } else if (line.startsWith("data:")) { + dataLines.push(line.slice(5).trim()); + } + } + + return { event, data: dataLines.join("\n") }; +} + +/** + * Unwraps the {@link AGUIEvent} from a raw SSE `data:` JSON string. Handles both + * the protocol-envelope form ({@link ProtocolEvent} → {@link NamedCustomPayload}) + * and a bare event that was already unwrapped upstream. + * + * @returns The event, or `undefined` if the payload is not an `openui` event. + */ +function extractAGUIEvent(data: string): AGUIEvent | undefined { + const parsed = JSON.parse(data) as ProtocolEvent | AGUIEvent; + if (isProtocolEvent(parsed)) { + return extractCustomPayload(parsed.params.data); + } + return parsed as AGUIEvent; +} + +/** + * Whether an SSE `event:` name corresponds to the OpenUI custom channel. The + * server may emit either the generic `custom` (with a named payload) or the + * fully-qualified `custom:openui`. + */ +function isOpenUIEventName(event: string): boolean { + return event === "custom" || event === "custom:openui"; +} + +/** + * Extracts the {@link AGUIEvent} from a `custom` channel payload, returning + * `undefined` for named payloads whose channel is not `"openui"`. + */ +function extractCustomPayload(data: unknown): AGUIEvent | undefined { + if (isNamedCustomPayload(data)) { + if (data.name !== "openui") return undefined; + return data.payload as AGUIEvent; + } + + return data as AGUIEvent; +} + +/** + * Type guard for the {@link NamedCustomPayload} `{ name, payload }` shape used + * when the server forwards a named custom channel. + */ +function isNamedCustomPayload(value: unknown): value is NamedCustomPayload { + return ( + typeof value === "object" && + value !== null && + "name" in value && + "payload" in value + ); +} + +/** + * Type guard distinguishing a {@link ProtocolEvent} envelope (has + * `params.data`) from a bare {@link AGUIEvent}. + */ +function isProtocolEvent(value: ProtocolEvent | AGUIEvent): value is ProtocolEvent { + return ( + typeof value === "object" && + value !== null && + "params" in value && + typeof value.params === "object" && + value.params !== null && + "data" in value.params + ); +} diff --git a/examples/langgraph-chat/src/library.ts b/examples/langchain-chat/src/library.ts similarity index 100% rename from examples/langgraph-chat/src/library.ts rename to examples/langchain-chat/src/library.ts diff --git a/examples/langgraph-chat/tsconfig.json b/examples/langchain-chat/tsconfig.json similarity index 100% rename from examples/langgraph-chat/tsconfig.json rename to examples/langchain-chat/tsconfig.json diff --git a/examples/langgraph-chat/README.md b/examples/langgraph-chat/README.md deleted file mode 100644 index fa7f7613a..000000000 --- a/examples/langgraph-chat/README.md +++ /dev/null @@ -1,95 +0,0 @@ -# OpenUI + LangGraph Chat - -A generative-UI chat app where the responses are produced by a **multi-agent -[LangGraph](https://langchain-ai.github.io/langgraphjs/) graph** and rendered -live with [OpenUI](https://openui.com). - -A supervisor routes each message to one of three specialists — **weather**, -**finance**, or **research** — and the chosen agent streams its answer as -[OpenUI Lang](https://www.openui.com/docs/openui-lang/overview), which the -renderer turns into cards, tables, and charts as the tokens arrive. - -``` -browser ──fetch /api/chat──▶ Next.js route ──@langchain/langgraph-sdk──▶ LangGraph server - ▲ │ (router → specialist - └────── SSE (LangGraph) ───────┘ → tools → OpenUI Lang) - parsed by langGraphAdapter() -``` - -## How it connects - -| Piece | File | Role | -| --- | --- | --- | -| Frontend | `src/app/page.tsx` | `` with `streamProtocol={langGraphAdapter()}`; converts messages with `langGraphMessageFormat.toApi`. | -| Proxy | `src/app/api/chat/route.ts` | Opens a stateless run on the LangGraph server and forwards its SSE. Keeps the API key + deployment URL server-side. | -| Graph | `src/agent/graph.ts` | Supervisor + specialist ReAct loops. Each specialist shares the generated OpenUI system prompt, so its output is OpenUI Lang. | -| Tools | `src/agent/tools.ts` | Mock `get_weather` / `get_stock_price` / `search_web` (no external keys needed). | -| Component library | `src/library.ts` | The OpenUI components the model is allowed to render. `pnpm generate:prompt` turns it into `src/generated/system-prompt.txt`. | - -The graph streams in `messages-tuple` mode; the proxy normalizes those events to -`event: messages`, which is exactly what `langGraphAdapter()` consumes. - -## Getting started (local) - -This example runs **two processes**: the LangGraph server (runs the model) and -the Next.js app (serves the UI). Run them in two terminals. - -1. Create a `.env` from the template: - - ```bash - cp .env.example .env - ``` - - ```env - OPENAI_API_KEY=sk-your-key-here - OPENAI_MODEL=gpt-5.5 - LANGGRAPH_API_URL=http://localhost:2024 - LANGGRAPH_ASSISTANT_ID=agent - ``` - -2. **Terminal 1 — LangGraph server** (hot-reloads the graph on `:2024`): - - ```bash - pnpm langgraph:dev - ``` - -3. **Terminal 2 — Next.js app**: - - ```bash - pnpm dev - ``` - -Open [http://localhost:3000](http://localhost:3000) and try a starter such as -"Weather in Tokyo" or "AAPL stock price". - -> `OPENAI_API_KEY` is read by the **LangGraph server** (it runs the LLM), so it -> belongs in `.env` next to `langgraph.json`. The Next.js app only needs the -> `LANGGRAPH_*` variables. - -## Using LangGraph Cloud / Platform - -Deploy the graph (this folder already has a `langgraph.json`) and point the app -at the deployment instead of localhost — no app code changes: - -```env -LANGGRAPH_API_URL=https://your-deployment.us.langgraph.app -LANGGRAPH_ASSISTANT_ID=agent # graph name, or a created assistant id -LANGSMITH_API_KEY=lsv2-... # auth for the deployment -``` - -`LANGSMITH_API_KEY` is sent as `x-api-key` by the SDK from the server side only. -Restart `pnpm dev` after changing `.env`. - -## Customizing - -- **Add a specialist:** extend the `SPECIALISTS` map in `src/agent/graph.ts` and - add the matching `*_agent` / `*_tools` node pair in the graph wiring. -- **Use real tools:** replace the mock bodies in `src/agent/tools.ts` with real - API calls. -- **Change what the model can render:** edit `src/library.ts`, then re-run - `pnpm generate:prompt` (the dev scripts do this for you). - -## Learn more - -- [OpenUI docs](https://openui.com/docs) and the [LangGraph provider guide](https://www.openui.com/docs/chat/providers) -- [LangGraph.js docs](https://langchain-ai.github.io/langgraphjs/) diff --git a/examples/langgraph-chat/src/agent/graph.ts b/examples/langgraph-chat/src/agent/graph.ts deleted file mode 100644 index 5e7b8c5e7..000000000 --- a/examples/langgraph-chat/src/agent/graph.ts +++ /dev/null @@ -1,158 +0,0 @@ -import { existsSync, readFileSync } from "node:fs"; -import { dirname, join } from "node:path"; -import { fileURLToPath } from "node:url"; - -import { AIMessage, SystemMessage } from "@langchain/core/messages"; -import { Annotation, END, MessagesAnnotation, START, StateGraph } from "@langchain/langgraph"; -import { ToolNode } from "@langchain/langgraph/prebuilt"; -import { ChatOpenAI } from "@langchain/openai"; -import { z } from "zod"; - -import { getStockPrice, getWeather, searchWeb } from "./tools"; - -/** - * The OpenUI system prompt is generated from `src/library.ts` by the OpenUI - * CLI (`pnpm generate:prompt`). It teaches the model to answer in OpenUI Lang - * so the renderer can turn each reply into live React components. - * - * Every specialist shares this prompt, which is what makes their streamed - * output render as generative UI in the chat. - */ -function loadSystemPrompt(): string { - const candidates = [ - // Primary: relative to the working dir (how `langgraphjs dev` runs). - join(process.cwd(), "src/generated/system-prompt.txt"), - // Fallback: relative to this module, for runners whose cwd differs. - join(dirname(fileURLToPath(import.meta.url)), "../generated/system-prompt.txt"), - ]; - for (const path of candidates) { - if (existsSync(path)) return readFileSync(path, "utf-8"); - } - throw new Error( - "OpenUI system prompt not found. Run `pnpm generate:prompt` before starting the graph.", - ); -} - -const OPENUI_SYSTEM_PROMPT = loadSystemPrompt(); - -const MODEL = process.env.OPENAI_MODEL || "gpt-5.5"; - -/** Streaming model used by the specialists (tokens stream to the UI). */ -const chatModel = new ChatOpenAI({ model: MODEL, streaming: true }); - -/** Non-streaming model used by the router for a single structured decision. */ -const routerModel = new ChatOpenAI({ model: MODEL }); - -// ── Specialists ────────────────────────────────────────────────── -// Each specialist owns one tool and a short role hint layered on top of the -// shared OpenUI prompt. Add a specialist by extending this map and wiring a -// matching agent/tools node pair below. - -const SPECIALISTS = { - weather: { - tools: [getWeather], - hint: "You are the weather specialist. Use get_weather, then present conditions and the forecast as generative UI (cards, stats, a small table).", - }, - finance: { - tools: [getStockPrice], - hint: "You are the finance specialist. Use get_stock_price, then present the quote and day range as generative UI (stat cards, a chart or table).", - }, - research: { - tools: [searchWeb], - hint: "You are the research specialist. Use search_web, then summarize the findings as generative UI (headings, lists, callouts).", - }, -} as const; - -type Specialist = keyof typeof SPECIALISTS; - -// ── State ──────────────────────────────────────────────────────── - -const AgentState = Annotation.Root({ - ...MessagesAnnotation.spec, - next: Annotation(), -}); - -type State = typeof AgentState.State; - -// ── Router node ────────────────────────────────────────────────── - -const RouteSchema = z.object({ - next: z - .enum(["weather", "finance", "research"]) - .describe("Which specialist should handle the most recent user request."), -}); - -const ROUTER_PROMPT = [ - "You are a supervisor routing a user request to exactly one specialist:", - "- weather: current weather, forecasts, climate for a place.", - "- finance: stock prices, tickers, market data.", - "- research: everything else / general questions that need a web lookup.", - "Pick the single best specialist for the latest user message.", -].join("\n"); - -async function router(state: State): Promise> { - try { - const decision = await routerModel - .withStructuredOutput(RouteSchema, { name: "route" }) - .invoke([new SystemMessage(ROUTER_PROMPT), ...state.messages]); - return { next: decision.next }; - } catch { - // Default to research if structured routing fails for any reason. - return { next: "research" }; - } -} - -// ── Agent node factory ─────────────────────────────────────────── - -function agentNode(specialist: Specialist) { - const { tools, hint } = SPECIALISTS[specialist]; - const boundModel = chatModel.bindTools([...tools]); - const systemMessage = new SystemMessage(`${OPENUI_SYSTEM_PROMPT}\n\n${hint}`); - - return async (state: State): Promise> => { - const response = await boundModel.invoke([systemMessage, ...state.messages]); - return { messages: [response] }; - }; -} - -/** After an agent runs, loop to its tools if it requested any, else finish. */ -function routeAfterAgent(state: State): "tools" | "end" { - const last = state.messages[state.messages.length - 1] as AIMessage | undefined; - return last?.tool_calls?.length ? "tools" : "end"; -} - -// ── Graph wiring ───────────────────────────────────────────────── -// Nodes are wired explicitly (rather than in a loop) to keep LangGraph's -// node-name types intact. Each specialist is its own ReAct loop: -// agent -> (tool_calls?) -> tools -> agent -> ... -> END - -export const graph = new StateGraph(AgentState) - .addNode("router", router) - .addNode("weather_agent", agentNode("weather")) - .addNode("weather_tools", new ToolNode([...SPECIALISTS.weather.tools])) - .addNode("finance_agent", agentNode("finance")) - .addNode("finance_tools", new ToolNode([...SPECIALISTS.finance.tools])) - .addNode("research_agent", agentNode("research")) - .addNode("research_tools", new ToolNode([...SPECIALISTS.research.tools])) - .addEdge(START, "router") - .addConditionalEdges("router", (state: State) => state.next, { - weather: "weather_agent", - finance: "finance_agent", - research: "research_agent", - }) - .addConditionalEdges("weather_agent", routeAfterAgent, { - tools: "weather_tools", - end: END, - }) - .addEdge("weather_tools", "weather_agent") - .addConditionalEdges("finance_agent", routeAfterAgent, { - tools: "finance_tools", - end: END, - }) - .addEdge("finance_tools", "finance_agent") - .addConditionalEdges("research_agent", routeAfterAgent, { - tools: "research_tools", - end: END, - }) - .addEdge("research_tools", "research_agent") - .compile(); diff --git a/examples/langgraph-chat/src/app/api/chat/route.ts b/examples/langgraph-chat/src/app/api/chat/route.ts deleted file mode 100644 index 6bbcc7a92..000000000 --- a/examples/langgraph-chat/src/app/api/chat/route.ts +++ /dev/null @@ -1,129 +0,0 @@ -import { Client } from "@langchain/langgraph-sdk"; -import { NextRequest } from "next/server"; - -export const runtime = "nodejs"; - -const API_URL = process.env.LANGGRAPH_API_URL || "http://localhost:2024"; -const ASSISTANT_ID = process.env.LANGGRAPH_ASSISTANT_ID || "agent"; -const API_KEY = process.env.LANGSMITH_API_KEY; - -// Graph nodes whose streamed tokens are internal (e.g. the supervisor's routing -// decision) and must not surface as assistant output in the chat. -const INTERNAL_NODES = new Set(["router"]); - -interface LangGraphInputMessage { - type: string; - content?: unknown; - tool_calls?: unknown; - tool_call_id?: string; - [key: string]: unknown; -} - -/** - * The browser stores the specialist's streamed tool call and final answer as - * one assistant message, but it does not store the ToolNode result. Replaying - * that partial tool transcript makes OpenAI reject the next request. Tool - * execution belongs to the current graph run, so retain only visible chat - * history between stateless runs. - */ -function stripInternalToolHistory(messages: LangGraphInputMessage[]): LangGraphInputMessage[] { - return messages.flatMap((message) => { - if (message.type === "tool") return []; - if (message.type !== "ai" || !message.tool_calls) return [message]; - - const visibleMessage = { ...message }; - delete visibleMessage.tool_calls; - return [visibleMessage]; - }); -} - -/** - * Proxies the browser <-> LangGraph server. - * - * The client posts messages already in LangChain format (see `page.tsx`, - * which runs `langGraphMessageFormat.toApi`). We open a stateless streaming - * run and forward the LangGraph server's Server-Sent Events to the browser, - * where `langGraphAdapter()` parses them. - * - * Keeping the LangGraph connection here (rather than calling the server - * directly from the browser) is what lets us attach the API key and keep the - * deployment URL server-side. - */ -export async function POST(req: NextRequest) { - const { messages = [] } = (await req.json()) as { messages?: LangGraphInputMessage[] }; - const visibleMessages = stripInternalToolHistory(messages); - - const client = new Client({ apiUrl: API_URL, apiKey: API_KEY }); - const encoder = new TextEncoder(); - - const readable = new ReadableStream({ - async start(controller) { - let closed = false; - - const send = (event: string, data: unknown) => { - if (closed) return; - try { - controller.enqueue(encoder.encode(`event: ${event}\ndata: ${JSON.stringify(data)}\n\n`)); - } catch { - // Controller already closed (client disconnected) — stop writing. - closed = true; - } - }; - - const close = () => { - if (closed) return; - closed = true; - try { - controller.close(); - } catch { - // already closed - } - }; - - try { - const run = client.runs.stream(null, ASSISTANT_ID, { - input: { messages: visibleMessages }, - streamMode: ["messages-tuple", "updates"], - signal: req.signal, - }); - - for await (const chunk of run) { - const raw = chunk.event ?? ""; - - if (raw.startsWith("messages")) { - // Token tuples arrive as [messageChunk, metadata]. Drop tokens from - // internal nodes (the supervisor) so only specialist output renders, - // and normalize the event name to what langGraphAdapter() expects. - const meta = Array.isArray(chunk.data) - ? (chunk.data[1] as { langgraph_node?: string } | undefined) - : undefined; - if (meta?.langgraph_node && INTERNAL_NODES.has(meta.langgraph_node)) continue; - send("messages", chunk.data); - continue; - } - - send(raw, chunk.data); - } - - send("end", null); - } catch (err) { - // A client disconnect aborts the upstream run — that's not an error. - if (!req.signal.aborted) { - const message = err instanceof Error ? err.message : "LangGraph stream error"; - console.error("LangGraph route error:", message); - send("error", { error: "StreamError", message }); - } - } finally { - close(); - } - }, - }); - - return new Response(readable, { - headers: { - "Content-Type": "text/event-stream", - "Cache-Control": "no-cache, no-transform", - Connection: "keep-alive", - }, - }); -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 25d6d61b6..af49dfeb4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -487,20 +487,26 @@ importers: specifier: ^5 version: 5.9.3 - examples/langgraph-chat: + examples/langchain-chat: dependencies: + '@ag-ui/core': + specifier: ^0.0.57 + version: 0.0.57 '@langchain/core': - specifier: ^1.1.48 - version: 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) + specifier: ^1.2.1 + version: 1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0) '@langchain/langgraph': - specifier: ^1.3.6 - version: 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) + specifier: ^1.4.5 + version: 1.4.5(@langchain/core@1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(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.4.3))(zod@4.4.3) '@langchain/langgraph-sdk': specifier: ^1.9.18 - version: 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)) + version: 1.9.21(@langchain/core@1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(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)) '@langchain/openai': - specifier: ^1.4.7 - version: 1.4.7(@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))(ws@8.21.0) + specifier: ^1.5.2 + version: 1.5.2(@langchain/core@1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(ws@8.21.0) + '@langchain/protocol': + specifier: ^0.0.18 + version: 0.0.18 '@openuidev/react-headless': specifier: workspace:* version: link:../../packages/react-headless @@ -510,6 +516,12 @@ importers: '@openuidev/react-ui': specifier: workspace:* version: link:../../packages/react-ui + deepagents: + specifier: ^1.10.5 + version: 1.10.5(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(langsmith@0.7.6(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(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))(ws@8.21.0)(zod-to-json-schema@3.25.2(zod@4.4.3)) + langchain: + specifier: ^1.5.1 + version: 1.5.1(@langchain/core@1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(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))(ws@8.21.0)(zod-to-json-schema@3.25.2(zod@4.4.3)) next: specifier: 16.1.6 version: 16.1.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.89.2) @@ -521,11 +533,11 @@ importers: version: 19.2.3(react@19.2.3) zod: specifier: ^4.0.0 - version: 4.3.6 + version: 4.4.3 devDependencies: '@langchain/langgraph-cli': specifier: ^1.2.5 - version: 1.3.0(rkbxzf4lbb37fnypru5cw45rfm) + version: 1.3.0(fcbb3c15a113526a33bf21049512d742) '@openuidev/cli': specifier: workspace:* version: link:../../packages/openui-cli @@ -547,6 +559,9 @@ importers: eslint-config-next: specifier: 16.1.6 version: 16.1.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) + npm-run-all2: + specifier: ^9.0.2 + version: 9.0.2 tailwindcss: specifier: ^4 version: 4.2.2 @@ -561,7 +576,7 @@ importers: version: 0.0.53 '@ag-ui/mastra': specifier: ^1.0.1 - version: 1.0.2(hjtxoyfvlz4rpqmlqd5xziyo4m) + version: 1.0.2(4f8bc6096e13a15f8e0efa6d3b66bac4) '@mastra/core': specifier: 1.15.0 version: 1.15.0(@cfworker/json-schema@4.1.1)(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@1.0.0)(typebox@1.1.38)(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@1.0.0)(typebox@1.1.38)(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(typebox@1.1.38)(zod@4.3.6))(@types/json-schema@7.0.15)(openapi-types@12.1.3)(zod@4.3.6) @@ -975,10 +990,10 @@ importers: version: 0.1.3(react@19.2.0) expo: specifier: ~54.0.6 - version: 54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) + version: 54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) expo-status-bar: specifier: ~55.0.4 - version: 55.0.4(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) + version: 55.0.4(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) openai: specifier: ^4.90.0 version: 4.104.0(ws@8.21.0)(zod@4.3.6) @@ -987,13 +1002,13 @@ importers: version: 19.2.0 react-native: specifier: 0.83.2 - version: 0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0) + version: 0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0) react-native-safe-area-context: specifier: ^5.7.0 - version: 5.7.0(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) + version: 5.7.0(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) react-native-svg: specifier: 15.12.1 - version: 15.12.1(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) + version: 15.12.1(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) react-native-web: specifier: ^0.21.0 version: 0.21.2(react-dom@19.2.4(react@19.2.0))(react@19.2.0) @@ -1420,13 +1435,13 @@ importers: devDependencies: '@tailwindcss/vite': specifier: ^4 - version: 4.2.2(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)) + version: 4.2.2(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)) jiti: specifier: ^2.0.0 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.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) + 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.6.1)(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 @@ -1907,6 +1922,9 @@ packages: '@ag-ui/core@0.0.53': resolution: {integrity: sha512-11UocR7fFdMWw503bWCX2IOK15vbWfxT11Mn9xOiPBVO/UVcn57ywGrlLL4UaBlPgmUTvuzr2yYR2ElSqiN2wQ==} + '@ag-ui/core@0.0.57': + resolution: {integrity: sha512-gho1OWjNE6E3Rl7ZEZ1wr2CEpUHjLFU0FqzCZZk439TicLu+BfLCMkMokB07bMGlRmbJ60hM6LW60iOVauCx+Q==} + '@ag-ui/encoder@0.0.46': resolution: {integrity: sha512-XU6dTgUOFZsXeO+CxCMNl5R8NCbdUyifWP7sRNIi61Et3F/0d0JotLo1y1/9GMGfsJNnP7bjb4YYsx21R7YMlw==} @@ -2935,10 +2953,12 @@ packages: '@copilotkitnext/agent@0.0.0-mme-ag-ui-0-0-46-20260227141603': resolution: {integrity: sha512-HAaAVKWD+WS1/GTxY6xLMj65Ro9evnOM5UC0DueTFwlmgCkuHPVE4rDveiGVaNc0x4X75tofi5Ul9g6Tb9FT/w==} engines: {node: '>=18'} + deprecated: Moved into @copilotkit/runtime. Import from '@copilotkit/runtime/v2'. '@copilotkitnext/runtime@0.0.0-mme-ag-ui-0-0-46-20260227141603': resolution: {integrity: sha512-c6vosi7xzKvyujmmwb4rNvAnlr656ybCrPeeX3kO1V70zrnUVkS4EXlSz1T0fGqqNgf5Tfqmssy3xqyLLZwgbQ==} engines: {node: '>=18'} + deprecated: Moved into @copilotkit/runtime. Import from '@copilotkit/runtime/v2'. peerDependencies: '@ag-ui/client': 0.0.46 '@ag-ui/core': 0.0.46 @@ -2948,6 +2968,7 @@ packages: '@copilotkitnext/shared@0.0.0-mme-ag-ui-0-0-46-20260227141603': resolution: {integrity: sha512-tbw37m+MgOO58dxYsXvGTN9YqHt6DPLMqtDEQftJHrUrQkNqXOxhOporx4p2DG0R+RiQqWrT+r44D2eRCQhlkA==} engines: {node: '>=18'} + deprecated: Use @copilotkit/shared instead. '@csstools/color-helpers@5.1.0': resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} @@ -3964,89 +3985,105 @@ packages: resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-arm@1.2.4': resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-ppc64@1.2.4': resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} cpu: [ppc64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-riscv64@1.2.4': resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} cpu: [riscv64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-s390x@1.2.4': resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-x64@1.2.4': resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linuxmusl-arm64@1.2.4': resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-libvips-linuxmusl-x64@1.2.4': resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-linux-arm64@0.34.5': resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-linux-arm@0.34.5': resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-linux-ppc64@0.34.5': resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ppc64] os: [linux] + libc: [glibc] '@img/sharp-linux-riscv64@0.34.5': resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [riscv64] os: [linux] + libc: [glibc] '@img/sharp-linux-s390x@0.34.5': resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-linux-x64@0.34.5': resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-linuxmusl-arm64@0.34.5': resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-linuxmusl-x64@0.34.5': resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-wasm32@0.34.5': resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} @@ -4316,8 +4353,8 @@ packages: resolution: {integrity: sha512-vcJDV2vk1AlCwSh3aBm/urQ1ZrlXFFBocv11bz/NBUfLWD5/UDNMzwPdaAd2dKvNmTWa9FM2lirLU3+JCf4cRA==} engines: {node: '>=18'} - '@langchain/core@1.1.48': - resolution: {integrity: sha512-fQU6Guyb1pwc2fEplmA8FPbKfOMAofjnyJzExevro0FxEiuGHE18Ov/ZHmT9trWCDTZRI9eW1VIc6aChxV8pAQ==} + '@langchain/core@1.2.1': + resolution: {integrity: sha512-NNG/cC5FGuHDOAP56h0ddp8Rfk8p+othWzEK5RV9JIG6RvnF5vGa5r0AEGtKfQieed7s1kC42GuIzVOBvMBL/g==} engines: {node: '>=20'} '@langchain/langgraph-api@1.3.0': @@ -4333,11 +4370,11 @@ packages: '@langchain/langgraph-sdk': optional: true - '@langchain/langgraph-checkpoint@1.1.0': - resolution: {integrity: sha512-okFt51NDyJ9J5Ey0dIfqbbdBDx+5/pXlvv9PIfdDJjAQD5bVSLuA5A9Ap7NV6Bip7qg7WCn7VdiGwv8QPq1qTw==} + '@langchain/langgraph-checkpoint@1.1.2': + resolution: {integrity: sha512-m5Xd7W3G9JrlEhFZ5WAcqZPgE46R9gr1gFDFaVqEKeuwin3tgEp0jlPbru+iFXCug338DcQjFS/Kuuci21ydvw==} engines: {node: '>=18'} peerDependencies: - '@langchain/core': ^1.1.44 + '@langchain/core': ^1.1.48 '@langchain/langgraph-cli@1.3.0': resolution: {integrity: sha512-ow30XBPVAP2+bLjNQP7xRc7/dFPQ0Gr8dH143UWX7Syg+0KlJ0ipijEEQNge8iQcko6B6r9MV1eNrZLDIy8zhg==} @@ -4376,13 +4413,31 @@ packages: vue: optional: true + '@langchain/langgraph-sdk@1.9.24': + resolution: {integrity: sha512-WhM6QdxNipndQjl5nkvqnBt9Wl16oO2p0KiVhndAFLJMwO3bZLEx++lwtbqUFQu1sHyNxiWixgRGm8qZsuHCeA==} + peerDependencies: + '@langchain/core': ^1.1.48 + react: ^18 || ^19 + react-dom: ^18 || ^19 + svelte: ^4.0.0 || ^5.0.0 + vue: ^3.0.0 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + svelte: + optional: true + vue: + optional: true + '@langchain/langgraph-ui@1.3.0': resolution: {integrity: sha512-C4EYQOcp0uxWM0PSc8dQzES0WfHq+TQ82uZ9v8dE+qg+r/liNyoXnWjusi5vBjsdZ3aSaMeUb+E78XXNDpn2RQ==} engines: {node: ^18.19.0 || >=20.16.0} hasBin: true - '@langchain/langgraph@1.4.1': - resolution: {integrity: sha512-rrDIeSYUqKKNASZgB5BqAFZ5y1zjrh/qc/pP/W0J7zV5+2HxrqgdMdTV6zy3RtNgDnrWShaI4EZnqObw1blWqQ==} + '@langchain/langgraph@1.4.5': + resolution: {integrity: sha512-V+o29JPBaMoK/e+8R/m81XaC8h5iNuwWymvgLFhXfJbf7E2xt2mQUkcVXTi4cudGRHbRd14kidCpfaQbfPoYCw==} engines: {node: '>=18'} peerDependencies: '@langchain/core': ^1.1.48 @@ -4392,15 +4447,18 @@ packages: zod-to-json-schema: optional: true - '@langchain/openai@1.4.7': - resolution: {integrity: sha512-i1YLV4pWbGC6W8m0ZNpLObJuf1nyU4o8aWyX4AF9fHn7eM67HfIJWQ5n5XzcCpuSa41otrxA9jvH5XRKwI1qDA==} + '@langchain/openai@1.5.2': + resolution: {integrity: sha512-En/QzXO3YFuaaZWQiGx0ZBNJMK3ipL/tz8F/PReG/63oV3wk2nz906QA8drYnd8r2/3NtSkbf3x/8qms5o6qTg==} engines: {node: '>=20'} peerDependencies: - '@langchain/core': ^1.1.48 + '@langchain/core': ^1.2.1 '@langchain/protocol@0.0.16': resolution: {integrity: sha512-ws+J7MaHyhO5dG7f0vdyHQiUn9hoCnki0f3crJPa4MCTGzcRC39jYSCghyrGtBPYQnZbUQiGyRVpW3z3M8IpJg==} + '@langchain/protocol@0.0.18': + resolution: {integrity: sha512-XW1egQtPfsGI41w2AMZNFZrUIwFSQHTjVMZs0OaTpCAvht/QLoaPN8FQcsysMVypOhupG28J29yOorrc70otBQ==} + '@loaderkit/resolve@1.0.4': resolution: {integrity: sha512-rJzYKVcV4dxJv+vW6jlvagF8zvGxHJ2+HTr1e2qOejfmGhAApgJHl8Aog4mMszxceTRiKTTbnpgmTO1bEZHV/A==} @@ -4439,30 +4497,35 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@mariozechner/clipboard-linux-arm64-musl@0.3.9': resolution: {integrity: sha512-AGuJdgKsmJdm4Pych7kv3sqe591ERRaAHW3xjLooiFzn8J+PxUyof++7YZrB5Y5tpnTO+K18Og3taj2NpluCRQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@mariozechner/clipboard-linux-riscv64-gnu@0.3.9': resolution: {integrity: sha512-DXBEAiuMpk7dhS1a9NzNxVAFi1vaKoPu7rQNgY8LIDLGrK3lnIp3nT10DUum+PKVJoJppIP+NAA8IZe4DMNDPw==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] + libc: [glibc] '@mariozechner/clipboard-linux-x64-gnu@0.3.9': resolution: {integrity: sha512-WORrMLd6EpElEME7JRKfSaY34nW1P5LbdgK5YNCS1ncG2LqmITsSMEJ8nh2mpvxb3TxqbOOKgY7k9eMJYlW9Mw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@mariozechner/clipboard-linux-x64-musl@0.3.9': resolution: {integrity: sha512-/DHn+1DrfL6oRaPPWXaOKvonFFrni666fxd+zFqiQEfvBH0tsHVWjq9iqBk0oDp0qaPA72lIMy5BptxISBEhZQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@mariozechner/clipboard-win32-arm64-msvc@0.3.9': resolution: {integrity: sha512-O5FHD3ErkMwMhNzAfu3ggy0ug4z7btZuoQgwwxlzPrwV2bxlD6WDpqBY4NCgICAgZdDKdp+loUEKVAVt8aYnhQ==} @@ -4752,96 +4815,112 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@next/swc-linux-arm64-gnu@16.1.6': resolution: {integrity: sha512-OJYkCd5pj/QloBvoEcJ2XiMnlJkRv9idWA/j0ugSuA34gMT6f5b7vOiCQHVRpvStoZUknhl6/UxOXL4OwtdaBw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@next/swc-linux-arm64-gnu@16.2.6': resolution: {integrity: sha512-RPOvqlYBbcQjkz9VQQDZ2T2bARIjXZV1KFlt+V2Mr6SW/e4I9fcKsaA0hdyf2FHoTlsV2xnBd5Y912rP/1Ce6w==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@next/swc-linux-arm64-gnu@16.2.7': resolution: {integrity: sha512-Re6PZtjBDd0aMU+VcZcC/PrIvj4WhrjDYtMhhCVQamWN4L90EVP0pcEOBQD25prSlw7OzNw5QpHLWMilRLsRNw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@next/swc-linux-arm64-musl@15.5.18': resolution: {integrity: sha512-glaCczEWIrHsokFZ3pP08U4BpKxwIdnT+txdOM32OBgpL9Yw4aqx8NejmgtZQZOdstQ5f0L3CasIZudzCuD+nw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@next/swc-linux-arm64-musl@16.1.6': resolution: {integrity: sha512-S4J2v+8tT3NIO9u2q+S0G5KdvNDjXfAv06OhfOzNDaBn5rw84DGXWndOEB7d5/x852A20sW1M56vhC/tRVbccQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@next/swc-linux-arm64-musl@16.2.6': resolution: {integrity: sha512-URUTu1+dMkxJsPFgm+OeEvq9wf5sujw0EvgYy80TDGHTSLTnIHeqb0Eu8A3sC95IRgjejQL+kC4mw+4yPxiAXA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@next/swc-linux-arm64-musl@16.2.7': resolution: {integrity: sha512-qyogG9QtBzWxgJfeGBvOEHI3851gTfCF3wLZ5RDLTBJGAmE9p1qDwKCOdrBrvBzRvYDT+gUDp72pzlSEfAXgNA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@next/swc-linux-x64-gnu@15.5.18': resolution: {integrity: sha512-oUfg2EgJmU3R0OCOWiokGFUTvZiPfXtriXiuF3YNxRoROCdgvTedHIzYoeKH34gsZxS/V7mHbfq2hpAHwhH1/A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@next/swc-linux-x64-gnu@16.1.6': resolution: {integrity: sha512-2eEBDkFlMMNQnkTyPBhQOAyn2qMxyG2eE7GPH2WIDGEpEILcBPI/jdSv4t6xupSP+ot/jkfrCShLAa7+ZUPcJQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@next/swc-linux-x64-gnu@16.2.6': resolution: {integrity: sha512-DOj182mPV8G3UkrayLoREM5YEYI+Dk5wv7Ox9xl1fFibAELEsFD0lDPfHIeILlutMMfdyhlzYPELG3peuKaurw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@next/swc-linux-x64-gnu@16.2.7': resolution: {integrity: sha512-Vhe4ZDuBpmMogrGi5D4R2Kq4JAQlj6+wvgaFYy31zfES0zPmt6TLA+cuYpM/OLrPZjo2MYQTHVqNUSCR6+fDZQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@next/swc-linux-x64-musl@15.5.18': resolution: {integrity: sha512-JLxSP3KTd9iu/bvUMQxH7RJo9xKSHf55/6RPE4a6FTSZygGn7uvZbCej0AHXydwkggQGSD9UddSjwv6Xz5ESfA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@next/swc-linux-x64-musl@16.1.6': resolution: {integrity: sha512-oicJwRlyOoZXVlxmIMaTq7f8pN9QNbdes0q2FXfRsPhfCi8n8JmOZJm5oo1pwDaFbnnD421rVU409M3evFbIqg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@next/swc-linux-x64-musl@16.2.6': resolution: {integrity: sha512-HKQ5SP/V/ub73UvF7n/zeJlxk2kLmtL7Wzrg4WfmkjmNos5onJ2tKu7yZOPdL18A6Svfn3max29ym+ry7NkK4g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@next/swc-linux-x64-musl@16.2.7': resolution: {integrity: sha512-srvian89JahFLw1YLBEuhvPJ0DO5lpUeJQMXy4xYo7g628ZlNgXdNkqoxSAv9OYrBfByh6vxISMwW/mRbzCY+g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@next/swc-win32-arm64-msvc@15.5.18': resolution: {integrity: sha512-ir1v7enP52K2HNz3tQQvwF+x7VNxBk1ciiZ18WBPvxf4C59IqdfmHPJYK3vH7rSxpuCVw/8C712wTXNAtEp+NA==} @@ -5258,48 +5337,56 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [glibc] '@oxc-minify/binding-linux-arm64-musl@0.131.0': resolution: {integrity: sha512-HGzqTov5sAzXyaNfRkQEpl0fRs+PrMYjT8b5jZAw8foQ/qnW+VMWgAr80Q+2j79T5nhXfboSF5SUgB8mcisgHw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [musl] '@oxc-minify/binding-linux-ppc64-gnu@0.131.0': resolution: {integrity: sha512-zpUZ4pmbDBqaZmRYacxeLHUBxA3fs5K7hi1WSXRVMXC4OjWuVcLsNxeavenKF9i0YtP7Q5n2z12Rz7eEnNWoDA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] + libc: [glibc] '@oxc-minify/binding-linux-riscv64-gnu@0.131.0': resolution: {integrity: sha512-CYrC4tpW1wolbw/Fox+T0hxW92s1aG/WLi+htkk02JMiCHOWqGQKxUnm37lLiODKR/OwTYht3LB4xNrsS0RtCg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] + libc: [glibc] '@oxc-minify/binding-linux-riscv64-musl@0.131.0': resolution: {integrity: sha512-ZQNur0zujUjNYgjFF4mcNaeEKWuerY9XkaALYtBsHqNetkj55w0ZwCKYfYKLH2JAdyNF2LuS0s7VGgjXP9EvWA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] + libc: [musl] '@oxc-minify/binding-linux-s390x-gnu@0.131.0': resolution: {integrity: sha512-tR8oiFSNpcS1mfGY1N3/Hy6TxP2wr5X9FFdn/y8GarN8ST/JMLY5SUiwPiU35NKiC69CDaAsLHXoIKUxK/r8Pw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] + libc: [glibc] '@oxc-minify/binding-linux-x64-gnu@0.131.0': resolution: {integrity: sha512-KodzbW12zmT/C/w4bGv2aWN7Q5+KVJKbNoAv5hooYeSujj8xSPGWl8pnyj7dJ9nd8j0CVjubEvHQ86rtzV99OA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [glibc] '@oxc-minify/binding-linux-x64-musl@0.131.0': resolution: {integrity: sha512-CNG3/hPE6MxdLikfLq5l0aZMvJ3W5AP1aoVjzQ1Itokv5sbfBcW0fp6Srn8mB86CyAqO9e7dbffZVOWBDVkhgw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [musl] '@oxc-minify/binding-openharmony-arm64@0.131.0': resolution: {integrity: sha512-UyfimTwMLitJ0+5i5fL9M9U4E+DcIQJpGZWbVxxD3Mp9f7CTyQBIHnS68VEGZe+KQL/Y3IIb3AJ7cZB+ICgTVQ==} @@ -5377,48 +5464,56 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [glibc] '@oxc-parser/binding-linux-arm64-musl@0.131.0': resolution: {integrity: sha512-vtPiwmfVTAXzaxDKsOXG+LwgRAA7WEnaeHzhS5z0GE89gAK18KSXnly7Z6saXXq6L3dVMyK44uoTI03zKxrpmw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [musl] '@oxc-parser/binding-linux-ppc64-gnu@0.131.0': resolution: {integrity: sha512-8AW8L7w5cGHSdZPcyZX2yR0+GUODsT15rbRjfdD54rv6DMbtuEB19ysLOpKJlRGfH6UNYNpCHaU1uJWgTWf1/w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] + libc: [glibc] '@oxc-parser/binding-linux-riscv64-gnu@0.131.0': resolution: {integrity: sha512-vvpjkjEOUsPcsYf8evE4MO3aGx9+3wodXEBOicGNnOwTuAik8eBONNkgSdhkGsAblQmfVHJyanRnpxglddTXIA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] + libc: [glibc] '@oxc-parser/binding-linux-riscv64-musl@0.131.0': resolution: {integrity: sha512-AqmcNC3fClXX+fxQ6VGEN1667xVFiRBkY0CZmDMSiaeFUsv1+UkBPYYi48IUKcA9/ivvoKNRzQl2I4//kT9F/w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] + libc: [musl] '@oxc-parser/binding-linux-s390x-gnu@0.131.0': resolution: {integrity: sha512-7d3jOMKy7RSQCcDLIci+ySll2FgsOMl/GiRux4q2JNv0zg4EdhFISa9idvrdN/HEUIQQJNg6dmveUeJl2YErGA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] + libc: [glibc] '@oxc-parser/binding-linux-x64-gnu@0.131.0': resolution: {integrity: sha512-JHK/h95qVqVQ+ITER837kcTdwBDFpFaNnOTYGCP0zdUSX/mLKC7tXOoyrTb6vG7iRPwGlcgBil3v2IjYw1FqJA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [glibc] '@oxc-parser/binding-linux-x64-musl@0.131.0': resolution: {integrity: sha512-b2BO82O8azXAyf7EUgOPKu145nWypbNyk07HbU09fkzhm9lEA5oPvaN/M8Nlo7tOErVTa2WOgS4QbOnxAPXdDQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [musl] '@oxc-parser/binding-openharmony-arm64@0.131.0': resolution: {integrity: sha512-GHO9glZaX7LkX/OGfluEPf1yjg+ehiFbUdowbX6uNWOQhmwKWU4m4+nZ9FJkrHNKuxyI1KKertMdGjVKCApKWA==} @@ -5505,48 +5600,56 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [glibc] '@oxc-transform/binding-linux-arm64-musl@0.131.0': resolution: {integrity: sha512-cW0Ab1s0sxfiyP1+gdd94f0vUjwGzJF4F3DepF3VnR9nFTGMmFLugwtrBS3DYjTnbugiUH3Fp+16yys1FhNzIA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [musl] '@oxc-transform/binding-linux-ppc64-gnu@0.131.0': resolution: {integrity: sha512-wunAU/lzE1nPGKL47uI0g+4Nsv/12xveOXNu4M70xe85kNBm7mQdMpZIeoVYCxtXew0iHxFKJDT6qK5mYFSA3w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] + libc: [glibc] '@oxc-transform/binding-linux-riscv64-gnu@0.131.0': resolution: {integrity: sha512-r4sMt4OB4TryDcVWW9KnsXOf/ea7tIGX2QASNrpetzPocsBZqhHIFDbZ8EkBDjmlmWGHg6BgjVx6lLcMXX4Dcw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] + libc: [glibc] '@oxc-transform/binding-linux-riscv64-musl@0.131.0': resolution: {integrity: sha512-/rLVLItsBjKrnZFLiGrwRB3fs0dAjXZLqY7F42omvacFJjZsceQ3481oQX1bBs3RwoDDyDy/9ZkIN7kYIkv5Gw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] + libc: [musl] '@oxc-transform/binding-linux-s390x-gnu@0.131.0': resolution: {integrity: sha512-fUprJgJauI1A7e7cDgY/Z3mwLVtE3aswB4lvS96KpRNDHrwOh8bnCJOWf+0CYveDQzghDVFiZWVDo56pO4Wr9Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] + libc: [glibc] '@oxc-transform/binding-linux-x64-gnu@0.131.0': resolution: {integrity: sha512-XdbvDT1GPNxrTLXSRt4RU2uCH112q3nINTT05DZqTYYcAxaCPImnMoZe2TlBv5j2376Gk+2pcVnJs6xut47aSw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [glibc] '@oxc-transform/binding-linux-x64-musl@0.131.0': resolution: {integrity: sha512-Du2CxlBfC98EV3hOAmLVSUgP0JgqM9F47lRv9v43T4sGPcQVOjs9wffUybGUUraG9unmBZ4dgpMAqlCq0k3dGw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [musl] '@oxc-transform/binding-openharmony-arm64@0.131.0': resolution: {integrity: sha512-wTj2FkOgNhgdisnA0a15QQksyj6AH2snmpgYgAtj098i477x5LpHHdqfuk60jsA/QHSjmUc6dm4P88yI5GY4xA==} @@ -5630,72 +5733,84 @@ packages: engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + libc: [glibc] '@parcel/watcher-linux-arm-glibc@2.5.6': resolution: {integrity: sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + libc: [glibc] '@parcel/watcher-linux-arm-musl@2.5.1': resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + libc: [musl] '@parcel/watcher-linux-arm-musl@2.5.6': resolution: {integrity: sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + libc: [musl] '@parcel/watcher-linux-arm64-glibc@2.5.1': resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] '@parcel/watcher-linux-arm64-glibc@2.5.6': resolution: {integrity: sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] '@parcel/watcher-linux-arm64-musl@2.5.1': resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + libc: [musl] '@parcel/watcher-linux-arm64-musl@2.5.6': resolution: {integrity: sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + libc: [musl] '@parcel/watcher-linux-x64-glibc@2.5.1': resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + libc: [glibc] '@parcel/watcher-linux-x64-glibc@2.5.6': resolution: {integrity: sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + libc: [glibc] '@parcel/watcher-linux-x64-musl@2.5.1': resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + libc: [musl] '@parcel/watcher-linux-x64-musl@2.5.6': resolution: {integrity: sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + libc: [musl] '@parcel/watcher-wasm@2.5.6': resolution: {integrity: sha512-byAiBZ1t3tXQvc8dMD/eoyE7lTXYorhn+6uVW5AC+JGI1KtJC/LvDche5cfUE+qiefH+Ybq0bUCJU0aB1cSHUA==} @@ -7732,72 +7847,84 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [glibc] '@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] + libc: [glibc] '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17': resolution: {integrity: sha512-b/CgbwAJpmrRLp02RPfhbudf5tZnN9nsPWK82znefso832etkem8H7FSZwxrOI9djcdTP7U6YfNhbRnh7djErg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [musl] '@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] + libc: [musl] '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17': resolution: {integrity: sha512-4EII1iNGRUN5WwGbF/kOh/EIkoDN9HsupgLQoXfY+D1oyJm7/F4t5PYU5n8SWZgG0FEwakyM8pGgwcBYruGTlA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] + libc: [glibc] '@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] + libc: [glibc] '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17': resolution: {integrity: sha512-AH8oq3XqQo4IibpVXvPeLDI5pzkpYn0WiZAfT05kFzoJ6tQNzwRdDYQ45M8I/gslbodRZwW8uxLhbSBbkv96rA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] + libc: [glibc] '@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] + libc: [glibc] '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17': resolution: {integrity: sha512-cLnjV3xfo7KslbU41Z7z8BH/E1y5mzUYzAqih1d1MDaIGZRCMqTijqLv76/P7fyHuvUcfGsIpqCdddbxLLK9rA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [glibc] '@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] + libc: [glibc] '@rolldown/binding-linux-x64-musl@1.0.0-rc.17': resolution: {integrity: sha512-0phclDw1spsL7dUB37sIARuis2tAgomCJXAHZlpt8PXZ4Ba0dRP1e+66lsRqrfhISeN9bEGNjQs+T/Fbd7oYGw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [musl] '@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] + libc: [musl] '@rolldown/binding-openharmony-arm64@1.0.0-rc.17': resolution: {integrity: sha512-0ag/hEgXOwgw4t8QyQvUCxvEg+V0KBcA6YuOx9g0r02MprutRF5dyljgm3EmR02O292UX7UeS6HzWHAl6KgyhA==} @@ -7960,66 +8087,79 @@ packages: resolution: {integrity: sha512-EIPRXTVQpHyF8WOo219AD2yEltPehLTcTMz2fn6JsatLYSzQf00hj3rulF+yauOlF9/FtM2WpkT/hJh/KJFGhA==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.60.4': resolution: {integrity: sha512-J3Yh9PzzF1Ovah2At+lHiGQdsYgArxBbXv/zHfSyaiFQEqvNv7DcW98pCrmdjCZBrqBiKrKKe2V+aaSGWuBe/w==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.60.4': resolution: {integrity: sha512-BFDEZMYfUvLn37ONE1yMBojPxnMlTFsdyNoqncT0qFq1mAfllL+ATMMJd8TeuVMiX84s1KbcxcZbXInmcO2mRg==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.60.4': resolution: {integrity: sha512-pc9EYOSlOgdQ2uPl1o9PF6/kLSgaUosia7gOuS8mB69IxJvlclko1MECXysjs5ryez1/5zjYqx3+xYU0TU6R1A==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-loong64-gnu@4.60.4': resolution: {integrity: sha512-NxnomyxYerDh5n4iLrNa+sH+Z+U4BMEE46V2PgQ/hoB909i8gV1M5wPojWg9fk1jWpO3IQnOs20K4wyZuFLEFQ==} cpu: [loong64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-loong64-musl@4.60.4': resolution: {integrity: sha512-nbJnQ8a3z1mtmrwImCYhc6BGpThAyYVRQxw9uKSKG4wR6aAYno9sVjJ0zaZcW9BPJX1GbrDPf+SvdWjgTuDmnw==} cpu: [loong64] os: [linux] + libc: [musl] '@rollup/rollup-linux-ppc64-gnu@4.60.4': resolution: {integrity: sha512-2EU6acNrQLd8tYvo/LXW535wupT3m6fo7HKo6lr7ktQoItxTyOL1ZCR/GfGCuXl2vR+zmfI6eRXkSemafv+iVg==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-ppc64-musl@4.60.4': resolution: {integrity: sha512-WeBtoMuaMxiiIrO2IYP3xs6GMWkJP2C0EoT8beTLkUPmzV1i/UcOSVw1d5r9KBODtHKilG5yFxsGRnBbK3wJ4A==} cpu: [ppc64] os: [linux] + libc: [musl] '@rollup/rollup-linux-riscv64-gnu@4.60.4': resolution: {integrity: sha512-FJHFfqpKUI3A10WrWKiFbBZ7yVbGT4q4B5o1qKFFojqpaYoh9LrQgqWCmmcxQzVSXYtyB5bzkXrYzlHTs21MYA==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.60.4': resolution: {integrity: sha512-mcEl6CUT5IAUmQf1m9FYSmVqCJlpQ8r8eyftFUHG8i9OhY7BkBXSUdnLH5DOf0wCOjcP9v/QO93zpmF1SptCCw==} cpu: [riscv64] os: [linux] + libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.60.4': resolution: {integrity: sha512-ynt3JxVd2w2buzoKDWIyiV1pJW93xlQic1THVLXilz429oijRpSHivZAgp65KBu+cMcgf1eVVjdnTLvPxgCuoQ==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.60.4': resolution: {integrity: sha512-Boiz5+MsaROEWDf+GGEwF8VMHGhlUoQMtIPjOgA5fv4osupqTVnJteQNKJwUcnUog2G55jYXH7KZFFiJe0TEzQ==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-musl@4.60.4': resolution: {integrity: sha512-+qfSY27qIrFfI/Hom04KYFw3GKZSGU4lXus51wsb5EuySfFlWRwjkKWoE9emgRw/ukoT4Udsj4W/+xxG8VbPKg==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-openbsd-x64@4.60.4': resolution: {integrity: sha512-VpTfOPHgVXEBeeR8hZ2O0F3aSso+JDWqTWmTmzcQKted54IAdUVbxE+j/MVxUsKa8L20HJhv3vUezVPoquqWjA==} @@ -8591,48 +8731,56 @@ packages: engines: {node: '>= 20'} cpu: [arm64] os: [linux] + libc: [glibc] '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': resolution: {integrity: sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==} engines: {node: '>= 20'} cpu: [arm64] os: [linux] + libc: [glibc] '@tailwindcss/oxide-linux-arm64-musl@4.2.1': resolution: {integrity: sha512-WZA0CHRL/SP1TRbA5mp9htsppSEkWuQ4KsSUumYQnyl8ZdT39ntwqmz4IUHGN6p4XdSlYfJwM4rRzZLShHsGAQ==} engines: {node: '>= 20'} cpu: [arm64] os: [linux] + libc: [musl] '@tailwindcss/oxide-linux-arm64-musl@4.2.2': resolution: {integrity: sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==} engines: {node: '>= 20'} cpu: [arm64] os: [linux] + libc: [musl] '@tailwindcss/oxide-linux-x64-gnu@4.2.1': resolution: {integrity: sha512-qMFzxI2YlBOLW5PhblzuSWlWfwLHaneBE0xHzLrBgNtqN6mWfs+qYbhryGSXQjFYB1Dzf5w+LN5qbUTPhW7Y5g==} engines: {node: '>= 20'} cpu: [x64] os: [linux] + libc: [glibc] '@tailwindcss/oxide-linux-x64-gnu@4.2.2': resolution: {integrity: sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==} engines: {node: '>= 20'} cpu: [x64] os: [linux] + libc: [glibc] '@tailwindcss/oxide-linux-x64-musl@4.2.1': resolution: {integrity: sha512-5r1X2FKnCMUPlXTWRYpHdPYUY6a1Ar/t7P24OuiEdEOmms5lyqjDRvVY1yy9Rmioh+AunQ0rWiOTPE8F9A3v5g==} engines: {node: '>= 20'} cpu: [x64] os: [linux] + libc: [musl] '@tailwindcss/oxide-linux-x64-musl@4.2.2': resolution: {integrity: sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==} engines: {node: '>= 20'} cpu: [x64] os: [linux] + libc: [musl] '@tailwindcss/oxide-wasm32-wasi@4.2.1': resolution: {integrity: sha512-MGFB5cVPvshR85MTJkEvqDUnuNoysrsRxd6vnk1Lf2tbiqNlXpHYZqkqOQalydienEWOHHFyyuTSYRsLfxFJ2Q==} @@ -8715,24 +8863,28 @@ packages: engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] '@takumi-rs/core-linux-arm64-musl@0.68.17': resolution: {integrity: sha512-4CiEF518wDnujF0fjql2XN6uO+OXl0svy0WgAF2656dCx2gJtWscaHytT2rsQ0ZmoFWE0dyWcDW1g/FBVPvuvA==} engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} cpu: [arm64] os: [linux] + libc: [musl] '@takumi-rs/core-linux-x64-gnu@0.68.17': resolution: {integrity: sha512-jm8lTe2E6Tfq2b97GJC31TWK1JAEv+MsVbvL9DCLlYcafgYFlMXDUnOkZFMjlrmh0HcFAYDaBkniNDgIQfXqzg==} engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} cpu: [x64] os: [linux] + libc: [glibc] '@takumi-rs/core-linux-x64-musl@0.68.17': resolution: {integrity: sha512-nbdzQgC4ywzltDDV1fer1cKswwGE+xXZHdDiacdd7RM5XBng209Bmo3j1iv9dsX+4xXhByzCCGbxdWhhHqVXmw==} engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} cpu: [x64] os: [linux] + libc: [musl] '@takumi-rs/core-win32-arm64-msvc@0.68.17': resolution: {integrity: sha512-kE4F0LRmuhSwiNkFG7dTY9ID8+B7zb97QedyN/IO2fBJmRQDkqCGcip2gloh8YPPhCuKGjCqqqh2L+Tg9PKW7w==} @@ -9275,51 +9427,61 @@ packages: resolution: {integrity: sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==} cpu: [arm64] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-arm64-musl@1.12.2': resolution: {integrity: sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==} cpu: [arm64] os: [linux] + libc: [musl] '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': resolution: {integrity: sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==} cpu: [loong64] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-loong64-musl@1.12.2': resolution: {integrity: sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==} cpu: [loong64] os: [linux] + libc: [musl] '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': resolution: {integrity: sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==} cpu: [ppc64] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': resolution: {integrity: sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==} cpu: [riscv64] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': resolution: {integrity: sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==} cpu: [riscv64] os: [linux] + libc: [musl] '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': resolution: {integrity: sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==} cpu: [s390x] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-x64-gnu@1.12.2': resolution: {integrity: sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==} cpu: [x64] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-x64-musl@1.12.2': resolution: {integrity: sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==} cpu: [x64] os: [linux] + libc: [musl] '@unrs/resolver-binding-openharmony-arm64@1.12.2': resolution: {integrity: sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==} @@ -11040,6 +11202,11 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deepagents@1.10.5: + resolution: {integrity: sha512-UFXoH3obz+/3ACuq515UHxXGiDQXHlXvK99ywZ2FSw/HrlrKwI0SKgd0damIj7Tpz7UYrCk4YRzufeDzaOEaQg==} + peerDependencies: + langsmith: ^0.7.1 + deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} @@ -13123,6 +13290,10 @@ packages: json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + json-parse-even-better-errors@6.0.0: + resolution: {integrity: sha512-2/8adwnK1/+Fdjyts4r6wSpfANWw8zdNhU9U/Llk59c6O+DjSisPWPykwoL8gZmocP9Dy64S7oie2g+Mia123A==} + engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0} + json-schema-to-ts@3.1.1: resolution: {integrity: sha512-+DWg8jCJG2TEnpy7kOm/7/AxaYoaRbjVB4LFZLySZlWn8exGs3A4OLJR966cVvU26N7X9TWxl+Jsw7dzAqKT6g==} engines: {node: '>=16'} @@ -13215,6 +13386,12 @@ packages: resolution: {integrity: sha512-ONPnazC96VKDntab9j9JKwIWhZ4ZUceB4A9Epu4Ssg0hYFmtHZSeQ+n15nIwTFmcBUKtExOer8WTJ4GF9MO64A==} hasBin: true + langchain@1.5.1: + resolution: {integrity: sha512-Ik/eTZI7k5LOMG7pyrsrtSbGecmrZosNJXn41Qa4UO+WcdyKK2fXH1/SshaRoFPXB2Ki7gcC+4N+R/+P2eR8KQ==} + engines: {node: '>=20'} + peerDependencies: + '@langchain/core': ^1.2.1 + langsmith@0.6.3: resolution: {integrity: sha512-pXrQ4/4myQvjFFOAUmt5pWRrLEZR20gzIJD7MNdUH+5/S5nLI4ZRBo/SYKC6coaYj9pYTfQdBIzcs+3kfJ5uDA==} peerDependencies: @@ -13357,48 +13534,56 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] lightningcss-linux-arm64-gnu@1.32.0: resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] lightningcss-linux-arm64-musl@1.31.1: resolution: {integrity: sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [musl] lightningcss-linux-arm64-musl@1.32.0: resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [musl] lightningcss-linux-x64-gnu@1.31.1: resolution: {integrity: sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [glibc] lightningcss-linux-x64-gnu@1.32.0: resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [glibc] lightningcss-linux-x64-musl@1.31.1: resolution: {integrity: sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [musl] lightningcss-linux-x64-musl@1.32.0: resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [musl] lightningcss-win32-arm64-msvc@1.31.1: resolution: {integrity: sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==} @@ -13723,6 +13908,10 @@ packages: memoizerific@1.11.3: resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==} + memorystream@0.3.1: + resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} + engines: {node: '>= 0.10.0'} + merge-descriptors@1.0.3: resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} @@ -14354,10 +14543,19 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + npm-normalize-package-bin@6.0.0: + resolution: {integrity: sha512-tdt4aFn9QamlhdN3HV2D2ccpBwO5/fyjjbXUxYA6uBjyekMZcZvDq0aSj9t5Jo+tih6AYFnt/cuIRn9013e0Uw==} + engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0} + npm-package-arg@11.0.3: resolution: {integrity: sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==} engines: {node: ^16.14.0 || >=18.0.0} + npm-run-all2@9.0.2: + resolution: {integrity: sha512-+dd4SO2jAlLE06OzmJKzIe6QvvjXezcbmobnh8usR0a8BzQCABTdqTXqVPji0ICOhSQpIIrkGd7IzNl5iDaRSA==} + engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0, npm: '>= 10'} + hasBin: true + npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -14571,6 +14769,17 @@ packages: zod: optional: true + openai@6.44.0: + resolution: {integrity: sha512-09/gH+8jH0RgUwsgWHAaxsKGRT5zVZ95IaJUnqAWj6XejIBmnFRwq2WUIF37VtDEsmGrtPmvCs5+yBSeZGWvkA==} + peerDependencies: + ws: ^8.18.0 + zod: ^3.25 || ^4.0 + peerDependenciesMeta: + ws: + optional: true + zod: + optional: true + openapi-types@12.1.3: resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} @@ -14792,6 +15001,11 @@ packages: resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} + pidtree@1.0.0: + resolution: {integrity: sha512-avfAvjB9Dd0wdj3rjJX//yS+G79OO0KrS5pJHFJENjYGX6N4SMgEDBBI/yFy0lloOYSaC6XQxzpOAMPfSYFV/Q==} + engines: {node: '>=18'} + hasBin: true + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -15471,6 +15685,10 @@ packages: read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + read-package-json-fast@6.0.0: + resolution: {integrity: sha512-PNaGjoCnw9DBA2Kl8D+8po957z778q/HOPuY2u3Bkw/JO3eC8MDx7jn/PgMtSgpcBbs+6UOjDbwReGpXmRvs0g==} + engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0} + readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -15938,6 +16156,10 @@ packages: resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} engines: {node: '>= 0.4'} + shell-quote@1.9.0: + resolution: {integrity: sha512-Iov+JwFv/2HcTpcwNMKd8+IWNb8tboQJNQTkAY/LLVK7gGH9jy+LGkVqPxfekHl+yMmiqXszdGWXgkfml7hjqA==} + engines: {node: '>= 0.4'} + shiki@4.1.0: resolution: {integrity: sha512-l/ABZPUR5v70jI10EzqfMS/I96vjSGv2y0ihUV+WYFzv0EfvW4s54m0Lg8wCrrL+2IkwBzFTuxkZjPf8b2NX9Q==} engines: {node: '>=20'} @@ -17487,6 +17709,11 @@ packages: engines: {node: ^20.17.0 || >=22.9.0} hasBin: true + which@7.0.0: + resolution: {integrity: sha512-RancgH2dmbLdHl6LRhEqvklWMgl/Hdnun0Y90KhBOLkMefg8Qa7/Zel8Sm+8HEcP6DEjzsWzpkuBQEZok58isA==} + engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0} + hasBin: true + why-is-node-running@2.3.0: resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} engines: {node: '>=8'} @@ -17793,6 +18020,10 @@ snapshots: dependencies: zod: 3.25.76 + '@ag-ui/core@0.0.57': + dependencies: + zod: 3.25.76 + '@ag-ui/encoder@0.0.46': dependencies: '@ag-ui/core': 0.0.46 @@ -17820,12 +18051,12 @@ snapshots: - react-dom - ws - '@ag-ui/mastra@1.0.2(hjtxoyfvlz4rpqmlqd5xziyo4m)': + '@ag-ui/mastra@1.0.2(4f8bc6096e13a15f8e0efa6d3b66bac4)': dependencies: '@ag-ui/client': 0.0.49 '@ag-ui/core': 0.0.53 '@ai-sdk/ui-utils': 1.2.11(zod@4.3.6) - '@copilotkit/runtime': 0.0.0-mme-ag-ui-0-0-46-20260227141603(@ag-ui/encoder@0.0.49)(@cfworker/json-schema@4.1.1)(@copilotkitnext/shared@0.0.0-mme-ag-ui-0-0-46-20260227141603)(@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))(@langchain/langgraph-sdk@1.9.21(@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))(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)))(@langchain/openai@1.4.7(@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))(ws@8.21.0))(@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))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(ws@8.21.0) + '@copilotkit/runtime': 0.0.0-mme-ag-ui-0-0-46-20260227141603(084f3cbc25b02f60e79d11a5fffe9388) '@mastra/client-js': 1.11.2(@cfworker/json-schema@4.1.1)(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@1.0.0)(typebox@1.1.38)(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@1.0.0)(typebox@1.1.38)(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(typebox@1.1.38)(zod@4.3.6))(@types/json-schema@7.0.15)(openapi-types@12.1.3)(zod@4.3.6) '@mastra/core': 1.15.0(@cfworker/json-schema@4.1.1)(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@1.0.0)(typebox@1.1.38)(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@1.0.0)(typebox@1.1.38)(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(typebox@1.1.38)(zod@4.3.6))(@types/json-schema@7.0.15)(openapi-types@12.1.3)(zod@4.3.6) rxjs: 7.8.1 @@ -18407,19 +18638,6 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.28.5 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.29.7 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 @@ -18433,16 +18651,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.29.0)': + '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-annotate-as-pure': 7.27.3 regexpu-core: 6.4.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.7(@babel/core@7.29.0)': + '@babel/helper-define-polyfill-provider@0.6.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 debug: 4.4.3 @@ -18485,15 +18703,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.29.7 - '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.29.7 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 @@ -18509,24 +18718,15 @@ snapshots: '@babel/helper-plugin-utils@7.28.6': {} - '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.29.0)': + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-wrap-function': 7.28.6 '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-member-expression-to-functions': 7.28.5 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.29.7 - transitivePeerDependencies: - - supports-color - '@babel/helper-replace-supers@7.28.6(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 @@ -18608,78 +18808,73 @@ snapshots: dependencies: '@babel/types': 8.0.0-rc.6 - '@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0)': + '@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-decorators': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-decorators': 7.28.6(@babel/core@7.29.7) transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-export-default-from@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-proposal-export-default-from@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.29.0)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.0)': + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.29.0)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-decorators@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.29.0)': + '@babel/plugin-syntax-decorators@7.28.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-export-default-from@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-flow@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-syntax-export-default-from@7.28.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-import-attributes@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-syntax-flow@7.28.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.0)': + '@babel/plugin-syntax-import-attributes@7.28.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.29.0)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.7)': @@ -18687,49 +18882,44 @@ snapshots: '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.0)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.29.0)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.0)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.29.0)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.0)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.29.0)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.29.0)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.7)': @@ -18737,278 +18927,257 @@ snapshots: '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-async-generator-functions@7.29.0(@babel/core@7.29.0)': + '@babel/plugin-transform-async-generator-functions@7.29.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.7) '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-transform-async-to-generator@7.28.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-module-imports': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoping@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-transform-block-scoping@7.28.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-class-properties@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-transform-class-properties@7.28.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-transform-class-static-block@7.28.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-transform-classes@7.28.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-globals': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.7) '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-transform-computed-properties@7.28.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 '@babel/template': 7.29.7 - '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.29.0)': + '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-flow': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-flow': 7.28.6(@babel/core@7.29.7) - '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-literals@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-logical-assignment-operators@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-transform-logical-assignment-operators@7.28.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0)': + '@babel/plugin-transform-named-capturing-groups-regex@7.29.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-nullish-coalescing-operator@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-transform-nullish-coalescing-operator@7.28.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-numeric-separator@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-transform-numeric-separator@7.28.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-object-rest-spread@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-transform-object-rest-spread@7.28.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.7) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.7) '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-transform-optional-catch-binding@7.28.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-optional-chaining@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-transform-optional-chaining@7.28.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.29.0)': + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-private-methods@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-transform-private-methods@7.28.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-transform-private-property-in-object@7.28.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.29.0)': + '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-module-imports': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.7) '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-regenerator@7.29.0(@babel/core@7.29.0)': + '@babel/plugin-transform-regenerator@7.29.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-runtime@7.29.0(@babel/core@7.29.0)': + '@babel/plugin-transform-runtime@7.29.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-module-imports': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - babel-plugin-polyfill-corejs2: 0.4.16(@babel/core@7.29.0) - babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.0) - babel-plugin-polyfill-regenerator: 0.6.7(@babel/core@7.29.0) + babel-plugin-polyfill-corejs2: 0.4.16(@babel/core@7.29.7) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.7) + babel-plugin-polyfill-regenerator: 0.6.7(@babel/core@7.29.7) semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-spread@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-transform-spread@7.28.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-typescript@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color '@babel/plugin-transform-typescript@7.28.6(@babel/core@7.29.7)': dependencies: @@ -19021,32 +19190,32 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.28.6 - '@babel/preset-react@7.28.5(@babel/core@7.29.0)': + '@babel/preset-react@7.28.5(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-validator-option': 7.29.7 - '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.29.0) - '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.29.7) + '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.29.7) transitivePeerDependencies: - supports-color - '@babel/preset-typescript@7.28.5(@babel/core@7.29.0)': + '@babel/preset-typescript@7.28.5(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-validator-option': 7.29.7 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.7) transitivePeerDependencies: - supports-color @@ -19180,8 +19349,8 @@ snapshots: dependencies: commander: 13.1.0 - ? '@copilotkit/runtime@0.0.0-mme-ag-ui-0-0-46-20260227141603(@ag-ui/encoder@0.0.49)(@cfworker/json-schema@4.1.1)(@copilotkitnext/shared@0.0.0-mme-ag-ui-0-0-46-20260227141603)(@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))(@langchain/langgraph-sdk@1.9.21(@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))(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)))(@langchain/openai@1.4.7(@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))(ws@8.21.0))(@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))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(ws@8.21.0)' - : dependencies: + '@copilotkit/runtime@0.0.0-mme-ag-ui-0-0-46-20260227141603(084f3cbc25b02f60e79d11a5fffe9388)': + dependencies: '@ag-ui/client': 0.0.46 '@ag-ui/core': 0.0.46 '@ag-ui/langgraph': 0.0.24(@ag-ui/client@0.0.46)(@ag-ui/core@0.0.46)(@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))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(ws@8.21.0) @@ -19189,10 +19358,10 @@ snapshots: '@ai-sdk/openai': 2.0.106(zod@3.25.76) '@copilotkit/shared': 0.0.0-mme-ag-ui-0-0-46-20260227141603(@ag-ui/core@0.0.46) '@copilotkitnext/agent': 0.0.0-mme-ag-ui-0-0-46-20260227141603(@cfworker/json-schema@4.1.1) - '@copilotkitnext/runtime': 0.0.0-mme-ag-ui-0-0-46-20260227141603(@ag-ui/client@0.0.46)(@ag-ui/core@0.0.46)(@ag-ui/encoder@0.0.49)(@copilotkitnext/shared@0.0.0-mme-ag-ui-0-0-46-20260227141603) + '@copilotkitnext/runtime': 0.0.0-mme-ag-ui-0-0-46-20260227141603(@ag-ui/client@0.0.46)(@ag-ui/core@0.0.46)(@ag-ui/encoder@0.0.46)(@copilotkitnext/shared@0.0.0-mme-ag-ui-0-0-46-20260227141603) '@graphql-yoga/plugin-defer-stream': 3.21.0(graphql-yoga@5.21.0(graphql@16.14.0))(graphql@16.14.0) '@hono/node-server': 1.19.14(hono@4.12.23) - '@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) + '@langchain/core': 1.2.1(@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) '@scarf/scarf': 1.4.0 ai: 5.0.192(zod@3.25.76) class-transformer: 0.5.1 @@ -19209,8 +19378,9 @@ 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) zod: 3.25.76 optionalDependencies: - '@langchain/langgraph-sdk': 1.9.21(@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))(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)) - '@langchain/openai': 1.4.7(@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))(ws@8.21.0) + '@langchain/langgraph-sdk': 1.9.24(@langchain/core@1.2.1(@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))(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)) + '@langchain/openai': 1.5.2(@langchain/core@1.2.1(@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))(ws@8.21.0) + langchain: 1.5.1(@langchain/core@1.2.1(@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))(@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))(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))(ws@8.21.0)(zod-to-json-schema@3.25.2(zod@4.3.6)) openai: 4.104.0(ws@8.21.0)(zod@4.3.6) transitivePeerDependencies: - '@ag-ui/encoder' @@ -19251,11 +19421,11 @@ snapshots: - '@cfworker/json-schema' - supports-color - '@copilotkitnext/runtime@0.0.0-mme-ag-ui-0-0-46-20260227141603(@ag-ui/client@0.0.46)(@ag-ui/core@0.0.46)(@ag-ui/encoder@0.0.49)(@copilotkitnext/shared@0.0.0-mme-ag-ui-0-0-46-20260227141603)': + '@copilotkitnext/runtime@0.0.0-mme-ag-ui-0-0-46-20260227141603(@ag-ui/client@0.0.46)(@ag-ui/core@0.0.46)(@ag-ui/encoder@0.0.46)(@copilotkitnext/shared@0.0.0-mme-ag-ui-0-0-46-20260227141603)': dependencies: '@ag-ui/client': 0.0.46 '@ag-ui/core': 0.0.46 - '@ag-ui/encoder': 0.0.49 + '@ag-ui/encoder': 0.0.46 '@copilotkitnext/shared': 0.0.0-mme-ag-ui-0-0-46-20260227141603 cors: 2.8.6 express: 4.22.2 @@ -19835,7 +20005,7 @@ snapshots: '@exodus/bytes@1.15.1': optional: true - '@expo/cli@54.0.24(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))': + '@expo/cli@54.0.24(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))': dependencies: '@0no-co/graphql.web': 1.2.0(graphql@16.14.0) '@expo/code-signing-certificates': 0.0.6 @@ -19846,11 +20016,11 @@ snapshots: '@expo/image-utils': 0.8.12 '@expo/json-file': 10.0.12 '@expo/metro': 54.2.0 - '@expo/metro-config': 54.0.15(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0)) + '@expo/metro-config': 54.0.15(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0)) '@expo/osascript': 2.4.2 '@expo/package-manager': 1.10.3 '@expo/plist': 0.4.8 - '@expo/prebuild-config': 54.0.8(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0)) + '@expo/prebuild-config': 54.0.8(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0)) '@expo/schema-utils': 0.1.8 '@expo/spawn-async': 1.7.2 '@expo/ws-tunnel': 1.0.6 @@ -19869,7 +20039,7 @@ snapshots: connect: 3.7.0 debug: 4.4.3 env-editor: 0.4.2 - expo: 54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) + expo: 54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) expo-server: 1.0.6 freeport-async: 2.0.0 getenv: 2.0.0 @@ -19902,7 +20072,7 @@ snapshots: wrap-ansi: 7.0.0 ws: 8.21.0 optionalDependencies: - react-native: 0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0) + react-native: 0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0) transitivePeerDependencies: - bufferutil - graphql @@ -19959,12 +20129,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@expo/devtools@0.1.8(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0)': + '@expo/devtools@0.1.8(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0)': dependencies: chalk: 4.1.2 optionalDependencies: react: 19.2.0 - react-native: 0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0) + react-native: 0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0) '@expo/env@2.0.11': dependencies: @@ -20007,7 +20177,7 @@ snapshots: '@babel/code-frame': 7.29.7 json5: 2.2.3 - '@expo/metro-config@54.0.15(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))': + '@expo/metro-config@54.0.15(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))': dependencies: '@babel/code-frame': 7.29.7 '@babel/core': 7.29.7 @@ -20031,7 +20201,7 @@ snapshots: postcss: 8.5.15 resolve-from: 5.0.0 optionalDependencies: - expo: 54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) + expo: 54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) transitivePeerDependencies: - bufferutil - supports-color @@ -20077,7 +20247,7 @@ snapshots: base64-js: 1.5.1 xmlbuilder: 15.1.1 - '@expo/prebuild-config@54.0.8(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))': + '@expo/prebuild-config@54.0.8(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))': dependencies: '@expo/config': 12.0.13 '@expo/config-plugins': 54.0.4 @@ -20086,7 +20256,7 @@ snapshots: '@expo/json-file': 10.0.12 '@react-native/normalize-colors': 0.81.5 debug: 4.4.3 - expo: 54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) + expo: 54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) resolve-from: 5.0.0 semver: 7.8.1 xml2js: 0.6.0 @@ -20103,11 +20273,11 @@ snapshots: '@expo/sudo-prompt@9.3.2': {} - '@expo/vector-icons@15.1.1(expo-font@14.0.11(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0)': + '@expo/vector-icons@15.1.1(expo-font@14.0.11(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0)': dependencies: - expo-font: 14.0.11(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) + expo-font: 14.0.11(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) react: 19.2.0 - react-native: 0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0) + react-native: 0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0) '@expo/ws-tunnel@1.0.6': {} @@ -20711,12 +20881,28 @@ snapshots: - openai - ws - '@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/core@1.2.1(@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)': dependencies: '@cfworker/json-schema': 4.1.1 '@standard-schema/spec': 1.1.0 js-tiktoken: 1.0.21 - 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) + langsmith: 0.6.3(@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) + mustache: 4.2.0 + p-queue: 6.6.2 + zod: 4.4.3 + transitivePeerDependencies: + - '@opentelemetry/api' + - '@opentelemetry/exporter-trace-otlp-proto' + - '@opentelemetry/sdk-trace-base' + - openai + - ws + + '@langchain/core@1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)': + dependencies: + '@cfworker/json-schema': 4.1.1 + '@standard-schema/spec': 1.1.0 + js-tiktoken: 1.0.21 + langsmith: 0.6.3(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0) mustache: 4.2.0 p-queue: 6.6.2 zod: 4.4.3 @@ -20727,15 +20913,15 @@ snapshots: - openai - ws - '@langchain/langgraph-api@1.3.0(rkbxzf4lbb37fnypru5cw45rfm)': + '@langchain/langgraph-api@1.3.0(fcbb3c15a113526a33bf21049512d742)': dependencies: '@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.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)) + '@langchain/core': 1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0) + '@langchain/langgraph': 1.4.5(@langchain/core@1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(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.4.3))(zod@4.4.3) + '@langchain/langgraph-checkpoint': 1.1.2(@langchain/core@1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)) '@langchain/langgraph-ui': 1.3.0 '@langchain/protocol': 0.0.16 '@types/json-schema': 7.0.15 @@ -20744,7 +20930,7 @@ snapshots: dotenv: 16.4.7 exit-hook: 4.0.0 hono: 4.12.23 - 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) + langsmith: 0.6.3(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0) open: 10.2.0 semver: 7.8.1 stacktrace-parser: 0.1.11 @@ -20756,7 +20942,7 @@ snapshots: winston-console-format: 1.0.8 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)) + '@langchain/langgraph-sdk': 1.9.21(@langchain/core@1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(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: - '@opentelemetry/api' - '@opentelemetry/exporter-trace-otlp-proto' @@ -20768,16 +20954,20 @@ snapshots: - utf-8-validate - ws - '@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))': + '@langchain/langgraph-checkpoint@1.1.2(@langchain/core@1.2.1(@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))': 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) - uuid: 14.0.0 + '@langchain/core': 1.2.1(@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) + optional: true + + '@langchain/langgraph-checkpoint@1.1.2(@langchain/core@1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))': + dependencies: + '@langchain/core': 1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0) - '@langchain/langgraph-cli@1.3.0(rkbxzf4lbb37fnypru5cw45rfm)': + '@langchain/langgraph-cli@1.3.0(fcbb3c15a113526a33bf21049512d742)': dependencies: '@babel/code-frame': 7.29.7 '@commander-js/extra-typings': 13.1.0(commander@13.1.0) - '@langchain/langgraph-api': 1.3.0(rkbxzf4lbb37fnypru5cw45rfm) + '@langchain/langgraph-api': 1.3.0(fcbb3c15a113526a33bf21049512d742) chokidar: 4.0.3 commander: 13.1.0 create-langgraph: 1.1.5(babel-plugin-macros@3.1.0) @@ -20786,14 +20976,14 @@ snapshots: execa: 9.6.1 exit-hook: 4.0.0 extract-zip: 2.0.1 - langsmith: 0.7.6(@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) + langsmith: 0.7.6(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0) open: 10.2.0 package-manager-detector: 1.6.0 stacktrace-parser: 0.1.11 tar: 7.5.11 winston: 3.19.0 winston-console-format: 1.0.8 - yaml: 2.8.3 + yaml: 2.9.0 zod: 4.4.3 transitivePeerDependencies: - '@langchain/core' @@ -20822,9 +21012,9 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - '@langchain/langgraph-sdk@1.9.21(@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))(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))': + '@langchain/langgraph-sdk@1.9.21(@langchain/core@1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(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))': 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) + '@langchain/core': 1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0) '@langchain/protocol': 0.0.16 '@types/json-schema': 7.0.15 p-queue: 9.3.0 @@ -20835,16 +21025,28 @@ snapshots: react-dom: 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) + + '@langchain/langgraph-sdk@1.9.24(@langchain/core@1.2.1(@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))(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))': + dependencies: + '@langchain/core': 1.2.1(@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) + '@langchain/protocol': 0.0.18 + '@types/json-schema': 7.0.15 + p-queue: 9.3.0 + p-retry: 7.1.1 + optionalDependencies: + react: 19.2.3 + react-dom: 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) optional: true - '@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))': + '@langchain/langgraph-sdk@1.9.24(@langchain/core@1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(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))': 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) - '@langchain/protocol': 0.0.16 + '@langchain/core': 1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0) + '@langchain/protocol': 0.0.18 '@types/json-schema': 7.0.15 p-queue: 9.3.0 p-retry: 7.1.1 - uuid: 14.0.0 optionalDependencies: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) @@ -20859,15 +21061,14 @@ snapshots: esbuild-plugin-tailwindcss: 2.2.0 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)': + '@langchain/langgraph@1.4.5(@langchain/core@1.2.1(@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))(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.4.3)': 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) - '@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)) - '@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)) - '@langchain/protocol': 0.0.16 + '@langchain/core': 1.2.1(@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) + '@langchain/langgraph-checkpoint': 1.1.2(@langchain/core@1.2.1(@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)) + '@langchain/langgraph-sdk': 1.9.24(@langchain/core@1.2.1(@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))(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)) + '@langchain/protocol': 0.0.18 '@standard-schema/spec': 1.1.0 - uuid: 14.0.0 - zod: 4.3.6 + zod: 4.4.3 optionalDependencies: zod-to-json-schema: 3.25.2(zod@4.3.6) transitivePeerDependencies: @@ -20875,28 +21076,47 @@ snapshots: - react-dom - svelte - vue + optional: true - '@langchain/openai@1.4.7(@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))(ws@8.21.0)': + '@langchain/langgraph@1.4.5(@langchain/core@1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(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.4.3))(zod@4.4.3)': 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) + '@langchain/core': 1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0) + '@langchain/langgraph-checkpoint': 1.1.2(@langchain/core@1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)) + '@langchain/langgraph-sdk': 1.9.24(@langchain/core@1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(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)) + '@langchain/protocol': 0.0.18 + '@standard-schema/spec': 1.1.0 + zod: 4.4.3 + optionalDependencies: + zod-to-json-schema: 3.25.2(zod@4.4.3) + transitivePeerDependencies: + - react + - react-dom + - svelte + - vue + + '@langchain/openai@1.5.2(@langchain/core@1.2.1(@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))(ws@8.21.0)': + dependencies: + '@langchain/core': 1.2.1(@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.4.3) + openai: 6.44.0(ws@8.21.0)(zod@4.4.3) zod: 4.4.3 transitivePeerDependencies: - ws optional: true - '@langchain/openai@1.4.7(@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))(ws@8.21.0)': + '@langchain/openai@1.5.2(@langchain/core@1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(ws@8.21.0)': 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) + '@langchain/core': 1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0) js-tiktoken: 1.0.21 - openai: 6.39.0(ws@8.21.0)(zod@4.4.3) + openai: 6.44.0(ws@8.21.0)(zod@4.4.3) zod: 4.4.3 transitivePeerDependencies: - ws '@langchain/protocol@0.0.16': {} + '@langchain/protocol@0.0.18': {} + '@loaderkit/resolve@1.0.4': dependencies: '@braidai/lang': 1.1.2 @@ -21537,7 +21757,7 @@ snapshots: '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@3.2.4(magicast@0.5.2)(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))': + '@nuxt/devtools-kit@3.2.4(magicast@0.5.2)(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: '@nuxt/kit': 4.4.2(magicast@0.5.2) execa: 8.0.1 @@ -21556,9 +21776,9 @@ snapshots: pkg-types: 2.3.1 semver: 7.8.1 - '@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/devtools@3.2.4(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))(vue@3.5.34(typescript@5.9.3))': dependencies: - '@nuxt/devtools-kit': 3.2.4(magicast@0.5.2)(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)) + '@nuxt/devtools-kit': 3.2.4(magicast@0.5.2)(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)) '@nuxt/devtools-wizard': 3.2.4 '@nuxt/kit': 4.4.2(magicast@0.5.2) '@vue/devtools-core': 8.1.1(vue@3.5.34(typescript@5.9.3)) @@ -21587,8 +21807,8 @@ snapshots: structured-clone-es: 2.0.0 tinyglobby: 0.2.16 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) - vite-plugin-inspect: 11.3.3(@nuxt/kit@4.4.2(magicast@0.5.2))(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)) - vite-plugin-vue-tracer: 1.3.0(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)) + vite-plugin-inspect: 11.3.3(@nuxt/kit@4.4.2(magicast@0.5.2))(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)) + vite-plugin-vue-tracer: 1.3.0(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))(vue@3.5.34(typescript@5.9.3)) which: 6.0.1 ws: 8.21.0 transitivePeerDependencies: @@ -21648,7 +21868,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.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/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.6.1)(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) @@ -21666,7 +21886,7 @@ snapshots: klona: 2.0.6 mocked-exports: 0.1.1 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) + 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.6.1)(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 @@ -21733,12 +21953,12 @@ 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.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)': + '@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.6.1)(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) - '@vitejs/plugin-vue': 6.0.7(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)) - '@vitejs/plugin-vue-jsx': 5.1.5(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)) + '@vitejs/plugin-vue': 6.0.7(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))(vue@3.5.34(typescript@5.9.3)) + '@vitejs/plugin-vue-jsx': 5.1.5(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))(vue@3.5.34(typescript@5.9.3)) autoprefixer: 10.5.0(postcss@8.5.15) consola: 3.4.2 cssnano: 7.1.9(postcss@8.5.15) @@ -21752,7 +21972,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.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) + 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.6.1)(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 @@ -21763,9 +21983,9 @@ snapshots: std-env: 4.1.0 ufo: 1.6.4 unenv: 2.0.0-rc.24 - 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) + 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) vite-node: 5.3.0(@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) - vite-plugin-checker: 0.13.0(eslint@9.29.0(jiti@2.7.0))(optionator@0.9.4)(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)) + vite-plugin-checker: 0.13.0(eslint@9.29.0(jiti@2.7.0))(optionator@0.9.4)(typescript@5.9.3)(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))(vue-tsc@2.2.12(typescript@5.9.3)) vue: 3.5.34(typescript@5.9.3) vue-bundle-renderer: 2.2.0 optionalDependencies: @@ -25194,67 +25414,67 @@ snapshots: '@react-native/assets-registry@0.83.2': {} - '@react-native/babel-plugin-codegen@0.81.5(@babel/core@7.29.0)': + '@react-native/babel-plugin-codegen@0.81.5(@babel/core@7.29.7)': dependencies: '@babel/traverse': 7.29.7 - '@react-native/codegen': 0.81.5(@babel/core@7.29.0) + '@react-native/codegen': 0.81.5(@babel/core@7.29.7) transitivePeerDependencies: - '@babel/core' - supports-color - '@react-native/babel-preset@0.81.5(@babel/core@7.29.0)': + '@react-native/babel-preset@0.81.5(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-export-default-from': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) - '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-logical-assignment-operators': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-numeric-separator': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-optional-catch-binding': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) - '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.29.0) - '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-regenerator': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-export-default-from': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.7) + '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.7) + '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-logical-assignment-operators': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-numeric-separator': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-optional-catch-binding': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.7) + '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.29.7) + '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-regenerator': 7.29.0(@babel/core@7.29.7) + '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.7) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.7) '@babel/template': 7.29.7 - '@react-native/babel-plugin-codegen': 0.81.5(@babel/core@7.29.0) + '@react-native/babel-plugin-codegen': 0.81.5(@babel/core@7.29.7) babel-plugin-syntax-hermes-parser: 0.29.1 - babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.29.0) + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.29.7) react-refresh: 0.14.2 transitivePeerDependencies: - supports-color - '@react-native/codegen@0.81.5(@babel/core@7.29.0)': + '@react-native/codegen@0.81.5(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/parser': 7.29.7 glob: 7.2.3 hermes-parser: 0.29.1 @@ -25262,9 +25482,9 @@ snapshots: nullthrows: 1.1.1 yargs: 17.7.2 - '@react-native/codegen@0.83.2(@babel/core@7.29.0)': + '@react-native/codegen@0.83.2(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/parser': 7.29.0 glob: 7.2.3 hermes-parser: 0.32.0 @@ -25342,12 +25562,12 @@ snapshots: '@react-native/normalize-colors@0.83.2': {} - '@react-native/virtualized-lists@0.83.2(@types/react@19.2.14)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0)': + '@react-native/virtualized-lists@0.83.2(@types/react@19.2.14)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 19.2.0 - react-native: 0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0) + react-native: 0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0) optionalDependencies: '@types/react': 19.2.14 @@ -26750,7 +26970,7 @@ snapshots: tailwindcss: 4.2.2 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) - '@tailwindcss/vite@4.2.2(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))': + '@tailwindcss/vite@4.2.2(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: '@tailwindcss/node': 4.2.2 '@tailwindcss/oxide': 4.2.2 @@ -27483,7 +27703,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@5.1.5(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))': + '@vitejs/plugin-vue-jsx@5.1.5(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))(vue@3.5.34(typescript@5.9.3))': dependencies: '@babel/core': 7.29.7 '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.7) @@ -27501,7 +27721,7 @@ snapshots: 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) vue: 3.5.31(typescript@5.9.3) - '@vitejs/plugin-vue@6.0.7(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))': + '@vitejs/plugin-vue@6.0.7(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))(vue@3.5.34(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.1 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) @@ -28249,13 +28469,13 @@ snapshots: b4a@1.8.0: {} - babel-jest@29.7.0(@babel/core@7.29.0): + babel-jest@29.7.0(@babel/core@7.29.7): dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.29.0) + babel-preset-jest: 29.6.3(@babel/core@7.29.7) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -28285,27 +28505,27 @@ snapshots: cosmiconfig: 7.1.0 resolve: 1.22.11 - babel-plugin-polyfill-corejs2@0.4.16(@babel/core@7.29.0): + babel-plugin-polyfill-corejs2@0.4.16(@babel/core@7.29.7): dependencies: '@babel/compat-data': 7.29.7 - '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.7(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@babel/helper-define-polyfill-provider': 0.6.7(@babel/core@7.29.7) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.29.0): + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.29.7): dependencies: - '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.7(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@babel/helper-define-polyfill-provider': 0.6.7(@babel/core@7.29.7) core-js-compat: 3.48.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.7(@babel/core@7.29.0): + babel-plugin-polyfill-regenerator@0.6.7(@babel/core@7.29.7): dependencies: - '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.7(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@babel/helper-define-polyfill-provider': 0.6.7(@babel/core@7.29.7) transitivePeerDependencies: - supports-color @@ -28323,68 +28543,68 @@ snapshots: dependencies: hermes-parser: 0.32.0 - babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.29.0): + babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.29.7): dependencies: - '@babel/plugin-syntax-flow': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-flow': 7.28.6(@babel/core@7.29.7) transitivePeerDependencies: - '@babel/core' - babel-preset-current-node-syntax@1.2.0(@babel/core@7.29.0): + babel-preset-current-node-syntax@1.2.0(@babel/core@7.29.7): dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.29.0) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.0) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.29.0) - '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.0) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.29.0) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.29.0) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.0) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.0) - - babel-preset-expo@54.0.10(@babel/core@7.29.0)(@babel/runtime@7.29.7)(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-refresh@0.14.2): + '@babel/core': 7.29.7 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.29.7) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.7) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.29.7) + '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.29.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.29.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.7) + + babel-preset-expo@54.0.10(@babel/core@7.29.7)(@babel/runtime@7.29.7)(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-refresh@0.14.2): dependencies: '@babel/helper-module-imports': 7.29.7 - '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-syntax-export-default-from': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) - '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0) - '@babel/preset-react': 7.28.5(@babel/core@7.29.0) - '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0) - '@react-native/babel-preset': 0.81.5(@babel/core@7.29.0) + '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.7) + '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-syntax-export-default-from': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.7) + '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.7) + '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.7) + '@babel/preset-react': 7.28.5(@babel/core@7.29.7) + '@babel/preset-typescript': 7.28.5(@babel/core@7.29.7) + '@react-native/babel-preset': 0.81.5(@babel/core@7.29.7) babel-plugin-react-compiler: 1.0.0 babel-plugin-react-native-web: 0.21.2 babel-plugin-syntax-hermes-parser: 0.29.1 - babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.29.0) + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.29.7) debug: 4.4.3 react-refresh: 0.14.2 resolve-from: 5.0.0 optionalDependencies: '@babel/runtime': 7.29.7 - expo: 54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) + expo: 54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) transitivePeerDependencies: - '@babel/core' - supports-color - babel-preset-jest@29.6.3(@babel/core@7.29.0): + babel-preset-jest@29.6.3(@babel/core@7.29.7): dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.7) bail@2.0.2: {} @@ -29393,6 +29613,29 @@ snapshots: deep-is@0.1.4: {} + deepagents@1.10.5(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(langsmith@0.7.6(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(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))(ws@8.21.0)(zod-to-json-schema@3.25.2(zod@4.4.3)): + dependencies: + '@langchain/core': 1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0) + '@langchain/langgraph': 1.4.5(@langchain/core@1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(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.4.3))(zod@4.4.3) + '@langchain/langgraph-sdk': 1.9.24(@langchain/core@1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(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)) + fast-glob: 3.3.3 + langchain: 1.5.1(@langchain/core@1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(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))(ws@8.21.0)(zod-to-json-schema@3.25.2(zod@4.4.3)) + langsmith: 0.7.6(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0) + micromatch: 4.0.8 + yaml: 2.9.0 + zod: 4.4.3 + transitivePeerDependencies: + - '@opentelemetry/api' + - '@opentelemetry/exporter-trace-otlp-proto' + - '@opentelemetry/sdk-trace-base' + - openai + - react + - react-dom + - svelte + - vue + - ws + - zod-to-json-schema + deepmerge@4.3.1: {} default-browser-id@5.0.1: {} @@ -29915,7 +30158,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.59.4(eslint@9.29.0(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.29.0(jiti@2.7.0)))(eslint@9.29.0(jiti@2.7.0)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.59.4(eslint@9.29.0(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0(jiti@2.7.0)): dependencies: debug: 3.2.7 optionalDependencies: @@ -29937,7 +30180,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.29.0(jiti@2.7.0) eslint-import-resolver-node: 0.3.10 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.59.4(eslint@9.29.0(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.29.0(jiti@2.7.0)))(eslint@9.29.0(jiti@2.7.0)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.59.4(eslint@9.29.0(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0(jiti@2.7.0)) hasown: 2.0.3 is-core-module: 2.16.2 is-glob: 4.0.3 @@ -30281,40 +30524,40 @@ snapshots: expect-type@1.3.0: {} - expo-asset@12.0.13(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0): + expo-asset@12.0.13(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0): dependencies: '@expo/image-utils': 0.8.12 - expo: 54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) - expo-constants: 18.0.13(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0)) + expo: 54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) + expo-constants: 18.0.13(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0)) react: 19.2.0 - react-native: 0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0) + react-native: 0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0) transitivePeerDependencies: - supports-color - expo-constants@18.0.13(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0)): + expo-constants@18.0.13(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0)): dependencies: '@expo/config': 12.0.13 '@expo/env': 2.0.11 - expo: 54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) - react-native: 0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0) + expo: 54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) + react-native: 0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0) transitivePeerDependencies: - supports-color - expo-file-system@19.0.22(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0)): + expo-file-system@19.0.22(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0)): dependencies: - expo: 54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) - react-native: 0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0) + expo: 54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) + react-native: 0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0) - expo-font@14.0.11(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0): + expo-font@14.0.11(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0): dependencies: - expo: 54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) + expo: 54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) fontfaceobserver: 2.3.0 react: 19.2.0 - react-native: 0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0) + react-native: 0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0) - expo-keep-awake@15.0.8(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react@19.2.0): + expo-keep-awake@15.0.8(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react@19.2.0): dependencies: - expo: 54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) + expo: 54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) react: 19.2.0 expo-modules-autolinking@3.0.25: @@ -30325,43 +30568,43 @@ snapshots: require-from-string: 2.0.2 resolve-from: 5.0.0 - expo-modules-core@3.0.30(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0): + expo-modules-core@3.0.30(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0): dependencies: invariant: 2.2.4 react: 19.2.0 - react-native: 0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0) + react-native: 0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0) expo-server@1.0.6: {} - expo-status-bar@55.0.4(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0): + expo-status-bar@55.0.4(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0): dependencies: react: 19.2.0 - react-native: 0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0) - react-native-is-edge-to-edge: 1.3.1(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) + react-native: 0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0) + react-native-is-edge-to-edge: 1.3.1(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) - expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0): + expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0): dependencies: '@babel/runtime': 7.29.7 - '@expo/cli': 54.0.24(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0)) + '@expo/cli': 54.0.24(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0)) '@expo/config': 12.0.13 '@expo/config-plugins': 54.0.4 - '@expo/devtools': 0.1.8(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) + '@expo/devtools': 0.1.8(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) '@expo/fingerprint': 0.15.5 '@expo/metro': 54.2.0 - '@expo/metro-config': 54.0.15(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0)) - '@expo/vector-icons': 15.1.1(expo-font@14.0.11(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) + '@expo/metro-config': 54.0.15(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0)) + '@expo/vector-icons': 15.1.1(expo-font@14.0.11(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) '@ungap/structured-clone': 1.3.1 - babel-preset-expo: 54.0.10(@babel/core@7.29.0)(@babel/runtime@7.29.7)(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-refresh@0.14.2) - expo-asset: 12.0.13(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) - expo-constants: 18.0.13(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0)) - expo-file-system: 19.0.22(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0)) - expo-font: 14.0.11(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) - expo-keep-awake: 15.0.8(expo@54.0.34(@babel/core@7.29.0)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react@19.2.0) + babel-preset-expo: 54.0.10(@babel/core@7.29.7)(@babel/runtime@7.29.7)(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-refresh@0.14.2) + expo-asset: 12.0.13(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) + expo-constants: 18.0.13(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0)) + expo-file-system: 19.0.22(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0)) + expo-font: 14.0.11(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) + expo-keep-awake: 15.0.8(expo@54.0.34(@babel/core@7.29.7)(graphql@16.14.0)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0))(react@19.2.0) expo-modules-autolinking: 3.0.25 - expo-modules-core: 3.0.30(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) + expo-modules-core: 3.0.30(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) pretty-format: 29.7.0 react: 19.2.0 - react-native: 0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0) + react-native: 0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0) react-refresh: 0.14.2 whatwg-url-without-unicode: 8.0.0-3 transitivePeerDependencies: @@ -31949,6 +32192,8 @@ snapshots: json-parse-even-better-errors@2.3.1: {} + json-parse-even-better-errors@6.0.0: {} + json-schema-to-ts@3.1.1: dependencies: '@babel/runtime': 7.29.7 @@ -32028,6 +32273,45 @@ snapshots: lan-network@0.2.1: {} + langchain@1.5.1(@langchain/core@1.2.1(@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))(@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))(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))(ws@8.21.0)(zod-to-json-schema@3.25.2(zod@4.3.6)): + dependencies: + '@langchain/core': 1.2.1(@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) + '@langchain/langgraph': 1.4.5(@langchain/core@1.2.1(@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))(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.4.3) + '@langchain/langgraph-checkpoint': 1.1.2(@langchain/core@1.2.1(@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)) + langsmith: 0.6.3(@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) + zod: 4.4.3 + transitivePeerDependencies: + - '@opentelemetry/api' + - '@opentelemetry/exporter-trace-otlp-proto' + - '@opentelemetry/sdk-trace-base' + - openai + - react + - react-dom + - svelte + - vue + - ws + - zod-to-json-schema + optional: true + + langchain@1.5.1(@langchain/core@1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(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))(ws@8.21.0)(zod-to-json-schema@3.25.2(zod@4.4.3)): + dependencies: + '@langchain/core': 1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0) + '@langchain/langgraph': 1.4.5(@langchain/core@1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(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.4.3))(zod@4.4.3) + '@langchain/langgraph-checkpoint': 1.1.2(@langchain/core@1.2.1(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)) + langsmith: 0.6.3(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0) + zod: 4.4.3 + transitivePeerDependencies: + - '@opentelemetry/api' + - '@opentelemetry/exporter-trace-otlp-proto' + - '@opentelemetry/sdk-trace-base' + - openai + - react + - react-dom + - svelte + - vue + - ws + - zod-to-json-schema + langsmith@0.6.3(@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): dependencies: p-queue: 6.6.2 @@ -32037,22 +32321,22 @@ snapshots: openai: 4.104.0(ws@8.21.0)(zod@4.3.6) ws: 8.21.0 - 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): + langsmith@0.6.3(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0): dependencies: p-queue: 6.6.2 optionalDependencies: '@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) + openai: 6.44.0(ws@8.21.0)(zod@4.4.3) ws: 8.21.0 - langsmith@0.7.6(@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): + langsmith@0.7.6(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.1))(openai@6.44.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0): dependencies: p-queue: 6.6.2 optionalDependencies: '@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) + openai: 6.44.0(ws@8.21.0)(zod@4.4.3) ws: 8.21.0 language-subtag-registry@0.3.23: {} @@ -32608,6 +32892,8 @@ snapshots: dependencies: map-or-similar: 1.5.0 + memorystream@0.3.1: {} + merge-descriptors@1.0.3: {} merge-descriptors@2.0.0: {} @@ -32695,7 +32981,7 @@ snapshots: metro-cache: 0.83.3 metro-core: 0.83.3 metro-runtime: 0.83.3 - yaml: 2.8.3 + yaml: 2.9.0 transitivePeerDependencies: - bufferutil - supports-color @@ -32710,7 +32996,7 @@ snapshots: metro-cache: 0.83.5 metro-core: 0.83.5 metro-runtime: 0.83.5 - yaml: 2.8.3 + yaml: 2.9.0 transitivePeerDependencies: - bufferutil - supports-color @@ -33748,6 +34034,8 @@ snapshots: normalize-path@3.0.0: {} + npm-normalize-package-bin@6.0.0: {} + npm-package-arg@11.0.3: dependencies: hosted-git-info: 7.0.2 @@ -33755,6 +34043,17 @@ snapshots: semver: 7.8.1 validate-npm-package-name: 5.0.1 + npm-run-all2@9.0.2: + dependencies: + ansi-styles: 6.2.1 + cross-spawn: 7.0.6 + memorystream: 0.3.1 + picomatch: 4.0.4 + pidtree: 1.0.0 + read-package-json-fast: 6.0.0 + shell-quote: 1.9.0 + which: 7.0.0 + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 @@ -33778,16 +34077,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.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): + 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.6.1)(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/devtools': 3.2.4(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))(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.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/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.6.1)(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.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) + '@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.6.1)(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) @@ -34113,6 +34412,11 @@ snapshots: ws: 8.21.0 zod: 4.4.3 + openai@6.44.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: @@ -34373,6 +34677,8 @@ snapshots: picomatch@4.0.4: {} + pidtree@1.0.0: {} + pify@2.3.0: {} pino-abstract-transport@2.0.0: @@ -35123,22 +35429,22 @@ snapshots: transitivePeerDependencies: - supports-color - react-native-is-edge-to-edge@1.3.1(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0): + react-native-is-edge-to-edge@1.3.1(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0): dependencies: react: 19.2.0 - react-native: 0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0) + react-native: 0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0) - react-native-safe-area-context@5.7.0(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0): + react-native-safe-area-context@5.7.0(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0): dependencies: react: 19.2.0 - react-native: 0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0) + react-native: 0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0) - react-native-svg@15.12.1(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0): + react-native-svg@15.12.1(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0): dependencies: css-select: 5.2.2 css-tree: 1.1.3 react: 19.2.0 - react-native: 0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0) + react-native: 0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0) warn-once: 0.1.1 react-native-web@0.21.2(react-dom@19.2.4(react@19.2.0))(react@19.2.0): @@ -35156,20 +35462,20 @@ snapshots: transitivePeerDependencies: - encoding - react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0): + react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0): dependencies: '@jest/create-cache-key-function': 29.7.0 '@react-native/assets-registry': 0.83.2 - '@react-native/codegen': 0.83.2(@babel/core@7.29.0) + '@react-native/codegen': 0.83.2(@babel/core@7.29.7) '@react-native/community-cli-plugin': 0.83.2 '@react-native/gradle-plugin': 0.83.2 '@react-native/js-polyfills': 0.83.2 '@react-native/normalize-colors': 0.83.2 - '@react-native/virtualized-lists': 0.83.2(@types/react@19.2.14)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) + '@react-native/virtualized-lists': 0.83.2(@types/react@19.2.14)(react-native@0.83.2(@babel/core@7.29.7)(@types/react@19.2.14)(react@19.2.0))(react@19.2.0) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 - babel-jest: 29.7.0(@babel/core@7.29.0) + babel-jest: 29.7.0(@babel/core@7.29.7) babel-plugin-syntax-hermes-parser: 0.32.0 base64-js: 1.5.1 commander: 12.1.0 @@ -35382,6 +35688,11 @@ snapshots: dependencies: pify: 2.3.0 + read-package-json-fast@6.0.0: + dependencies: + json-parse-even-better-errors: 6.0.0 + npm-normalize-package-bin: 6.0.0 + readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 @@ -36080,6 +36391,8 @@ snapshots: shell-quote@1.8.3: {} + shell-quote@1.9.0: {} + shiki@4.1.0: dependencies: '@shikijs/core': 4.1.0 @@ -37078,7 +37391,7 @@ snapshots: tinyglobby: 0.2.16 unplugin: 2.3.11 unplugin-utils: 0.3.1 - yaml: 2.8.3 + yaml: 2.9.0 optionalDependencies: vue-router: 4.6.4(vue@3.5.31(typescript@5.9.3)) transitivePeerDependencies: @@ -37306,13 +37619,13 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vite-dev-rpc@1.1.0(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)): + vite-dev-rpc@1.1.0(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: birpc: 2.9.0 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) - vite-hot-client: 2.1.0(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)) + vite-hot-client: 2.1.0(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)) - vite-hot-client@2.1.0(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)): + vite-hot-client@2.1.0(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: 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) @@ -37336,7 +37649,7 @@ snapshots: - tsx - yaml - vite-plugin-checker@0.13.0(eslint@9.29.0(jiti@2.7.0))(optionator@0.9.4)(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)): + vite-plugin-checker@0.13.0(eslint@9.29.0(jiti@2.7.0))(optionator@0.9.4)(typescript@5.9.3)(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))(vue-tsc@2.2.12(typescript@5.9.3)): dependencies: '@babel/code-frame': 7.29.7 chokidar: 4.0.3 @@ -37354,7 +37667,7 @@ snapshots: typescript: 5.9.3 vue-tsc: 2.2.12(typescript@5.9.3) - vite-plugin-inspect@11.3.3(@nuxt/kit@4.4.2(magicast@0.5.2))(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)): + vite-plugin-inspect@11.3.3(@nuxt/kit@4.4.2(magicast@0.5.2))(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: ansis: 4.2.0 debug: 4.4.3 @@ -37365,13 +37678,13 @@ snapshots: sirv: 3.0.2 unplugin-utils: 0.3.1 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) - vite-dev-rpc: 1.1.0(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)) + vite-dev-rpc: 1.1.0(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)) optionalDependencies: '@nuxt/kit': 4.4.2(magicast@0.5.2) transitivePeerDependencies: - supports-color - vite-plugin-vue-tracer@1.3.0(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)): + vite-plugin-vue-tracer@1.3.0(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))(vue@3.5.34(typescript@5.9.3)): dependencies: estree-walker: 3.0.3 exsolve: 1.0.8 @@ -37809,6 +38122,10 @@ snapshots: dependencies: isexe: 4.0.0 + which@7.0.0: + dependencies: + isexe: 4.0.0 + why-is-node-running@2.3.0: dependencies: siginfo: 2.0.0