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.
34 lines
978 B
TypeScript
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.'
|
|
)
|
|
}
|
|
}
|