mcp-ai-agent-guidelines
Version:
A comprehensive Model Context Protocol server providing advanced tools, resources, and prompts for implementing AI agent best practices
67 lines • 2.52 kB
TypeScript
/**
* Cross-Cutting Capability Types
*
* Defines interfaces for capability handlers that can be added to any output approach.
* Handlers generate supplementary artifacts like diagrams, workflows, scripts, etc.
*
* @module strategies/cross-cutting/types
* @see {@link https://github.com/Anselmoo/mcp-ai-agent-guidelines/blob/development/plan-v0.13.x/specs/SPEC-001-output-strategy-layer.md SPEC-001 §5}
*/
import type { CrossCuttingArtifact, CrossCuttingCapability } from "../output-strategy.js";
/**
* Context provided to capability handlers for generating artifacts.
*
* Contains the domain result, primary document, and optional metadata
* to inform cross-cutting artifact generation.
*
* @interface CapabilityContext
*/
export interface CapabilityContext {
/**
* Domain result data (structured output from domain layer)
* Type is unknown to support any domain result format
*/
domainResult: unknown;
/** The domain type identifier (e.g., "PromptResult", "SessionState") */
domainType?: string;
/**
* Primary output document content (e.g., RFC, ADR, spec.md)
* Used to extract context for supplementary artifacts
*/
primaryDocument?: string;
/**
* Optional metadata about the domain result
* Can include type information, tool name, configuration, etc.
*/
metadata?: Record<string, unknown>;
}
/**
* Handler interface for generating cross-cutting capability artifacts.
*
* Implementations provide a generate() method that produces an artifact
* from the provided context, or returns null if the capability cannot be applied.
*
* @interface CapabilityHandler
*/
export interface CapabilityHandler {
/**
* The cross-cutting capability this handler implements
* Used for handler registration and lookup
*/
readonly capability: CrossCuttingCapability;
/**
* Generate a cross-cutting artifact from the provided context.
*
* @param context - Context containing domain result and primary document
* @returns Generated artifact, or null if not applicable
*/
generate(context: CapabilityContext): CrossCuttingArtifact | null;
/**
* Check if this handler supports generating artifacts for a given domain type.
*
* @param domainType - Domain type identifier (e.g., "SessionState", "PromptResult")
* @returns True if this handler can process the domain type
*/
supports(domainType: string): boolean;
}
//# sourceMappingURL=types.d.ts.map