New deterministic-tests workspace: scripted multi-client harness against a real server (~110 scenario tests, server-control, managed-websocket, test-runner). Updates to existing workspaces: obsidian-plugin (settings, cursors, plugin entrypoint), local-client-cli (args, cli, file-watcher, node-filesystem, path-utils + tests), test-client (mock-agent/client, cli, error tracker). Bumps frontend root package.json/lock and adds eslint config tweaks.
15 lines
573 B
TypeScript
15 lines
573 B
TypeScript
import * as path from "path";
|
|
|
|
// Convert a native platform path to forward slashes (no-op on non-Windows)
|
|
export function toUnixPath(nativePath: string): string {
|
|
return nativePath.split(path.sep).join(path.posix.sep);
|
|
}
|
|
|
|
// Match a file path against a glob pattern
|
|
// Extends path.matchesGlob so that "dir/**" also matches the directory itself
|
|
export function matchesGlob(filePath: string, pattern: string): boolean {
|
|
if (pattern.endsWith("/**") && filePath === pattern.slice(0, -3)) {
|
|
return true;
|
|
}
|
|
return path.matchesGlob(filePath, pattern);
|
|
}
|