UNPKG

hikma-engine

Version:

Code Knowledge Graph Indexer - A sophisticated TypeScript-based indexer that transforms Git repositories into multi-dimensional knowledge stores for AI agents

230 lines 7.81 kB
import { z } from 'zod'; declare const ApiConfigSchema: z.ZodObject<{ server: z.ZodObject<{ port: z.ZodDefault<z.ZodNumber>; host: z.ZodDefault<z.ZodString>; timeout: z.ZodDefault<z.ZodNumber>; maxRequestSize: z.ZodDefault<z.ZodString>; }, z.core.$strip>; cors: z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; origins: z.ZodDefault<z.ZodArray<z.ZodString>>; credentials: z.ZodDefault<z.ZodBoolean>; methods: z.ZodDefault<z.ZodArray<z.ZodString>>; }, z.core.$strip>; rateLimit: z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; windowMs: z.ZodDefault<z.ZodNumber>; maxRequests: z.ZodDefault<z.ZodNumber>; skipSuccessfulRequests: z.ZodDefault<z.ZodBoolean>; skipFailedRequests: z.ZodDefault<z.ZodBoolean>; }, z.core.$strip>; cache: z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; ttl: z.ZodObject<{ semantic: z.ZodDefault<z.ZodNumber>; structural: z.ZodDefault<z.ZodNumber>; git: z.ZodDefault<z.ZodNumber>; hybrid: z.ZodDefault<z.ZodNumber>; comprehensive: z.ZodDefault<z.ZodNumber>; }, z.core.$strip>; maxSize: z.ZodDefault<z.ZodNumber>; }, z.core.$strip>; search: z.ZodObject<{ limits: z.ZodObject<{ maxResults: z.ZodDefault<z.ZodNumber>; defaultResults: z.ZodDefault<z.ZodNumber>; maxQueryLength: z.ZodDefault<z.ZodNumber>; }, z.core.$strip>; thresholds: z.ZodObject<{ minSimilarity: z.ZodDefault<z.ZodNumber>; maxSimilarity: z.ZodDefault<z.ZodNumber>; relevanceThreshold: z.ZodDefault<z.ZodNumber>; }, z.core.$strip>; filters: z.ZodObject<{ allowedFileTypes: z.ZodDefault<z.ZodArray<z.ZodString>>; excludedDirectories: z.ZodDefault<z.ZodArray<z.ZodString>>; maxFileSize: z.ZodDefault<z.ZodNumber>; }, z.core.$strip>; enhancement: z.ZodObject<{ syntaxHighlighting: z.ZodDefault<z.ZodBoolean>; relatedFiles: z.ZodDefault<z.ZodBoolean>; breadcrumbs: z.ZodDefault<z.ZodBoolean>; relevanceExplanation: z.ZodDefault<z.ZodBoolean>; maxContextLines: z.ZodDefault<z.ZodNumber>; }, z.core.$strip>; }, z.core.$strip>; monitoring: z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; healthCheck: z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; interval: z.ZodDefault<z.ZodNumber>; timeout: z.ZodDefault<z.ZodNumber>; }, z.core.$strip>; metrics: z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; collectInterval: z.ZodDefault<z.ZodNumber>; retentionPeriod: z.ZodDefault<z.ZodNumber>; }, z.core.$strip>; alerts: z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; errorRateThreshold: z.ZodDefault<z.ZodNumber>; responseTimeThreshold: z.ZodDefault<z.ZodNumber>; cooldownPeriod: z.ZodDefault<z.ZodNumber>; }, z.core.$strip>; }, z.core.$strip>; security: z.ZodObject<{ apiKey: z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; header: z.ZodDefault<z.ZodString>; keys: z.ZodDefault<z.ZodArray<z.ZodString>>; }, z.core.$strip>; jwt: z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; secret: z.ZodOptional<z.ZodString>; expiresIn: z.ZodDefault<z.ZodString>; algorithm: z.ZodDefault<z.ZodString>; }, z.core.$strip>; headers: z.ZodObject<{ contentSecurityPolicy: z.ZodDefault<z.ZodBoolean>; xFrameOptions: z.ZodDefault<z.ZodBoolean>; xContentTypeOptions: z.ZodDefault<z.ZodBoolean>; referrerPolicy: z.ZodDefault<z.ZodBoolean>; }, z.core.$strip>; }, z.core.$strip>; logging: z.ZodObject<{ level: z.ZodDefault<z.ZodEnum<{ debug: "debug"; info: "info"; warn: "warn"; error: "error"; }>>; format: z.ZodDefault<z.ZodEnum<{ json: "json"; text: "text"; }>>; includeRequestId: z.ZodDefault<z.ZodBoolean>; includeTimestamp: z.ZodDefault<z.ZodBoolean>; logRequests: z.ZodDefault<z.ZodBoolean>; logResponses: z.ZodDefault<z.ZodBoolean>; }, z.core.$strip>; }, z.core.$strip>; export type ApiConfig = z.infer<typeof ApiConfigSchema>; declare class ApiConfigService { private config; private static instance; private constructor(); static getInstance(): ApiConfigService; private loadConfiguration; private getEnvString; private getEnvNumber; private getEnvBoolean; private getEnvArray; getConfig(): ApiConfig; updateConfig(updates: Partial<ApiConfig>): void; getServerConfig(): { port: number; host: string; timeout: number; maxRequestSize: string; }; getCorsConfig(): { enabled: boolean; origins: string[]; credentials: boolean; methods: string[]; }; getRateLimitConfig(): { enabled: boolean; windowMs: number; maxRequests: number; skipSuccessfulRequests: boolean; skipFailedRequests: boolean; }; getCacheConfig(): { enabled: boolean; ttl: { semantic: number; structural: number; git: number; hybrid: number; comprehensive: number; }; maxSize: number; }; getSearchConfig(): { limits: { maxResults: number; defaultResults: number; maxQueryLength: number; }; thresholds: { minSimilarity: number; maxSimilarity: number; relevanceThreshold: number; }; filters: { allowedFileTypes: string[]; excludedDirectories: string[]; maxFileSize: number; }; enhancement: { syntaxHighlighting: boolean; relatedFiles: boolean; breadcrumbs: boolean; relevanceExplanation: boolean; maxContextLines: number; }; }; getMonitoringConfig(): { enabled: boolean; healthCheck: { enabled: boolean; interval: number; timeout: number; }; metrics: { enabled: boolean; collectInterval: number; retentionPeriod: number; }; alerts: { enabled: boolean; errorRateThreshold: number; responseTimeThreshold: number; cooldownPeriod: number; }; }; getSecurityConfig(): { apiKey: { enabled: boolean; header: string; keys: string[]; }; jwt: { enabled: boolean; expiresIn: string; algorithm: string; secret?: string | undefined; }; headers: { contentSecurityPolicy: boolean; xFrameOptions: boolean; xContentTypeOptions: boolean; referrerPolicy: boolean; }; }; getLoggingConfig(): { level: "debug" | "info" | "warn" | "error"; format: "json" | "text"; includeRequestId: boolean; includeTimestamp: boolean; logRequests: boolean; logResponses: boolean; }; validateConfiguration(): boolean; getConfigSummary(): Record<string, any>; } export declare const apiConfig: ApiConfigService; export default apiConfig; //# sourceMappingURL=api-config.d.ts.map