Implements adaptive rule injection similar to Claude Code's rule system: - Searches .cursor/rules and .claude/rules directories recursively - Supports YAML frontmatter with globs, paths, alwaysApply, description - Adaptive project root detection (finds markers even outside ctx.directory) - Symlink duplicate detection via realpath comparison - Content hash deduplication (SHA-256) to avoid re-injecting same rules - picomatch-based glob pattern matching for file-specific rules 🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
24 lines
560 B
TypeScript
24 lines
560 B
TypeScript
import { join } from "node:path";
|
|
import { xdgData } from "xdg-basedir";
|
|
|
|
export const OPENCODE_STORAGE = join(xdgData ?? "", "opencode", "storage");
|
|
export const RULES_INJECTOR_STORAGE = join(OPENCODE_STORAGE, "rules-injector");
|
|
|
|
export const PROJECT_MARKERS = [
|
|
".git",
|
|
"pyproject.toml",
|
|
"package.json",
|
|
"Cargo.toml",
|
|
"go.mod",
|
|
".venv",
|
|
];
|
|
|
|
export const PROJECT_RULE_SUBDIRS: [string, string][] = [
|
|
[".cursor", "rules"],
|
|
[".claude", "rules"],
|
|
];
|
|
|
|
export const USER_RULE_DIR = ".claude/rules";
|
|
|
|
export const RULE_EXTENSIONS = [".md", ".mdc"];
|