Skip to content

Plugin SDK API Reference (@eldrex/plugin-sdk v1.6.0)

The @eldrex/plugin-sdk package provides TypeScript interfaces, lifecycle hook definitions, logging utilities, and persistent storage abstractions for developing custom DevDiff plugins.


Import Syntax

typescript
import {
  DevDiffPlugin,
  PluginContext,
  ParsedDiff,
  ChangelogResult,
  AIResult,
  PluginStorage,
  PluginLogger,
} from "@eldrex/plugin-sdk";

Interface Specifications

DevDiffPlugin

typescript
export interface DevDiffPlugin {
  id: string;
  name: string;
  version: string;
  description: string;
  author: { name: string; email?: string };
  devdiffVersion: string;
  activate?: (context: PluginContext) => Promise<void>;
  deactivate?: () => Promise<void>;
  hooks?: {
    beforeAnalysis?: (diff: ParsedDiff) => Promise<ParsedDiff>;
    afterAnalysis?: (
      result: ChangelogResult,
      context: PluginContext,
    ) => Promise<void>;
    onError?: (error: Error, context: PluginContext) => Promise<void>;
    onFileChange?: (filePath: string, context: PluginContext) => Promise<void>;
    onCommit?: (commitHash: string, context: PluginContext) => Promise<void>;
    onAIComplete?: (result: AIResult, context: PluginContext) => Promise<void>;
  };
}

PluginContext

Inside activate() or lifecycle hooks, plugins receive a PluginContext with access to:

  • context.logger: Structured logger (debug, info, warn, error).
  • context.storage: Key-value persistent storage (get, set, delete, clear).
  • context.config: Plugin-specific configuration settings.
  • context.notifications: Dispatch notifications to external endpoints.