/** * OpenCode's instruction chain — EXPERIMENTAL, like the rest of this adapter. * * It exists because it is the port's THIRD implementation, and the third one is * where a shape has room to go wrong: both of the layout port's live illegal * states were here, in the implementation the contract suite did not range over. * For `instructionChain` it earns its keep a second way — it is the only * implementation in this repo that populates {@link InstructionChain.patterns}, * so without it that half of the interface would be typed, documented and * exercised by nothing. * * ⚠️ SOURCE OF THE `instructions` FACT, NAMED RATHER THAN IMPLIED. The key and * its glob shape (`instructions: ["packages/*\/AGENTS.md"]`) are taken from * `docs/design/port-redesign-round-2-2026-09-21.md` §1, which is where this * adapter's other shapes come from too. It is NOT a vendor page this session * fetched, and the adapter is unregistered and unexported, so nothing a user * runs depends on it being exactly right. Do not promote it to a registered * adapter without re-reading the vendor. * * What it does NOT do is expand those globs. A pattern is reported so the weight * can say "plus N pattern(s) not weighed" instead of printing a number that is * quietly missing them — the same stance the Codex chain takes towards a nested * file, and the opposite of what the glob list this replaced did, which was to * expand an adapter's pattern by walking the user's repository. */ import type { InstructionChain } from "../../core/instruction-chain.js"; /** Inputs the layout supplies so this module names no path of its own. */ export interface OpencodeChainInput { /** `AGENTS.md`. */ readonly instructionFile: string; /** `opencode.json` — both the manifest and the settings file here. */ readonly settingsPaths: readonly string[]; /** The layout's own codec — this module does not know the encoding. */ readonly parseSettings: (text: string) => Record; } export declare function opencodeInstructionChain(files: Readonly>, input: OpencodeChainInput): InstructionChain; //# sourceMappingURL=instruction-chain.d.ts.map