vibe-rules
Version:
A utility for managing Cursor rules, Windsurf rules, and other AI prompts
45 lines (44 loc) • 2.16 kB
TypeScript
import { RuleConfig, RuleProvider, RuleGeneratorOptions } from "../types.js";
export declare class AmpRuleProvider implements RuleProvider {
private readonly ruleType;
/**
* Generates formatted content for Amp including metadata.
*/
generateRuleContent(config: RuleConfig, options?: RuleGeneratorOptions): string;
/**
* Saves a rule definition to internal storage for later use.
* @param config - The rule configuration.
* @returns Path where the rule definition was saved internally.
*/
saveRule(config: RuleConfig): Promise<string>;
/**
* Loads a rule definition from internal storage.
* @param name - The name of the rule to load.
* @returns The RuleConfig if found, otherwise null.
*/
loadRule(name: string): Promise<RuleConfig | null>;
/**
* Lists rule definitions available in internal storage.
* @returns An array of rule names.
*/
listRules(): Promise<string[]>;
/**
* Appends a rule loaded from internal storage to the target Amp file.
* @param name - The name of the rule in internal storage.
* @param targetPath - Optional explicit target file path.
* @param isGlobal - Not supported for Amp (always local project files).
* @param options - Additional generation options.
* @returns True on success, false on failure.
*/
appendRule(name: string, targetPath?: string, isGlobal?: boolean, options?: RuleGeneratorOptions): Promise<boolean>;
/**
* Formats and applies a rule directly from a RuleConfig object using XML-like tags.
* If a rule with the same name (tag) already exists, its content is updated.
* @param config - The rule configuration to apply.
* @param targetPath - The target file path (e.g., ./AGENT.md).
* @param isGlobal - Not supported for Amp (always false).
* @param options - Additional options like description, alwaysApply, globs.
* @returns True on success, false on failure.
*/
appendFormattedRule(config: RuleConfig, targetPath: string, isGlobal?: boolean | undefined, options?: RuleGeneratorOptions | undefined): Promise<boolean>;
}