woaru
Version:
Universal Project Setup Autopilot - Analyze and automatically configure development tools for ANY programming language
387 lines โข 13.7 kB
TypeScript
import { z } from 'zod';
/**
* ๐ก๏ธ WOARU Schema Validation - KI-freundliche Regelwelt
*
* Zod Schema Definitions fรผr alle WOARU Konfigurationsdateien
* Teil der "KI-freundlichen Regelwelt" - strikte Typen fรผr AI-Assistenten
*/
/**
* ๐ง Tools Database Package Configuration Schema
*/
export declare const ToolPackageSchema: z.ZodObject<{
description: z.ZodString;
packages: z.ZodArray<z.ZodString>;
configs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
configFiles: z.ZodOptional<z.ZodArray<z.ZodString>>;
metadata: z.ZodOptional<z.ZodObject<{
priority: z.ZodOptional<z.ZodNumber>;
compatibility: z.ZodOptional<z.ZodArray<z.ZodString>>;
lastUpdated: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
}, z.core.$strip>;
/**
* ๐๏ธ Framework Configuration Schema
*/
export declare const FrameworkSchema: z.ZodObject<{
name: z.ZodString;
detectionFiles: z.ZodOptional<z.ZodArray<z.ZodString>>;
detectionPackages: z.ZodOptional<z.ZodArray<z.ZodString>>;
recommendedTools: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>;
specificPackages: z.ZodOptional<z.ZodArray<z.ZodString>>;
metadata: z.ZodOptional<z.ZodObject<{
version: z.ZodOptional<z.ZodString>;
popularity: z.ZodOptional<z.ZodNumber>;
maintainedStatus: z.ZodOptional<z.ZodEnum<{
active: "active";
maintenance: "maintenance";
deprecated: "deprecated";
}>>;
}, z.core.$strip>>;
}, z.core.$strip>;
/**
* ๐ Tools Database Metadata Schema
*/
export declare const ToolsDatabaseMetadataSchema: z.ZodObject<{
updateFrequency: z.ZodEnum<{
daily: "daily";
weekly: "weekly";
monthly: "monthly";
}>;
sources: z.ZodOptional<z.ZodArray<z.ZodObject<{
name: z.ZodString;
url: z.ZodString;
type: z.ZodEnum<{
npm: "npm";
github: "github";
pypi: "pypi";
nuget: "nuget";
maven: "maven";
other: "other";
}>;
}, z.core.$strip>>>;
lastDataUpdate: z.ZodOptional<z.ZodString>;
totalTools: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
/**
* ๐๏ธ Complete Tools Database Schema
*/
export declare const ToolsDatabaseSchema: z.ZodObject<{
version: z.ZodString;
lastUpdated: z.ZodString;
categories: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodObject<{
description: z.ZodString;
packages: z.ZodArray<z.ZodString>;
configs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
configFiles: z.ZodOptional<z.ZodArray<z.ZodString>>;
metadata: z.ZodOptional<z.ZodObject<{
priority: z.ZodOptional<z.ZodNumber>;
compatibility: z.ZodOptional<z.ZodArray<z.ZodString>>;
lastUpdated: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
}, z.core.$strip>>>;
frameworks: z.ZodRecord<z.ZodString, z.ZodObject<{
name: z.ZodString;
detectionFiles: z.ZodOptional<z.ZodArray<z.ZodString>>;
detectionPackages: z.ZodOptional<z.ZodArray<z.ZodString>>;
recommendedTools: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>;
specificPackages: z.ZodOptional<z.ZodArray<z.ZodString>>;
metadata: z.ZodOptional<z.ZodObject<{
version: z.ZodOptional<z.ZodString>;
popularity: z.ZodOptional<z.ZodNumber>;
maintainedStatus: z.ZodOptional<z.ZodEnum<{
active: "active";
maintenance: "maintenance";
deprecated: "deprecated";
}>>;
}, z.core.$strip>>;
}, z.core.$strip>>;
metadata: z.ZodOptional<z.ZodObject<{
updateFrequency: z.ZodEnum<{
daily: "daily";
weekly: "weekly";
monthly: "monthly";
}>;
sources: z.ZodOptional<z.ZodArray<z.ZodObject<{
name: z.ZodString;
url: z.ZodString;
type: z.ZodEnum<{
npm: "npm";
github: "github";
pypi: "pypi";
nuget: "nuget";
maven: "maven";
other: "other";
}>;
}, z.core.$strip>>>;
lastDataUpdate: z.ZodOptional<z.ZodString>;
totalTools: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>>;
}, z.core.$strip>;
/**
* ๐ค User Configuration Schema
*/
export declare const UserConfigSchema: z.ZodObject<{
language: z.ZodOptional<z.ZodEnum<{
de: "de";
en: "en";
}>>;
preferences: z.ZodOptional<z.ZodObject<{
theme: z.ZodOptional<z.ZodEnum<{
dark: "dark";
light: "light";
auto: "auto";
}>>;
verbosity: z.ZodOptional<z.ZodEnum<{
quiet: "quiet";
normal: "normal";
verbose: "verbose";
}>>;
autoUpdate: z.ZodOptional<z.ZodBoolean>;
telemetry: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>>;
lastModified: z.ZodOptional<z.ZodString>;
version: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/**
* ๐ Template Configuration Schema
*/
export declare const TemplateConfigSchema: z.ZodObject<{
name: z.ZodString;
description: z.ZodString;
version: z.ZodString;
author: z.ZodOptional<z.ZodString>;
files: z.ZodArray<z.ZodObject<{
path: z.ZodString;
content: z.ZodString;
executable: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>>;
variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
description: z.ZodString;
default: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodNumber]>, z.ZodBoolean]>>;
required: z.ZodOptional<z.ZodBoolean>;
type: z.ZodOptional<z.ZodEnum<{
string: "string";
number: "number";
boolean: "boolean";
}>>;
}, z.core.$strip>>>;
metadata: z.ZodOptional<z.ZodObject<{
category: z.ZodOptional<z.ZodString>;
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
license: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
}, z.core.$strip>;
/**
* ๐ก๏ธ WOARU AI Configuration Schema (Zod)
*
* Diese Schemas validieren die Struktur der ai_config.json und stellen sicher,
* dass alle Konfigurationen den definierten Regeln entsprechen.
*
* Teil der "KI-freundlichen Regelwelt" - garantiert konsistente Datenstrukturen.
*/
export declare const ProviderTypeSchema: z.ZodEnum<{
openai: "openai";
anthropic: "anthropic";
google: "google";
"custom-ollama": "custom-ollama";
"azure-openai": "azure-openai";
}>;
export declare const LLMProviderConfigSchema: z.ZodObject<{
id: z.ZodString;
providerType: z.ZodEnum<{
openai: "openai";
anthropic: "anthropic";
google: "google";
"custom-ollama": "custom-ollama";
"azure-openai": "azure-openai";
}>;
apiKeyEnvVar: z.ZodString;
baseUrl: z.ZodString;
model: z.ZodString;
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
bodyTemplate: z.ZodString;
timeout: z.ZodOptional<z.ZodNumber>;
maxTokens: z.ZodOptional<z.ZodNumber>;
temperature: z.ZodOptional<z.ZodNumber>;
enabled: z.ZodBoolean;
}, z.core.$strip>;
export declare const AIReviewConfigSchema: z.ZodObject<{
providers: z.ZodArray<z.ZodObject<{
id: z.ZodString;
providerType: z.ZodEnum<{
openai: "openai";
anthropic: "anthropic";
google: "google";
"custom-ollama": "custom-ollama";
"azure-openai": "azure-openai";
}>;
apiKeyEnvVar: z.ZodString;
baseUrl: z.ZodString;
model: z.ZodString;
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
bodyTemplate: z.ZodString;
timeout: z.ZodOptional<z.ZodNumber>;
maxTokens: z.ZodOptional<z.ZodNumber>;
temperature: z.ZodOptional<z.ZodNumber>;
enabled: z.ZodBoolean;
}, z.core.$strip>>;
parallelRequests: z.ZodBoolean;
consensusMode: z.ZodBoolean;
minConsensusCount: z.ZodNumber;
tokenLimit: z.ZodNumber;
costThreshold: z.ZodNumber;
}, z.core.$strip>;
export declare const ConfigMetadataSchema: z.ZodObject<{
created: z.ZodString;
description: z.ZodString;
lastModified: z.ZodOptional<z.ZodString>;
version: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const AIConfigFileSchema: z.ZodObject<{
_metadata: z.ZodObject<{
created: z.ZodString;
description: z.ZodString;
lastModified: z.ZodOptional<z.ZodString>;
version: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
multi_ai_review_enabled: z.ZodBoolean;
primary_review_provider_id: z.ZodNullable<z.ZodString>;
}, z.core.$catchall<z.ZodUnion<readonly [z.ZodObject<{
id: z.ZodString;
providerType: z.ZodEnum<{
openai: "openai";
anthropic: "anthropic";
google: "google";
"custom-ollama": "custom-ollama";
"azure-openai": "azure-openai";
}>;
apiKeyEnvVar: z.ZodString;
baseUrl: z.ZodString;
model: z.ZodString;
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
bodyTemplate: z.ZodString;
timeout: z.ZodOptional<z.ZodNumber>;
maxTokens: z.ZodOptional<z.ZodNumber>;
temperature: z.ZodOptional<z.ZodNumber>;
enabled: z.ZodBoolean;
}, z.core.$strip>, z.ZodUnknown]>>>;
export declare const ToolConfigSchema: z.ZodObject<{
name: z.ZodString;
description: z.ZodString;
category: z.ZodString;
language: z.ZodString;
homepage: z.ZodOptional<z.ZodString>;
installation: z.ZodOptional<z.ZodObject<{
npm: z.ZodOptional<z.ZodString>;
pip: z.ZodOptional<z.ZodString>;
cargo: z.ZodOptional<z.ZodString>;
go: z.ZodOptional<z.ZodString>;
manual: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
configuration: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
filePatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
commands: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
priority: z.ZodOptional<z.ZodNumber>;
enabled: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>;
export declare const LegacyToolsDatabaseSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
name: z.ZodString;
description: z.ZodString;
category: z.ZodString;
language: z.ZodString;
homepage: z.ZodOptional<z.ZodString>;
installation: z.ZodOptional<z.ZodObject<{
npm: z.ZodOptional<z.ZodString>;
pip: z.ZodOptional<z.ZodString>;
cargo: z.ZodOptional<z.ZodString>;
go: z.ZodOptional<z.ZodString>;
manual: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
configuration: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
filePatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
commands: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
priority: z.ZodOptional<z.ZodNumber>;
enabled: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>>;
export type LLMProviderConfig = z.infer<typeof LLMProviderConfigSchema>;
export type AIReviewConfig = z.infer<typeof AIReviewConfigSchema>;
export type ConfigMetadata = z.infer<typeof ConfigMetadataSchema>;
export type AIConfigFile = z.infer<typeof AIConfigFileSchema>;
export type ToolConfig = z.infer<typeof ToolConfigSchema>;
export type SchemaToolsDatabase = z.infer<typeof LegacyToolsDatabaseSchema>;
export type ToolPackage = z.infer<typeof ToolPackageSchema>;
export type Framework = z.infer<typeof FrameworkSchema>;
export type ToolsDatabaseMetadata = z.infer<typeof ToolsDatabaseMetadataSchema>;
export type CompleteToolsDatabase = z.infer<typeof ToolsDatabaseSchema>;
export type UserConfig = z.infer<typeof UserConfigSchema>;
export type TemplateConfig = z.infer<typeof TemplateConfigSchema>;
/**
* ๐ฏ Schema Validation Utilities
*/
export declare class SchemaValidator {
/**
* Validiert eine AI-Konfigurationsdatei gegen das Schema
*/
static validateAIConfig(data: unknown): {
success: boolean;
data?: AIConfigFile;
errors?: string[];
};
/**
* Validiert eine Tools-Datenbank gegen das Schema (Legacy)
*/
static validateToolsDatabase(data: unknown): {
success: boolean;
data?: SchemaToolsDatabase;
errors?: string[];
};
/**
* ๐๏ธ Validiert die vollstรคndige Tools-Datenbank (Neue Struktur)
*/
static validateCompleteToolsDatabase(data: unknown): {
success: boolean;
data?: CompleteToolsDatabase;
errors?: string[];
};
/**
* ๐ค Validiert User-Konfiguration
*/
static validateUserConfig(data: unknown): {
success: boolean;
data?: UserConfig;
errors?: string[];
};
/**
* ๐ Validiert Template-Konfiguration
*/
static validateTemplateConfig(data: unknown): {
success: boolean;
data?: TemplateConfig;
errors?: string[];
};
/**
* ๐ง Validiert einzelnes Tool-Package
*/
static validateToolPackage(data: unknown): {
success: boolean;
data?: ToolPackage;
errors?: string[];
};
/**
* ๐๏ธ Validiert Framework-Konfiguration
*/
static validateFramework(data: unknown): {
success: boolean;
data?: Framework;
errors?: string[];
};
/**
* Validiert eine einzelne Provider-Konfiguration
*/
static validateProviderConfig(data: unknown): {
success: boolean;
data?: LLMProviderConfig;
errors?: string[];
};
}
//# sourceMappingURL=ai-config.schema.d.ts.map