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
TypeScript
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