/** * @license * Copyright 2025 OSAgent OC * SPDX-License-Identifier: Apache-2.0 */ import type { RegisteredAgent, RegisteredSkill, AgentTemplate, SkillTemplate, AgentTier, ModelPreference } from './types.js'; /** * Creates new agents dynamically based on templates or specifications */ export declare class DynamicAgentFactory { private createdAgents; /** * Generate unique agent ID */ private generateId; /** * Create agent from template */ createFromTemplate(template: AgentTemplate, createdBy?: string): RegisteredAgent; /** * Create agent from natural language specification */ createFromSpec(spec: { name: string; purpose: string; expertise: string[]; tier?: AgentTier; model?: ModelPreference; projectPattern?: string; }, createdBy?: string): RegisteredAgent; /** * Create project-specific agent */ createProjectAgent(projectName: string, projectPath: string, techStack: string[], patterns: string[], createdBy?: string): RegisteredAgent; /** * Generate system prompt from specification */ private generateSystemPrompt; /** * Extract keywords from expertise area */ private extractKeywords; /** * Get default priority for tier */ private getPriorityForTier; /** * Get default model for tier */ private getDefaultModelForTier; /** * Get all created agents */ getCreatedAgents(): RegisteredAgent[]; /** * Get created agent by ID */ getAgent(id: string): RegisteredAgent | undefined; /** * Delete created agent */ deleteAgent(id: string): boolean; /** * Export created agents */ export(): RegisteredAgent[]; /** * Import agents */ import(agents: RegisteredAgent[]): void; } /** * Creates new skills dynamically based on templates or specifications */ export declare class DynamicSkillFactory { private createdSkills; /** * Generate unique skill ID */ private generateId; /** * Generate unique step ID */ private generateStepId; /** * Create skill from template */ createFromTemplate(template: SkillTemplate, createdBy?: string): RegisteredSkill; /** * Create skill from natural language specification */ createFromSpec(spec: { name: string; description: string; triggerKeywords: string[]; steps: Array<{ name: string; description: string; agentId?: string; prompt: string; }>; }, createdBy?: string): RegisteredSkill; /** * Create simple sequential skill */ createSequentialSkill(name: string, description: string, triggerKeywords: string[], steps: Array<{ name: string; agentId?: string; prompt: string; }>, createdBy?: string): RegisteredSkill; /** * Create verification skill for a workflow */ createVerificationSkill(workflowName: string, checks: Array<{ name: string; command: string; }>, createdBy?: string): RegisteredSkill; /** * Get all created skills */ getCreatedSkills(): RegisteredSkill[]; /** * Get created skill by ID */ getSkill(id: string): RegisteredSkill | undefined; /** * Delete created skill */ deleteSkill(id: string): boolean; /** * Export created skills */ export(): RegisteredSkill[]; /** * Import skills */ import(skills: RegisteredSkill[]): void; } /** * Unified factory manager for creating agents and skills */ export declare class FactoryManager { private agentFactory; private skillFactory; private creationLog; constructor(); /** * Create agent from specification */ createAgent(spec: Parameters[0], createdBy?: string): RegisteredAgent; /** * Create project agent */ createProjectAgent(projectName: string, projectPath: string, techStack: string[], patterns: string[], createdBy?: string): RegisteredAgent; /** * Create skill from specification */ createSkill(spec: Parameters[0], createdBy?: string): RegisteredSkill; /** * Create verification skill */ createVerificationSkill(workflowName: string, checks: Array<{ name: string; command: string; }>, createdBy?: string): RegisteredSkill; /** * Get creation log */ getCreationLog(): { type: "agent" | "skill"; id: string; name: string; createdAt: number; createdBy?: string; }[]; /** * Get all created items */ getCreated(): { agents: RegisteredAgent[]; skills: RegisteredSkill[]; }; /** * Export all created items */ export(): { agents: RegisteredAgent[]; skills: RegisteredSkill[]; log: { type: "agent" | "skill"; id: string; name: string; createdAt: number; createdBy?: string; }[]; }; /** * Import created items */ import(data: ReturnType): void; } export declare const defaultAgentFactory: DynamicAgentFactory; export declare const defaultSkillFactory: DynamicSkillFactory; export declare const defaultFactoryManager: FactoryManager;