diff --git a/apps/desktop/src/components/chat/interactive.tsx b/apps/desktop/src/components/chat/interactive.tsx index 270dedf9a..d8dbab020 100644 --- a/apps/desktop/src/components/chat/interactive.tsx +++ b/apps/desktop/src/components/chat/interactive.tsx @@ -1,5 +1,6 @@ import { Resizable } from "re-resizable"; import { type ReactNode, useState } from "react"; +import { createPortal } from "react-dom"; import { cn } from "@hypr/utils"; @@ -16,9 +17,9 @@ export function InteractiveContainer( ) { const [isResizing, setIsResizing] = useState(false); - return ( + return createPortal(
{children} -
+ , + document.body, ); } diff --git a/apps/desktop/src/components/chat/trigger.tsx b/apps/desktop/src/components/chat/trigger.tsx index 99a345d37..02a2c1f29 100644 --- a/apps/desktop/src/components/chat/trigger.tsx +++ b/apps/desktop/src/components/chat/trigger.tsx @@ -1,11 +1,13 @@ +import { createPortal } from "react-dom"; + import { cn } from "@hypr/utils"; export function ChatTrigger({ onClick }: { onClick: () => void }) { - return ( + return createPortal( + , + document.body, ); } diff --git a/apps/desktop/src/components/main/body/sessions/floating/generate.tsx b/apps/desktop/src/components/main/body/sessions/floating/generate.tsx index 143b884fc..f5463a473 100644 --- a/apps/desktop/src/components/main/body/sessions/floating/generate.tsx +++ b/apps/desktop/src/components/main/body/sessions/floating/generate.tsx @@ -110,6 +110,12 @@ export function GenerateButton({ sessionId }: { sessionId: string }) { onRegenerate(null); }} disabled={!model} + tooltip={!model + ? { + content: "Language model not configured", + side: "top", + } + : undefined} > Regenerate diff --git a/apps/desktop/src/components/main/body/sessions/floating/index.tsx b/apps/desktop/src/components/main/body/sessions/floating/index.tsx index 1dcfc7a2b..ef6391875 100644 --- a/apps/desktop/src/components/main/body/sessions/floating/index.tsx +++ b/apps/desktop/src/components/main/body/sessions/floating/index.tsx @@ -39,7 +39,7 @@ export function FloatingActionButton({ tab }: { tab: Extract +
{children}
); diff --git a/apps/desktop/src/components/main/body/sessions/floating/shared.tsx b/apps/desktop/src/components/main/body/sessions/floating/shared.tsx index 0e73eb42a..62269f513 100644 --- a/apps/desktop/src/components/main/body/sessions/floating/shared.tsx +++ b/apps/desktop/src/components/main/body/sessions/floating/shared.tsx @@ -28,7 +28,7 @@ export function FloatingButton({ const button = ( - - )} - +
+ +
); } +// @ts-expect-error: Will use this later function TryProBanner({ isDismissed, onDismiss, diff --git a/apps/desktop/src/devtool/seed/shared/transcript.ts b/apps/desktop/src/devtool/seed/shared/transcript.ts index dc47d5a71..a81b29161 100644 --- a/apps/desktop/src/devtool/seed/shared/transcript.ts +++ b/apps/desktop/src/devtool/seed/shared/transcript.ts @@ -22,26 +22,7 @@ const durationForWord = (text: string) => { return Math.max(80, base + charBonus + variation); }; -export const generateTranscript = () => { - const channelCount = selectWeighted([ - { weight: 55, value: 2 }, - { weight: 30, value: 3 }, - { weight: 15, value: 4 }, - ]); - - const turnRange = selectWeighted([ - { weight: 18, value: { min: 18, max: 26 } }, - { weight: 36, value: { min: 27, max: 42 } }, - { weight: 28, value: { min: 43, max: 64 } }, - { weight: 18, value: { min: 65, max: 92 } }, - ]); - const turnCount = faker.number.int(turnRange); - - const channelIndices = Array.from({ length: channelCount }, (_, index) => index); - const words: Array = []; - let currentTimeMs = 0; - let previousChannel: number | undefined; - +const generateSentence = () => { const starters = [ "yeah", "so", @@ -62,126 +43,102 @@ export const generateTranscript = () => { "basically", "on our side", ]; - const briefReplies = [ - "right", - "exactly", - "totally", - "absolutely", - "thanks", - "nice", - "got it", - "makes sense", - ]; - const endCaps = [ - "if that works", - "if that makes sense", - "what do you think", - "does that sound good", - "for next steps", - "and that's the plan", - ]; - const chooseChannel = () => { - if (previousChannel === undefined) { - previousChannel = faker.helpers.arrayElement(channelIndices); - return previousChannel; - } + const sentenceWords: string[] = []; + const isShort = faker.datatype.boolean({ probability: 0.3 }); - if (faker.datatype.boolean({ probability: 0.22 })) { - return previousChannel; + if (isShort) { + const lengthRange = faker.number.int({ min: 3, max: 6 }); + appendPhrase(sentenceWords, faker.lorem.words(lengthRange)); + } else { + if (faker.datatype.boolean({ probability: 0.5 })) { + appendPhrase(sentenceWords, faker.helpers.arrayElement(starters)); } - const pool = channelIndices.filter(index => index !== previousChannel); - const nextChannel = pool.length > 0 ? faker.helpers.arrayElement(pool) : previousChannel; - previousChannel = nextChannel; - return nextChannel; - }; - - for (let turnIndex = 0; turnIndex < turnCount; turnIndex++) { - const channel = chooseChannel(); - const isQuickTurn = faker.datatype.boolean({ probability: 0.18 }); - const clauseCount = isQuickTurn ? 1 : faker.number.int({ min: 1, max: 4 }); - const turnWords: string[] = []; - - if (isQuickTurn) { - appendPhrase(turnWords, faker.helpers.arrayElement(briefReplies)); + const lengthRange = selectWeighted([ + { weight: 25, value: { min: 5, max: 9 } }, + { weight: 40, value: { min: 10, max: 15 } }, + { weight: 25, value: { min: 16, max: 22 } }, + { weight: 10, value: { min: 23, max: 30 } }, + ]); + appendPhrase(sentenceWords, faker.lorem.words(faker.number.int(lengthRange))); + + if (faker.datatype.boolean({ probability: 0.35 })) { + appendPhrase(sentenceWords, faker.helpers.arrayElement(bridges)); + appendPhrase(sentenceWords, faker.lorem.words(faker.number.int({ min: 3, max: 8 }))); + } + } - if (faker.datatype.boolean({ probability: 0.45 })) { - appendPhrase(turnWords, faker.helpers.arrayElement(starters)); - } + return sentenceWords; +}; - if (faker.datatype.boolean({ probability: 0.4 })) { - appendPhrase(turnWords, faker.lorem.words(faker.number.int({ min: 2, max: 5 }))); - } - } else { - for (let clauseIndex = 0; clauseIndex < clauseCount; clauseIndex++) { - if (clauseIndex === 0 && faker.datatype.boolean({ probability: 0.55 })) { - appendPhrase(turnWords, faker.helpers.arrayElement(starters)); - } +export const generateTranscript = () => { + const channelCount = 2; + const turnCount = faker.number.int({ min: 10, max: 20 }); - const lengthRange = selectWeighted([ - { weight: 22, value: { min: 4, max: 7 } }, - { weight: 36, value: { min: 8, max: 13 } }, - { weight: 28, value: { min: 14, max: 20 } }, - { weight: 14, value: { min: 21, max: 28 } }, - ]); - const phraseWords = faker.lorem.words(faker.number.int(lengthRange)); - appendPhrase(turnWords, phraseWords); - - if (faker.datatype.boolean({ probability: 0.42 })) { - appendPhrase(turnWords, faker.helpers.arrayElement(bridges)); - } + const transcriptId = id(); + const words: Array = []; + let currentTimeMs = 0; + let currentChannel = 0; + const createdAt = faker.date.recent({ days: 30 }).toISOString(); - if (faker.datatype.boolean({ probability: 0.2 })) { - appendPhrase(turnWords, String(faker.number.int({ min: 2, max: 120 }))); + for (let turnIndex = 0; turnIndex < turnCount; turnIndex++) { + const sentenceCount = selectWeighted([ + { weight: 20, value: 1 }, + { weight: 25, value: 2 }, + { weight: 20, value: 3 }, + { weight: 15, value: faker.number.int({ min: 4, max: 6 }) }, + { weight: 10, value: faker.number.int({ min: 7, max: 8 }) }, + { weight: 10, value: faker.number.int({ min: 9, max: 10 }) }, + ]); + + for (let sentenceIndex = 0; sentenceIndex < sentenceCount; sentenceIndex++) { + const sentenceWords = generateSentence(); + + for (const raw of sentenceWords) { + const text = sanitizeWord(raw); + if (!text) { + continue; } - if (faker.datatype.boolean({ probability: 0.3 })) { - appendPhrase(turnWords, faker.lorem.words(faker.number.int({ min: 3, max: 6 }))); - } + const start_ms = currentTimeMs; + const durationMs = durationForWord(text); + const end_ms = start_ms + durationMs; + + words.push({ + user_id: DEFAULT_USER_ID, + created_at: createdAt, + transcript_id: transcriptId, + channel: currentChannel, + text, + start_ms, + end_ms, + }); + + currentTimeMs = end_ms; + currentTimeMs += faker.number.int({ min: 40, max: 120 }); } - if (faker.datatype.boolean({ probability: 0.35 })) { - appendPhrase(turnWords, faker.helpers.arrayElement(endCaps)); + if (sentenceIndex < sentenceCount - 1) { + if (sentenceCount >= 4) { + const sentenceGap = faker.number.int({ min: 200, max: 800 }); + currentTimeMs += sentenceGap; + } else if (sentenceCount >= 2) { + if (faker.datatype.boolean({ probability: 0.5 })) { + const sentenceGap = faker.number.int({ min: 150, max: 600 }); + currentTimeMs += sentenceGap; + } + } } } - if (!turnWords.length) { - appendPhrase(turnWords, faker.lorem.words(faker.number.int({ min: 3, max: 7 }))); - } + currentTimeMs += faker.number.int({ min: 400, max: 1200 }); - for (const raw of turnWords) { - const text = sanitizeWord(raw); - if (!text) { - continue; - } - - const start_ms = currentTimeMs; - const durationMs = durationForWord(text); - const end_ms = start_ms + durationMs; - - words.push({ - user_id: DEFAULT_USER_ID, - created_at: faker.date.recent({ days: 30 }).toISOString(), - transcript_id: id(), - channel, - text, - start_ms, - end_ms, - }); - - currentTimeMs = end_ms; - const intraPause = faker.datatype.boolean({ probability: 0.22 }) - ? faker.number.int({ min: 120, max: 360 }) - : faker.number.int({ min: 40, max: 140 }); - currentTimeMs += intraPause; + if (faker.datatype.boolean({ probability: 0.2 })) { + currentTimeMs += faker.number.int({ min: 1000, max: 2500 }); } - currentTimeMs += faker.number.int({ min: 260, max: 980 }); - - if (faker.datatype.boolean({ probability: 0.14 })) { - currentTimeMs += faker.number.int({ min: 1400, max: 3600 }); - } + currentChannel = (currentChannel + 1) % channelCount; } return { words }; diff --git a/apps/web/package.json b/apps/web/package.json index b232a0a28..35937db92 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -7,7 +7,7 @@ "build": "vite build", "serve": "vite preview", "deploy": "wrangler deploy", - "typecheck": "deno check supabase/functions/**/*.ts && tsc --noEmit" + "typecheck": "pnpm -F @hypr/web build && deno check supabase/functions/**/*.ts && tsc --noEmit" }, "dependencies": { "@cloudflare/vite-plugin": "^1.13.15", diff --git a/crates/am/src/client.rs b/crates/am/src/client.rs index 5429bdf22..617261862 100644 --- a/crates/am/src/client.rs +++ b/crates/am/src/client.rs @@ -23,7 +23,7 @@ impl Client { } pub async fn status(&self) -> Result { - let url = format!("{}/v1/status", self.base_url); + let url = format!("{}/status", self.base_url); let response = self.client.get(&url).send().await?; if response.status().is_success() { @@ -38,7 +38,7 @@ impl Client { return Err(Error::InvalidApiKey); } - let url = format!("{}/v1/init", self.base_url); + let url = format!("{}/init", self.base_url); let response = self.client.post(&url).json(&request).send().await?; match response.status() { @@ -51,7 +51,7 @@ impl Client { } pub async fn reset(&self) -> Result { - let url = format!("{}/v1/reset", self.base_url); + let url = format!("{}/reset", self.base_url); let response = self.client.post(&url).send().await?; if response.status().is_success() { @@ -62,7 +62,7 @@ impl Client { } pub async fn unload(&self) -> Result { - let url = format!("{}/v1/unload", self.base_url); + let url = format!("{}/unload", self.base_url); let response = self.client.post(&url).send().await?; match response.status() { @@ -73,7 +73,7 @@ impl Client { } pub async fn shutdown(&self) -> Result { - let url = format!("{}/v1/shutdown", self.base_url); + let url = format!("{}/shutdown", self.base_url); let response = self.client.post(&url).send().await?; if response.status().is_success() { diff --git a/plugins/local-stt/src/server/external.rs b/plugins/local-stt/src/server/external.rs index a473846b7..e7cbf5e0e 100644 --- a/plugins/local-stt/src/server/external.rs +++ b/plugins/local-stt/src/server/external.rs @@ -47,7 +47,7 @@ impl Actor for ExternalSTTActor { ) -> Result { let port = port_check::free_local_port().unwrap(); let (mut rx, child) = args.cmd.args(["--port", &port.to_string()]).spawn()?; - let base_url = format!("http://localhost:{}", port); + let base_url = format!("http://localhost:{}/v1", port); let client = hypr_am::Client::new(&base_url); let task_handle = tokio::spawn(async move { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4ddf551bd..1550f9063 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -115,7 +115,7 @@ importers: version: 0.13.8(typescript@5.8.3)(zod@4.1.12) '@tanstack/react-form': specifier: ^1.23.8 - version: 1.23.8(@tanstack/react-start@1.133.26(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 1.23.8(@tanstack/react-start@1.133.26(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@tanstack/react-query': specifier: ^5.90.5 version: 5.90.5(react@19.2.0) @@ -218,10 +218,10 @@ importers: version: 10.1.0 '@tanstack/react-router-devtools': specifier: ^1.133.25 - version: 1.133.25(@tanstack/react-router@1.133.25(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.133.25)(@types/node@24.9.1)(csstype@3.1.3)(jiti@1.21.7)(lightningcss@1.30.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(solid-js@1.9.9)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1) + version: 1.133.25(@tanstack/react-router@1.133.25(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.133.25)(@types/node@24.9.1)(csstype@3.1.3)(jiti@2.6.1)(lightningcss@1.30.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(solid-js@1.9.9)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1) '@tanstack/router-plugin': specifier: ^1.133.25 - version: 1.133.25(@tanstack/react-router@1.133.25(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)) + version: 1.133.25(@tanstack/react-router@1.133.25(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)) '@tauri-apps/cli': specifier: ^2.9.1 version: 2.9.1 @@ -236,7 +236,7 @@ importers: version: 19.2.2(@types/react@19.2.2) '@vitejs/plugin-react': specifier: ^4.7.0 - version: 4.7.0(vite@7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)) + version: 4.7.0(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)) autoprefixer: specifier: ^10.4.21 version: 10.4.21(postcss@8.5.6) @@ -251,10 +251,10 @@ importers: version: 5.8.3 vite: specifier: ^7.1.12 - version: 7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) + version: 7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(jiti@1.21.7)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) apps/pro: dependencies: @@ -12242,7 +12242,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/directive-functions-plugin@1.133.19(vite@7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1))': + '@tanstack/directive-functions-plugin@1.133.19(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1))': dependencies: '@babel/code-frame': 7.27.1 '@babel/core': 7.28.5 @@ -12252,7 +12252,7 @@ snapshots: babel-dead-code-elimination: 1.0.10 pathe: 2.0.3 tiny-invariant: 1.3.3 - vite: 7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - supports-color optional: true @@ -12299,7 +12299,7 @@ snapshots: transitivePeerDependencies: - react-dom - '@tanstack/react-form@1.23.8(@tanstack/react-start@1.133.26(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@tanstack/react-form@1.23.8(@tanstack/react-start@1.133.26(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@tanstack/form-core': 1.24.4 '@tanstack/react-store': 0.7.7(react-dom@19.2.0(react@19.2.0))(react@19.2.0) @@ -12307,7 +12307,7 @@ snapshots: devalue: 5.4.2 react: 19.2.0 optionalDependencies: - '@tanstack/react-start': 1.133.26(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)) + '@tanstack/react-start': 1.133.26(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)) transitivePeerDependencies: - react-dom @@ -12346,13 +12346,13 @@ snapshots: - tsx - yaml - '@tanstack/react-router-devtools@1.133.25(@tanstack/react-router@1.133.25(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.133.25)(@types/node@24.9.1)(csstype@3.1.3)(jiti@1.21.7)(lightningcss@1.30.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(solid-js@1.9.9)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1)': + '@tanstack/react-router-devtools@1.133.25(@tanstack/react-router@1.133.25(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.133.25)(@types/node@24.9.1)(csstype@3.1.3)(jiti@2.6.1)(lightningcss@1.30.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(solid-js@1.9.9)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1)': dependencies: '@tanstack/react-router': 1.133.25(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@tanstack/router-devtools-core': 1.133.25(@tanstack/router-core@1.133.25)(@types/node@24.9.1)(csstype@3.1.3)(jiti@1.21.7)(lightningcss@1.30.2)(solid-js@1.9.9)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1) + '@tanstack/router-devtools-core': 1.133.25(@tanstack/router-core@1.133.25)(@types/node@24.9.1)(csstype@3.1.3)(jiti@2.6.1)(lightningcss@1.30.2)(solid-js@1.9.9)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1) react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - vite: 7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - '@tanstack/router-core' - '@types/node' @@ -12434,19 +12434,19 @@ snapshots: - vite-plugin-solid - webpack - '@tanstack/react-start@1.133.26(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1))': + '@tanstack/react-start@1.133.26(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1))': dependencies: '@tanstack/react-router': 1.133.25(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@tanstack/react-start-client': 1.133.25(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@tanstack/react-start-server': 1.133.26(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@tanstack/router-utils': 1.133.19 '@tanstack/start-client-core': 1.133.25 - '@tanstack/start-plugin-core': 1.133.26(@tanstack/react-router@1.133.25(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)) + '@tanstack/start-plugin-core': 1.133.26(@tanstack/react-router@1.133.25(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)) '@tanstack/start-server-core': 1.133.26 pathe: 2.0.3 react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - vite: 7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - '@rsbuild/core' - crossws @@ -12501,14 +12501,14 @@ snapshots: - tsx - yaml - '@tanstack/router-devtools-core@1.133.25(@tanstack/router-core@1.133.25)(@types/node@24.9.1)(csstype@3.1.3)(jiti@1.21.7)(lightningcss@1.30.2)(solid-js@1.9.9)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1)': + '@tanstack/router-devtools-core@1.133.25(@tanstack/router-core@1.133.25)(@types/node@24.9.1)(csstype@3.1.3)(jiti@2.6.1)(lightningcss@1.30.2)(solid-js@1.9.9)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1)': dependencies: '@tanstack/router-core': 1.133.25 clsx: 2.1.1 goober: 2.1.18(csstype@3.1.3) solid-js: 1.9.9 tiny-invariant: 1.3.3 - vite: 7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) optionalDependencies: csstype: 3.1.3 transitivePeerDependencies: @@ -12559,7 +12559,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.133.25(@tanstack/react-router@1.133.25(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1))': + '@tanstack/router-plugin@1.133.25(@tanstack/react-router@1.133.25(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) @@ -12577,7 +12577,7 @@ snapshots: zod: 3.25.76 optionalDependencies: '@tanstack/react-router': 1.133.25(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - vite: 7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -12615,7 +12615,7 @@ snapshots: - supports-color - vite - '@tanstack/server-functions-plugin@1.133.25(vite@7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1))': + '@tanstack/server-functions-plugin@1.133.25(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1))': dependencies: '@babel/code-frame': 7.27.1 '@babel/core': 7.28.5 @@ -12624,7 +12624,7 @@ snapshots: '@babel/template': 7.27.2 '@babel/traverse': 7.28.5 '@babel/types': 7.28.5 - '@tanstack/directive-functions-plugin': 1.133.19(vite@7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)) + '@tanstack/directive-functions-plugin': 1.133.19(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)) babel-dead-code-elimination: 1.0.10 tiny-invariant: 1.3.3 transitivePeerDependencies: @@ -12672,7 +12672,7 @@ snapshots: - vite-plugin-solid - webpack - '@tanstack/start-plugin-core@1.133.26(@tanstack/react-router@1.133.25(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1))': + '@tanstack/start-plugin-core@1.133.26(@tanstack/react-router@1.133.25(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1))': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.28.5 @@ -12680,9 +12680,9 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.40 '@tanstack/router-core': 1.133.25 '@tanstack/router-generator': 1.133.25 - '@tanstack/router-plugin': 1.133.25(@tanstack/react-router@1.133.25(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)) + '@tanstack/router-plugin': 1.133.25(@tanstack/react-router@1.133.25(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)) '@tanstack/router-utils': 1.133.19 - '@tanstack/server-functions-plugin': 1.133.25(vite@7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)) + '@tanstack/server-functions-plugin': 1.133.25(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)) '@tanstack/start-client-core': 1.133.25 '@tanstack/start-server-core': 1.133.26 babel-dead-code-elimination: 1.0.10 @@ -12692,8 +12692,8 @@ snapshots: srvx: 0.8.16 tinyglobby: 0.2.15 ufo: 1.6.1 - vite: 7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) - vitefu: 1.1.1(vite@7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)) + vite: 7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) + vitefu: 1.1.1(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)) xmlbuilder2: 3.1.1 zod: 3.25.76 transitivePeerDependencies: @@ -13321,7 +13321,7 @@ snapshots: '@vercel/oidc@3.0.3': {} - '@vitejs/plugin-react@4.7.0(vite@7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1))': + '@vitejs/plugin-react@4.7.0(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5) @@ -13329,7 +13329,7 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -13361,14 +13361,6 @@ snapshots: optionalDependencies: vite: 7.1.12(@types/node@22.18.12)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) - '@vitest/mocker@3.2.4(vite@7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1))': - dependencies: - '@vitest/spy': 3.2.4 - estree-walker: 3.0.3 - magic-string: 0.30.21 - optionalDependencies: - vite: 7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) - '@vitest/mocker@3.2.4(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 @@ -18518,27 +18510,6 @@ snapshots: - tsx - yaml - vite-node@3.2.4(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1): - dependencies: - cac: 6.7.14 - debug: 4.4.3 - es-module-lexer: 1.7.0 - pathe: 2.0.3 - vite: 7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) - transitivePeerDependencies: - - '@types/node' - - jiti - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - vite-node@3.2.4(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1): dependencies: cac: 6.7.14 @@ -18587,22 +18558,6 @@ snapshots: tsx: 4.20.6 yaml: 2.8.1 - vite@7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1): - dependencies: - esbuild: 0.25.11 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.52.5 - tinyglobby: 0.2.15 - optionalDependencies: - '@types/node': 24.9.1 - fsevents: 2.3.3 - jiti: 1.21.7 - lightningcss: 1.30.2 - tsx: 4.20.6 - yaml: 2.8.1 - vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1): dependencies: esbuild: 0.25.11 @@ -18623,9 +18578,9 @@ snapshots: optionalDependencies: vite: 7.1.12(@types/node@22.18.12)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) - vitefu@1.1.1(vite@7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)): + vitefu@1.1.1(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)): optionalDependencies: - vite: 7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) optional: true vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.12)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1): @@ -18671,49 +18626,6 @@ snapshots: - tsx - yaml - vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(jiti@1.21.7)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1): - dependencies: - '@types/chai': 5.2.3 - '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)) - '@vitest/pretty-format': 3.2.4 - '@vitest/runner': 3.2.4 - '@vitest/snapshot': 3.2.4 - '@vitest/spy': 3.2.4 - '@vitest/utils': 3.2.4 - chai: 5.3.3 - debug: 4.4.3 - expect-type: 1.2.2 - magic-string: 0.30.21 - pathe: 2.0.3 - picomatch: 4.0.3 - std-env: 3.10.0 - tinybench: 2.9.0 - tinyexec: 0.3.2 - tinyglobby: 0.2.15 - tinypool: 1.1.1 - tinyrainbow: 2.0.0 - vite: 7.1.12(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.9.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/debug': 4.1.12 - '@types/node': 24.9.1 - jsdom: 27.0.1(postcss@8.5.6) - transitivePeerDependencies: - - jiti - - less - - lightningcss - - msw - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1): dependencies: '@types/chai': 5.2.3