/** * @fileoverview Zero-Config Skill Activation System * @module @skillsmith/core/activation/ZeroConfigActivator * @see Phase 4: Trigger System Architecture - Zero-Config Activation * * Enables activation of skills with configuration requirements by: * - Injecting safe default values * - Deferring configuration until first use * - Providing configuration prompts on demand * * @example * const activator = new ZeroConfigActivator(manager); * const result = await activator.activate('community/api-client'); * // Skill is activated with defaults, user can configure later */ import type { ActivationManager, ActivationOptions, ActivationResult } from './ActivationManager.js'; /** * Skill configuration schema */ export interface SkillConfigSchema { /** Configuration is required for this skill */ config_required: boolean; /** Allow deferred configuration */ config_defer: boolean; /** Default configuration values */ config_defaults?: Record; /** Configuration field definitions */ config_fields?: ConfigField[]; } /** * Configuration field definition */ export interface ConfigField { /** Field name */ name: string; /** Field type */ type: 'string' | 'number' | 'boolean' | 'url' | 'secret'; /** Field description */ description: string; /** Whether field is required */ required: boolean; /** Default value */ default?: unknown; /** Validation pattern (for strings) */ pattern?: string; } /** * Configuration status */ export interface ConfigStatus { /** Whether skill has required configuration */ has_config: boolean; /** Whether using default values */ using_defaults: boolean; /** Whether user has customized config */ user_configured: boolean; /** Configuration fields */ fields: ConfigField[]; /** Missing required fields */ missing_required: string[]; } /** * Zero-config activation options */ export interface ZeroConfigOptions extends Omit { /** Skip configuration entirely (use defaults) */ skip_config?: boolean; } /** * ZeroConfigActivator - Activates skills with automatic default configuration * * Handles skills that require configuration by: * 1. Checking if defaults are available * 2. Injecting defaults during installation * 3. Marking skill as "needs configuration" * 4. Providing configure endpoint for customization */ export declare class ZeroConfigActivator { private readonly activationManager; constructor(activationManager: ActivationManager); /** * Activate a skill with zero-config defaults * * @param skillId - Skill ID to activate * @param options - Activation options * @returns Activation result with configuration status */ activate(skillId: string, options?: ZeroConfigOptions): Promise; /** * Activate skill with default configuration values */ private activateWithDefaults; /** * Inject default configuration into skill directory */ private injectDefaultConfig; /** * Get configuration schema for a skill * * In production, this would fetch from skill registry * For now, returns mock schema based on skill ID */ private getConfigSchema; /** * Get current configuration status for a skill */ getConfigStatus(skillId: string, configSchema?: SkillConfigSchema): Promise; /** * Check if a skill needs configuration * * @param skillId - Skill ID to check * @returns Whether skill needs user configuration */ needsConfiguration(skillId: string): Promise; /** * Generate configuration prompt for user * * @param skillId - Skill ID * @returns Configuration instructions */ getConfigurationPrompt(skillId: string): Promise; } export default ZeroConfigActivator; //# sourceMappingURL=ZeroConfigActivator.d.ts.map