openpencil/tests/helpers/paths.ts
Joseph Cumines f862beb08d Add heuristic overlap detection tool and CLI
Implement the analyze overlaps CLI command, RPC endpoint, and ToolDef
to enable heuristic detection of visual overlaps, parent overflows, and
overlay patterns. Geometry computation now uses world-matrix visual
bounds to handle nested ancestor rotations and clipping frames correctly.

Update file-backed CLI commands to use Node fs/promises instead of Bun
runtime file APIs. This is required for the published CLI to function
when installed and executed in a standard Node environment. Add the
package.json subpath export to the core package for metadata consumers.
2026-06-19 09:54:27 +10:00

34 lines
978 B
TypeScript

import { existsSync } from 'node:fs'
import { join } from 'node:path'
const repoRoot = join(import.meta.dir, '..', '..')
export function repoPath(...segments: string[]): string {
return join(repoRoot, ...segments)
}
export function coreSourcePath(...segments: string[]): string {
return repoPath('packages/core/src', ...segments)
}
export function cliSourcePath(...segments: string[]): string {
return repoPath('packages/cli/src', ...segments)
}
export function testPath(...segments: string[]): string {
return repoPath('tests', ...segments)
}
export function publicPath(...segments: string[]): string {
return repoPath('public', ...segments)
}
export function requireBuiltWorkspacePackages(): void {
const coreDist = repoPath('packages/core/dist/index.js')
if (!existsSync(coreDist)) {
throw new Error(
'CLI integration tests require built workspace packages. Run `bun run check` or `bun run --filter @open-pencil/core build` first.'
)
}
}