Files
oh-my-opencode/packages/omo-codex/plugin/components/rules/src/path-utils.ts
T
YeonGyu-Kim bb8ef30bbe feat(omo-codex): add post-compact rule budget to codex hook
Trim rule and result char budgets after compaction via new
postCompactMaxRuleChars/postCompactMaxResultChars config, applied
through withPostCompactBudget. Extract codex-hook helpers into
dynamic-target-fingerprints, hook-output, path-utils,
rules-engine-factory, and transcript-rule-filter modules.
2026-05-29 11:17:24 +09:00

30 lines
894 B
TypeScript

import { isAbsolute, relative, resolve } from "node:path";
export function displayPath(cwd: string, filePath: string): string {
const rel = isAbsolute(filePath) ? relative(cwd, filePath) : filePath;
return toPosixPath(rel);
}
export function isSameOrChildPath(childPath: string, parentPath: string): boolean {
const childRelativePath = relative(parentPath, resolve(childPath));
return childRelativePath === "" || (!childRelativePath.startsWith("..") && !isAbsolute(childRelativePath));
}
export function toPosixPath(path: string): string {
return path.replaceAll("\\", "/");
}
export function uniqueStrings(values: ReadonlyArray<string>): string[] {
const uniqueValues: string[] = [];
const seenValues = new Set<string>();
for (const value of values) {
if (seenValues.has(value)) {
continue;
}
seenValues.add(value);
uniqueValues.push(value);
}
return uniqueValues;
}