* Add opt-in browser tools for desktop tabs Adds the daemon opt-in, desktop tab routing, MCP tools, and real browser automation surfaces for Paseo desktop browser tabs. * Fix browser tools CI expectations * Address browser tools review findings * Restrict browser file automation paths * Fix browser upload test on Windows * Harden browser navigation inputs * Make browser tools create usable tabs * Update browser MCP empty-state test * Fail browser tab creation when registration times out * Fix browser screenshots for agents * Hide disabled browser tools from agents * Address browser tools architecture review * Replace browser tools review tests * Wrap browser tab registration errors * Mock Expo Router in app unit tests * Handle invalid browser automation requests * Return browser failure on desktop disconnect * Update browser disconnect websocket test * Relax browser timeout polling test * Handle invalid browser responses * Return browser failure when send fails * Remove local diagnostics and fixture paths * Fix dev service home fallback * Use worktree home for dev services * Use managed daemon in desktop dev * fix(browser): keep agent tabs addressable Track agent-active browser targets separately from human-focused tabs and keep resident webviews alive for automation. Browser tool visibility now comes from registration while the broker reports disabled execution. * refactor(browser): register tools through catalog Move browser tool registration onto the shared Paseo tool catalog so the MCP server remains only the transport adapter. * fix(settings): translate browser tools host error
50 lines
1.6 KiB
TypeScript
50 lines
1.6 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { buildAbsoluteExplorerPath } from "./explorer-paths";
|
|
|
|
describe("buildAbsoluteExplorerPath", () => {
|
|
it("builds a POSIX absolute path from a relative explorer path", () => {
|
|
expect(
|
|
buildAbsoluteExplorerPath({
|
|
workspaceRoot: "/workspaces/paseo",
|
|
entryPath: "packages/app/src/components/file-explorer-pane.tsx",
|
|
}),
|
|
).toBe("/workspaces/paseo/packages/app/src/components/file-explorer-pane.tsx");
|
|
});
|
|
|
|
it("returns workspace root when entry path points to explorer root", () => {
|
|
expect(
|
|
buildAbsoluteExplorerPath({
|
|
workspaceRoot: "/workspaces/paseo",
|
|
entryPath: ".",
|
|
}),
|
|
).toBe("/workspaces/paseo");
|
|
});
|
|
|
|
it("trims trailing separators from workspace root before joining", () => {
|
|
expect(
|
|
buildAbsoluteExplorerPath({
|
|
workspaceRoot: "/workspaces/paseo/",
|
|
entryPath: "README.md",
|
|
}),
|
|
).toBe("/workspaces/paseo/README.md");
|
|
});
|
|
|
|
it("builds a Windows absolute path with backslash separators", () => {
|
|
expect(
|
|
buildAbsoluteExplorerPath({
|
|
workspaceRoot: "C:\\repo\\paseo",
|
|
entryPath: "packages/app/src/components/file-explorer-pane.tsx",
|
|
}),
|
|
).toBe("C:\\repo\\paseo\\packages\\app\\src\\components\\file-explorer-pane.tsx");
|
|
});
|
|
|
|
it("passes through an already-absolute entry path", () => {
|
|
expect(
|
|
buildAbsoluteExplorerPath({
|
|
workspaceRoot: "/workspaces/paseo",
|
|
entryPath: "/tmp/another/location.txt",
|
|
}),
|
|
).toBe("/tmp/another/location.txt");
|
|
});
|
|
});
|