Align branch with main: switch to vite-plus and reformat

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Gregory Schier
2026-03-13 13:20:06 -07:00
parent d0f1708017
commit 903f57a415
7 changed files with 1665 additions and 312 deletions

View File

@@ -512,13 +512,13 @@ function HttpRequestArg({
value={value} value={value}
disabled={arg.disabled} disabled={arg.disabled}
options={httpRequests.map((r) => { options={httpRequests.map((r) => {
return { return {
label: label:
buildRequestBreadcrumbs(r, folders).join(" / ") + buildRequestBreadcrumbs(r, folders).join(" / ") +
(r.id === activeHttpRequest?.id ? " (current)" : ""), (r.id === activeHttpRequest?.id ? " (current)" : ""),
value: r.id, value: r.id,
}; };
})} })}
/> />
); );
} }

View File

@@ -62,13 +62,17 @@ export function SegmentedControl<T extends string>({
if (e.key === "ArrowRight") { if (e.key === "ArrowRight") {
e.preventDefault(); e.preventDefault();
const newIndex = Math.abs((selectedIndex + 1) % options.length); const newIndex = Math.abs((selectedIndex + 1) % options.length);
if (options[newIndex]) { setSelectedValue(options[newIndex].value); } if (options[newIndex]) {
setSelectedValue(options[newIndex].value);
}
const child = containerRef.current?.children[newIndex] as HTMLButtonElement; const child = containerRef.current?.children[newIndex] as HTMLButtonElement;
child.focus(); child.focus();
} else if (e.key === "ArrowLeft") { } else if (e.key === "ArrowLeft") {
e.preventDefault(); e.preventDefault();
const newIndex = Math.abs((selectedIndex - 1) % options.length); const newIndex = Math.abs((selectedIndex - 1) % options.length);
if (options[newIndex]) { setSelectedValue(options[newIndex].value); } if (options[newIndex]) {
setSelectedValue(options[newIndex].value);
}
const child = containerRef.current?.children[newIndex] as HTMLButtonElement; const child = containerRef.current?.children[newIndex] as HTMLButtonElement;
child.focus(); child.focus();
} }

View File

@@ -8,12 +8,14 @@ import { Document, Page } from "react-pdf";
import { useContainerSize } from "@yaakapp-internal/ui"; import { useContainerSize } from "@yaakapp-internal/ui";
import { fireAndForget } from "../../lib/fireAndForget"; import { fireAndForget } from "../../lib/fireAndForget";
fireAndForget(import("react-pdf").then(({ pdfjs }) => { fireAndForget(
pdfjs.GlobalWorkerOptions.workerSrc = new URL( import("react-pdf").then(({ pdfjs }) => {
"pdfjs-dist/build/pdf.worker.min.mjs", pdfjs.GlobalWorkerOptions.workerSrc = new URL(
import.meta.url, "pdfjs-dist/build/pdf.worker.min.mjs",
).toString(); import.meta.url,
})); ).toString();
}),
);
interface Props { interface Props {
bodyPath?: string; bodyPath?: string;

View File

@@ -8,133 +8,131 @@
// You should NOT make any changes in this file as it will be overwritten. // You should NOT make any changes in this file as it will be overwritten.
// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified. // Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
import { Route as rootRouteImport } from './routes/__root' import { Route as rootRouteImport } from "./routes/__root";
import { Route as IndexRouteImport } from './routes/index' import { Route as IndexRouteImport } from "./routes/index";
import { Route as WorkspacesIndexRouteImport } from './routes/workspaces/index' import { Route as WorkspacesIndexRouteImport } from "./routes/workspaces/index";
import { Route as WorkspacesWorkspaceIdIndexRouteImport } from './routes/workspaces/$workspaceId/index' import { Route as WorkspacesWorkspaceIdIndexRouteImport } from "./routes/workspaces/$workspaceId/index";
import { Route as WorkspacesWorkspaceIdSettingsRouteImport } from './routes/workspaces/$workspaceId/settings' import { Route as WorkspacesWorkspaceIdSettingsRouteImport } from "./routes/workspaces/$workspaceId/settings";
import { Route as WorkspacesWorkspaceIdRequestsRequestIdRouteImport } from './routes/workspaces/$workspaceId/requests/$requestId' import { Route as WorkspacesWorkspaceIdRequestsRequestIdRouteImport } from "./routes/workspaces/$workspaceId/requests/$requestId";
const IndexRoute = IndexRouteImport.update({ const IndexRoute = IndexRouteImport.update({
id: '/', id: "/",
path: '/', path: "/",
getParentRoute: () => rootRouteImport, getParentRoute: () => rootRouteImport,
} as any) } as any);
const WorkspacesIndexRoute = WorkspacesIndexRouteImport.update({ const WorkspacesIndexRoute = WorkspacesIndexRouteImport.update({
id: '/workspaces/', id: "/workspaces/",
path: '/workspaces/', path: "/workspaces/",
getParentRoute: () => rootRouteImport, getParentRoute: () => rootRouteImport,
} as any) } as any);
const WorkspacesWorkspaceIdIndexRoute = const WorkspacesWorkspaceIdIndexRoute = WorkspacesWorkspaceIdIndexRouteImport.update({
WorkspacesWorkspaceIdIndexRouteImport.update({ id: "/workspaces/$workspaceId/",
id: '/workspaces/$workspaceId/', path: "/workspaces/$workspaceId/",
path: '/workspaces/$workspaceId/', getParentRoute: () => rootRouteImport,
getParentRoute: () => rootRouteImport, } as any);
} as any) const WorkspacesWorkspaceIdSettingsRoute = WorkspacesWorkspaceIdSettingsRouteImport.update({
const WorkspacesWorkspaceIdSettingsRoute = id: "/workspaces/$workspaceId/settings",
WorkspacesWorkspaceIdSettingsRouteImport.update({ path: "/workspaces/$workspaceId/settings",
id: '/workspaces/$workspaceId/settings', getParentRoute: () => rootRouteImport,
path: '/workspaces/$workspaceId/settings', } as any);
getParentRoute: () => rootRouteImport,
} as any)
const WorkspacesWorkspaceIdRequestsRequestIdRoute = const WorkspacesWorkspaceIdRequestsRequestIdRoute =
WorkspacesWorkspaceIdRequestsRequestIdRouteImport.update({ WorkspacesWorkspaceIdRequestsRequestIdRouteImport.update({
id: '/workspaces/$workspaceId/requests/$requestId', id: "/workspaces/$workspaceId/requests/$requestId",
path: '/workspaces/$workspaceId/requests/$requestId', path: "/workspaces/$workspaceId/requests/$requestId",
getParentRoute: () => rootRouteImport, getParentRoute: () => rootRouteImport,
} as any) } as any);
export interface FileRoutesByFullPath { export interface FileRoutesByFullPath {
'/': typeof IndexRoute "/": typeof IndexRoute;
'/workspaces': typeof WorkspacesIndexRoute "/workspaces": typeof WorkspacesIndexRoute;
'/workspaces/$workspaceId/settings': typeof WorkspacesWorkspaceIdSettingsRoute "/workspaces/$workspaceId/settings": typeof WorkspacesWorkspaceIdSettingsRoute;
'/workspaces/$workspaceId': typeof WorkspacesWorkspaceIdIndexRoute "/workspaces/$workspaceId": typeof WorkspacesWorkspaceIdIndexRoute;
'/workspaces/$workspaceId/requests/$requestId': typeof WorkspacesWorkspaceIdRequestsRequestIdRoute "/workspaces/$workspaceId/requests/$requestId": typeof WorkspacesWorkspaceIdRequestsRequestIdRoute;
} }
export interface FileRoutesByTo { export interface FileRoutesByTo {
'/': typeof IndexRoute "/": typeof IndexRoute;
'/workspaces': typeof WorkspacesIndexRoute "/workspaces": typeof WorkspacesIndexRoute;
'/workspaces/$workspaceId/settings': typeof WorkspacesWorkspaceIdSettingsRoute "/workspaces/$workspaceId/settings": typeof WorkspacesWorkspaceIdSettingsRoute;
'/workspaces/$workspaceId': typeof WorkspacesWorkspaceIdIndexRoute "/workspaces/$workspaceId": typeof WorkspacesWorkspaceIdIndexRoute;
'/workspaces/$workspaceId/requests/$requestId': typeof WorkspacesWorkspaceIdRequestsRequestIdRoute "/workspaces/$workspaceId/requests/$requestId": typeof WorkspacesWorkspaceIdRequestsRequestIdRoute;
} }
export interface FileRoutesById { export interface FileRoutesById {
__root__: typeof rootRouteImport __root__: typeof rootRouteImport;
'/': typeof IndexRoute "/": typeof IndexRoute;
'/workspaces/': typeof WorkspacesIndexRoute "/workspaces/": typeof WorkspacesIndexRoute;
'/workspaces/$workspaceId/settings': typeof WorkspacesWorkspaceIdSettingsRoute "/workspaces/$workspaceId/settings": typeof WorkspacesWorkspaceIdSettingsRoute;
'/workspaces/$workspaceId/': typeof WorkspacesWorkspaceIdIndexRoute "/workspaces/$workspaceId/": typeof WorkspacesWorkspaceIdIndexRoute;
'/workspaces/$workspaceId/requests/$requestId': typeof WorkspacesWorkspaceIdRequestsRequestIdRoute "/workspaces/$workspaceId/requests/$requestId": typeof WorkspacesWorkspaceIdRequestsRequestIdRoute;
} }
export interface FileRouteTypes { export interface FileRouteTypes {
fileRoutesByFullPath: FileRoutesByFullPath fileRoutesByFullPath: FileRoutesByFullPath;
fullPaths: fullPaths:
| '/' | "/"
| '/workspaces' | "/workspaces"
| '/workspaces/$workspaceId/settings' | "/workspaces/$workspaceId/settings"
| '/workspaces/$workspaceId' | "/workspaces/$workspaceId"
| '/workspaces/$workspaceId/requests/$requestId' | "/workspaces/$workspaceId/requests/$requestId";
fileRoutesByTo: FileRoutesByTo fileRoutesByTo: FileRoutesByTo;
to: to:
| '/' | "/"
| '/workspaces' | "/workspaces"
| '/workspaces/$workspaceId/settings' | "/workspaces/$workspaceId/settings"
| '/workspaces/$workspaceId' | "/workspaces/$workspaceId"
| '/workspaces/$workspaceId/requests/$requestId' | "/workspaces/$workspaceId/requests/$requestId";
id: id:
| '__root__' | "__root__"
| '/' | "/"
| '/workspaces/' | "/workspaces/"
| '/workspaces/$workspaceId/settings' | "/workspaces/$workspaceId/settings"
| '/workspaces/$workspaceId/' | "/workspaces/$workspaceId/"
| '/workspaces/$workspaceId/requests/$requestId' | "/workspaces/$workspaceId/requests/$requestId";
fileRoutesById: FileRoutesById fileRoutesById: FileRoutesById;
} }
export interface RootRouteChildren { export interface RootRouteChildren {
IndexRoute: typeof IndexRoute IndexRoute: typeof IndexRoute;
WorkspacesIndexRoute: typeof WorkspacesIndexRoute WorkspacesIndexRoute: typeof WorkspacesIndexRoute;
WorkspacesWorkspaceIdSettingsRoute: typeof WorkspacesWorkspaceIdSettingsRoute WorkspacesWorkspaceIdSettingsRoute: typeof WorkspacesWorkspaceIdSettingsRoute;
WorkspacesWorkspaceIdIndexRoute: typeof WorkspacesWorkspaceIdIndexRoute WorkspacesWorkspaceIdIndexRoute: typeof WorkspacesWorkspaceIdIndexRoute;
WorkspacesWorkspaceIdRequestsRequestIdRoute: typeof WorkspacesWorkspaceIdRequestsRequestIdRoute WorkspacesWorkspaceIdRequestsRequestIdRoute: typeof WorkspacesWorkspaceIdRequestsRequestIdRoute;
} }
declare module '@tanstack/react-router' { declare module "@tanstack/react-router" {
interface FileRoutesByPath { interface FileRoutesByPath {
'/': { "/": {
id: '/' id: "/";
path: '/' path: "/";
fullPath: '/' fullPath: "/";
preLoaderRoute: typeof IndexRouteImport preLoaderRoute: typeof IndexRouteImport;
parentRoute: typeof rootRouteImport parentRoute: typeof rootRouteImport;
} };
'/workspaces/': { "/workspaces/": {
id: '/workspaces/' id: "/workspaces/";
path: '/workspaces' path: "/workspaces";
fullPath: '/workspaces' fullPath: "/workspaces";
preLoaderRoute: typeof WorkspacesIndexRouteImport preLoaderRoute: typeof WorkspacesIndexRouteImport;
parentRoute: typeof rootRouteImport parentRoute: typeof rootRouteImport;
} };
'/workspaces/$workspaceId/': { "/workspaces/$workspaceId/": {
id: '/workspaces/$workspaceId/' id: "/workspaces/$workspaceId/";
path: '/workspaces/$workspaceId' path: "/workspaces/$workspaceId";
fullPath: '/workspaces/$workspaceId' fullPath: "/workspaces/$workspaceId";
preLoaderRoute: typeof WorkspacesWorkspaceIdIndexRouteImport preLoaderRoute: typeof WorkspacesWorkspaceIdIndexRouteImport;
parentRoute: typeof rootRouteImport parentRoute: typeof rootRouteImport;
} };
'/workspaces/$workspaceId/settings': { "/workspaces/$workspaceId/settings": {
id: '/workspaces/$workspaceId/settings' id: "/workspaces/$workspaceId/settings";
path: '/workspaces/$workspaceId/settings' path: "/workspaces/$workspaceId/settings";
fullPath: '/workspaces/$workspaceId/settings' fullPath: "/workspaces/$workspaceId/settings";
preLoaderRoute: typeof WorkspacesWorkspaceIdSettingsRouteImport preLoaderRoute: typeof WorkspacesWorkspaceIdSettingsRouteImport;
parentRoute: typeof rootRouteImport parentRoute: typeof rootRouteImport;
} };
'/workspaces/$workspaceId/requests/$requestId': { "/workspaces/$workspaceId/requests/$requestId": {
id: '/workspaces/$workspaceId/requests/$requestId' id: "/workspaces/$workspaceId/requests/$requestId";
path: '/workspaces/$workspaceId/requests/$requestId' path: "/workspaces/$workspaceId/requests/$requestId";
fullPath: '/workspaces/$workspaceId/requests/$requestId' fullPath: "/workspaces/$workspaceId/requests/$requestId";
preLoaderRoute: typeof WorkspacesWorkspaceIdRequestsRequestIdRouteImport preLoaderRoute: typeof WorkspacesWorkspaceIdRequestsRequestIdRouteImport;
parentRoute: typeof rootRouteImport parentRoute: typeof rootRouteImport;
} };
} }
} }
@@ -143,9 +141,8 @@ const rootRouteChildren: RootRouteChildren = {
WorkspacesIndexRoute: WorkspacesIndexRoute, WorkspacesIndexRoute: WorkspacesIndexRoute,
WorkspacesWorkspaceIdSettingsRoute: WorkspacesWorkspaceIdSettingsRoute, WorkspacesWorkspaceIdSettingsRoute: WorkspacesWorkspaceIdSettingsRoute,
WorkspacesWorkspaceIdIndexRoute: WorkspacesWorkspaceIdIndexRoute, WorkspacesWorkspaceIdIndexRoute: WorkspacesWorkspaceIdIndexRoute,
WorkspacesWorkspaceIdRequestsRequestIdRoute: WorkspacesWorkspaceIdRequestsRequestIdRoute: WorkspacesWorkspaceIdRequestsRequestIdRoute,
WorkspacesWorkspaceIdRequestsRequestIdRoute, };
}
export const routeTree = rootRouteImport export const routeTree = rootRouteImport
._addFileChildren(rootRouteChildren) ._addFileChildren(rootRouteChildren)
._addFileTypes<FileRouteTypes>() ._addFileTypes<FileRouteTypes>();

View File

@@ -7,24 +7,21 @@ import { ProxyLayout } from "./components/ProxyLayout";
import { listen, rpc } from "./lib/rpc"; import { listen, rpc } from "./lib/rpc";
import { initHotkeys } from "./lib/hotkeys"; import { initHotkeys } from "./lib/hotkeys";
import { applyChange, dataAtom, replaceAll } from "./lib/store"; import { applyChange, dataAtom, replaceAll } from "./lib/store";
import { fireAndForget } from "./lib/fireAndForget";
import "./main.css"; import "./main.css";
const queryClient = new QueryClient(); const queryClient = new QueryClient();
const jotaiStore = createStore(); const jotaiStore = createStore();
// Load initial models from the database // Load initial models from the database
fireAndForget( void rpc("list_models", {}).then((res) => {
rpc("list_models", {}).then((res) => { jotaiStore.set(dataAtom, (prev) => replaceAll(prev, "http_exchange", res.httpExchanges));
jotaiStore.set(dataAtom, (prev) => replaceAll(prev, "http_exchange", res.httpExchanges)); });
}),
);
// Register hotkeys from action metadata // Register hotkeys from action metadata
fireAndForget(initHotkeys()); void initHotkeys();
// Subscribe to model change events from the backend // Subscribe to model change events from the backend
listen("model_write", (payload) => { void listen("model_write", (payload) => {
jotaiStore.set(dataAtom, (prev) => jotaiStore.set(dataAtom, (prev) =>
applyChange(prev, "http_exchange", payload.model, payload.change), applyChange(prev, "http_exchange", payload.model, payload.change),
); );

1697
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -70,7 +70,7 @@
"apps/yaak-proxy" "apps/yaak-proxy"
], ],
"scripts": { "scripts": {
"prepare": "husky", "prepare": "vp config",
"init": "npm install && npm run bootstrap", "init": "npm install && npm run bootstrap",
"start": "npm run client:dev", "start": "npm run client:dev",
"client:build": "tauri build --config crates-tauri/yaak-app-client/tauri.conf.json", "client:build": "tauri build --config crates-tauri/yaak-app-client/tauri.conf.json",
@@ -92,10 +92,10 @@
"vendor:vendor-protoc": "node scripts/vendor-protoc.cjs", "vendor:vendor-protoc": "node scripts/vendor-protoc.cjs",
"vendor:vendor-node": "node scripts/vendor-node.cjs", "vendor:vendor-node": "node scripts/vendor-node.cjs",
"lint": "run-p lint:*", "lint": "run-p lint:*",
"lint:biome": "biome lint", "lint:vp": "vp lint",
"lint:extra": "npm run --workspaces --if-present lint", "lint:workspaces": "npm run --workspaces --if-present lint",
"format": "biome format --write .",
"replace-version": "node scripts/replace-version.cjs", "replace-version": "node scripts/replace-version.cjs",
"format": "vp fmt --ignore-path .oxfmtignore",
"tauri": "tauri", "tauri": "tauri",
"client:tauri-before-build": "npm run bootstrap", "client:tauri-before-build": "npm run bootstrap",
"client:tauri-before-dev": "node scripts/run-workspaces-dev.mjs apps/yaak-client", "client:tauri-before-dev": "node scripts/run-workspaces-dev.mjs apps/yaak-client",
@@ -110,17 +110,19 @@
"@codemirror/legacy-modes": "^6.5.2" "@codemirror/legacy-modes": "^6.5.2"
}, },
"devDependencies": { "devDependencies": {
"@biomejs/biome": "^2.4.6",
"@tauri-apps/cli": "^2.9.6", "@tauri-apps/cli": "^2.9.6",
"@yaakapp/cli": "^0.5.1", "@yaakapp/cli": "^0.5.1",
"dotenv-cli": "^11.0.0", "dotenv-cli": "^11.0.0",
"husky": "^9.1.7",
"nodejs-file-downloader": "^4.13.0", "nodejs-file-downloader": "^4.13.0",
"npm-run-all": "^4.1.5", "npm-run-all": "^4.1.5",
"typescript": "^5.8.3", "typescript": "^5.8.3",
"vitest": "^3.2.4" "vite-plus": "latest",
"vitest": "npm:@voidzero-dev/vite-plus-test@latest"
}, },
"overrides": { "overrides": {
"js-yaml": "^4.1.1" "js-yaml": "^4.1.1",
} "vite": "npm:@voidzero-dev/vite-plus-core@latest",
"vitest": "npm:@voidzero-dev/vite-plus-test@latest"
},
"packageManager": "npm@11.11.1"
} }