refactor(rules-engine): centralize rule constants and AGENTS.md walk-up
Promote the project-rule constants (PROJECT_MARKERS, PROJECT_RULE_SUBDIRS, PROJECT_RULE_FILES, OPENCODE_USER_RULE_DIRS, USER_RULE_DIR, GITHUB_INSTRUCTIONS_PATTERN, RULE_EXTENSIONS, AGENTS_FILENAME, etc.) and the findAgentsMdUp walk-up helper out of the agents-md-core and rules-injector adapters and into @oh-my-opencode/rules-engine, the single owner of rule discovery. - packages/agents-md-core/ drops the findAgentsMdUp/AgentsMdDiscoveryInput wrappers (now sourced directly from rules-engine) and its constants module re-exports AGENTS_FILENAME from rules-engine instead of duplicating it. - src/hooks/directory-agents-injector/finder.ts pulls findAgentsMdUp from rules-engine directly while still re-exporting resolveFilePath from agents-md-core. - src/hooks/rules-injector/constants.ts becomes a pure re-export shim over the rules-engine constants. Add packages/agents-md-core/src/injector.test.ts to lock the root-skipping AGENTS.md injection order so future changes to findAgentsMdUp cannot silently regress the [Directory Context: ...] block format the injector emits. Tests: bun test packages/agents-md-core packages/rules-engine src/hooks/directory-agents-injector src/hooks/rules-injector
This commit is contained in:
@@ -1,8 +1,12 @@
|
||||
import type { AgentsMdCache } from "@oh-my-opencode/rules-engine";
|
||||
import {
|
||||
findAgentsMdUp,
|
||||
type AgentsMdCache,
|
||||
type FindAgentsMdUpInput,
|
||||
} from "@oh-my-opencode/rules-engine";
|
||||
import { promises as fsPromises } from "node:fs";
|
||||
import { dirname } from "node:path";
|
||||
|
||||
import { findAgentsMdUp, resolveFilePath } from "./finder";
|
||||
import { resolveFilePath } from "./finder";
|
||||
import { formatAgentsMdContextBlock } from "./formatter";
|
||||
import { getSessionCache } from "./injection-cache";
|
||||
import type {
|
||||
@@ -33,11 +37,12 @@ export async function processFilePathForAgentsInjection(input: {
|
||||
storage: input.storage,
|
||||
});
|
||||
|
||||
const agentsPaths = await findAgentsMdUp({
|
||||
const agentsMdDiscoveryInput: FindAgentsMdUpInput = {
|
||||
startDir: dir,
|
||||
rootDir: input.rootDirectory,
|
||||
cache: input.agentsMdCache,
|
||||
});
|
||||
};
|
||||
const agentsPaths = await findAgentsMdUp(agentsMdDiscoveryInput);
|
||||
|
||||
let dirty = false;
|
||||
for (const agentsPath of agentsPaths) {
|
||||
|
||||
Reference in New Issue
Block a user