vibe-rules
Version:
A utility for managing Cursor rules, Windsurf rules, and other AI prompts
37 lines (36 loc) • 1.71 kB
TypeScript
import { RuleConfig, RuleProvider, RuleGeneratorOptions } from "../types.js";
export declare class GeminiRuleProvider implements RuleProvider {
private readonly ruleType;
/**
* Generates formatted content for Gemini including metadata.
* This content is intended to be placed within the <!-- vibe-rules Integration --> block.
*/
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[]>;
/**
* Applies a rule by updating the <vibe-rules> section in the target GEMINI.md.
* If targetPath is omitted, it determines local vs global based on isGlobal option.
*/
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.
*/
appendFormattedRule(config: RuleConfig, targetPath: string, isGlobal?: boolean, options?: RuleGeneratorOptions): Promise<boolean>;
}