erosolar-cli
Version:
Unified AI agent framework for the command line - Multi-provider support with schema-driven tools, code intelligence, and transparent reasoning
131 lines • 3.73 kB
TypeScript
/**
* Centralized agent schema loader.
*
* This module provides type-safe loading and validation of the centralized
* agent configuration schema from src/contracts/agent-schemas.json.
* All agent-related configuration should be loaded through this module
* to ensure consistency across the application.
*/
import type { ProviderId } from './types.js';
import type { AgentProfileEntry } from '../contracts/v1/agentProfileManifest.js';
/**
* Provider configuration from centralized schema
*/
export interface ProviderConfig {
id: ProviderId;
label: string;
description?: string;
envVars?: {
apiKey?: string;
};
capabilities?: string[];
metadata?: Record<string, unknown>;
}
/**
* Model configuration from centralized schema
*/
export interface ModelConfig {
id: string;
label: string;
provider: ProviderId;
description?: string;
reasoningEffort?: 'low' | 'medium' | 'high';
temperature?: number;
maxTokens?: number;
capabilities?: string[];
metadata?: Record<string, unknown>;
}
/**
* Slash command configuration
*/
export interface SlashCommandConfig {
command: string;
description: string;
category?: 'configuration' | 'diagnostics' | 'workspace' | 'other';
metadata?: Record<string, unknown>;
}
/**
* Capability definition
*/
export interface CapabilityConfig {
id: string;
label: string;
description?: string;
metadata?: Record<string, unknown>;
}
/**
* The complete centralized agent schema
*/
export interface AgentSchemasManifest {
contractVersion: string;
version: string;
label?: string;
description?: string;
providers: ProviderConfig[];
models: ModelConfig[];
profiles: AgentProfileEntry[];
slashCommands?: SlashCommandConfig[];
capabilities?: CapabilityConfig[];
metadata?: Record<string, unknown>;
}
/**
* Load the centralized agent schemas manifest.
* Results are cached for performance.
*
* @returns The complete agent schemas manifest
* @throws Error if the schema file cannot be read or parsed
*/
export declare function getAgentSchemas(): AgentSchemasManifest;
/**
* Get all provider configurations
*/
export declare function getProviders(): ProviderConfig[];
/**
* Get a specific provider by ID
*/
export declare function getProvider(providerId: ProviderId): ProviderConfig | undefined;
/**
* Get all model configurations (includes both static and discovered models)
*/
export declare function getModels(): ModelConfig[];
/**
* Get models for a specific provider
*/
export declare function getModelsByProvider(providerId: ProviderId): ModelConfig[];
/**
* Get a specific model by ID
*/
export declare function getModel(modelId: string): ModelConfig | undefined;
/**
* Get all agent profiles
*/
export declare function getProfiles(): AgentProfileEntry[];
/**
* Get a specific profile by name
*/
export declare function getProfile(profileName: string): AgentProfileEntry | undefined;
/**
* Get all slash commands
*/
export declare function getSlashCommands(): SlashCommandConfig[];
/**
* Get all capabilities
*/
export declare function getCapabilities(): CapabilityConfig[];
/**
* Clear the cached schema (useful for testing)
*/
export declare function clearSchemaCache(): void;
/**
* Validate that a provider ID exists in the schema
*/
export declare function isValidProvider(providerId: string): providerId is ProviderId;
/**
* Validate that a model ID exists in the schema
*/
export declare function isValidModel(modelId: string): boolean;
/**
* Validate that a profile name exists in the schema
*/
export declare function isValidProfile(profileName: string): boolean;
//# sourceMappingURL=agentSchemaLoader.d.ts.map