@objectstack/spec 1.0.10 → 1.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -1
- package/dist/ai/index.d.mts +2 -1
- package/dist/ai/index.d.ts +2 -1
- package/dist/ai/index.js +2047 -1944
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/index.mjs +2047 -1944
- package/dist/ai/index.mjs.map +1 -1
- package/dist/api/index.d.mts +3 -1
- package/dist/api/index.d.ts +3 -1
- package/dist/api/index.js +2599 -2292
- package/dist/api/index.js.map +1 -1
- package/dist/api/index.mjs +2587 -2292
- package/dist/api/index.mjs.map +1 -1
- package/dist/automation/index.d.mts +2 -1
- package/dist/automation/index.d.ts +2 -1
- package/dist/automation/index.js +83 -0
- package/dist/automation/index.js.map +1 -1
- package/dist/automation/index.mjs +77 -0
- package/dist/automation/index.mjs.map +1 -1
- package/dist/contracts/index.d.mts +3 -2
- package/dist/contracts/index.d.ts +3 -2
- package/dist/data/index.d.mts +3 -2
- package/dist/data/index.d.ts +3 -2
- package/dist/data/index.js +658 -556
- package/dist/data/index.js.map +1 -1
- package/dist/data/index.mjs +656 -556
- package/dist/data/index.mjs.map +1 -1
- package/dist/{driver.zod-lfi00zVT.d.ts → driver.zod-CfGk9GYh.d.ts} +2164 -11
- package/dist/{driver.zod-BOM_Etco.d.mts → driver.zod-y1cX6R3c.d.mts} +2164 -11
- package/dist/hub/index.d.mts +1 -1
- package/dist/hub/index.d.ts +1 -1
- package/dist/hub/index.js +789 -724
- package/dist/hub/index.js.map +1 -1
- package/dist/hub/index.mjs +789 -724
- package/dist/hub/index.mjs.map +1 -1
- package/dist/{index-C67cfwmW.d.ts → index-B0Hf65bV.d.ts} +13 -5
- package/dist/{index-DLcySG7U.d.ts → index-B5pKM0My.d.ts} +335 -4370
- package/dist/{index-Os7lItRe.d.mts → index-BA022mg2.d.ts} +6178 -129
- package/dist/{index-B5-VbOKg.d.mts → index-BGeLoH2z.d.ts} +4251 -74
- package/dist/{index-CH5zloR3.d.ts → index-BwO__aqV.d.ts} +1 -1
- package/dist/{index-Dp7GFJ8V.d.mts → index-Cia3JPQ8.d.mts} +13 -5
- package/dist/{index-D12rNohm.d.mts → index-CpD1q1FP.d.ts} +35 -18
- package/dist/{index-Os7lItRe.d.ts → index-D5RSFPuB.d.mts} +6178 -129
- package/dist/{index-CU4m6noq.d.mts → index-DGjpaj0X.d.mts} +1 -1
- package/dist/{index-D12rNohm.d.ts → index-Dfn5VXl6.d.mts} +35 -18
- package/dist/{index-l6WIlmOD.d.mts → index-Dgybxlky.d.mts} +177 -158
- package/dist/{index-l6WIlmOD.d.ts → index-Dgybxlky.d.ts} +177 -158
- package/dist/{index-DLcySG7U.d.mts → index-Dpsk8PF4.d.mts} +335 -4370
- package/dist/{index-CyognKSZ.d.ts → index-DrNah5E0.d.ts} +1952 -6990
- package/dist/{index-DE_lJ11p.d.mts → index-OO84R20k.d.mts} +1952 -6990
- package/dist/{index-B5-VbOKg.d.ts → index-upA3Xt04.d.mts} +4251 -74
- package/dist/index.d.mts +8072 -1922
- package/dist/index.d.ts +8072 -1922
- package/dist/index.js +8563 -8249
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +8563 -8249
- package/dist/index.mjs.map +1 -1
- package/dist/integration/index.d.mts +1 -1
- package/dist/integration/index.d.ts +1 -1
- package/dist/kernel/index.d.mts +2 -1
- package/dist/kernel/index.d.ts +2 -1
- package/dist/kernel/index.js +884 -684
- package/dist/kernel/index.js.map +1 -1
- package/dist/kernel/index.mjs +870 -684
- package/dist/kernel/index.mjs.map +1 -1
- package/dist/package-registry.zod-JMcOYNxM.d.mts +21119 -0
- package/dist/package-registry.zod-JMcOYNxM.d.ts +21119 -0
- package/dist/state-machine.zod-B-lFFSxQ.d.mts +285 -0
- package/dist/state-machine.zod-B-lFFSxQ.d.ts +285 -0
- package/dist/system/index.d.mts +2 -1
- package/dist/system/index.d.ts +2 -1
- package/dist/system/index.js +749 -651
- package/dist/system/index.js.map +1 -1
- package/dist/system/index.mjs +749 -651
- package/dist/system/index.mjs.map +1 -1
- package/dist/ui/index.d.mts +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/json-schema/ai/Agent.json +499 -0
- package/json-schema/ai/DevOpsAgent.json +499 -0
- package/json-schema/ai/FeedbackLoop.json +2188 -186
- package/json-schema/ai/Resolution.json +2188 -186
- package/json-schema/api/ApiRoutes.json +4 -0
- package/json-schema/api/CompileManifestResponse.json +40 -10
- package/json-schema/api/DisablePackageRequest.json +18 -0
- package/json-schema/api/DisablePackageResponse.json +1521 -0
- package/json-schema/api/Discovery.json +4 -0
- package/json-schema/api/EnablePackageRequest.json +18 -0
- package/json-schema/api/EnablePackageResponse.json +1521 -0
- package/json-schema/api/GetDiscoveryResponse.json +4 -0
- package/json-schema/api/GetPackageRequest.json +18 -0
- package/json-schema/api/GetPackageResponse.json +1518 -0
- package/json-schema/api/InstallPackageRequest.json +1483 -0
- package/json-schema/api/InstallPackageResponse.json +1521 -0
- package/json-schema/api/ListPackagesRequest.json +42 -0
- package/json-schema/api/ListPackagesResponse.json +1525 -0
- package/json-schema/api/ObjectDefinitionResponse.json +1001 -0
- package/json-schema/api/ObjectStackProtocol.json +86 -1
- package/json-schema/api/RestApiConfig.json +5 -0
- package/json-schema/api/RestServerConfig.json +5 -0
- package/json-schema/api/UninstallPackageRequest.json +18 -0
- package/json-schema/api/UninstallPackageResponse.json +25 -0
- package/json-schema/automation/ActionRef.json +30 -0
- package/json-schema/automation/Event.json +24 -0
- package/json-schema/automation/Flow.json +1 -0
- package/json-schema/automation/FlowNode.json +1 -0
- package/json-schema/automation/FlowNodeAction.json +1 -0
- package/json-schema/automation/GuardRef.json +30 -0
- package/json-schema/automation/StateMachine.json +504 -0
- package/json-schema/automation/StateNode.json +324 -0
- package/json-schema/automation/Transition.json +73 -0
- package/json-schema/data/Object.json +1001 -0
- package/json-schema/data/ObjectExtension.json +2376 -0
- package/json-schema/data/ObjectOwnershipEnum.json +13 -0
- package/json-schema/hub/ComposerResponse.json +40 -10
- package/json-schema/kernel/DisablePackageRequest.json +18 -0
- package/json-schema/kernel/DisablePackageResponse.json +1521 -0
- package/json-schema/kernel/EnablePackageRequest.json +18 -0
- package/json-schema/kernel/EnablePackageResponse.json +1521 -0
- package/json-schema/kernel/EventBusConfig.json +15 -0
- package/json-schema/kernel/EventHandler.json +6 -0
- package/json-schema/kernel/EventPersistence.json +3 -0
- package/json-schema/kernel/EventRoute.json +3 -0
- package/json-schema/kernel/EventWebhookConfig.json +3 -0
- package/json-schema/kernel/GetPackageRequest.json +18 -0
- package/json-schema/kernel/GetPackageResponse.json +1518 -0
- package/json-schema/kernel/InstallPackageRequest.json +1483 -0
- package/json-schema/kernel/InstallPackageResponse.json +1521 -0
- package/json-schema/kernel/InstalledPackage.json +1509 -0
- package/json-schema/kernel/ListPackagesRequest.json +42 -0
- package/json-schema/kernel/ListPackagesResponse.json +1525 -0
- package/json-schema/kernel/Manifest.json +40 -10
- package/json-schema/kernel/PackageStatusEnum.json +16 -0
- package/json-schema/kernel/Plugin.json +5 -0
- package/json-schema/kernel/PluginContext.json +31 -7
- package/json-schema/kernel/PluginLifecycle.json +7 -1
- package/json-schema/kernel/RealTimeNotificationConfig.json +3 -0
- package/json-schema/kernel/UninstallPackageRequest.json +18 -0
- package/json-schema/kernel/UninstallPackageResponse.json +25 -0
- package/json-schema/system/ChangeSet.json +2188 -186
- package/json-schema/system/CreateObjectOperation.json +1001 -0
- package/json-schema/system/MigrationOperation.json +1001 -0
- package/package.json +29 -15
- package/prompts/create-new-project.md +37 -19
- package/dist/{index-I3piy4U4.d.mts → index-BmU_sD1f.d.mts} +8 -8
- package/dist/{index-CkhpsEUw.d.ts → index-BnXuc_HO.d.ts} +8 -8
- package/dist/{index-CIDI-8zR.d.mts → index-C_NTOcet.d.mts} +98 -98
- package/dist/{index-CIDI-8zR.d.ts → index-C_NTOcet.d.ts} +98 -98
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/system/cache.zod.ts","../../src/system/message-queue.zod.ts","../../src/system/object-storage.zod.ts","../../src/shared/identifiers.zod.ts","../../src/system/search-engine.zod.ts","../../src/system/http-server.zod.ts","../../src/shared/http.zod.ts","../../src/system/audit.zod.ts","../../src/system/logging.zod.ts","../../src/system/metrics.zod.ts","../../src/system/tracing.zod.ts","../../src/system/change-management.zod.ts","../../src/system/migration.zod.ts","../../src/data/field.zod.ts","../../src/system/encryption.zod.ts","../../src/system/masking.zod.ts","../../src/data/object.zod.ts","../../src/data/validation.zod.ts","../../src/system/auth-config.zod.ts","../../src/system/compliance.zod.ts","../../src/system/job.zod.ts","../../src/system/worker.zod.ts","../../src/system/notification.zod.ts","../../src/system/translation.zod.ts","../../src/system/collaboration.zod.ts","../../src/system/metadata-persistence.zod.ts","../../src/system/service-registry.zod.ts"],"sourcesContent":["import { z } from 'zod';\n\n/**\n * Application-Level Cache Protocol\n * \n * Multi-tier caching strategy for application data.\n * Supports Memory, Redis, Memcached, and CDN.\n * \n * ## Caching in ObjectStack\n * \n * **Application Cache (`system/cache.zod.ts`) - This File**\n * - **Purpose**: Cache computed data, query results, aggregations\n * - **Technologies**: Redis, Memcached, in-memory LRU\n * - **Configuration**: TTL, eviction policies, cache warming\n * - **Use case**: Cache expensive database queries, computed values\n * - **Scope**: Application layer, server-side data storage\n * \n * **HTTP Cache (`api/http-cache.zod.ts`)**\n * - **Purpose**: Cache API responses at HTTP protocol level\n * - **Technologies**: HTTP headers (ETag, Last-Modified, Cache-Control), CDN\n * - **Configuration**: Cache-Control headers, validation tokens\n * - **Use case**: Reduce API response time for repeated metadata requests\n * - **Scope**: HTTP layer, client-server communication\n * \n * @see ../../api/http-cache.zod.ts for HTTP-level caching\n */\nexport const CacheStrategySchema = z.enum([\n 'lru', // Least Recently Used\n 'lfu', // Least Frequently Used\n 'fifo', // First In First Out\n 'ttl', // Time To Live only\n 'adaptive', // Dynamic strategy selection\n]);\n\nexport type CacheStrategy = z.infer<typeof CacheStrategySchema>;\n\nexport const CacheTierSchema = z.object({\n name: z.string(),\n type: z.enum(['memory', 'redis', 'memcached', 'cdn']),\n maxSize: z.number().optional().describe('Max size in MB'),\n ttl: z.number().default(300).describe('Default TTL in seconds'),\n strategy: CacheStrategySchema.default('lru'),\n warmup: z.boolean().default(false),\n});\n\nexport type CacheTier = z.infer<typeof CacheTierSchema>;\n\nexport const CacheInvalidationSchema = z.object({\n trigger: z.enum(['create', 'update', 'delete', 'manual']),\n scope: z.enum(['key', 'pattern', 'tag', 'all']),\n pattern: z.string().optional(),\n tags: z.array(z.string()).optional(),\n});\n\nexport type CacheInvalidation = z.infer<typeof CacheInvalidationSchema>;\n\nexport const CacheConfigSchema = z.object({\n enabled: z.boolean().default(false),\n tiers: z.array(CacheTierSchema),\n invalidation: z.array(CacheInvalidationSchema),\n prefetch: z.boolean().default(false),\n compression: z.boolean().default(false),\n encryption: z.boolean().default(false),\n});\n\nexport type CacheConfig = z.infer<typeof CacheConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * Message queue protocol for async communication\n * Supports Kafka, RabbitMQ, AWS SQS, Redis Pub/Sub\n */\nexport const MessageQueueProviderSchema = z.enum([\n 'kafka',\n 'rabbitmq',\n 'aws-sqs',\n 'redis-pubsub',\n 'google-pubsub',\n 'azure-service-bus',\n]);\n\nexport type MessageQueueProvider = z.infer<typeof MessageQueueProviderSchema>;\n\nexport const TopicConfigSchema = z.object({\n name: z.string(),\n partitions: z.number().default(1),\n replicationFactor: z.number().default(1),\n retentionMs: z.number().optional(),\n compressionType: z.enum(['none', 'gzip', 'snappy', 'lz4']).default('none'),\n});\n\nexport type TopicConfig = z.infer<typeof TopicConfigSchema>;\n\nexport const ConsumerConfigSchema = z.object({\n groupId: z.string(),\n autoOffsetReset: z.enum(['earliest', 'latest']).default('latest'),\n enableAutoCommit: z.boolean().default(true),\n maxPollRecords: z.number().default(500),\n});\n\nexport type ConsumerConfig = z.infer<typeof ConsumerConfigSchema>;\n\nexport const DeadLetterQueueSchema = z.object({\n enabled: z.boolean().default(false),\n maxRetries: z.number().default(3),\n queueName: z.string(),\n});\n\nexport type DeadLetterQueue = z.infer<typeof DeadLetterQueueSchema>;\n\nexport const MessageQueueConfigSchema = z.object({\n provider: MessageQueueProviderSchema,\n topics: z.array(TopicConfigSchema),\n consumers: z.array(ConsumerConfigSchema).optional(),\n deadLetterQueue: DeadLetterQueueSchema.optional(),\n ssl: z.boolean().default(false),\n sasl: z.object({\n mechanism: z.enum(['plain', 'scram-sha-256', 'scram-sha-512']),\n username: z.string(),\n password: z.string(),\n }).optional(),\n});\n\nexport type MessageQueueConfig = z.infer<typeof MessageQueueConfigSchema>;\n","import { z } from 'zod';\nimport { SystemIdentifierSchema } from '../shared/identifiers.zod';\n\n/**\n * Object Storage Protocol\n * \n * Unified storage protocol that combines:\n * - Object storage systems (S3, Azure Blob, GCS, MinIO)\n * - Scoped storage configuration (temp, cache, data, logs, config, public)\n * - Multi-cloud storage providers\n * - Bucket/container configuration\n * - Access control and permissions\n * - Lifecycle policies for data retention\n * - Presigned URLs for secure direct access\n * - Multipart uploads for large files\n */\n\n// ============================================================================\n// Storage Scope Protocol (formerly from scoped-storage.zod.ts)\n// ============================================================================\n\n/**\n * Storage Scope Enum\n * Defines the lifecycle and persistence guarantee of the storage area.\n */\nexport const StorageScopeSchema = z.enum([\n 'global', // Global application-wide storage\n 'tenant', // Tenant-scoped storage (multi-tenant apps)\n 'user', // User-scoped storage\n 'session', // Session-scoped storage (ephemeral)\n 'temp', // Ephemeral, cleared on restart\n 'cache', // Ephemeral, survives restarts, cleared on LRU/Expiration\n 'data', // Persistent, backed up\n 'logs', // Append-only, rotated\n 'config', // Read-heavy, versioned\n 'public' // Publicly accessible static assets\n]).describe('Storage scope classification');\n\nexport type StorageScope = z.infer<typeof StorageScopeSchema>;\n\n/**\n * File Metadata Schema\n * Standardized file attribute structure\n */\nexport const FileMetadataSchema = z.object({\n path: z.string().describe('File path'),\n name: z.string().describe('File name'),\n size: z.number().int().describe('File size in bytes'),\n mimeType: z.string().describe('MIME type'),\n lastModified: z.string().datetime().describe('Last modified timestamp'),\n created: z.string().datetime().describe('Creation timestamp'),\n etag: z.string().optional().describe('Entity tag'),\n});\n\nexport type FileMetadata = z.infer<typeof FileMetadataSchema>;\n\n// ============================================================================\n// Enums\n// ============================================================================\n\n/**\n * Storage Provider Types\n * \n * Supported cloud and self-hosted object storage providers.\n */\nexport const StorageProviderSchema = z.enum([\n 's3', // Amazon S3\n 'azure_blob', // Azure Blob Storage\n 'gcs', // Google Cloud Storage\n 'minio', // MinIO (self-hosted S3-compatible)\n 'r2', // Cloudflare R2\n 'spaces', // DigitalOcean Spaces\n 'wasabi', // Wasabi Hot Cloud Storage\n 'backblaze', // Backblaze B2\n 'local', // Local filesystem (development only)\n]).describe('Storage provider type');\n\nexport type StorageProvider = z.infer<typeof StorageProviderSchema>;\n\n/**\n * Storage Access Control List (ACL)\n * \n * Predefined access control configurations for objects and buckets.\n */\nexport const StorageAclSchema = z.enum([\n 'private', // Owner has full control, no one else has access\n 'public_read', // Owner has full control, everyone can read\n 'public_read_write', // Owner has full control, everyone can read/write (not recommended)\n 'authenticated_read', // Owner has full control, authenticated users can read\n 'bucket_owner_read', // Object owner has full control, bucket owner can read\n 'bucket_owner_full_control', // Both object and bucket owner have full control\n]).describe('Storage access control level');\n\nexport type StorageAcl = z.infer<typeof StorageAclSchema>;\n\n/**\n * Storage Class / Tier\n * \n * Different storage tiers for cost optimization.\n * Maps to provider-specific storage classes.\n */\nexport const StorageClassSchema = z.enum([\n 'standard', // Standard/hot storage for frequently accessed data\n 'intelligent', // Intelligent tiering (auto-moves between hot/cool)\n 'infrequent_access', // Infrequent access/cool storage\n 'glacier', // Archive/cold storage (slower retrieval)\n 'deep_archive', // Deep archive (cheapest, slowest retrieval)\n]).describe('Storage class/tier for cost optimization');\n\nexport type StorageClass = z.infer<typeof StorageClassSchema>;\n\n/**\n * Lifecycle Transition Action\n */\nexport const LifecycleActionSchema = z.enum([\n 'transition', // Move to different storage class\n 'delete', // Delete the object\n 'abort', // Abort incomplete multipart uploads\n]).describe('Lifecycle policy action type');\n\nexport type LifecycleAction = z.infer<typeof LifecycleActionSchema>;\n\n// ============================================================================\n// Configuration Schemas\n// ============================================================================\n\n/**\n * Object Metadata Schema\n * \n * Standard and custom metadata attached to stored objects.\n * \n * @example\n * {\n * contentType: 'image/jpeg',\n * contentLength: 1024000,\n * etag: '\"abc123\"',\n * lastModified: new Date('2024-01-01'),\n * custom: {\n * uploadedBy: 'user123',\n * department: 'marketing'\n * }\n * }\n */\nexport const ObjectMetadataSchema = z.object({\n contentType: z.string().describe('MIME type (e.g., image/jpeg, application/pdf)'),\n contentLength: z.number().min(0).describe('File size in bytes'),\n contentEncoding: z.string().optional().describe('Content encoding (e.g., gzip)'),\n contentDisposition: z.string().optional().describe('Content disposition header'),\n contentLanguage: z.string().optional().describe('Content language'),\n cacheControl: z.string().optional().describe('Cache control directives'),\n etag: z.string().optional().describe('Entity tag for versioning/caching'),\n lastModified: z.date().optional().describe('Last modification timestamp'),\n versionId: z.string().optional().describe('Object version identifier'),\n storageClass: StorageClassSchema.optional().describe('Storage class/tier'),\n encryption: z.object({\n algorithm: z.string().describe('Encryption algorithm (e.g., AES256, aws:kms)'),\n keyId: z.string().optional().describe('KMS key ID if using managed encryption'),\n }).optional().describe('Server-side encryption configuration'),\n custom: z.record(z.string(), z.string()).optional().describe('Custom user-defined metadata'),\n});\n\nexport type ObjectMetadata = z.infer<typeof ObjectMetadataSchema>;\n\n/**\n * Presigned URL Configuration\n * \n * Configuration for generating temporary URLs for direct access to objects.\n * Useful for secure file uploads/downloads without exposing credentials.\n * \n * @example\n * // Generate download URL valid for 1 hour\n * {\n * operation: 'get',\n * expiresIn: 3600,\n * contentType: 'image/jpeg'\n * }\n * \n * @example\n * // Generate upload URL valid for 15 minutes with size limit\n * {\n * operation: 'put',\n * expiresIn: 900,\n * contentType: 'application/pdf',\n * maxSize: 10485760\n * }\n */\nexport const PresignedUrlConfigSchema = z.object({\n operation: z.enum(['get', 'put', 'delete', 'head']).describe('Allowed operation'),\n expiresIn: z.number().min(1).max(604800).describe('Expiration time in seconds (max 7 days)'),\n contentType: z.string().optional().describe('Required content type for PUT operations'),\n maxSize: z.number().min(0).optional().describe('Maximum file size in bytes for PUT operations'),\n responseContentType: z.string().optional().describe('Override content-type for GET operations'),\n responseContentDisposition: z.string().optional().describe('Override content-disposition for GET operations'),\n});\n\nexport type PresignedUrlConfig = z.infer<typeof PresignedUrlConfigSchema>;\n\n/**\n * Multipart Upload Configuration\n * \n * Configuration for chunked uploads of large files.\n * Enables resumable uploads and parallel transfer.\n * \n * @example\n * // Enable multipart for files > 100MB with 10MB chunks\n * {\n * enabled: true,\n * partSize: 10485760,\n * maxParts: 10000,\n * threshold: 104857600,\n * maxConcurrent: 4\n * }\n */\nexport const MultipartUploadConfigSchema = z.object({\n enabled: z.boolean().default(true).describe('Enable multipart uploads'),\n partSize: z.number().min(5 * 1024 * 1024).max(5 * 1024 * 1024 * 1024).default(10 * 1024 * 1024).describe('Part size in bytes (min 5MB, max 5GB)'),\n maxParts: z.number().min(1).max(10000).default(10000).describe('Maximum number of parts (max 10,000)'),\n threshold: z.number().min(0).default(100 * 1024 * 1024).describe('File size threshold to trigger multipart upload (bytes)'),\n maxConcurrent: z.number().min(1).max(100).default(4).describe('Maximum concurrent part uploads'),\n abortIncompleteAfterDays: z.number().min(1).optional().describe('Auto-abort incomplete uploads after N days'),\n});\n\nexport type MultipartUploadConfig = z.infer<typeof MultipartUploadConfigSchema>;\n\n/**\n * Access Control Configuration\n * \n * Fine-grained access control for buckets and objects.\n * \n * @example\n * {\n * acl: 'private',\n * allowedOrigins: ['https://app.example.com'],\n * allowedMethods: ['GET', 'PUT'],\n * corsEnabled: true,\n * publicAccess: {\n * allowPublicRead: false,\n * allowPublicWrite: false\n * }\n * }\n */\nexport const AccessControlConfigSchema = z.object({\n acl: StorageAclSchema.default('private').describe('Default access control level'),\n allowedOrigins: z.array(z.string()).optional().describe('CORS allowed origins'),\n allowedMethods: z.array(z.enum(['GET', 'PUT', 'POST', 'DELETE', 'HEAD'])).optional().describe('CORS allowed HTTP methods'),\n allowedHeaders: z.array(z.string()).optional().describe('CORS allowed headers'),\n exposeHeaders: z.array(z.string()).optional().describe('CORS exposed headers'),\n maxAge: z.number().min(0).optional().describe('CORS preflight cache duration in seconds'),\n corsEnabled: z.boolean().default(false).describe('Enable CORS configuration'),\n publicAccess: z.object({\n allowPublicRead: z.boolean().default(false).describe('Allow public read access'),\n allowPublicWrite: z.boolean().default(false).describe('Allow public write access'),\n allowPublicList: z.boolean().default(false).describe('Allow public bucket listing'),\n }).optional().describe('Public access control'),\n allowedIps: z.array(z.string()).optional().describe('Allowed IP addresses/CIDR blocks'),\n blockedIps: z.array(z.string()).optional().describe('Blocked IP addresses/CIDR blocks'),\n});\n\nexport type AccessControlConfig = z.infer<typeof AccessControlConfigSchema>;\n\n/**\n * Lifecycle Policy Rule\n * \n * Individual rule for automatic object lifecycle management.\n * \n * @example\n * // Transition to infrequent access after 30 days\n * {\n * id: 'move_to_ia',\n * enabled: true,\n * action: 'transition',\n * daysAfterCreation: 30,\n * targetStorageClass: 'infrequent_access'\n * }\n * \n * @example\n * // Delete objects after 365 days\n * {\n * id: 'delete_old',\n * enabled: true,\n * action: 'delete',\n * daysAfterCreation: 365\n * }\n */\nexport const LifecyclePolicyRuleSchema = z.object({\n id: SystemIdentifierSchema.describe('Rule identifier'),\n enabled: z.boolean().default(true).describe('Enable this rule'),\n action: LifecycleActionSchema.describe('Action to perform'),\n prefix: z.string().optional().describe('Object key prefix filter (e.g., \"uploads/\")'),\n tags: z.record(z.string(), z.string()).optional().describe('Object tag filters'),\n daysAfterCreation: z.number().min(0).optional().describe('Days after object creation'),\n daysAfterModification: z.number().min(0).optional().describe('Days after last modification'),\n targetStorageClass: StorageClassSchema.optional().describe('Target storage class for transition action'),\n}).refine((data) => {\n // Validate that transition action has targetStorageClass\n if (data.action === 'transition' && !data.targetStorageClass) {\n return false;\n }\n return true;\n}, {\n message: 'targetStorageClass is required when action is \"transition\"',\n});\n\nexport type LifecyclePolicyRule = z.infer<typeof LifecyclePolicyRuleSchema>;\n\n/**\n * Lifecycle Policy Configuration\n * \n * Collection of lifecycle rules for automatic data management.\n * \n * @example\n * {\n * enabled: true,\n * rules: [\n * {\n * id: 'archive_old_files',\n * enabled: true,\n * action: 'transition',\n * daysAfterCreation: 90,\n * targetStorageClass: 'glacier'\n * },\n * {\n * id: 'delete_temp_files',\n * enabled: true,\n * action: 'delete',\n * prefix: 'temp/',\n * daysAfterCreation: 7\n * }\n * ]\n * }\n */\nexport const LifecyclePolicyConfigSchema = z.object({\n enabled: z.boolean().default(false).describe('Enable lifecycle policies'),\n rules: z.array(LifecyclePolicyRuleSchema).default([]).describe('Lifecycle rules'),\n});\n\nexport type LifecyclePolicyConfig = z.infer<typeof LifecyclePolicyConfigSchema>;\n\n/**\n * Bucket Configuration Schema\n * \n * Comprehensive configuration for a storage bucket/container.\n * \n * @example\n * {\n * name: 'user_uploads',\n * label: 'User Uploads',\n * bucketName: 'my-app-uploads',\n * region: 'us-east-1',\n * provider: 's3',\n * versioning: true,\n * accessControl: {\n * acl: 'private',\n * corsEnabled: true,\n * allowedOrigins: ['https://app.example.com']\n * },\n * multipartConfig: {\n * enabled: true,\n * threshold: 104857600\n * }\n * }\n */\nexport const BucketConfigSchema = z.object({\n name: SystemIdentifierSchema.describe('Bucket identifier in ObjectStack (snake_case)'),\n label: z.string().describe('Display label'),\n bucketName: z.string().describe('Actual bucket/container name in storage provider'),\n region: z.string().optional().describe('Storage region (e.g., us-east-1, westus)'),\n provider: StorageProviderSchema.describe('Storage provider'),\n endpoint: z.string().optional().describe('Custom endpoint URL (for S3-compatible providers)'),\n pathStyle: z.boolean().default(false).describe('Use path-style URLs (for S3-compatible providers)'),\n \n versioning: z.boolean().default(false).describe('Enable object versioning'),\n encryption: z.object({\n enabled: z.boolean().default(false).describe('Enable server-side encryption'),\n algorithm: z.enum(['AES256', 'aws:kms', 'azure:kms', 'gcp:kms']).default('AES256').describe('Encryption algorithm'),\n kmsKeyId: z.string().optional().describe('KMS key ID for managed encryption'),\n }).optional().describe('Server-side encryption configuration'),\n \n accessControl: AccessControlConfigSchema.optional().describe('Access control configuration'),\n lifecyclePolicy: LifecyclePolicyConfigSchema.optional().describe('Lifecycle policy configuration'),\n multipartConfig: MultipartUploadConfigSchema.optional().describe('Multipart upload configuration'),\n \n tags: z.record(z.string(), z.string()).optional().describe('Bucket tags for organization'),\n description: z.string().optional().describe('Bucket description'),\n enabled: z.boolean().default(true).describe('Enable this bucket'),\n});\n\nexport type BucketConfig = z.infer<typeof BucketConfigSchema>;\n\n/**\n * Storage Connection Configuration\n * \n * Provider-specific connection credentials and settings.\n * \n * @example S3\n * {\n * accessKeyId: '${AWS_ACCESS_KEY_ID}',\n * secretAccessKey: '${AWS_SECRET_ACCESS_KEY}',\n * sessionToken: '${AWS_SESSION_TOKEN}',\n * region: 'us-east-1'\n * }\n * \n * @example Azure\n * {\n * accountName: 'mystorageaccount',\n * accountKey: '${AZURE_STORAGE_KEY}',\n * endpoint: 'https://mystorageaccount.blob.core.windows.net'\n * }\n */\nexport const StorageConnectionSchema = z.object({\n // AWS S3 / MinIO\n accessKeyId: z.string().optional().describe('AWS access key ID or MinIO access key'),\n secretAccessKey: z.string().optional().describe('AWS secret access key or MinIO secret key'),\n sessionToken: z.string().optional().describe('AWS session token for temporary credentials'),\n \n // Azure Blob Storage\n accountName: z.string().optional().describe('Azure storage account name'),\n accountKey: z.string().optional().describe('Azure storage account key'),\n sasToken: z.string().optional().describe('Azure SAS token'),\n \n // Google Cloud Storage\n projectId: z.string().optional().describe('GCP project ID'),\n credentials: z.string().optional().describe('GCP service account credentials JSON'),\n \n // Common\n endpoint: z.string().optional().describe('Custom endpoint URL'),\n region: z.string().optional().describe('Default region'),\n useSSL: z.boolean().default(true).describe('Use SSL/TLS for connections'),\n timeout: z.number().min(0).optional().describe('Connection timeout in milliseconds'),\n});\n\nexport type StorageConnection = z.infer<typeof StorageConnectionSchema>;\n\n/**\n * Object Storage Configuration\n * \n * Complete object storage system configuration.\n * \n * @example\n * {\n * name: 'production_storage',\n * label: 'Production File Storage',\n * provider: 's3',\n * scope: 'global',\n * connection: {\n * accessKeyId: '${AWS_ACCESS_KEY_ID}',\n * secretAccessKey: '${AWS_SECRET_ACCESS_KEY}',\n * region: 'us-east-1'\n * },\n * buckets: [\n * {\n * name: 'user_uploads',\n * label: 'User Uploads',\n * bucketName: 'prod-uploads',\n * provider: 's3',\n * region: 'us-east-1'\n * }\n * ],\n * defaultBucket: 'user_uploads'\n * }\n */\nexport const ObjectStorageConfigSchema = z.object({\n name: SystemIdentifierSchema.describe('Storage configuration identifier'),\n label: z.string().describe('Display label'),\n provider: StorageProviderSchema.describe('Primary storage provider'),\n \n /**\n * Storage scope\n * Defines the lifecycle and access pattern for this storage\n */\n scope: StorageScopeSchema.optional().default('global').describe('Storage scope'),\n \n connection: StorageConnectionSchema.describe('Connection credentials'),\n buckets: z.array(BucketConfigSchema).default([]).describe('Configured buckets'),\n defaultBucket: z.string().optional().describe('Default bucket name for operations'),\n \n /**\n * Base path or location\n * For local/scoped storage configurations\n */\n location: z.string().optional().describe('Root path (local) or base location'),\n \n /**\n * Storage quota in bytes\n */\n quota: z.number().int().positive().optional().describe('Max size in bytes'),\n \n /**\n * Provider-specific options\n */\n options: z.record(z.string(), z.any()).optional().describe('Provider-specific configuration options'),\n \n enabled: z.boolean().default(true).describe('Enable this storage configuration'),\n description: z.string().optional().describe('Configuration description'),\n});\n\nexport type ObjectStorageConfig = z.infer<typeof ObjectStorageConfigSchema>;\n\n// ============================================================================\n// Helper Examples\n// ============================================================================\n\n/**\n * Example: AWS S3 Configuration\n */\nexport const s3StorageExample = ObjectStorageConfigSchema.parse({\n name: 'aws_s3_storage',\n label: 'AWS S3 Production Storage',\n provider: 's3',\n connection: {\n accessKeyId: '${AWS_ACCESS_KEY_ID}',\n secretAccessKey: '${AWS_SECRET_ACCESS_KEY}',\n region: 'us-east-1',\n },\n buckets: [\n {\n name: 'user_uploads',\n label: 'User Uploads',\n bucketName: 'my-app-user-uploads',\n region: 'us-east-1',\n provider: 's3',\n versioning: true,\n encryption: {\n enabled: true,\n algorithm: 'aws:kms',\n kmsKeyId: '${AWS_KMS_KEY_ID}',\n },\n accessControl: {\n acl: 'private',\n corsEnabled: true,\n allowedOrigins: ['https://app.example.com'],\n allowedMethods: ['GET', 'PUT', 'POST'],\n },\n lifecyclePolicy: {\n enabled: true,\n rules: [\n {\n id: 'archive_old_uploads',\n enabled: true,\n action: 'transition',\n daysAfterCreation: 90,\n targetStorageClass: 'glacier',\n },\n ],\n },\n multipartConfig: {\n enabled: true,\n partSize: 10 * 1024 * 1024,\n threshold: 100 * 1024 * 1024,\n maxConcurrent: 4,\n },\n },\n ],\n defaultBucket: 'user_uploads',\n enabled: true,\n});\n\n/**\n * Example: MinIO Configuration\n */\nexport const minioStorageExample = ObjectStorageConfigSchema.parse({\n name: 'minio_local',\n label: 'MinIO Local Storage',\n provider: 'minio',\n connection: {\n accessKeyId: 'minioadmin',\n secretAccessKey: 'minioadmin',\n endpoint: 'http://localhost:9000',\n useSSL: false,\n },\n buckets: [\n {\n name: 'development_files',\n label: 'Development Files',\n bucketName: 'dev-files',\n provider: 'minio',\n endpoint: 'http://localhost:9000',\n pathStyle: true,\n accessControl: {\n acl: 'private',\n },\n },\n ],\n defaultBucket: 'development_files',\n enabled: true,\n});\n\n/**\n * Example: Azure Blob Storage Configuration\n */\nexport const azureBlobStorageExample = ObjectStorageConfigSchema.parse({\n name: 'azure_blob_storage',\n label: 'Azure Blob Storage',\n provider: 'azure_blob',\n connection: {\n accountName: 'mystorageaccount',\n accountKey: '${AZURE_STORAGE_KEY}',\n endpoint: 'https://mystorageaccount.blob.core.windows.net',\n },\n buckets: [\n {\n name: 'media_files',\n label: 'Media Files',\n bucketName: 'media',\n provider: 'azure_blob',\n region: 'eastus',\n accessControl: {\n acl: 'public_read',\n publicAccess: {\n allowPublicRead: true,\n allowPublicWrite: false,\n allowPublicList: false,\n },\n },\n },\n ],\n defaultBucket: 'media_files',\n enabled: true,\n});\n\n/**\n * Example: Google Cloud Storage Configuration\n */\nexport const gcsStorageExample = ObjectStorageConfigSchema.parse({\n name: 'gcs_storage',\n label: 'Google Cloud Storage',\n provider: 'gcs',\n connection: {\n projectId: 'my-gcp-project',\n credentials: '${GCP_SERVICE_ACCOUNT_JSON}',\n },\n buckets: [\n {\n name: 'backup_storage',\n label: 'Backup Storage',\n bucketName: 'my-app-backups',\n region: 'us-central1',\n provider: 'gcs',\n lifecyclePolicy: {\n enabled: true,\n rules: [\n {\n id: 'delete_old_backups',\n enabled: true,\n action: 'delete',\n daysAfterCreation: 30,\n },\n ],\n },\n },\n ],\n defaultBucket: 'backup_storage',\n enabled: true,\n});\n","import { z } from 'zod';\n\n/**\n * System Identifier Schema\n * \n * Universal naming convention for all machine identifiers (API Names) in ObjectStack.\n * Enforces lowercase with underscores or dots to ensure:\n * - Cross-platform compatibility (case-insensitive filesystems)\n * - URL-friendliness (no encoding needed)\n * - Database consistency (no collation issues)\n * - Security (no case-sensitivity bugs in permission checks)\n * \n * **Applies to all metadata that acts as a machine identifier:**\n * - Object names (tables/collections)\n * - Field names\n * - Role names\n * - Permission set names\n * - Action/trigger names\n * - Event keys\n * - App IDs\n * - Menu/page IDs\n * - Select option values\n * - Workflow names\n * - Webhook names\n * \n * **Naming Convention Summary:**\n * | Type | Pattern | Example |\n * |------|---------|---------|\n * | Machine ID | snake_case | `crm_account`, `btn_submit`, `role_admin` |\n * | Event keys | dot.notation | `user.login`, `order.created` |\n * | Labels | Any case | `Client Account`, `Submit Form` |\n * \n * @example Valid identifiers\n * - 'account'\n * - 'crm_account'\n * - 'user_profile'\n * - 'order.created' (for events)\n * - 'api_v2_endpoint'\n * \n * @example Invalid identifiers (will be rejected)\n * - 'Account' (uppercase)\n * - 'CrmAccount' (camelCase)\n * - 'crm-account' (kebab-case - use underscore instead)\n * - 'user profile' (spaces)\n */\nexport const SystemIdentifierSchema = z\n .string()\n .min(2, { message: 'System identifier must be at least 2 characters' })\n .regex(/^[a-z][a-z0-9_.]*$/, {\n message:\n 'System identifier must be lowercase, starting with a letter, and may contain letters, numbers, underscores, or dots (e.g., \"user_profile\" or \"order.created\")',\n })\n .describe('System identifier (lowercase with underscores or dots)');\n\n/**\n * Strict Snake Case Identifier\n * \n * More restrictive than SystemIdentifierSchema - only allows underscores (no dots).\n * Use this for identifiers that should NOT contain dots (e.g., database table/column names).\n * \n * @example Valid\n * - 'account'\n * - 'crm_account'\n * - 'user_profile'\n * \n * @example Invalid\n * - 'user.profile' (dots not allowed)\n * - 'UserProfile' (uppercase)\n */\nexport const SnakeCaseIdentifierSchema = z\n .string()\n .min(2, { message: 'Identifier must be at least 2 characters' })\n .regex(/^[a-z][a-z0-9_]*$/, {\n message:\n 'Identifier must be lowercase snake_case, starting with a letter, and may contain only letters, numbers, and underscores (e.g., \"user_profile\")',\n })\n .describe('Snake case identifier (lowercase with underscores only)');\n\n/**\n * Event Name Identifier\n * \n * Specialized identifier for event names that encourages dot notation.\n * Used in event-driven systems, message queues, and webhooks.\n * \n * Pattern: `namespace.action` or `entity.event_type`\n * \n * @example Valid\n * - 'user.created'\n * - 'order.paid'\n * - 'user.login_success'\n * - 'alarm.high_cpu'\n * \n * @example Invalid\n * - 'UserCreated' (camelCase)\n * - 'user_created' (should use dots for namespacing)\n */\nexport const EventNameSchema = z\n .string()\n .min(3, { message: 'Event name must be at least 3 characters' })\n .regex(/^[a-z][a-z0-9_.]*$/, {\n message:\n 'Event name must be lowercase with dots for namespacing (e.g., \"user.created\", \"order.paid\")',\n })\n .describe('Event name (lowercase with dot notation for namespacing)');\n\n/**\n * Type Exports\n */\nexport type SystemIdentifier = z.infer<typeof SystemIdentifierSchema>;\nexport type SnakeCaseIdentifier = z.infer<typeof SnakeCaseIdentifierSchema>;\nexport type EventName = z.infer<typeof EventNameSchema>;\n","import { z } from 'zod';\n\n/**\n * Full-text search protocol\n * Supports Elasticsearch, Algolia, Meilisearch, Typesense\n */\nexport const SearchProviderSchema = z.enum([\n 'elasticsearch',\n 'algolia',\n 'meilisearch',\n 'typesense',\n 'opensearch',\n]);\n\nexport type SearchProvider = z.infer<typeof SearchProviderSchema>;\n\nexport const AnalyzerConfigSchema = z.object({\n type: z.enum(['standard', 'simple', 'whitespace', 'keyword', 'pattern', 'language']),\n language: z.string().optional(),\n stopwords: z.array(z.string()).optional(),\n customFilters: z.array(z.string()).optional(),\n});\n\nexport type AnalyzerConfig = z.infer<typeof AnalyzerConfigSchema>;\n\nexport const SearchIndexConfigSchema = z.object({\n indexName: z.string(),\n objectName: z.string().describe('Source ObjectQL object'),\n fields: z.array(z.object({\n name: z.string(),\n type: z.enum(['text', 'keyword', 'number', 'date', 'boolean', 'geo']),\n analyzer: z.string().optional(),\n searchable: z.boolean().default(true),\n filterable: z.boolean().default(false),\n sortable: z.boolean().default(false),\n boost: z.number().default(1),\n })),\n replicas: z.number().default(1),\n shards: z.number().default(1),\n});\n\nexport type SearchIndexConfig = z.infer<typeof SearchIndexConfigSchema>;\n\nexport const FacetConfigSchema = z.object({\n field: z.string(),\n maxValues: z.number().default(10),\n sort: z.enum(['count', 'alpha']).default('count'),\n});\n\nexport type FacetConfig = z.infer<typeof FacetConfigSchema>;\n\nexport const SearchConfigSchema = z.object({\n provider: SearchProviderSchema,\n indexes: z.array(SearchIndexConfigSchema),\n analyzers: z.record(z.string(), AnalyzerConfigSchema).optional(),\n facets: z.array(FacetConfigSchema).optional(),\n typoTolerance: z.boolean().default(true),\n synonyms: z.record(z.string(), z.array(z.string())).optional(),\n ranking: z.array(z.enum(['typo', 'geo', 'words', 'filters', 'proximity', 'attribute', 'exact', 'custom'])).optional(),\n});\n\nexport type SearchConfig = z.infer<typeof SearchConfigSchema>;\n","import { z } from 'zod';\nimport { HttpMethod, CorsConfigSchema, RateLimitConfigSchema, StaticMountSchema } from '../shared/http.zod';\n\n/**\n * HTTP Server Protocol\n * \n * Defines the runtime HTTP server configuration and capabilities.\n * Provides abstractions for HTTP server implementations (Express, Fastify, Hono, etc.)\n * \n * Architecture alignment:\n * - Kubernetes: Service and Ingress resources\n * - AWS: API Gateway configuration\n * - Spring Boot: Application properties\n */\n\n// ==========================================\n// Server Configuration\n// ==========================================\n\n/**\n * HTTP Server Configuration Schema\n * Core configuration for HTTP server instances\n * \n * @example\n * {\n * \"port\": 3000,\n * \"host\": \"0.0.0.0\",\n * \"cors\": {\n * \"enabled\": true,\n * \"origins\": [\"http://localhost:3000\"]\n * },\n * \"compression\": true,\n * \"requestTimeout\": 30000\n * }\n */\nexport const HttpServerConfigSchema = z.object({\n /**\n * Server port number\n */\n port: z.number().int().min(1).max(65535).default(3000).describe('Port number to listen on'),\n \n /**\n * Server host address\n */\n host: z.string().default('0.0.0.0').describe('Host address to bind to'),\n \n /**\n * CORS configuration\n */\n cors: CorsConfigSchema.optional().describe('CORS configuration'),\n \n /**\n * Request handling options\n */\n requestTimeout: z.number().int().default(30000).describe('Request timeout in milliseconds'),\n bodyLimit: z.string().default('10mb').describe('Maximum request body size'),\n \n /**\n * Compression settings\n */\n compression: z.boolean().default(true).describe('Enable response compression'),\n \n /**\n * Security headers\n */\n security: z.object({\n helmet: z.boolean().default(true).describe('Enable security headers via helmet'),\n rateLimit: RateLimitConfigSchema.optional().describe('Global rate limiting configuration'),\n }).optional().describe('Security configuration'),\n \n /**\n * Static file serving\n */\n static: z.array(StaticMountSchema).optional().describe('Static file serving configuration'),\n \n /**\n * Trust proxy settings\n */\n trustProxy: z.boolean().default(false).describe('Trust X-Forwarded-* headers'),\n});\n\nexport type HttpServerConfig = z.infer<typeof HttpServerConfigSchema>;\n\n// ==========================================\n// Route Registration\n// ==========================================\n\n/**\n * Route Handler Metadata Schema\n * Metadata for route handlers used in registration\n */\nexport const RouteHandlerMetadataSchema = z.object({\n /**\n * HTTP method\n */\n method: HttpMethod.describe('HTTP method'),\n \n /**\n * URL path pattern (supports parameters like /api/users/:id)\n */\n path: z.string().describe('URL path pattern'),\n \n /**\n * Handler function name or identifier\n */\n handler: z.string().describe('Handler identifier or name'),\n \n /**\n * Route metadata\n */\n metadata: z.object({\n summary: z.string().optional().describe('Route summary for documentation'),\n description: z.string().optional().describe('Route description'),\n tags: z.array(z.string()).optional().describe('Tags for grouping'),\n operationId: z.string().optional().describe('Unique operation identifier'),\n }).optional(),\n \n /**\n * Security requirements\n */\n security: z.object({\n authRequired: z.boolean().default(true).describe('Require authentication'),\n permissions: z.array(z.string()).optional().describe('Required permissions'),\n rateLimit: z.string().optional().describe('Rate limit policy override'),\n }).optional(),\n});\n\nexport type RouteHandlerMetadata = z.infer<typeof RouteHandlerMetadataSchema>;\n\n// ==========================================\n// Middleware Configuration\n// ==========================================\n\n/**\n * Middleware Type Enum\n */\nexport const MiddlewareType = z.enum([\n 'authentication', // Authentication middleware\n 'authorization', // Authorization/permission checks\n 'logging', // Request/response logging\n 'validation', // Input validation\n 'transformation', // Request/response transformation\n 'error', // Error handling\n 'custom', // Custom middleware\n]);\n\nexport type MiddlewareType = z.infer<typeof MiddlewareType>;\n\n/**\n * Middleware Configuration Schema\n * Defines middleware execution order and configuration\n * \n * @example\n * {\n * \"name\": \"auth_middleware\",\n * \"type\": \"authentication\",\n * \"enabled\": true,\n * \"order\": 10,\n * \"config\": {\n * \"jwtSecret\": \"secret\",\n * \"excludePaths\": [\"/health\", \"/metrics\"]\n * }\n * }\n */\nexport const MiddlewareConfigSchema = z.object({\n /**\n * Middleware identifier\n */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Middleware name (snake_case)'),\n \n /**\n * Middleware type\n */\n type: MiddlewareType.describe('Middleware type'),\n \n /**\n * Enable/disable middleware\n */\n enabled: z.boolean().default(true).describe('Whether middleware is enabled'),\n \n /**\n * Execution order (lower numbers execute first)\n */\n order: z.number().int().default(100).describe('Execution order priority'),\n \n /**\n * Middleware-specific configuration\n */\n config: z.record(z.string(), z.any()).optional().describe('Middleware configuration object'),\n \n /**\n * Path patterns to apply middleware to\n */\n paths: z.object({\n include: z.array(z.string()).optional().describe('Include path patterns (glob)'),\n exclude: z.array(z.string()).optional().describe('Exclude path patterns (glob)'),\n }).optional().describe('Path filtering'),\n});\n\nexport type MiddlewareConfig = z.infer<typeof MiddlewareConfigSchema>;\n\n// ==========================================\n// Server Lifecycle Events\n// ==========================================\n\n/**\n * Server Event Type Enum\n */\nexport const ServerEventType = z.enum([\n 'starting', // Server is starting\n 'started', // Server has started and is listening\n 'stopping', // Server is stopping\n 'stopped', // Server has stopped\n 'request', // Request received\n 'response', // Response sent\n 'error', // Error occurred\n]);\n\nexport type ServerEventType = z.infer<typeof ServerEventType>;\n\n/**\n * Server Event Schema\n * Events emitted by the HTTP server during lifecycle\n */\nexport const ServerEventSchema = z.object({\n /**\n * Event type\n */\n type: ServerEventType.describe('Event type'),\n \n /**\n * Timestamp\n */\n timestamp: z.string().datetime().describe('Event timestamp (ISO 8601)'),\n \n /**\n * Event payload\n */\n data: z.record(z.string(), z.any()).optional().describe('Event-specific data'),\n});\n\nexport type ServerEvent = z.infer<typeof ServerEventSchema>;\n\n// ==========================================\n// Server Capability Declaration\n// ==========================================\n\n/**\n * Server Capabilities Schema\n * Declares what features a server implementation supports\n */\nexport const ServerCapabilitiesSchema = z.object({\n /**\n * Supported HTTP versions\n */\n httpVersions: z.array(z.enum(['1.0', '1.1', '2.0', '3.0'])).default(['1.1']).describe('Supported HTTP versions'),\n \n /**\n * WebSocket support\n */\n websocket: z.boolean().default(false).describe('WebSocket support'),\n \n /**\n * Server-Sent Events support\n */\n sse: z.boolean().default(false).describe('Server-Sent Events support'),\n \n /**\n * HTTP/2 Server Push\n */\n serverPush: z.boolean().default(false).describe('HTTP/2 Server Push support'),\n \n /**\n * Streaming support\n */\n streaming: z.boolean().default(true).describe('Response streaming support'),\n \n /**\n * Middleware support\n */\n middleware: z.boolean().default(true).describe('Middleware chain support'),\n \n /**\n * Route parameterization\n */\n routeParams: z.boolean().default(true).describe('URL parameter support (/users/:id)'),\n \n /**\n * Built-in compression\n */\n compression: z.boolean().default(true).describe('Built-in compression support'),\n});\n\nexport type ServerCapabilities = z.infer<typeof ServerCapabilitiesSchema>;\n\n// ==========================================\n// Server Status & Metrics\n// ==========================================\n\n/**\n * Server Status Schema\n * Current operational status of the server\n */\nexport const ServerStatusSchema = z.object({\n /**\n * Server state\n */\n state: z.enum(['stopped', 'starting', 'running', 'stopping', 'error']).describe('Current server state'),\n \n /**\n * Uptime in milliseconds\n */\n uptime: z.number().int().optional().describe('Server uptime in milliseconds'),\n \n /**\n * Server information\n */\n server: z.object({\n port: z.number().int().describe('Listening port'),\n host: z.string().describe('Bound host'),\n url: z.string().optional().describe('Full server URL'),\n }).optional(),\n \n /**\n * Connection metrics\n */\n connections: z.object({\n active: z.number().int().describe('Active connections'),\n total: z.number().int().describe('Total connections handled'),\n }).optional(),\n \n /**\n * Request metrics\n */\n requests: z.object({\n total: z.number().int().describe('Total requests processed'),\n success: z.number().int().describe('Successful requests'),\n errors: z.number().int().describe('Failed requests'),\n }).optional(),\n});\n\nexport type ServerStatus = z.infer<typeof ServerStatusSchema>;\n\n// ==========================================\n// Helper Functions\n// ==========================================\n\n/**\n * Helper to create HTTP server configuration\n */\nexport const HttpServerConfig = Object.assign(HttpServerConfigSchema, {\n create: <T extends z.input<typeof HttpServerConfigSchema>>(config: T) => config,\n});\n\n/**\n * Helper to create middleware configuration\n */\nexport const MiddlewareConfig = Object.assign(MiddlewareConfigSchema, {\n create: <T extends z.input<typeof MiddlewareConfigSchema>>(config: T) => config,\n});\n","import { z } from 'zod';\n\n/**\n * Shared HTTP Schemas\n * \n * Common HTTP-related schemas used across API and System protocols.\n * These schemas ensure consistency across different parts of the stack.\n */\n\n// ==========================================\n// Basic HTTP Types\n// ==========================================\n\n/**\n * HTTP Method Enum\n */\nexport const HttpMethod = z.enum([\n 'GET', \n 'POST', \n 'PUT', \n 'DELETE', \n 'PATCH', \n 'HEAD', \n 'OPTIONS'\n]);\n\nexport type HttpMethod = z.infer<typeof HttpMethod>;\n\n// ==========================================\n// CORS Configuration\n// ==========================================\n\n/**\n * CORS Configuration Schema\n * Cross-Origin Resource Sharing configuration\n * \n * Used by:\n * - api/router.zod.ts (RouterConfigSchema)\n * - system/http-server.zod.ts (HttpServerConfigSchema)\n * \n * @example\n * {\n * \"enabled\": true,\n * \"origins\": [\"http://localhost:3000\", \"https://app.example.com\"],\n * \"methods\": [\"GET\", \"POST\", \"PUT\", \"DELETE\"],\n * \"credentials\": true,\n * \"maxAge\": 86400\n * }\n */\nexport const CorsConfigSchema = z.object({\n /**\n * Enable CORS\n */\n enabled: z.boolean().default(true).describe('Enable CORS'),\n \n /**\n * Allowed origins (* for all)\n */\n origins: z.union([\n z.string(),\n z.array(z.string())\n ]).default('*').describe('Allowed origins (* for all)'),\n \n /**\n * Allowed HTTP methods\n */\n methods: z.array(HttpMethod).optional().describe('Allowed HTTP methods'),\n \n /**\n * Allow credentials (cookies, authorization headers)\n */\n credentials: z.boolean().default(false).describe('Allow credentials (cookies, authorization headers)'),\n \n /**\n * Preflight cache duration in seconds\n */\n maxAge: z.number().int().optional().describe('Preflight cache duration in seconds'),\n});\n\nexport type CorsConfig = z.infer<typeof CorsConfigSchema>;\n\n// ==========================================\n// Rate Limiting\n// ==========================================\n\n/**\n * Rate Limit Configuration Schema\n * \n * Used by:\n * - api/endpoint.zod.ts (ApiEndpointSchema)\n * - system/http-server.zod.ts (HttpServerConfigSchema)\n * \n * @example\n * {\n * \"enabled\": true,\n * \"windowMs\": 60000,\n * \"maxRequests\": 100\n * }\n */\nexport const RateLimitConfigSchema = z.object({\n /**\n * Enable rate limiting\n */\n enabled: z.boolean().default(false).describe('Enable rate limiting'),\n \n /**\n * Time window in milliseconds\n */\n windowMs: z.number().int().default(60000).describe('Time window in milliseconds'),\n \n /**\n * Max requests per window\n */\n maxRequests: z.number().int().default(100).describe('Max requests per window'),\n});\n\nexport type RateLimitConfig = z.infer<typeof RateLimitConfigSchema>;\n\n// ==========================================\n// Static File Serving\n// ==========================================\n\n/**\n * Static Mount Configuration Schema\n * Configuration for serving static files\n * \n * Used by:\n * - api/router.zod.ts (RouterConfigSchema)\n * - system/http-server.zod.ts (HttpServerConfigSchema)\n * \n * @example\n * {\n * \"path\": \"/static\",\n * \"directory\": \"./public\",\n * \"cacheControl\": \"public, max-age=31536000\"\n * }\n */\nexport const StaticMountSchema = z.object({\n /**\n * URL path to serve from\n */\n path: z.string().describe('URL path to serve from'),\n \n /**\n * Physical directory to serve\n */\n directory: z.string().describe('Physical directory to serve'),\n \n /**\n * Cache-Control header value\n */\n cacheControl: z.string().optional().describe('Cache-Control header value'),\n});\n\nexport type StaticMount = z.infer<typeof StaticMountSchema>;\n","import { z } from 'zod';\n\n/**\n * Audit Log Architecture\n * \n * Comprehensive audit logging system for compliance and security.\n * Supports SOX, HIPAA, GDPR, and other regulatory requirements.\n * \n * Features:\n * - Records all CRUD operations on data\n * - Tracks authentication events (login, logout, password reset)\n * - Monitors authorization changes (permissions, roles)\n * - Configurable retention policies (180-day GDPR requirement)\n * - Suspicious activity detection and alerting\n */\n\n/**\n * Audit Event Type Enum\n * Categorizes different types of auditable events in the system\n */\nexport const AuditEventType = z.enum([\n // Data Operations (CRUD)\n 'data.create', // Record creation\n 'data.read', // Record retrieval/viewing\n 'data.update', // Record modification\n 'data.delete', // Record deletion\n 'data.export', // Data export operations\n 'data.import', // Data import operations\n 'data.bulk_update', // Bulk update operations\n 'data.bulk_delete', // Bulk delete operations\n \n // Authentication Events\n 'auth.login', // Successful login\n 'auth.login_failed', // Failed login attempt\n 'auth.logout', // User logout\n 'auth.session_created', // New session created\n 'auth.session_expired', // Session expiration\n 'auth.password_reset', // Password reset initiated\n 'auth.password_changed', // Password successfully changed\n 'auth.email_verified', // Email verification completed\n 'auth.mfa_enabled', // Multi-factor auth enabled\n 'auth.mfa_disabled', // Multi-factor auth disabled\n 'auth.account_locked', // Account locked (too many failures)\n 'auth.account_unlocked', // Account unlocked\n \n // Authorization Events\n 'authz.permission_granted', // Permission granted to user\n 'authz.permission_revoked', // Permission revoked from user\n 'authz.role_assigned', // Role assigned to user\n 'authz.role_removed', // Role removed from user\n 'authz.role_created', // New role created\n 'authz.role_updated', // Role permissions modified\n 'authz.role_deleted', // Role deleted\n 'authz.policy_created', // Security policy created\n 'authz.policy_updated', // Security policy updated\n 'authz.policy_deleted', // Security policy deleted\n \n // System Events\n 'system.config_changed', // System configuration modified\n 'system.plugin_installed', // Plugin installed\n 'system.plugin_uninstalled', // Plugin uninstalled\n 'system.backup_created', // Backup created\n 'system.backup_restored', // Backup restored\n 'system.integration_added', // External integration added\n 'system.integration_removed',// External integration removed\n \n // Security Events\n 'security.access_denied', // Access denied (authorization failure)\n 'security.suspicious_activity', // Suspicious activity detected\n 'security.data_breach', // Potential data breach detected\n 'security.api_key_created', // API key created\n 'security.api_key_revoked', // API key revoked\n]);\n\nexport type AuditEventType = z.infer<typeof AuditEventType>;\n\n/**\n * Audit Event Severity Level\n * Indicates the importance/criticality of an audit event\n */\nexport const AuditEventSeverity = z.enum([\n 'debug', // Diagnostic information\n 'info', // Informational events (normal operations)\n 'notice', // Normal but significant events\n 'warning', // Warning conditions\n 'error', // Error conditions\n 'critical', // Critical conditions requiring immediate attention\n 'alert', // Action must be taken immediately\n 'emergency', // System is unusable\n]);\n\nexport type AuditEventSeverity = z.infer<typeof AuditEventSeverity>;\n\n/**\n * Audit Event Actor Schema\n * Identifies who/what performed the action\n */\nexport const AuditEventActorSchema = z.object({\n /**\n * Actor type (user, system, service, api_client, etc.)\n */\n type: z.enum(['user', 'system', 'service', 'api_client', 'integration']).describe('Actor type'),\n \n /**\n * Unique identifier for the actor\n */\n id: z.string().describe('Actor identifier'),\n \n /**\n * Display name of the actor\n */\n name: z.string().optional().describe('Actor display name'),\n \n /**\n * Email address (for user actors)\n */\n email: z.string().email().optional().describe('Actor email address'),\n \n /**\n * IP address of the actor\n */\n ipAddress: z.string().optional().describe('Actor IP address'),\n \n /**\n * User agent string (for web/API requests)\n */\n userAgent: z.string().optional().describe('User agent string'),\n});\n\nexport type AuditEventActor = z.infer<typeof AuditEventActorSchema>;\n\n/**\n * Audit Event Target Schema\n * Identifies what was acted upon\n */\nexport const AuditEventTargetSchema = z.object({\n /**\n * Target type (e.g., 'object', 'record', 'user', 'role', 'config')\n */\n type: z.string().describe('Target type'),\n \n /**\n * Unique identifier for the target\n */\n id: z.string().describe('Target identifier'),\n \n /**\n * Display name of the target\n */\n name: z.string().optional().describe('Target display name'),\n \n /**\n * Additional metadata about the target\n */\n metadata: z.record(z.string(), z.any()).optional().describe('Target metadata'),\n});\n\nexport type AuditEventTarget = z.infer<typeof AuditEventTargetSchema>;\n\n/**\n * Audit Event Change Schema\n * Describes what changed (for update operations)\n */\nexport const AuditEventChangeSchema = z.object({\n /**\n * Field/property that changed\n */\n field: z.string().describe('Changed field name'),\n \n /**\n * Value before the change\n */\n oldValue: z.any().optional().describe('Previous value'),\n \n /**\n * Value after the change\n */\n newValue: z.any().optional().describe('New value'),\n});\n\nexport type AuditEventChange = z.infer<typeof AuditEventChangeSchema>;\n\n/**\n * Audit Event Schema\n * Complete audit event record\n */\nexport const AuditEventSchema = z.object({\n /**\n * Unique identifier for this audit event\n */\n id: z.string().describe('Audit event ID'),\n \n /**\n * Type of event being audited\n */\n eventType: AuditEventType.describe('Event type'),\n \n /**\n * Severity level of the event\n */\n severity: AuditEventSeverity.default('info').describe('Event severity'),\n \n /**\n * Timestamp when the event occurred (ISO 8601)\n */\n timestamp: z.string().datetime().describe('Event timestamp'),\n \n /**\n * Who/what performed the action\n */\n actor: AuditEventActorSchema.describe('Event actor'),\n \n /**\n * What was acted upon\n */\n target: AuditEventTargetSchema.optional().describe('Event target'),\n \n /**\n * Human-readable description of the action\n */\n description: z.string().describe('Event description'),\n \n /**\n * Detailed changes (for update operations)\n */\n changes: z.array(AuditEventChangeSchema).optional().describe('List of changes'),\n \n /**\n * Result of the action (success, failure, partial)\n */\n result: z.enum(['success', 'failure', 'partial']).default('success').describe('Action result'),\n \n /**\n * Error message (if result is failure)\n */\n errorMessage: z.string().optional().describe('Error message'),\n \n /**\n * Tenant identifier (for multi-tenant systems)\n */\n tenantId: z.string().optional().describe('Tenant identifier'),\n \n /**\n * Request/trace ID for correlation\n */\n requestId: z.string().optional().describe('Request ID for tracing'),\n \n /**\n * Additional context and metadata\n */\n metadata: z.record(z.string(), z.any()).optional().describe('Additional metadata'),\n \n /**\n * Geographic location (if available)\n */\n location: z.object({\n country: z.string().optional(),\n region: z.string().optional(),\n city: z.string().optional(),\n }).optional().describe('Geographic location'),\n});\n\nexport type AuditEvent = z.infer<typeof AuditEventSchema>;\n\n/**\n * Audit Retention Policy Schema\n * Defines how long audit logs are retained\n */\nexport const AuditRetentionPolicySchema = z.object({\n /**\n * Retention period in days\n * Default: 180 days (GDPR 6-month requirement)\n */\n retentionDays: z.number().int().min(1).default(180).describe('Retention period in days'),\n \n /**\n * Whether to archive logs after retention period\n * If true, logs are moved to cold storage; if false, they are deleted\n */\n archiveAfterRetention: z.boolean().default(true).describe('Archive logs after retention period'),\n \n /**\n * Archive storage configuration\n */\n archiveStorage: z.object({\n type: z.enum(['s3', 'gcs', 'azure_blob', 'filesystem']).describe('Archive storage type'),\n endpoint: z.string().optional().describe('Storage endpoint URL'),\n bucket: z.string().optional().describe('Storage bucket/container name'),\n path: z.string().optional().describe('Storage path prefix'),\n credentials: z.record(z.string(), z.any()).optional().describe('Storage credentials'),\n }).optional().describe('Archive storage configuration'),\n \n /**\n * Event types that have different retention periods\n * Overrides the default retentionDays for specific event types\n */\n customRetention: z.record(z.string(), z.number().int().positive()).optional().describe('Custom retention by event type'),\n \n /**\n * Minimum retention period for compliance\n * Prevents accidental deletion below compliance requirements\n */\n minimumRetentionDays: z.number().int().positive().optional().describe('Minimum retention for compliance'),\n});\n\nexport type AuditRetentionPolicy = z.infer<typeof AuditRetentionPolicySchema>;\n\n/**\n * Suspicious Activity Rule Schema\n * Defines rules for detecting suspicious activities\n */\nexport const SuspiciousActivityRuleSchema = z.object({\n /**\n * Unique identifier for the rule\n */\n id: z.string().describe('Rule identifier'),\n \n /**\n * Rule name\n */\n name: z.string().describe('Rule name'),\n \n /**\n * Rule description\n */\n description: z.string().optional().describe('Rule description'),\n \n /**\n * Whether the rule is enabled\n */\n enabled: z.boolean().default(true).describe('Rule enabled status'),\n \n /**\n * Event types to monitor\n */\n eventTypes: z.array(AuditEventType).describe('Event types to monitor'),\n \n /**\n * Detection condition\n */\n condition: z.object({\n /**\n * Number of events that trigger the rule\n */\n threshold: z.number().int().positive().describe('Event threshold'),\n \n /**\n * Time window in seconds\n */\n windowSeconds: z.number().int().positive().describe('Time window in seconds'),\n \n /**\n * Grouping criteria (e.g., by actor.id, by ipAddress)\n */\n groupBy: z.array(z.string()).optional().describe('Grouping criteria'),\n \n /**\n * Additional filters\n */\n filters: z.record(z.string(), z.any()).optional().describe('Additional filters'),\n }).describe('Detection condition'),\n \n /**\n * Actions to take when rule is triggered\n */\n actions: z.array(z.enum([\n 'alert', // Send alert notification\n 'lock_account', // Lock the user account\n 'block_ip', // Block the IP address\n 'require_mfa', // Require multi-factor authentication\n 'log_critical', // Log as critical event\n 'webhook', // Call webhook\n ])).describe('Actions to take'),\n \n /**\n * Severity level for triggered alerts\n */\n alertSeverity: AuditEventSeverity.default('warning').describe('Alert severity'),\n \n /**\n * Notification configuration\n */\n notifications: z.object({\n /**\n * Email addresses to notify\n */\n email: z.array(z.string().email()).optional().describe('Email recipients'),\n \n /**\n * Slack webhook URL\n */\n slack: z.string().url().optional().describe('Slack webhook URL'),\n \n /**\n * Custom webhook URL\n */\n webhook: z.string().url().optional().describe('Custom webhook URL'),\n }).optional().describe('Notification configuration'),\n});\n\nexport type SuspiciousActivityRule = z.infer<typeof SuspiciousActivityRuleSchema>;\n\n/**\n * Audit Log Storage Configuration\n * Defines where and how audit logs are stored\n */\nexport const AuditStorageConfigSchema = z.object({\n /**\n * Storage backend type\n */\n type: z.enum([\n 'database', // Store in database (PostgreSQL, MySQL, etc.)\n 'elasticsearch', // Store in Elasticsearch\n 'mongodb', // Store in MongoDB\n 'clickhouse', // Store in ClickHouse (for analytics)\n 's3', // Store in S3-compatible storage\n 'gcs', // Store in Google Cloud Storage\n 'azure_blob', // Store in Azure Blob Storage\n 'custom', // Custom storage implementation\n ]).describe('Storage backend type'),\n \n /**\n * Connection string or configuration\n */\n connectionString: z.string().optional().describe('Connection string'),\n \n /**\n * Storage configuration\n */\n config: z.record(z.string(), z.any()).optional().describe('Storage-specific configuration'),\n \n /**\n * Whether to enable buffering/batching\n */\n bufferEnabled: z.boolean().default(true).describe('Enable buffering'),\n \n /**\n * Buffer size (number of events before flush)\n */\n bufferSize: z.number().int().positive().default(100).describe('Buffer size'),\n \n /**\n * Buffer flush interval in seconds\n */\n flushIntervalSeconds: z.number().int().positive().default(5).describe('Flush interval in seconds'),\n \n /**\n * Whether to compress stored data\n */\n compression: z.boolean().default(true).describe('Enable compression'),\n});\n\nexport type AuditStorageConfig = z.infer<typeof AuditStorageConfigSchema>;\n\n/**\n * Audit Event Filter Schema\n * Defines filters for querying audit events\n */\nexport const AuditEventFilterSchema = z.object({\n /**\n * Filter by event types\n */\n eventTypes: z.array(AuditEventType).optional().describe('Event types to include'),\n \n /**\n * Filter by severity levels\n */\n severities: z.array(AuditEventSeverity).optional().describe('Severity levels to include'),\n \n /**\n * Filter by actor ID\n */\n actorId: z.string().optional().describe('Actor identifier'),\n \n /**\n * Filter by tenant ID\n */\n tenantId: z.string().optional().describe('Tenant identifier'),\n \n /**\n * Filter by time range\n */\n timeRange: z.object({\n from: z.string().datetime().describe('Start time'),\n to: z.string().datetime().describe('End time'),\n }).optional().describe('Time range filter'),\n \n /**\n * Filter by result status\n */\n result: z.enum(['success', 'failure', 'partial']).optional().describe('Result status'),\n \n /**\n * Search query (full-text search)\n */\n searchQuery: z.string().optional().describe('Search query'),\n \n /**\n * Custom filters\n */\n customFilters: z.record(z.string(), z.any()).optional().describe('Custom filters'),\n});\n\nexport type AuditEventFilter = z.infer<typeof AuditEventFilterSchema>;\n\n/**\n * Complete Audit Configuration Schema\n * Main configuration for the audit system\n */\nexport const AuditConfigSchema = z.object({\n /**\n * Unique identifier for this audit configuration\n * Must be in snake_case following ObjectStack conventions\n * Maximum length: 64 characters\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .max(64)\n .describe('Configuration name (snake_case, max 64 chars)'),\n \n /**\n * Human-readable label\n */\n label: z.string().describe('Display label'),\n \n /**\n * Whether audit logging is enabled\n */\n enabled: z.boolean().default(true).describe('Enable audit logging'),\n \n /**\n * Event types to audit\n * If not specified, all event types are audited\n */\n eventTypes: z.array(AuditEventType).optional().describe('Event types to audit'),\n \n /**\n * Event types to exclude from auditing\n */\n excludeEventTypes: z.array(AuditEventType).optional().describe('Event types to exclude'),\n \n /**\n * Minimum severity level to log\n * Events below this level are not logged\n */\n minimumSeverity: AuditEventSeverity.default('info').describe('Minimum severity level'),\n \n /**\n * Storage configuration\n */\n storage: AuditStorageConfigSchema.describe('Storage configuration'),\n \n /**\n * Retention policy\n */\n retentionPolicy: AuditRetentionPolicySchema.optional().describe('Retention policy'),\n \n /**\n * Suspicious activity detection rules\n */\n suspiciousActivityRules: z.array(SuspiciousActivityRuleSchema).default([]).describe('Suspicious activity rules'),\n \n /**\n * Whether to include sensitive data in audit logs\n * If false, sensitive fields are redacted/masked\n */\n includeSensitiveData: z.boolean().default(false).describe('Include sensitive data'),\n \n /**\n * Fields to redact from audit logs\n */\n redactFields: z.array(z.string()).default([\n 'password',\n 'passwordHash',\n 'token',\n 'apiKey',\n 'secret',\n 'creditCard',\n 'ssn',\n ]).describe('Fields to redact'),\n \n /**\n * Whether to log successful read operations\n * Can be disabled to reduce log volume\n */\n logReads: z.boolean().default(false).describe('Log read operations'),\n \n /**\n * Sampling rate for read operations (0.0 to 1.0)\n * Only applies if logReads is true\n */\n readSamplingRate: z.number().min(0).max(1).default(0.1).describe('Read sampling rate'),\n \n /**\n * Whether to log system/internal operations\n */\n logSystemEvents: z.boolean().default(true).describe('Log system events'),\n \n /**\n * Custom audit event handlers\n * Note: Function handlers are for runtime configuration only and will not be serialized to JSON Schema\n */\n customHandlers: z.array(z.object({\n eventType: AuditEventType.describe('Event type to handle'),\n handlerId: z.string().describe('Unique identifier for the handler'),\n })).optional().describe('Custom event handler references'),\n \n /**\n * Compliance mode configuration\n */\n compliance: z.object({\n /**\n * Compliance standards to enforce\n */\n standards: z.array(z.enum([\n 'sox', // Sarbanes-Oxley Act\n 'hipaa', // Health Insurance Portability and Accountability Act\n 'gdpr', // General Data Protection Regulation\n 'pci_dss', // Payment Card Industry Data Security Standard\n 'iso_27001',// ISO/IEC 27001\n 'fedramp', // Federal Risk and Authorization Management Program\n ])).optional().describe('Compliance standards'),\n \n /**\n * Whether to enforce immutable audit logs\n */\n immutableLogs: z.boolean().default(true).describe('Enforce immutable logs'),\n \n /**\n * Whether to require cryptographic signing\n */\n requireSigning: z.boolean().default(false).describe('Require log signing'),\n \n /**\n * Signing key configuration\n */\n signingKey: z.string().optional().describe('Signing key'),\n }).optional().describe('Compliance configuration'),\n});\n\nexport type AuditConfig = z.infer<typeof AuditConfigSchema>;\n\n/**\n * Default suspicious activity rules\n * Common security patterns to detect\n */\nexport const DEFAULT_SUSPICIOUS_ACTIVITY_RULES: SuspiciousActivityRule[] = [\n {\n id: 'multiple_failed_logins',\n name: 'Multiple Failed Login Attempts',\n description: 'Detects multiple failed login attempts from the same user or IP',\n enabled: true,\n eventTypes: ['auth.login_failed'],\n condition: {\n threshold: 5,\n windowSeconds: 600, // 10 minutes\n groupBy: ['actor.id', 'actor.ipAddress'],\n },\n actions: ['alert', 'lock_account'],\n alertSeverity: 'warning',\n },\n {\n id: 'bulk_data_export',\n name: 'Bulk Data Export',\n description: 'Detects large data export operations',\n enabled: true,\n eventTypes: ['data.export'],\n condition: {\n threshold: 3,\n windowSeconds: 3600, // 1 hour\n groupBy: ['actor.id'],\n },\n actions: ['alert', 'log_critical'],\n alertSeverity: 'warning',\n },\n {\n id: 'suspicious_permission_changes',\n name: 'Rapid Permission Changes',\n description: 'Detects rapid permission or role changes',\n enabled: true,\n eventTypes: ['authz.permission_granted', 'authz.role_assigned'],\n condition: {\n threshold: 10,\n windowSeconds: 300, // 5 minutes\n groupBy: ['actor.id'],\n },\n actions: ['alert', 'log_critical'],\n alertSeverity: 'critical',\n },\n {\n id: 'after_hours_access',\n name: 'After Hours Access',\n description: 'Detects access during non-business hours',\n enabled: false, // Disabled by default, requires time zone configuration\n eventTypes: ['auth.login'],\n condition: {\n threshold: 1,\n windowSeconds: 86400, // 24 hours\n },\n actions: ['alert'],\n alertSeverity: 'notice',\n },\n];\n","import { z } from 'zod';\n\n/**\n * Logging Protocol - Comprehensive Observability Logging\n * \n * Unified logging protocol that combines:\n * - Basic kernel logging (LoggerConfig)\n * - Enterprise-grade features (LoggingConfig)\n * - Multiple log destinations (file, console, external services)\n * - Structured logging with enrichment\n * - Log aggregation and forwarding\n * - Integration with external log management systems\n */\n\n// ============================================================================\n// Basic Logger Protocol (formerly from logger.zod.ts)\n// ============================================================================\n\n/**\n * Log Level Enum\n * Standard RFC 5424 severity levels (simplified)\n */\nexport const LogLevel = z.enum([\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'fatal',\n 'silent'\n]).describe('Log severity level');\n\nexport type LogLevel = z.infer<typeof LogLevel>;\n\n/**\n * Log Format Enum\n */\nexport const LogFormat = z.enum([\n 'json', // Structured JSON for machine parsing\n 'text', // Simple text format\n 'pretty' // Colored human-readable output for CLI/console\n]).describe('Log output format');\n\nexport type LogFormat = z.infer<typeof LogFormat>;\n\n/**\n * Logger Configuration Schema\n * Configuration for the Kernel's internal logger\n */\nexport const LoggerConfigSchema = z.object({\n /**\n * Logger name\n */\n name: z.string().optional().describe('Logger name identifier'),\n\n /**\n * Minimum level to log\n */\n level: LogLevel.optional().default('info'),\n\n /**\n * Output format\n */\n format: LogFormat.optional().default('json'),\n\n /**\n * Redact sensitive keys\n */\n redact: z.array(z.string()).optional().default(['password', 'token', 'secret', 'key'])\n .describe('Keys to redact from log context'),\n\n /**\n * Enable source location (file/line)\n */\n sourceLocation: z.boolean().optional().default(false)\n .describe('Include file and line number'),\n\n /**\n * Log to file (optional)\n */\n file: z.string().optional().describe('Path to log file'),\n\n /**\n * Log rotation config (if file is set)\n */\n rotation: z.object({\n maxSize: z.string().optional().default('10m'),\n maxFiles: z.number().optional().default(5)\n }).optional()\n});\n\nexport type LoggerConfig = z.infer<typeof LoggerConfigSchema>;\n\n/**\n * Log Entry Schema\n * The shape of a structured log record\n */\nexport const LogEntrySchema = z.object({\n timestamp: z.string().datetime().describe('ISO 8601 timestamp'),\n level: LogLevel,\n message: z.string().describe('Log message'),\n context: z.record(z.string(), z.any()).optional().describe('Structured context data'),\n error: z.record(z.string(), z.any()).optional().describe('Error object if present'),\n \n /** Tracing */\n traceId: z.string().optional().describe('Distributed trace ID'),\n spanId: z.string().optional().describe('Span ID'),\n \n /** Source */\n service: z.string().optional().describe('Service name'),\n component: z.string().optional().describe('Component name (e.g. plugin id)'),\n});\n\nexport type LogEntry = z.infer<typeof LogEntrySchema>;\n\n// ============================================================================\n// Extended Logging Protocol (enterprise features)\n// ============================================================================\n\n/**\n * Extended Log Level Enum\n * Standard RFC 5424 severity levels with trace\n */\nexport const ExtendedLogLevel = z.enum([\n 'trace', // Very detailed debugging information\n 'debug', // Debugging information\n 'info', // Informational messages\n 'warn', // Warning messages\n 'error', // Error messages\n 'fatal', // Fatal errors causing shutdown\n]).describe('Extended log severity level');\n\nexport type ExtendedLogLevel = z.infer<typeof ExtendedLogLevel>;\n\n/**\n * Log Destination Type Enum\n * Where logs can be sent\n */\nexport const LogDestinationType = z.enum([\n 'console', // Standard output/error\n 'file', // File system\n 'syslog', // System logger\n 'elasticsearch', // Elasticsearch\n 'cloudwatch', // AWS CloudWatch\n 'stackdriver', // Google Cloud Logging\n 'azure_monitor', // Azure Monitor\n 'datadog', // Datadog\n 'splunk', // Splunk\n 'loki', // Grafana Loki\n 'http', // HTTP endpoint\n 'kafka', // Apache Kafka\n 'redis', // Redis streams\n 'custom', // Custom implementation\n]).describe('Log destination type');\n\nexport type LogDestinationType = z.infer<typeof LogDestinationType>;\n\n/**\n * Console Destination Configuration\n */\nexport const ConsoleDestinationConfigSchema = z.object({\n /**\n * Output stream\n */\n stream: z.enum(['stdout', 'stderr']).optional().default('stdout'),\n\n /**\n * Enable colored output\n */\n colors: z.boolean().optional().default(true),\n\n /**\n * Pretty print JSON\n */\n prettyPrint: z.boolean().optional().default(false),\n}).describe('Console destination configuration');\n\nexport type ConsoleDestinationConfig = z.infer<typeof ConsoleDestinationConfigSchema>;\n\n/**\n * File Destination Configuration\n */\nexport const FileDestinationConfigSchema = z.object({\n /**\n * File path\n */\n path: z.string().describe('Log file path'),\n\n /**\n * Enable log rotation\n */\n rotation: z.object({\n /**\n * Maximum file size before rotation (e.g., '10m', '100k', '1g')\n */\n maxSize: z.string().optional().default('10m'),\n\n /**\n * Maximum number of files to keep\n */\n maxFiles: z.number().int().positive().optional().default(5),\n\n /**\n * Compress rotated files\n */\n compress: z.boolean().optional().default(true),\n\n /**\n * Rotation interval (e.g., 'daily', 'weekly')\n */\n interval: z.enum(['hourly', 'daily', 'weekly', 'monthly']).optional(),\n }).optional(),\n\n /**\n * File encoding\n */\n encoding: z.string().optional().default('utf8'),\n\n /**\n * Append to existing file\n */\n append: z.boolean().optional().default(true),\n}).describe('File destination configuration');\n\nexport type FileDestinationConfig = z.infer<typeof FileDestinationConfigSchema>;\n\n/**\n * HTTP Destination Configuration\n */\nexport const HttpDestinationConfigSchema = z.object({\n /**\n * HTTP endpoint URL\n */\n url: z.string().url().describe('HTTP endpoint URL'),\n\n /**\n * HTTP method\n */\n method: z.enum(['POST', 'PUT']).optional().default('POST'),\n\n /**\n * Headers to include\n */\n headers: z.record(z.string(), z.string()).optional(),\n\n /**\n * Authentication\n */\n auth: z.object({\n type: z.enum(['basic', 'bearer', 'api_key']).describe('Auth type'),\n username: z.string().optional(),\n password: z.string().optional(),\n token: z.string().optional(),\n apiKey: z.string().optional(),\n apiKeyHeader: z.string().optional().default('X-API-Key'),\n }).optional(),\n\n /**\n * Batch configuration\n */\n batch: z.object({\n /**\n * Maximum batch size\n */\n maxSize: z.number().int().positive().optional().default(100),\n\n /**\n * Flush interval in milliseconds\n */\n flushInterval: z.number().int().positive().optional().default(5000),\n }).optional(),\n\n /**\n * Retry configuration\n */\n retry: z.object({\n /**\n * Maximum retry attempts\n */\n maxAttempts: z.number().int().positive().optional().default(3),\n\n /**\n * Initial retry delay in milliseconds\n */\n initialDelay: z.number().int().positive().optional().default(1000),\n\n /**\n * Backoff multiplier\n */\n backoffMultiplier: z.number().positive().optional().default(2),\n }).optional(),\n\n /**\n * Timeout in milliseconds\n */\n timeout: z.number().int().positive().optional().default(30000),\n}).describe('HTTP destination configuration');\n\nexport type HttpDestinationConfig = z.infer<typeof HttpDestinationConfigSchema>;\n\n/**\n * External Service Destination Configuration\n * Generic configuration for cloud logging services\n */\nexport const ExternalServiceDestinationConfigSchema = z.object({\n /**\n * Service-specific endpoint\n */\n endpoint: z.string().url().optional(),\n\n /**\n * Region (for cloud services)\n */\n region: z.string().optional(),\n\n /**\n * Credentials\n */\n credentials: z.object({\n accessKeyId: z.string().optional(),\n secretAccessKey: z.string().optional(),\n apiKey: z.string().optional(),\n projectId: z.string().optional(),\n }).optional(),\n\n /**\n * Log group/stream/index name\n */\n logGroup: z.string().optional(),\n logStream: z.string().optional(),\n index: z.string().optional(),\n\n /**\n * Service-specific configuration\n */\n config: z.record(z.string(), z.any()).optional(),\n}).describe('External service destination configuration');\n\nexport type ExternalServiceDestinationConfig = z.infer<typeof ExternalServiceDestinationConfigSchema>;\n\n/**\n * Log Destination Schema\n * Configuration for a single log destination\n */\nexport const LogDestinationSchema = z.object({\n /**\n * Destination name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('Destination name (snake_case)'),\n\n /**\n * Destination type\n */\n type: LogDestinationType.describe('Destination type'),\n\n /**\n * Minimum log level for this destination\n */\n level: ExtendedLogLevel.optional().default('info'),\n\n /**\n * Enabled flag\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Console configuration\n */\n console: ConsoleDestinationConfigSchema.optional(),\n\n /**\n * File configuration\n */\n file: FileDestinationConfigSchema.optional(),\n\n /**\n * HTTP configuration\n */\n http: HttpDestinationConfigSchema.optional(),\n\n /**\n * External service configuration\n */\n externalService: ExternalServiceDestinationConfigSchema.optional(),\n\n /**\n * Format for this destination\n */\n format: z.enum(['json', 'text', 'pretty']).optional().default('json'),\n\n /**\n * Filter function reference (runtime only)\n */\n filterId: z.string().optional().describe('Filter function identifier'),\n}).describe('Log destination configuration');\n\nexport type LogDestination = z.infer<typeof LogDestinationSchema>;\n\n/**\n * Log Enrichment Configuration\n * Add contextual data to all log entries\n */\nexport const LogEnrichmentConfigSchema = z.object({\n /**\n * Static fields to add to all logs\n */\n staticFields: z.record(z.string(), z.any()).optional().describe('Static fields added to every log'),\n\n /**\n * Dynamic field enrichers (runtime only)\n * References to functions that add dynamic context\n */\n dynamicEnrichers: z.array(z.string()).optional().describe('Dynamic enricher function IDs'),\n\n /**\n * Add hostname\n */\n addHostname: z.boolean().optional().default(true),\n\n /**\n * Add process ID\n */\n addProcessId: z.boolean().optional().default(true),\n\n /**\n * Add environment info\n */\n addEnvironment: z.boolean().optional().default(true),\n\n /**\n * Add timestamp in additional formats\n */\n addTimestampFormats: z.object({\n unix: z.boolean().optional().default(false),\n iso: z.boolean().optional().default(true),\n }).optional(),\n\n /**\n * Add caller information (file, line, function)\n */\n addCaller: z.boolean().optional().default(false),\n\n /**\n * Add correlation IDs\n */\n addCorrelationIds: z.boolean().optional().default(true),\n}).describe('Log enrichment configuration');\n\nexport type LogEnrichmentConfig = z.infer<typeof LogEnrichmentConfigSchema>;\n\n/**\n * Structured Log Entry Schema\n * Enhanced structured log record with enrichment\n */\nexport const StructuredLogEntrySchema = z.object({\n /**\n * Timestamp (ISO 8601)\n */\n timestamp: z.string().datetime().describe('ISO 8601 timestamp'),\n\n /**\n * Log level\n */\n level: ExtendedLogLevel.describe('Log severity level'),\n\n /**\n * Log message\n */\n message: z.string().describe('Log message'),\n\n /**\n * Structured context data\n */\n context: z.record(z.string(), z.any()).optional().describe('Structured context'),\n\n /**\n * Error information\n */\n error: z.object({\n name: z.string().optional(),\n message: z.string().optional(),\n stack: z.string().optional(),\n code: z.string().optional(),\n details: z.record(z.string(), z.any()).optional(),\n }).optional().describe('Error details'),\n\n /**\n * Trace context\n */\n trace: z.object({\n traceId: z.string().describe('Trace ID'),\n spanId: z.string().describe('Span ID'),\n parentSpanId: z.string().optional().describe('Parent span ID'),\n traceFlags: z.number().int().optional().describe('Trace flags'),\n }).optional().describe('Distributed tracing context'),\n\n /**\n * Source information\n */\n source: z.object({\n service: z.string().optional().describe('Service name'),\n component: z.string().optional().describe('Component name'),\n file: z.string().optional().describe('Source file'),\n line: z.number().int().optional().describe('Line number'),\n function: z.string().optional().describe('Function name'),\n }).optional().describe('Source information'),\n\n /**\n * Host information\n */\n host: z.object({\n hostname: z.string().optional(),\n pid: z.number().int().optional(),\n ip: z.string().optional(),\n }).optional().describe('Host information'),\n\n /**\n * Environment\n */\n environment: z.string().optional().describe('Environment (e.g., production, staging)'),\n\n /**\n * User information\n */\n user: z.object({\n id: z.string().optional(),\n username: z.string().optional(),\n email: z.string().optional(),\n }).optional().describe('User context'),\n\n /**\n * Request information\n */\n request: z.object({\n id: z.string().optional(),\n method: z.string().optional(),\n path: z.string().optional(),\n userAgent: z.string().optional(),\n ip: z.string().optional(),\n }).optional().describe('Request context'),\n\n /**\n * Custom labels/tags\n */\n labels: z.record(z.string(), z.string()).optional().describe('Custom labels'),\n\n /**\n * Additional metadata\n */\n metadata: z.record(z.string(), z.any()).optional().describe('Additional metadata'),\n}).describe('Structured log entry');\n\nexport type StructuredLogEntry = z.infer<typeof StructuredLogEntrySchema>;\n\n/**\n * Logging Configuration Schema\n * Main configuration for the logging system\n */\nexport const LoggingConfigSchema = z.object({\n /**\n * Configuration name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .max(64)\n .describe('Configuration name (snake_case, max 64 chars)'),\n\n /**\n * Display label\n */\n label: z.string().describe('Display label'),\n\n /**\n * Enable logging\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Global minimum log level\n */\n level: ExtendedLogLevel.optional().default('info'),\n\n /**\n * Default logger configuration\n * Basic logger config for the kernel\n */\n default: LoggerConfigSchema.optional().describe('Default logger configuration'),\n\n /**\n * Named logger configurations\n * Map of logger name to logger config for different components/modules\n */\n loggers: z.record(z.string(), LoggerConfigSchema).optional().describe('Named logger configurations'),\n\n /**\n * Log destinations\n */\n destinations: z.array(LogDestinationSchema).describe('Log destinations'),\n\n /**\n * Log enrichment configuration\n */\n enrichment: LogEnrichmentConfigSchema.optional(),\n\n /**\n * Fields to redact from logs\n */\n redact: z.array(z.string()).optional().default([\n 'password',\n 'passwordHash',\n 'token',\n 'apiKey',\n 'secret',\n 'creditCard',\n 'ssn',\n 'authorization',\n ]).describe('Fields to redact'),\n\n /**\n * Sampling configuration\n */\n sampling: z.object({\n /**\n * Enable sampling\n */\n enabled: z.boolean().optional().default(false),\n\n /**\n * Sample rate (0.0 to 1.0)\n */\n rate: z.number().min(0).max(1).optional().default(1.0),\n\n /**\n * Sample rate by level\n */\n rateByLevel: z.record(z.string(), z.number().min(0).max(1)).optional(),\n }).optional(),\n\n /**\n * Buffer configuration\n */\n buffer: z.object({\n /**\n * Enable buffering\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Buffer size\n */\n size: z.number().int().positive().optional().default(1000),\n\n /**\n * Flush interval in milliseconds\n */\n flushInterval: z.number().int().positive().optional().default(1000),\n\n /**\n * Flush on shutdown\n */\n flushOnShutdown: z.boolean().optional().default(true),\n }).optional(),\n\n /**\n * Performance configuration\n */\n performance: z.object({\n /**\n * Async logging\n */\n async: z.boolean().optional().default(true),\n\n /**\n * Worker threads for async logging\n */\n workers: z.number().int().positive().optional().default(1),\n }).optional(),\n}).describe('Logging configuration');\n\nexport type LoggingConfig = z.infer<typeof LoggingConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * Metrics Protocol - Performance and Operational Metrics\n * \n * Comprehensive metrics collection and monitoring:\n * - Counter, Gauge, Histogram, Summary metric types\n * - Time-series data collection\n * - SLI/SLO definitions\n * - Metric aggregation and export\n * - Integration with monitoring systems (Prometheus, etc.)\n */\n\n/**\n * Metric Type Enum\n * Standard Prometheus metric types\n */\nexport const MetricType = z.enum([\n 'counter', // Monotonically increasing value\n 'gauge', // Value that can go up and down\n 'histogram', // Observations bucketed by configurable ranges\n 'summary', // Observations with quantiles\n]).describe('Metric type');\n\nexport type MetricType = z.infer<typeof MetricType>;\n\n/**\n * Metric Unit Enum\n * Standard units for metrics\n */\nexport const MetricUnit = z.enum([\n // Time units\n 'nanoseconds',\n 'microseconds',\n 'milliseconds',\n 'seconds',\n 'minutes',\n 'hours',\n 'days',\n\n // Size units\n 'bytes',\n 'kilobytes',\n 'megabytes',\n 'gigabytes',\n 'terabytes',\n\n // Rate units\n 'requests_per_second',\n 'events_per_second',\n 'bytes_per_second',\n\n // Percentage\n 'percent',\n 'ratio',\n\n // Count\n 'count',\n 'operations',\n\n // Custom\n 'custom',\n]).describe('Metric unit');\n\nexport type MetricUnit = z.infer<typeof MetricUnit>;\n\n/**\n * Metric Aggregation Type\n */\nexport const MetricAggregationType = z.enum([\n 'sum', // Sum of all values\n 'avg', // Average of all values\n 'min', // Minimum value\n 'max', // Maximum value\n 'count', // Count of observations\n 'p50', // 50th percentile (median)\n 'p75', // 75th percentile\n 'p90', // 90th percentile\n 'p95', // 95th percentile\n 'p99', // 99th percentile\n 'p999', // 99.9th percentile\n 'rate', // Rate of change\n 'stddev', // Standard deviation\n]).describe('Metric aggregation type');\n\nexport type MetricAggregationType = z.infer<typeof MetricAggregationType>;\n\n/**\n * Histogram Bucket Configuration\n */\nexport const HistogramBucketConfigSchema = z.object({\n /**\n * Bucket type\n */\n type: z.enum(['linear', 'exponential', 'explicit']).describe('Bucket type'),\n\n /**\n * Linear bucket configuration\n */\n linear: z.object({\n start: z.number().describe('Start value'),\n width: z.number().positive().describe('Bucket width'),\n count: z.number().int().positive().describe('Number of buckets'),\n }).optional(),\n\n /**\n * Exponential bucket configuration\n */\n exponential: z.object({\n start: z.number().positive().describe('Start value'),\n factor: z.number().positive().describe('Growth factor'),\n count: z.number().int().positive().describe('Number of buckets'),\n }).optional(),\n\n /**\n * Explicit bucket boundaries\n */\n explicit: z.object({\n boundaries: z.array(z.number()).describe('Bucket boundaries'),\n }).optional(),\n}).describe('Histogram bucket configuration');\n\nexport type HistogramBucketConfig = z.infer<typeof HistogramBucketConfigSchema>;\n\n/**\n * Metric Labels Schema\n * Key-value pairs for metric dimensions\n */\nexport const MetricLabelsSchema = z.record(z.string(), z.string()).describe('Metric labels');\n\nexport type MetricLabels = z.infer<typeof MetricLabelsSchema>;\n\n/**\n * Metric Definition Schema\n */\nexport const MetricDefinitionSchema = z.object({\n /**\n * Metric name (snake_case)\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('Metric name (snake_case)'),\n\n /**\n * Display label\n */\n label: z.string().optional().describe('Display label'),\n\n /**\n * Metric type\n */\n type: MetricType.describe('Metric type'),\n\n /**\n * Metric unit\n */\n unit: MetricUnit.optional().describe('Metric unit'),\n\n /**\n * Description\n */\n description: z.string().optional().describe('Metric description'),\n\n /**\n * Label names for this metric\n */\n labelNames: z.array(z.string()).optional().default([]).describe('Label names'),\n\n /**\n * Histogram configuration (for histogram type)\n */\n histogram: HistogramBucketConfigSchema.optional(),\n\n /**\n * Summary configuration (for summary type)\n */\n summary: z.object({\n /**\n * Quantiles to track\n */\n quantiles: z.array(z.number().min(0).max(1)).optional().default([0.5, 0.9, 0.99]),\n\n /**\n * Max age of observations in seconds\n */\n maxAge: z.number().int().positive().optional().default(600),\n\n /**\n * Number of age buckets\n */\n ageBuckets: z.number().int().positive().optional().default(5),\n }).optional(),\n\n /**\n * Enabled flag\n */\n enabled: z.boolean().optional().default(true),\n}).describe('Metric definition');\n\nexport type MetricDefinition = z.infer<typeof MetricDefinitionSchema>;\n\n/**\n * Metric Data Point Schema\n * A single metric observation\n */\nexport const MetricDataPointSchema = z.object({\n /**\n * Metric name\n */\n name: z.string().describe('Metric name'),\n\n /**\n * Metric type\n */\n type: MetricType.describe('Metric type'),\n\n /**\n * Timestamp (ISO 8601)\n */\n timestamp: z.string().datetime().describe('Observation timestamp'),\n\n /**\n * Value (for counter and gauge)\n */\n value: z.number().optional().describe('Metric value'),\n\n /**\n * Labels\n */\n labels: MetricLabelsSchema.optional().describe('Metric labels'),\n\n /**\n * Histogram data\n */\n histogram: z.object({\n count: z.number().int().nonnegative().describe('Total count'),\n sum: z.number().describe('Sum of all values'),\n buckets: z.array(z.object({\n upperBound: z.number().describe('Upper bound of bucket'),\n count: z.number().int().nonnegative().describe('Count in bucket'),\n })).describe('Histogram buckets'),\n }).optional(),\n\n /**\n * Summary data\n */\n summary: z.object({\n count: z.number().int().nonnegative().describe('Total count'),\n sum: z.number().describe('Sum of all values'),\n quantiles: z.array(z.object({\n quantile: z.number().min(0).max(1).describe('Quantile (0-1)'),\n value: z.number().describe('Quantile value'),\n })).describe('Summary quantiles'),\n }).optional(),\n}).describe('Metric data point');\n\nexport type MetricDataPoint = z.infer<typeof MetricDataPointSchema>;\n\n/**\n * Time Series Data Point Schema\n */\nexport const TimeSeriesDataPointSchema = z.object({\n /**\n * Timestamp (ISO 8601)\n */\n timestamp: z.string().datetime().describe('Timestamp'),\n\n /**\n * Value\n */\n value: z.number().describe('Value'),\n\n /**\n * Labels/tags\n */\n labels: z.record(z.string(), z.string()).optional().describe('Labels'),\n}).describe('Time series data point');\n\nexport type TimeSeriesDataPoint = z.infer<typeof TimeSeriesDataPointSchema>;\n\n/**\n * Time Series Schema\n */\nexport const TimeSeriesSchema = z.object({\n /**\n * Series name\n */\n name: z.string().describe('Series name'),\n\n /**\n * Series labels\n */\n labels: z.record(z.string(), z.string()).optional().describe('Series labels'),\n\n /**\n * Data points\n */\n dataPoints: z.array(TimeSeriesDataPointSchema).describe('Data points'),\n\n /**\n * Start time\n */\n startTime: z.string().datetime().optional().describe('Start time'),\n\n /**\n * End time\n */\n endTime: z.string().datetime().optional().describe('End time'),\n}).describe('Time series');\n\nexport type TimeSeries = z.infer<typeof TimeSeriesSchema>;\n\n/**\n * Metric Aggregation Configuration\n */\nexport const MetricAggregationConfigSchema = z.object({\n /**\n * Aggregation type\n */\n type: MetricAggregationType.describe('Aggregation type'),\n\n /**\n * Time window for aggregation\n */\n window: z.object({\n /**\n * Window size in seconds\n */\n size: z.number().int().positive().describe('Window size in seconds'),\n\n /**\n * Sliding window (true) or tumbling window (false)\n */\n sliding: z.boolean().optional().default(false),\n\n /**\n * Slide interval for sliding windows\n */\n slideInterval: z.number().int().positive().optional(),\n }).optional(),\n\n /**\n * Group by labels\n */\n groupBy: z.array(z.string()).optional().describe('Group by label names'),\n\n /**\n * Filters\n */\n filters: z.record(z.string(), z.any()).optional().describe('Filter criteria'),\n}).describe('Metric aggregation configuration');\n\nexport type MetricAggregationConfig = z.infer<typeof MetricAggregationConfigSchema>;\n\n/**\n * Service Level Indicator (SLI) Schema\n */\nexport const ServiceLevelIndicatorSchema = z.object({\n /**\n * SLI name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('SLI name (snake_case)'),\n\n /**\n * Display label\n */\n label: z.string().describe('Display label'),\n\n /**\n * Description\n */\n description: z.string().optional().describe('SLI description'),\n\n /**\n * Metric name this SLI is based on\n */\n metric: z.string().describe('Base metric name'),\n\n /**\n * SLI type\n */\n type: z.enum([\n 'availability', // Percentage of successful requests\n 'latency', // Response time percentile\n 'throughput', // Requests per second\n 'error_rate', // Error percentage\n 'saturation', // Resource utilization\n 'custom', // Custom calculation\n ]).describe('SLI type'),\n\n /**\n * Success criteria\n */\n successCriteria: z.object({\n /**\n * Threshold value\n */\n threshold: z.number().describe('Threshold value'),\n\n /**\n * Comparison operator\n */\n operator: z.enum(['lt', 'lte', 'gt', 'gte', 'eq']).describe('Comparison operator'),\n\n /**\n * Percentile (for latency SLIs)\n */\n percentile: z.number().min(0).max(1).optional().describe('Percentile (0-1)'),\n }).describe('Success criteria'),\n\n /**\n * Measurement window\n */\n window: z.object({\n /**\n * Window size in seconds\n */\n size: z.number().int().positive().describe('Window size in seconds'),\n\n /**\n * Rolling window (true) or calendar-aligned (false)\n */\n rolling: z.boolean().optional().default(true),\n }).describe('Measurement window'),\n\n /**\n * Enabled flag\n */\n enabled: z.boolean().optional().default(true),\n}).describe('Service Level Indicator');\n\nexport type ServiceLevelIndicator = z.infer<typeof ServiceLevelIndicatorSchema>;\n\n/**\n * Service Level Objective (SLO) Schema\n */\nexport const ServiceLevelObjectiveSchema = z.object({\n /**\n * SLO name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('SLO name (snake_case)'),\n\n /**\n * Display label\n */\n label: z.string().describe('Display label'),\n\n /**\n * Description\n */\n description: z.string().optional().describe('SLO description'),\n\n /**\n * SLI this SLO is based on\n */\n sli: z.string().describe('SLI name'),\n\n /**\n * Target percentage (0-100)\n */\n target: z.number().min(0).max(100).describe('Target percentage'),\n\n /**\n * Time period for SLO\n */\n period: z.object({\n /**\n * Period type\n */\n type: z.enum(['rolling', 'calendar']).describe('Period type'),\n\n /**\n * Duration in seconds (for rolling)\n */\n duration: z.number().int().positive().optional().describe('Duration in seconds'),\n\n /**\n * Calendar period (for calendar)\n */\n calendar: z.enum(['daily', 'weekly', 'monthly', 'quarterly', 'yearly']).optional(),\n }).describe('Time period'),\n\n /**\n * Error budget configuration\n */\n errorBudget: z.object({\n /**\n * Auto-calculated budget (1 - target)\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Alert when budget consumed percentage exceeds threshold\n */\n alertThreshold: z.number().min(0).max(100).optional().default(80),\n\n /**\n * Burn rate alert windows\n */\n burnRateWindows: z.array(z.object({\n /**\n * Window size in seconds\n */\n window: z.number().int().positive().describe('Window size'),\n\n /**\n * Burn rate multiplier threshold\n */\n threshold: z.number().positive().describe('Burn rate threshold'),\n })).optional(),\n }).optional(),\n\n /**\n * Alert configuration\n */\n alerts: z.array(z.object({\n /**\n * Alert name\n */\n name: z.string().describe('Alert name'),\n\n /**\n * Severity\n */\n severity: z.enum(['info', 'warning', 'critical']).describe('Alert severity'),\n\n /**\n * Condition\n */\n condition: z.object({\n type: z.enum(['slo_breach', 'error_budget', 'burn_rate']).describe('Condition type'),\n threshold: z.number().optional().describe('Threshold value'),\n }).describe('Alert condition'),\n })).optional().default([]),\n\n /**\n * Enabled flag\n */\n enabled: z.boolean().optional().default(true),\n}).describe('Service Level Objective');\n\nexport type ServiceLevelObjective = z.infer<typeof ServiceLevelObjectiveSchema>;\n\n/**\n * Metric Export Configuration\n */\nexport const MetricExportConfigSchema = z.object({\n /**\n * Export type\n */\n type: z.enum([\n 'prometheus', // Prometheus exposition format\n 'openmetrics', // OpenMetrics format\n 'graphite', // Graphite plaintext protocol\n 'statsd', // StatsD protocol\n 'influxdb', // InfluxDB line protocol\n 'datadog', // Datadog agent\n 'cloudwatch', // AWS CloudWatch\n 'stackdriver', // Google Cloud Monitoring\n 'azure_monitor', // Azure Monitor\n 'http', // HTTP push\n 'custom', // Custom exporter\n ]).describe('Export type'),\n\n /**\n * Endpoint configuration\n */\n endpoint: z.string().optional().describe('Export endpoint'),\n\n /**\n * Export interval in seconds\n */\n interval: z.number().int().positive().optional().default(60),\n\n /**\n * Batch configuration\n */\n batch: z.object({\n enabled: z.boolean().optional().default(true),\n size: z.number().int().positive().optional().default(1000),\n }).optional(),\n\n /**\n * Authentication\n */\n auth: z.object({\n type: z.enum(['none', 'basic', 'bearer', 'api_key']).describe('Auth type'),\n username: z.string().optional(),\n password: z.string().optional(),\n token: z.string().optional(),\n apiKey: z.string().optional(),\n }).optional(),\n\n /**\n * Additional configuration\n */\n config: z.record(z.string(), z.any()).optional().describe('Additional configuration'),\n}).describe('Metric export configuration');\n\nexport type MetricExportConfig = z.infer<typeof MetricExportConfigSchema>;\n\n/**\n * Metrics Configuration Schema\n */\nexport const MetricsConfigSchema = z.object({\n /**\n * Configuration name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .max(64)\n .describe('Configuration name (snake_case, max 64 chars)'),\n\n /**\n * Display label\n */\n label: z.string().describe('Display label'),\n\n /**\n * Enable metrics collection\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Metric definitions\n */\n metrics: z.array(MetricDefinitionSchema).optional().default([]),\n\n /**\n * Default labels applied to all metrics\n */\n defaultLabels: MetricLabelsSchema.optional().default({}),\n\n /**\n * Aggregation configurations\n */\n aggregations: z.array(MetricAggregationConfigSchema).optional().default([]),\n\n /**\n * Service Level Indicators\n */\n slis: z.array(ServiceLevelIndicatorSchema).optional().default([]),\n\n /**\n * Service Level Objectives\n */\n slos: z.array(ServiceLevelObjectiveSchema).optional().default([]),\n\n /**\n * Export configurations\n */\n exports: z.array(MetricExportConfigSchema).optional().default([]),\n\n /**\n * Collection interval in seconds\n */\n collectionInterval: z.number().int().positive().optional().default(15),\n\n /**\n * Retention configuration\n */\n retention: z.object({\n /**\n * Retention period in seconds\n */\n period: z.number().int().positive().optional().default(604800), // 7 days\n\n /**\n * Downsampling configuration\n */\n downsampling: z.array(z.object({\n /**\n * After this duration, downsample to this resolution\n */\n afterSeconds: z.number().int().positive().describe('Downsample after seconds'),\n\n /**\n * Resolution in seconds\n */\n resolution: z.number().int().positive().describe('Downsampled resolution'),\n })).optional(),\n }).optional(),\n\n /**\n * Cardinality limits\n */\n cardinalityLimits: z.object({\n /**\n * Maximum unique label combinations per metric\n */\n maxLabelCombinations: z.number().int().positive().optional().default(10000),\n\n /**\n * Action when limit exceeded\n */\n onLimitExceeded: z.enum(['drop', 'sample', 'alert']).optional().default('alert'),\n }).optional(),\n}).describe('Metrics configuration');\n\nexport type MetricsConfig = z.infer<typeof MetricsConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * Tracing Protocol - Distributed Tracing & Observability\n * \n * Comprehensive distributed tracing based on OpenTelemetry standards:\n * - Trace context propagation\n * - Span creation and management\n * - Sampling strategies\n * - Integration with tracing backends (Jaeger, Zipkin, etc.)\n * - W3C Trace Context standard compliance\n */\n\n/**\n * Trace State Schema\n * W3C Trace Context tracestate header\n */\nexport const TraceStateSchema = z.object({\n /**\n * Vendor-specific key-value pairs\n */\n entries: z.record(z.string(), z.string()).describe('Trace state entries'),\n}).describe('Trace state');\n\nexport type TraceState = z.infer<typeof TraceStateSchema>;\n\n/**\n * Trace Flags Enum\n * W3C Trace Context trace flags\n */\nexport const TraceFlagsSchema = z.number().int().min(0).max(255).describe('Trace flags bitmap');\n\nexport type TraceFlags = z.infer<typeof TraceFlagsSchema>;\n\n/**\n * Trace Context Schema\n * W3C Trace Context standard\n */\nexport const TraceContextSchema = z.object({\n /**\n * Trace ID (128-bit identifier, 32 hex chars)\n */\n traceId: z.string()\n .regex(/^[0-9a-f]{32}$/)\n .describe('Trace ID (32 hex chars)'),\n\n /**\n * Span ID (64-bit identifier, 16 hex chars)\n */\n spanId: z.string()\n .regex(/^[0-9a-f]{16}$/)\n .describe('Span ID (16 hex chars)'),\n\n /**\n * Trace flags (8-bit)\n */\n traceFlags: TraceFlagsSchema.optional().default(1),\n\n /**\n * Trace state (vendor-specific)\n */\n traceState: TraceStateSchema.optional(),\n\n /**\n * Parent span ID\n */\n parentSpanId: z.string()\n .regex(/^[0-9a-f]{16}$/)\n .optional()\n .describe('Parent span ID (16 hex chars)'),\n\n /**\n * Is sampled\n */\n sampled: z.boolean().optional().default(true),\n\n /**\n * Remote context (from incoming request)\n */\n remote: z.boolean().optional().default(false),\n}).describe('Trace context (W3C Trace Context)');\n\nexport type TraceContext = z.infer<typeof TraceContextSchema>;\n\n/**\n * Span Kind Enum\n * OpenTelemetry span kinds\n */\nexport const SpanKind = z.enum([\n 'internal', // Internal operation\n 'server', // Server-side request handling\n 'client', // Client-side request\n 'producer', // Message producer\n 'consumer', // Message consumer\n]).describe('Span kind');\n\nexport type SpanKind = z.infer<typeof SpanKind>;\n\n/**\n * Span Status Enum\n * OpenTelemetry span status\n */\nexport const SpanStatus = z.enum([\n 'unset', // Default status\n 'ok', // Successful operation\n 'error', // Error occurred\n]).describe('Span status');\n\nexport type SpanStatus = z.infer<typeof SpanStatus>;\n\n/**\n * Span Attribute Value Schema\n */\nexport const SpanAttributeValueSchema = z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.array(z.string()),\n z.array(z.number()),\n z.array(z.boolean()),\n]).describe('Span attribute value');\n\nexport type SpanAttributeValue = z.infer<typeof SpanAttributeValueSchema>;\n\n/**\n * Span Attributes Schema\n * OpenTelemetry semantic conventions\n */\nexport const SpanAttributesSchema = z.record(z.string(), SpanAttributeValueSchema).describe('Span attributes');\n\nexport type SpanAttributes = z.infer<typeof SpanAttributesSchema>;\n\n/**\n * Span Event Schema\n */\nexport const SpanEventSchema = z.object({\n /**\n * Event name\n */\n name: z.string().describe('Event name'),\n\n /**\n * Event timestamp (ISO 8601)\n */\n timestamp: z.string().datetime().describe('Event timestamp'),\n\n /**\n * Event attributes\n */\n attributes: SpanAttributesSchema.optional().describe('Event attributes'),\n}).describe('Span event');\n\nexport type SpanEvent = z.infer<typeof SpanEventSchema>;\n\n/**\n * Span Link Schema\n * Links to other spans\n */\nexport const SpanLinkSchema = z.object({\n /**\n * Linked trace context\n */\n context: TraceContextSchema.describe('Linked trace context'),\n\n /**\n * Link attributes\n */\n attributes: SpanAttributesSchema.optional().describe('Link attributes'),\n}).describe('Span link');\n\nexport type SpanLink = z.infer<typeof SpanLinkSchema>;\n\n/**\n * Span Schema\n * OpenTelemetry span representation\n */\nexport const SpanSchema = z.object({\n /**\n * Trace context\n */\n context: TraceContextSchema.describe('Trace context'),\n\n /**\n * Span name\n */\n name: z.string().describe('Span name'),\n\n /**\n * Span kind\n */\n kind: SpanKind.optional().default('internal'),\n\n /**\n * Start time (ISO 8601)\n */\n startTime: z.string().datetime().describe('Span start time'),\n\n /**\n * End time (ISO 8601)\n */\n endTime: z.string().datetime().optional().describe('Span end time'),\n\n /**\n * Duration in milliseconds\n */\n duration: z.number().nonnegative().optional().describe('Duration in milliseconds'),\n\n /**\n * Span status\n */\n status: z.object({\n code: SpanStatus.describe('Status code'),\n message: z.string().optional().describe('Status message'),\n }).optional(),\n\n /**\n * Span attributes\n */\n attributes: SpanAttributesSchema.optional().default({}),\n\n /**\n * Span events\n */\n events: z.array(SpanEventSchema).optional().default([]),\n\n /**\n * Span links\n */\n links: z.array(SpanLinkSchema).optional().default([]),\n\n /**\n * Resource attributes\n */\n resource: SpanAttributesSchema.optional().describe('Resource attributes'),\n\n /**\n * Instrumentation library\n */\n instrumentationLibrary: z.object({\n name: z.string().describe('Library name'),\n version: z.string().optional().describe('Library version'),\n }).optional(),\n}).describe('OpenTelemetry span');\n\nexport type Span = z.infer<typeof SpanSchema>;\n\n/**\n * Sampling Decision Enum\n */\nexport const SamplingDecision = z.enum([\n 'drop', // Do not record or export\n 'record_only', // Record but do not export\n 'record_and_sample', // Record and export\n]).describe('Sampling decision');\n\nexport type SamplingDecision = z.infer<typeof SamplingDecision>;\n\n/**\n * Sampling Strategy Type Enum\n */\nexport const SamplingStrategyType = z.enum([\n 'always_on', // Always sample\n 'always_off', // Never sample\n 'trace_id_ratio', // Sample based on trace ID ratio\n 'rate_limiting', // Rate-limited sampling\n 'parent_based', // Respect parent span sampling decision\n 'probability', // Probability-based sampling\n 'composite', // Combine multiple strategies\n 'custom', // Custom sampling logic\n]).describe('Sampling strategy type');\n\nexport type SamplingStrategyType = z.infer<typeof SamplingStrategyType>;\n\n/**\n * Trace Sampling Configuration Schema\n */\nexport const TraceSamplingConfigSchema = z.object({\n /**\n * Sampling strategy type\n */\n type: SamplingStrategyType.describe('Sampling strategy'),\n\n /**\n * Sample ratio (0.0 to 1.0) for trace_id_ratio and probability strategies\n */\n ratio: z.number().min(0).max(1).optional().describe('Sample ratio (0-1)'),\n\n /**\n * Rate limit (traces per second) for rate_limiting strategy\n */\n rateLimit: z.number().positive().optional().describe('Traces per second'),\n\n /**\n * Parent-based configuration\n */\n parentBased: z.object({\n /**\n * Sampler to use when parent is sampled\n */\n whenParentSampled: SamplingStrategyType.optional().default('always_on'),\n\n /**\n * Sampler to use when parent is not sampled\n */\n whenParentNotSampled: SamplingStrategyType.optional().default('always_off'),\n\n /**\n * Sampler to use when there is no parent (root span)\n */\n root: SamplingStrategyType.optional().default('trace_id_ratio'),\n\n /**\n * Root sampler ratio\n */\n rootRatio: z.number().min(0).max(1).optional().default(0.1),\n }).optional(),\n\n /**\n * Composite sampling (multiple strategies)\n */\n composite: z.array(z.object({\n strategy: SamplingStrategyType.describe('Strategy type'),\n ratio: z.number().min(0).max(1).optional(),\n condition: z.record(z.string(), z.any()).optional().describe('Condition for this strategy'),\n })).optional(),\n\n /**\n * Sampling rules\n */\n rules: z.array(z.object({\n /**\n * Rule name\n */\n name: z.string().describe('Rule name'),\n\n /**\n * Match condition\n */\n match: z.object({\n /**\n * Service name pattern\n */\n service: z.string().optional(),\n\n /**\n * Span name pattern (regex)\n */\n spanName: z.string().optional(),\n\n /**\n * Attribute filters\n */\n attributes: z.record(z.string(), z.any()).optional(),\n }).optional(),\n\n /**\n * Sampling decision for matching spans\n */\n decision: SamplingDecision.describe('Sampling decision'),\n\n /**\n * Sample rate for this rule\n */\n rate: z.number().min(0).max(1).optional(),\n })).optional().default([]),\n\n /**\n * Custom sampler ID (for custom strategy)\n */\n customSamplerId: z.string().optional().describe('Custom sampler identifier'),\n}).describe('Trace sampling configuration');\n\nexport type TraceSamplingConfig = z.infer<typeof TraceSamplingConfigSchema>;\n\n/**\n * Trace Context Propagation Format Enum\n */\nexport const TracePropagationFormat = z.enum([\n 'w3c', // W3C Trace Context\n 'b3', // Zipkin B3 (single header)\n 'b3_multi', // Zipkin B3 (multi header)\n 'jaeger', // Jaeger propagation\n 'xray', // AWS X-Ray\n 'ottrace', // OpenTracing\n 'custom', // Custom format\n]).describe('Trace propagation format');\n\nexport type TracePropagationFormat = z.infer<typeof TracePropagationFormat>;\n\n/**\n * Trace Context Propagation Schema\n */\nexport const TraceContextPropagationSchema = z.object({\n /**\n * Propagation formats (in priority order)\n */\n formats: z.array(TracePropagationFormat).optional().default(['w3c']),\n\n /**\n * Extract context from incoming requests\n */\n extract: z.boolean().optional().default(true),\n\n /**\n * Inject context into outgoing requests\n */\n inject: z.boolean().optional().default(true),\n\n /**\n * Custom header mappings\n */\n headers: z.object({\n /**\n * Trace ID header name\n */\n traceId: z.string().optional(),\n\n /**\n * Span ID header name\n */\n spanId: z.string().optional(),\n\n /**\n * Trace flags header name\n */\n traceFlags: z.string().optional(),\n\n /**\n * Trace state header name\n */\n traceState: z.string().optional(),\n }).optional(),\n\n /**\n * Baggage propagation\n */\n baggage: z.object({\n /**\n * Enable baggage propagation\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Maximum baggage size in bytes\n */\n maxSize: z.number().int().positive().optional().default(8192),\n\n /**\n * Allowed baggage keys (whitelist)\n */\n allowedKeys: z.array(z.string()).optional(),\n }).optional(),\n}).describe('Trace context propagation');\n\nexport type TraceContextPropagation = z.infer<typeof TraceContextPropagationSchema>;\n\n/**\n * OpenTelemetry Exporter Type Enum\n */\nexport const OtelExporterType = z.enum([\n 'otlp_http', // OTLP over HTTP\n 'otlp_grpc', // OTLP over gRPC\n 'jaeger', // Jaeger\n 'zipkin', // Zipkin\n 'console', // Console (for debugging)\n 'datadog', // Datadog\n 'honeycomb', // Honeycomb\n 'lightstep', // Lightstep\n 'newrelic', // New Relic\n 'custom', // Custom exporter\n]).describe('OpenTelemetry exporter type');\n\nexport type OtelExporterType = z.infer<typeof OtelExporterType>;\n\n/**\n * OpenTelemetry Compatibility Schema\n */\nexport const OpenTelemetryCompatibilitySchema = z.object({\n /**\n * OpenTelemetry SDK version\n */\n sdkVersion: z.string().optional().describe('OTel SDK version'),\n\n /**\n * Exporter configuration\n */\n exporter: z.object({\n /**\n * Exporter type\n */\n type: OtelExporterType.describe('Exporter type'),\n\n /**\n * Endpoint URL\n */\n endpoint: z.string().url().optional().describe('Exporter endpoint'),\n\n /**\n * Protocol version\n */\n protocol: z.string().optional().describe('Protocol version'),\n\n /**\n * Headers\n */\n headers: z.record(z.string(), z.string()).optional().describe('HTTP headers'),\n\n /**\n * Timeout in milliseconds\n */\n timeout: z.number().int().positive().optional().default(10000),\n\n /**\n * Compression\n */\n compression: z.enum(['none', 'gzip']).optional().default('none'),\n\n /**\n * Batch configuration\n */\n batch: z.object({\n /**\n * Maximum batch size\n */\n maxBatchSize: z.number().int().positive().optional().default(512),\n\n /**\n * Maximum queue size\n */\n maxQueueSize: z.number().int().positive().optional().default(2048),\n\n /**\n * Export timeout in milliseconds\n */\n exportTimeout: z.number().int().positive().optional().default(30000),\n\n /**\n * Scheduled delay in milliseconds\n */\n scheduledDelay: z.number().int().positive().optional().default(5000),\n }).optional(),\n }).describe('Exporter configuration'),\n\n /**\n * Resource attributes (service identification)\n */\n resource: z.object({\n /**\n * Service name\n */\n serviceName: z.string().describe('Service name'),\n\n /**\n * Service version\n */\n serviceVersion: z.string().optional().describe('Service version'),\n\n /**\n * Service instance ID\n */\n serviceInstanceId: z.string().optional().describe('Service instance ID'),\n\n /**\n * Service namespace\n */\n serviceNamespace: z.string().optional().describe('Service namespace'),\n\n /**\n * Deployment environment\n */\n deploymentEnvironment: z.string().optional().describe('Deployment environment'),\n\n /**\n * Additional resource attributes\n */\n attributes: SpanAttributesSchema.optional().describe('Additional resource attributes'),\n }).describe('Resource attributes'),\n\n /**\n * Instrumentation configuration\n */\n instrumentation: z.object({\n /**\n * Auto-instrumentation enabled\n */\n autoInstrumentation: z.boolean().optional().default(true),\n\n /**\n * Instrumentation libraries to enable\n */\n libraries: z.array(z.string()).optional().describe('Enabled libraries'),\n\n /**\n * Instrumentation libraries to disable\n */\n disabledLibraries: z.array(z.string()).optional().describe('Disabled libraries'),\n }).optional(),\n\n /**\n * Semantic conventions version\n */\n semanticConventionsVersion: z.string().optional().describe('Semantic conventions version'),\n}).describe('OpenTelemetry compatibility configuration');\n\nexport type OpenTelemetryCompatibility = z.infer<typeof OpenTelemetryCompatibilitySchema>;\n\n/**\n * Tracing Configuration Schema\n */\nexport const TracingConfigSchema = z.object({\n /**\n * Configuration name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .max(64)\n .describe('Configuration name (snake_case, max 64 chars)'),\n\n /**\n * Display label\n */\n label: z.string().describe('Display label'),\n\n /**\n * Enable tracing\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Sampling configuration\n */\n sampling: TraceSamplingConfigSchema.optional().default({ type: 'always_on', rules: [] }),\n\n /**\n * Context propagation\n */\n propagation: TraceContextPropagationSchema.optional().default({ formats: ['w3c'], extract: true, inject: true }),\n\n /**\n * OpenTelemetry configuration\n */\n openTelemetry: OpenTelemetryCompatibilitySchema.optional(),\n\n /**\n * Span limits\n */\n spanLimits: z.object({\n /**\n * Maximum number of attributes per span\n */\n maxAttributes: z.number().int().positive().optional().default(128),\n\n /**\n * Maximum number of events per span\n */\n maxEvents: z.number().int().positive().optional().default(128),\n\n /**\n * Maximum number of links per span\n */\n maxLinks: z.number().int().positive().optional().default(128),\n\n /**\n * Maximum attribute value length\n */\n maxAttributeValueLength: z.number().int().positive().optional().default(4096),\n }).optional(),\n\n /**\n * Trace ID generator\n */\n traceIdGenerator: z.enum(['random', 'uuid', 'custom']).optional().default('random'),\n\n /**\n * Custom trace ID generator ID\n */\n customTraceIdGeneratorId: z.string().optional().describe('Custom generator identifier'),\n\n /**\n * Performance configuration\n */\n performance: z.object({\n /**\n * Async span export\n */\n asyncExport: z.boolean().optional().default(true),\n\n /**\n * Background export interval in milliseconds\n */\n exportInterval: z.number().int().positive().optional().default(5000),\n }).optional(),\n}).describe('Tracing configuration');\n\nexport type TracingConfig = z.infer<typeof TracingConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * Change Type Enum\n * \n * Classification of change requests based on risk and approval requirements.\n * Follows ITIL change management best practices.\n */\nexport const ChangeTypeSchema = z.enum([\n 'standard', // Pre-approved, low-risk changes\n 'normal', // Requires standard approval process\n 'emergency', // Fast-track approval for critical issues\n 'major', // Requires CAB (Change Advisory Board) approval\n]);\n\n/**\n * Change Priority Enum\n * \n * Priority level for change request processing.\n */\nexport const ChangePrioritySchema = z.enum([\n 'critical',\n 'high',\n 'medium',\n 'low',\n]);\n\n/**\n * Change Status Enum\n * \n * Current status of a change request in its lifecycle.\n */\nexport const ChangeStatusSchema = z.enum([\n 'draft',\n 'submitted',\n 'in-review',\n 'approved',\n 'scheduled',\n 'in-progress',\n 'completed',\n 'failed',\n 'rolled-back',\n 'cancelled',\n]);\n\n/**\n * Change Impact Schema\n * \n * Assessment of the impact and scope of a change request.\n * Used for risk evaluation and approval routing.\n * \n * @example\n * ```json\n * {\n * \"level\": \"high\",\n * \"affectedSystems\": [\"crm-api\", \"customer-portal\"],\n * \"affectedUsers\": 5000,\n * \"downtime\": {\n * \"required\": true,\n * \"durationMinutes\": 30\n * }\n * }\n * ```\n */\nexport const ChangeImpactSchema = z.object({\n /**\n * Overall impact level of the change\n */\n level: z.enum(['low', 'medium', 'high', 'critical']).describe('Impact level'),\n\n /**\n * List of systems affected by this change\n */\n affectedSystems: z.array(z.string()).describe('Affected systems'),\n\n /**\n * Estimated number of users affected\n */\n affectedUsers: z.number().optional().describe('Affected user count'),\n\n /**\n * Downtime requirements\n */\n downtime: z.object({\n /**\n * Whether downtime is required\n */\n required: z.boolean().describe('Downtime required'),\n\n /**\n * Duration of downtime in minutes\n */\n durationMinutes: z.number().optional().describe('Downtime duration'),\n }).optional().describe('Downtime information'),\n});\n\n/**\n * Rollback Plan Schema\n * \n * Detailed procedure for reverting changes if implementation fails.\n * Required for all non-standard changes.\n * \n * @example\n * ```json\n * {\n * \"description\": \"Revert database schema to previous version\",\n * \"steps\": [\n * {\n * \"order\": 1,\n * \"description\": \"Stop application servers\",\n * \"estimatedMinutes\": 5\n * },\n * {\n * \"order\": 2,\n * \"description\": \"Restore database backup\",\n * \"estimatedMinutes\": 15\n * }\n * ],\n * \"testProcedure\": \"Verify application login and basic functionality\"\n * }\n * ```\n */\nexport const RollbackPlanSchema = z.object({\n /**\n * High-level description of the rollback approach\n */\n description: z.string().describe('Rollback description'),\n\n /**\n * Sequential steps to execute rollback\n */\n steps: z.array(z.object({\n /**\n * Step execution order\n */\n order: z.number().describe('Step order'),\n\n /**\n * Detailed description of this step\n */\n description: z.string().describe('Step description'),\n\n /**\n * Estimated time to complete this step\n */\n estimatedMinutes: z.number().describe('Estimated duration'),\n })).describe('Rollback steps'),\n\n /**\n * Testing procedure to verify successful rollback\n */\n testProcedure: z.string().optional().describe('Test procedure'),\n});\n\n/**\n * Change Request Schema\n * \n * Comprehensive change management protocol for IT governance.\n * Supports change requests, deployment tracking, and ITIL compliance.\n * \n * @example\n * ```json\n * {\n * \"id\": \"CHG-2024-001\",\n * \"title\": \"Upgrade CRM Database Schema\",\n * \"description\": \"Migrate customer database to new schema version 2.0\",\n * \"type\": \"normal\",\n * \"priority\": \"high\",\n * \"status\": \"approved\",\n * \"requestedBy\": \"user_123\",\n * \"requestedAt\": 1704067200000,\n * \"impact\": {\n * \"level\": \"high\",\n * \"affectedSystems\": [\"crm-api\", \"customer-portal\"],\n * \"affectedUsers\": 5000,\n * \"downtime\": {\n * \"required\": true,\n * \"durationMinutes\": 30\n * }\n * },\n * \"implementation\": {\n * \"description\": \"Execute database migration scripts\",\n * \"steps\": [\n * {\n * \"order\": 1,\n * \"description\": \"Backup current database\",\n * \"estimatedMinutes\": 10\n * }\n * ],\n * \"testing\": \"Run integration test suite\"\n * },\n * \"rollbackPlan\": {\n * \"description\": \"Restore from backup\",\n * \"steps\": [\n * {\n * \"order\": 1,\n * \"description\": \"Restore backup\",\n * \"estimatedMinutes\": 15\n * }\n * ]\n * },\n * \"schedule\": {\n * \"plannedStart\": 1704153600000,\n * \"plannedEnd\": 1704155400000\n * }\n * }\n * ```\n */\nexport const ChangeRequestSchema = z.object({\n /**\n * Unique change request identifier\n */\n id: z.string().describe('Change request ID'),\n\n /**\n * Short descriptive title of the change\n */\n title: z.string().describe('Change title'),\n\n /**\n * Detailed description of the change and its purpose\n */\n description: z.string().describe('Change description'),\n\n /**\n * Change classification type\n */\n type: ChangeTypeSchema.describe('Change type'),\n\n /**\n * Priority level for processing\n */\n priority: ChangePrioritySchema.describe('Change priority'),\n\n /**\n * Current status in the change lifecycle\n */\n status: ChangeStatusSchema.describe('Change status'),\n\n /**\n * User ID of the change requester\n */\n requestedBy: z.string().describe('Requester user ID'),\n\n /**\n * Timestamp when change was requested (Unix milliseconds)\n */\n requestedAt: z.number().describe('Request timestamp'),\n\n /**\n * Impact assessment of the change\n */\n impact: ChangeImpactSchema.describe('Impact assessment'),\n\n /**\n * Implementation plan and procedures\n */\n implementation: z.object({\n /**\n * High-level implementation description\n */\n description: z.string().describe('Implementation description'),\n\n /**\n * Sequential implementation steps\n */\n steps: z.array(z.object({\n /**\n * Step execution order\n */\n order: z.number().describe('Step order'),\n\n /**\n * Detailed description of this step\n */\n description: z.string().describe('Step description'),\n\n /**\n * Estimated time to complete this step\n */\n estimatedMinutes: z.number().describe('Estimated duration'),\n })).describe('Implementation steps'),\n\n /**\n * Testing procedures to verify successful implementation\n */\n testing: z.string().optional().describe('Testing procedure'),\n }).describe('Implementation plan'),\n\n /**\n * Rollback plan in case of failure\n */\n rollbackPlan: RollbackPlanSchema.describe('Rollback plan'),\n\n /**\n * Change schedule and timing\n */\n schedule: z.object({\n /**\n * Planned start time (Unix milliseconds)\n */\n plannedStart: z.number().describe('Planned start time'),\n\n /**\n * Planned end time (Unix milliseconds)\n */\n plannedEnd: z.number().describe('Planned end time'),\n\n /**\n * Actual start time (Unix milliseconds)\n */\n actualStart: z.number().optional().describe('Actual start time'),\n\n /**\n * Actual end time (Unix milliseconds)\n */\n actualEnd: z.number().optional().describe('Actual end time'),\n }).optional().describe('Schedule'),\n\n /**\n * Approval workflow configuration\n */\n approval: z.object({\n /**\n * Whether approval is required for this change\n */\n required: z.boolean().describe('Approval required'),\n\n /**\n * List of approvers and their approval status\n */\n approvers: z.array(z.object({\n /**\n * Approver user ID\n */\n userId: z.string().describe('Approver user ID'),\n\n /**\n * Timestamp when approval was granted (Unix milliseconds)\n */\n approvedAt: z.number().optional().describe('Approval timestamp'),\n\n /**\n * Comments from the approver\n */\n comments: z.string().optional().describe('Approver comments'),\n })).describe('Approvers'),\n }).optional().describe('Approval workflow'),\n\n /**\n * Supporting documentation and files\n */\n attachments: z.array(z.object({\n /**\n * Attachment file name\n */\n name: z.string().describe('Attachment name'),\n\n /**\n * URL to download the attachment\n */\n url: z.string().url().describe('Attachment URL'),\n })).optional().describe('Attachments'),\n});\n\n// Type exports\nexport type ChangeRequest = z.infer<typeof ChangeRequestSchema>;\nexport type ChangeType = z.infer<typeof ChangeTypeSchema>;\nexport type ChangeStatus = z.infer<typeof ChangeStatusSchema>;\nexport type ChangePriority = z.infer<typeof ChangePrioritySchema>;\nexport type ChangeImpact = z.infer<typeof ChangeImpactSchema>;\nexport type RollbackPlan = z.infer<typeof RollbackPlanSchema>;\n","import { z } from 'zod';\nimport { FieldSchema } from '../data/field.zod';\nimport { ObjectSchema } from '../data/object.zod';\n\n// --- Atomic Operations ---\n\nexport const AddFieldOperation = z.object({\n type: z.literal('add_field'),\n objectName: z.string(),\n fieldName: z.string(),\n field: FieldSchema\n});\n\nexport const ModifyFieldOperation = z.object({\n type: z.literal('modify_field'),\n objectName: z.string(),\n fieldName: z.string(),\n changes: z.record(z.string(), z.unknown()) // Partial field definition updates\n});\n\nexport const RemoveFieldOperation = z.object({\n type: z.literal('remove_field'),\n objectName: z.string(),\n fieldName: z.string()\n});\n\nexport const CreateObjectOperation = z.object({\n type: z.literal('create_object'),\n object: ObjectSchema\n});\n\nexport const RenameObjectOperation = z.object({\n type: z.literal('rename_object'),\n oldName: z.string(),\n newName: z.string()\n});\n\nexport const DeleteObjectOperation = z.object({\n type: z.literal('delete_object'),\n objectName: z.string()\n});\n\nexport const ExecuteSqlOperation = z.object({\n type: z.literal('execute_sql'),\n sql: z.string(),\n description: z.string().optional()\n});\n\n// Union of all possible operations\nexport const MigrationOperationSchema = z.discriminatedUnion('type', [\n AddFieldOperation,\n ModifyFieldOperation,\n RemoveFieldOperation,\n CreateObjectOperation,\n RenameObjectOperation,\n DeleteObjectOperation,\n ExecuteSqlOperation\n]);\n\n// --- Migration & ChangeSet ---\n\nexport const MigrationDependencySchema = z.object({\n migrationId: z.string(),\n package: z.string().optional()\n});\n\nexport const ChangeSetSchema = z.object({\n id: z.string().uuid().describe('Unique identifier for this change set'),\n name: z.string().describe('Human readable name for the migration'),\n description: z.string().optional(),\n author: z.string().optional(),\n createdAt: z.string().datetime().optional(),\n \n // Dependencies ensure migrations run in order\n dependencies: z.array(MigrationDependencySchema).optional(),\n \n // The actual atomic operations\n operations: z.array(MigrationOperationSchema),\n \n // Rollback operations (AI should generate these too)\n rollback: z.array(MigrationOperationSchema).optional()\n});\n\nexport type ChangeSet = z.infer<typeof ChangeSetSchema>;\nexport type MigrationOperation = z.infer<typeof MigrationOperationSchema>;\n","import { z } from 'zod';\nimport { SystemIdentifierSchema } from '../shared/identifiers.zod';\nimport { EncryptionConfigSchema } from '../system/encryption.zod';\nimport { MaskingRuleSchema } from '../system/masking.zod';\n\n/**\n * Field Type Enum\n */\nexport const FieldType = z.enum([\n // Core Text\n 'text', 'textarea', 'email', 'url', 'phone', 'password',\n // Rich Content\n 'markdown', 'html', 'richtext',\n // Numbers\n 'number', 'currency', 'percent', \n // Date & Time\n 'date', 'datetime', 'time',\n // Logic\n 'boolean', 'toggle', // Toggle is a distinct UI from checkbox\n // Selection\n 'select', // Single select dropdown\n 'multiselect', // Multi select (often tags)\n 'radio', // Radio group\n 'checkboxes', // Checkbox group\n // Relational\n 'lookup', 'master_detail', // Dynamic reference\n 'tree', // Hierarchical reference\n // Media\n 'image', 'file', 'avatar', 'video', 'audio',\n // Calculated / System\n 'formula', 'summary', 'autonumber',\n // Enhanced Types\n 'location', // GPS coordinates\n 'address', // Structured address\n 'code', // Code editor (JSON/SQL/JS)\n 'json', // Structured JSON data\n 'color', // Color picker\n 'rating', // Star rating\n 'slider', // Numeric slider\n 'signature', // Digital signature\n 'qrcode', // QR code / Barcode\n 'progress', // Progress bar\n 'tags', // Simple tag list\n // AI/ML Types\n 'vector', // Vector embeddings for AI/ML (semantic search, RAG)\n]);\n\nexport type FieldType = z.infer<typeof FieldType>;\n\n/**\n * Select Option Schema\n * \n * Defines option values for select/picklist fields.\n * \n * **CRITICAL RULE**: The `value` field is a machine identifier that gets stored in the database.\n * It MUST be lowercase to avoid case-sensitivity issues in queries and comparisons.\n * \n * @example Good\n * { label: 'New', value: 'new' }\n * { label: 'In Progress', value: 'in_progress' }\n * { label: 'Closed Won', value: 'closed_won' }\n * \n * @example Bad (will be rejected)\n * { label: 'New', value: 'New' } // uppercase\n * { label: 'In Progress', value: 'In Progress' } // spaces and uppercase\n * { label: 'Closed Won', value: 'Closed_Won' } // mixed case\n */\nexport const SelectOptionSchema = z.object({\n label: z.string().describe('Display label (human-readable, any case allowed)'),\n value: SystemIdentifierSchema.describe('Stored value (lowercase machine identifier)'),\n color: z.string().optional().describe('Color code for badges/charts'),\n default: z.boolean().optional().describe('Is default option'),\n});\n\n/**\n * Location Coordinates Schema\n * GPS coordinates for location field type\n */\nexport const LocationCoordinatesSchema = z.object({\n latitude: z.number().min(-90).max(90).describe('Latitude coordinate'),\n longitude: z.number().min(-180).max(180).describe('Longitude coordinate'),\n altitude: z.number().optional().describe('Altitude in meters'),\n accuracy: z.number().optional().describe('Accuracy in meters'),\n});\n\n/**\n * Currency Configuration Schema\n * Configuration for currency field type supporting multi-currency\n * \n * Note: Currency codes are validated by length only (3 characters) to support:\n * - Standard ISO 4217 codes (USD, EUR, CNY, etc.)\n * - Cryptocurrency codes (BTC, ETH, etc.)\n * - Custom business-specific codes\n * Stricter validation can be implemented at the application layer based on business requirements.\n */\nexport const CurrencyConfigSchema = z.object({\n precision: z.number().int().min(0).max(10).default(2).describe('Decimal precision (default: 2)'),\n currencyMode: z.enum(['dynamic', 'fixed']).default('dynamic').describe('Currency mode: dynamic (user selectable) or fixed (single currency)'),\n defaultCurrency: z.string().length(3).default('CNY').describe('Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)'),\n});\n\n/**\n * Currency Value Schema\n * Runtime value structure for currency fields\n * \n * Note: Currency codes are validated by length only (3 characters) to support flexibility.\n * See CurrencyConfigSchema for details on currency code validation strategy.\n */\nexport const CurrencyValueSchema = z.object({\n value: z.number().describe('Monetary amount'),\n currency: z.string().length(3).describe('Currency code (ISO 4217)'),\n});\n\n/**\n * Address Schema\n * Structured address for address field type\n */\nexport const AddressSchema = z.object({\n street: z.string().optional().describe('Street address'),\n city: z.string().optional().describe('City name'),\n state: z.string().optional().describe('State/Province'),\n postalCode: z.string().optional().describe('Postal/ZIP code'),\n country: z.string().optional().describe('Country name or code'),\n countryCode: z.string().optional().describe('ISO country code (e.g., US, GB)'),\n formatted: z.string().optional().describe('Formatted address string'),\n});\n\n/**\n * Vector Configuration Schema\n * Configuration for vector field type supporting AI/ML embeddings\n * \n * Vector fields store numerical embeddings for semantic search, similarity matching,\n * and Retrieval-Augmented Generation (RAG) workflows.\n * \n * @example\n * // Text embeddings for semantic search\n * {\n * dimensions: 1536, // OpenAI text-embedding-ada-002\n * distanceMetric: 'cosine',\n * indexed: true\n * }\n * \n * @example\n * // Image embeddings with normalization\n * {\n * dimensions: 512, // ResNet-50\n * distanceMetric: 'euclidean',\n * normalized: true,\n * indexed: true\n * }\n */\nexport const VectorConfigSchema = z.object({\n dimensions: z.number().int().min(1).max(10000).describe('Vector dimensionality (e.g., 1536 for OpenAI embeddings)'),\n distanceMetric: z.enum(['cosine', 'euclidean', 'dotProduct', 'manhattan']).default('cosine').describe('Distance/similarity metric for vector search'),\n normalized: z.boolean().default(false).describe('Whether vectors are normalized (unit length)'),\n indexed: z.boolean().default(true).describe('Whether to create a vector index for fast similarity search'),\n indexType: z.enum(['hnsw', 'ivfflat', 'flat']).optional().describe('Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets)'),\n});\n\n/**\n * File Attachment Configuration Schema\n * Configuration for file and attachment field types\n * \n * Provides comprehensive file upload capabilities with:\n * - File type restrictions (allowed/blocked)\n * - File size limits (min/max)\n * - Virus scanning integration\n * - Storage provider integration\n * - Image-specific features (dimensions, thumbnails)\n * \n * @example Basic file upload with size limit\n * {\n * maxSize: 10485760, // 10MB\n * allowedTypes: ['.pdf', '.docx', '.xlsx'],\n * virusScan: true\n * }\n * \n * @example Image upload with validation\n * {\n * maxSize: 5242880, // 5MB\n * allowedTypes: ['.jpg', '.jpeg', '.png', '.webp'],\n * imageValidation: {\n * maxWidth: 4096,\n * maxHeight: 4096,\n * generateThumbnails: true\n * }\n * }\n */\nexport const FileAttachmentConfigSchema = z.object({\n /** File Size Limits */\n minSize: z.number().min(0).optional().describe('Minimum file size in bytes'),\n maxSize: z.number().min(1).optional().describe('Maximum file size in bytes (e.g., 10485760 = 10MB)'),\n \n /** File Type Restrictions */\n allowedTypes: z.array(z.string()).optional().describe('Allowed file extensions (e.g., [\".pdf\", \".docx\", \".jpg\"])'),\n blockedTypes: z.array(z.string()).optional().describe('Blocked file extensions (e.g., [\".exe\", \".bat\", \".sh\"])'),\n allowedMimeTypes: z.array(z.string()).optional().describe('Allowed MIME types (e.g., [\"image/jpeg\", \"application/pdf\"])'),\n blockedMimeTypes: z.array(z.string()).optional().describe('Blocked MIME types'),\n \n /** Virus Scanning */\n virusScan: z.boolean().default(false).describe('Enable virus scanning for uploaded files'),\n virusScanProvider: z.enum(['clamav', 'virustotal', 'metadefender', 'custom']).optional().describe('Virus scanning service provider'),\n virusScanOnUpload: z.boolean().default(true).describe('Scan files immediately on upload'),\n quarantineOnThreat: z.boolean().default(true).describe('Quarantine files if threat detected'),\n \n /** Storage Configuration */\n storageProvider: z.string().optional().describe('Object storage provider name (references ObjectStorageConfig)'),\n storageBucket: z.string().optional().describe('Target bucket name'),\n storagePrefix: z.string().optional().describe('Storage path prefix (e.g., \"uploads/documents/\")'),\n \n /** Image-Specific Validation */\n imageValidation: z.object({\n minWidth: z.number().min(1).optional().describe('Minimum image width in pixels'),\n maxWidth: z.number().min(1).optional().describe('Maximum image width in pixels'),\n minHeight: z.number().min(1).optional().describe('Minimum image height in pixels'),\n maxHeight: z.number().min(1).optional().describe('Maximum image height in pixels'),\n aspectRatio: z.string().optional().describe('Required aspect ratio (e.g., \"16:9\", \"1:1\")'),\n generateThumbnails: z.boolean().default(false).describe('Auto-generate thumbnails'),\n thumbnailSizes: z.array(z.object({\n name: z.string().describe('Thumbnail variant name (e.g., \"small\", \"medium\", \"large\")'),\n width: z.number().min(1).describe('Thumbnail width in pixels'),\n height: z.number().min(1).describe('Thumbnail height in pixels'),\n crop: z.boolean().default(false).describe('Crop to exact dimensions'),\n })).optional().describe('Thumbnail size configurations'),\n preserveMetadata: z.boolean().default(false).describe('Preserve EXIF metadata'),\n autoRotate: z.boolean().default(true).describe('Auto-rotate based on EXIF orientation'),\n }).optional().describe('Image-specific validation rules'),\n \n /** Upload Behavior */\n allowMultiple: z.boolean().default(false).describe('Allow multiple file uploads (overrides field.multiple)'),\n allowReplace: z.boolean().default(true).describe('Allow replacing existing files'),\n allowDelete: z.boolean().default(true).describe('Allow deleting uploaded files'),\n requireUpload: z.boolean().default(false).describe('Require at least one file when field is required'),\n \n /** Metadata Extraction */\n extractMetadata: z.boolean().default(true).describe('Extract file metadata (name, size, type, etc.)'),\n extractText: z.boolean().default(false).describe('Extract text content from documents (OCR/parsing)'),\n \n /** Versioning */\n versioningEnabled: z.boolean().default(false).describe('Keep previous versions of replaced files'),\n maxVersions: z.number().min(1).optional().describe('Maximum number of versions to retain'),\n \n /** Access Control */\n publicRead: z.boolean().default(false).describe('Allow public read access to uploaded files'),\n presignedUrlExpiry: z.number().min(60).max(604800).default(3600).describe('Presigned URL expiration in seconds (default: 1 hour)'),\n}).refine((data) => {\n // Validate minSize is less than or equal to maxSize\n if (data.minSize !== undefined && data.maxSize !== undefined && data.minSize > data.maxSize) {\n return false;\n }\n return true;\n}, {\n message: 'minSize must be less than or equal to maxSize',\n}).refine((data) => {\n // Validate virusScanProvider requires virusScan to be enabled\n if (data.virusScanProvider !== undefined && data.virusScan !== true) {\n return false;\n }\n return true;\n}, {\n message: 'virusScanProvider requires virusScan to be enabled',\n});\n\n/**\n * Data Quality Rules Schema\n * Defines data quality validation and monitoring for fields\n * \n * @example Unique SSN field with completeness requirement\n * {\n * uniqueness: true,\n * completeness: 0.95, // 95% of records must have this field\n * accuracy: {\n * source: 'government_db',\n * threshold: 0.98\n * }\n * }\n */\nexport const DataQualityRulesSchema = z.object({\n /** Enforce uniqueness constraint */\n uniqueness: z.boolean().default(false).describe('Enforce unique values across all records'),\n \n /** Completeness ratio (0-1) indicating minimum percentage of non-null values */\n completeness: z.number().min(0).max(1).default(0).describe('Minimum ratio of non-null values (0-1, default: 0 = no requirement)'),\n \n /** Accuracy validation against authoritative source */\n accuracy: z.object({\n source: z.string().describe('Reference data source for validation (e.g., \"api.verify.com\", \"master_data\")'),\n threshold: z.number().min(0).max(1).describe('Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)'),\n }).optional().describe('Accuracy validation configuration'),\n});\n\n/**\n * Computed Field Caching Schema\n * Configuration for caching computed/formula field results\n * \n * @example Cache product price with 1-hour TTL, invalidate on inventory changes\n * {\n * enabled: true,\n * ttl: 3600,\n * invalidateOn: ['inventory.quantity', 'pricing.discount']\n * }\n */\nexport const ComputedFieldCacheSchema = z.object({\n /** Enable caching for this computed field */\n enabled: z.boolean().describe('Enable caching for computed field results'),\n \n /** Time-to-live in seconds */\n ttl: z.number().min(0).describe('Cache TTL in seconds (0 = no expiration)'),\n \n /** Array of field paths that trigger cache invalidation when changed */\n invalidateOn: z.array(z.string()).describe('Field paths that invalidate cache (e.g., [\"inventory.quantity\", \"pricing.base_price\"])'),\n});\n\n/**\n * Field Schema - Best Practice Enterprise Pattern\n */\n/**\n * Field Definition Schema\n * Defines the properties, type, and behavior of a single field (column) on an object.\n * \n * @example Lookup Field\n * {\n * name: \"account_id\",\n * label: \"Account\",\n * type: \"lookup\",\n * reference: \"accounts\",\n * required: true\n * }\n * \n * @example Select Field\n * {\n * name: \"status\",\n * label: \"Status\",\n * type: \"select\",\n * options: [\n * { label: \"Open\", value: \"open\" },\n * { label: \"Closed\", value: \"closed\" }\n * ],\n * defaultValue: \"open\"\n * }\n */\nexport const FieldSchema = z.object({\n /** Identity */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Machine name (snake_case)').optional(),\n label: z.string().optional().describe('Human readable label'),\n type: FieldType.describe('Field Data Type'),\n description: z.string().optional().describe('Tooltip/Help text'),\n format: z.string().optional().describe('Format string (e.g. email, phone)'),\n\n /** Database Constraints */\n required: z.boolean().default(false).describe('Is required'),\n searchable: z.boolean().default(false).describe('Is searchable'),\n multiple: z.boolean().default(false).describe('Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image.'),\n unique: z.boolean().default(false).describe('Is unique constraint'),\n defaultValue: z.any().optional().describe('Default value'),\n \n /** Text/String Constraints */\n maxLength: z.number().optional().describe('Max character length'),\n minLength: z.number().optional().describe('Min character length'),\n \n /** Number Constraints */\n precision: z.number().optional().describe('Total digits'),\n scale: z.number().optional().describe('Decimal places'),\n min: z.number().optional().describe('Minimum value'),\n max: z.number().optional().describe('Maximum value'),\n\n /** Selection Options */\n options: z.array(SelectOptionSchema).optional().describe('Static options for select/multiselect'),\n\n /** Relationship Config */\n reference: z.string().optional().describe('Target Object Name'),\n referenceFilters: z.array(z.string()).optional().describe('Filters applied to lookup dialogs (e.g. \"active = true\")'),\n writeRequiresMasterRead: z.boolean().optional().describe('If true, user needs read access to master record to edit this field'),\n deleteBehavior: z.enum(['set_null', 'cascade', 'restrict']).optional().default('set_null').describe('What happens if referenced record is deleted'),\n\n /** Calculation */\n expression: z.string().optional().describe('Formula expression'),\n formula: z.string().optional().describe('Deprecated: Use expression'),\n summaryOperations: z.object({\n object: z.string(),\n field: z.string(),\n function: z.enum(['count', 'sum', 'min', 'max', 'avg'])\n }).optional().describe('Roll-up summary definition'),\n\n /** Enhanced Field Type Configurations */\n // Code field config\n language: z.string().optional().describe('Programming language for syntax highlighting (e.g., javascript, python, sql)'),\n theme: z.string().optional().describe('Code editor theme (e.g., dark, light, monokai)'),\n lineNumbers: z.boolean().optional().describe('Show line numbers in code editor'),\n \n // Rating field config\n maxRating: z.number().optional().describe('Maximum rating value (default: 5)'),\n allowHalf: z.boolean().optional().describe('Allow half-star ratings'),\n \n // Location field config\n displayMap: z.boolean().optional().describe('Display map widget for location field'),\n allowGeocoding: z.boolean().optional().describe('Allow address-to-coordinate conversion'),\n \n // Address field config\n addressFormat: z.enum(['us', 'uk', 'international']).optional().describe('Address format template'),\n \n // Color field config\n colorFormat: z.enum(['hex', 'rgb', 'rgba', 'hsl']).optional().describe('Color value format'),\n allowAlpha: z.boolean().optional().describe('Allow transparency/alpha channel'),\n presetColors: z.array(z.string()).optional().describe('Preset color options'),\n \n // Slider field config\n step: z.number().optional().describe('Step increment for slider (default: 1)'),\n showValue: z.boolean().optional().describe('Display current value on slider'),\n marks: z.record(z.string(), z.string()).optional().describe('Custom marks/labels at specific values (e.g., {0: \"Low\", 50: \"Medium\", 100: \"High\"})'),\n \n // QR Code / Barcode field config\n // Note: qrErrorCorrection is only applicable when barcodeFormat='qr'\n // Runtime validation should enforce this constraint\n barcodeFormat: z.enum(['qr', 'ean13', 'ean8', 'code128', 'code39', 'upca', 'upce']).optional().describe('Barcode format type'),\n qrErrorCorrection: z.enum(['L', 'M', 'Q', 'H']).optional().describe('QR code error correction level (L=7%, M=15%, Q=25%, H=30%). Only applicable when barcodeFormat is \"qr\"'),\n displayValue: z.boolean().optional().describe('Display human-readable value below barcode/QR code'),\n allowScanning: z.boolean().optional().describe('Enable camera scanning for barcode/QR code input'),\n\n // Currency field config\n currencyConfig: CurrencyConfigSchema.optional().describe('Configuration for currency field type'),\n\n // Vector field config\n vectorConfig: VectorConfigSchema.optional().describe('Configuration for vector field type (AI/ML embeddings)'),\n\n // File attachment field config\n fileAttachmentConfig: FileAttachmentConfigSchema.optional().describe('Configuration for file and attachment field types'),\n\n /** Enhanced Security & Compliance */\n // Encryption configuration\n encryptionConfig: EncryptionConfigSchema.optional().describe('Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS)'),\n \n // Data masking rules\n maskingRule: MaskingRuleSchema.optional().describe('Data masking rules for PII protection'),\n \n // Audit trail\n auditTrail: z.boolean().default(false).describe('Enable detailed audit trail for this field (tracks all changes with user and timestamp)'),\n \n /** Field Dependencies & Relationships */\n // Field dependencies\n dependencies: z.array(z.string()).optional().describe('Array of field names that this field depends on (for formulas, visibility rules, etc.)'),\n \n /** Computed Field Optimization */\n // Computed field caching\n cached: ComputedFieldCacheSchema.optional().describe('Caching configuration for computed/formula fields'),\n \n /** Data Quality & Governance */\n // Data quality rules\n dataQuality: DataQualityRulesSchema.optional().describe('Data quality validation and monitoring rules'),\n\n /** Security & Visibility */\n hidden: z.boolean().default(false).describe('Hidden from default UI'),\n readonly: z.boolean().default(false).describe('Read-only in UI'),\n encryption: z.boolean().default(false).describe('Deprecated: Use encryptionConfig for enhanced encryption features. Simple flag for backward compatibility.'),\n \n /** Indexing */\n index: z.boolean().default(false).describe('Create standard database index'),\n externalId: z.boolean().default(false).describe('Is external ID for upsert operations'),\n});\n\nexport type Field = z.infer<typeof FieldSchema>;\nexport type SelectOption = z.infer<typeof SelectOptionSchema>;\nexport type LocationCoordinates = z.infer<typeof LocationCoordinatesSchema>;\nexport type Address = z.infer<typeof AddressSchema>;\nexport type CurrencyConfig = z.infer<typeof CurrencyConfigSchema>;\nexport type CurrencyValue = z.infer<typeof CurrencyValueSchema>;\nexport type VectorConfig = z.infer<typeof VectorConfigSchema>;\nexport type FileAttachmentConfig = z.infer<typeof FileAttachmentConfigSchema>;\nexport type DataQualityRules = z.infer<typeof DataQualityRulesSchema>;\nexport type ComputedFieldCache = z.infer<typeof ComputedFieldCacheSchema>;\n\n/**\n * Field Factory Helper\n */\nexport type FieldInput = Omit<Partial<Field>, 'type'>;\n\nexport const Field = {\n text: (config: FieldInput = {}) => ({ type: 'text', ...config } as const),\n textarea: (config: FieldInput = {}) => ({ type: 'textarea', ...config } as const),\n number: (config: FieldInput = {}) => ({ type: 'number', ...config } as const),\n boolean: (config: FieldInput = {}) => ({ type: 'boolean', ...config } as const),\n date: (config: FieldInput = {}) => ({ type: 'date', ...config } as const),\n datetime: (config: FieldInput = {}) => ({ type: 'datetime', ...config } as const),\n currency: (config: FieldInput = {}) => ({ type: 'currency', ...config } as const),\n percent: (config: FieldInput = {}) => ({ type: 'percent', ...config } as const),\n url: (config: FieldInput = {}) => ({ type: 'url', ...config } as const),\n email: (config: FieldInput = {}) => ({ type: 'email', ...config } as const),\n phone: (config: FieldInput = {}) => ({ type: 'phone', ...config } as const),\n image: (config: FieldInput = {}) => ({ type: 'image', ...config } as const),\n file: (config: FieldInput = {}) => ({ type: 'file', ...config } as const),\n avatar: (config: FieldInput = {}) => ({ type: 'avatar', ...config } as const),\n formula: (config: FieldInput = {}) => ({ type: 'formula', ...config } as const),\n summary: (config: FieldInput = {}) => ({ type: 'summary', ...config } as const),\n autonumber: (config: FieldInput = {}) => ({ type: 'autonumber', ...config } as const),\n markdown: (config: FieldInput = {}) => ({ type: 'markdown', ...config } as const),\n html: (config: FieldInput = {}) => ({ type: 'html', ...config } as const),\n password: (config: FieldInput = {}) => ({ type: 'password', ...config } as const),\n \n /**\n * Select field helper with backward-compatible API\n * \n * Automatically converts option values to lowercase to enforce naming conventions.\n * \n * @example Old API (array first) - auto-converts to lowercase\n * Field.select(['High', 'Low'], { label: 'Priority' })\n * // Results in: [{ label: 'High', value: 'high' }, { label: 'Low', value: 'low' }]\n * \n * @example New API (config object) - enforces lowercase\n * Field.select({ options: [{label: 'High', value: 'high'}], label: 'Priority' })\n * \n * @example Multi-word values - converts to snake_case\n * Field.select(['In Progress', 'Closed Won'], { label: 'Status' })\n * // Results in: [{ label: 'In Progress', value: 'in_progress' }, { label: 'Closed Won', value: 'closed_won' }]\n */\n select: (optionsOrConfig: SelectOption[] | string[] | FieldInput & { options: SelectOption[] | string[] }, config?: FieldInput) => {\n // Helper function to convert string to lowercase snake_case\n const toSnakeCase = (str: string): string => {\n return str\n .toLowerCase()\n .replace(/\\s+/g, '_') // Replace spaces with underscores\n .replace(/[^a-z0-9_]/g, ''); // Remove invalid characters (keeping underscores only)\n };\n\n // Support both old and new signatures:\n // Old: Field.select(['a', 'b'], { label: 'X' })\n // New: Field.select({ options: [{label: 'A', value: 'a'}], label: 'X' })\n let options: SelectOption[];\n let finalConfig: FieldInput;\n \n if (Array.isArray(optionsOrConfig)) {\n // Old signature: array as first param\n options = optionsOrConfig.map(o => \n typeof o === 'string' \n ? { label: o, value: toSnakeCase(o) } // Auto-convert string to snake_case\n : { ...o, value: o.value.toLowerCase() } // Ensure value is lowercase\n );\n finalConfig = config || {};\n } else {\n // New signature: config object with options\n options = (optionsOrConfig.options || []).map(o => \n typeof o === 'string' \n ? { label: o, value: toSnakeCase(o) } // Auto-convert string to snake_case\n : { ...o, value: o.value.toLowerCase() } // Ensure value is lowercase\n );\n // Remove options from config to avoid confusion\n const { options: _, ...restConfig } = optionsOrConfig;\n finalConfig = restConfig;\n }\n \n return { type: 'select', options, ...finalConfig } as const;\n },\n\n \n lookup: (reference: string, config: FieldInput = {}) => ({ \n type: 'lookup', \n reference, \n ...config \n } as const),\n \n masterDetail: (reference: string, config: FieldInput = {}) => ({ \n type: 'master_detail', \n reference, \n ...config \n } as const),\n\n // Enhanced Field Type Helpers\n location: (config: FieldInput = {}) => ({ \n type: 'location', \n ...config \n } as const),\n \n address: (config: FieldInput = {}) => ({ \n type: 'address', \n ...config \n } as const),\n \n richtext: (config: FieldInput = {}) => ({ \n type: 'richtext', \n ...config \n } as const),\n \n code: (language?: string, config: FieldInput = {}) => ({ \n type: 'code', \n language,\n ...config \n } as const),\n \n color: (config: FieldInput = {}) => ({ \n type: 'color', \n ...config \n } as const),\n \n rating: (maxRating: number = 5, config: FieldInput = {}) => ({ \n type: 'rating', \n maxRating,\n ...config \n } as const),\n \n signature: (config: FieldInput = {}) => ({ \n type: 'signature', \n ...config \n } as const),\n \n slider: (config: FieldInput = {}) => ({ \n type: 'slider', \n ...config \n } as const),\n \n qrcode: (config: FieldInput = {}) => ({ \n type: 'qrcode', \n ...config \n } as const),\n \n vector: (dimensions: number, config: FieldInput = {}) => ({ \n type: 'vector', \n vectorConfig: {\n dimensions,\n distanceMetric: 'cosine' as const,\n normalized: false,\n indexed: true,\n ...config.vectorConfig\n },\n ...config \n } as const),\n};\n","import { z } from 'zod';\n\n/**\n * Field-level encryption protocol\n * GDPR/HIPAA/PCI-DSS compliant\n */\nexport const EncryptionAlgorithmSchema = z.enum([\n 'aes-256-gcm',\n 'aes-256-cbc',\n 'chacha20-poly1305',\n]);\n\nexport type EncryptionAlgorithm = z.infer<typeof EncryptionAlgorithmSchema>;\n\nexport const KeyManagementProviderSchema = z.enum([\n 'local',\n 'aws-kms',\n 'azure-key-vault',\n 'gcp-kms',\n 'hashicorp-vault',\n]);\n\nexport type KeyManagementProvider = z.infer<typeof KeyManagementProviderSchema>;\n\nexport const KeyRotationPolicySchema = z.object({\n enabled: z.boolean().default(false),\n frequencyDays: z.number().min(1).default(90),\n retainOldVersions: z.number().default(3),\n autoRotate: z.boolean().default(true),\n});\n\nexport type KeyRotationPolicy = z.infer<typeof KeyRotationPolicySchema>;\n\nexport const EncryptionConfigSchema = z.object({\n enabled: z.boolean().default(false),\n algorithm: EncryptionAlgorithmSchema.default('aes-256-gcm'),\n keyManagement: z.object({\n provider: KeyManagementProviderSchema,\n keyId: z.string().optional(),\n rotationPolicy: KeyRotationPolicySchema.optional(),\n }),\n scope: z.enum(['field', 'record', 'table', 'database']),\n deterministicEncryption: z.boolean().default(false).describe('Allows equality queries on encrypted data'),\n searchableEncryption: z.boolean().default(false).describe('Allows search on encrypted data'),\n});\n\nexport type EncryptionConfig = z.infer<typeof EncryptionConfigSchema>;\n\nexport const FieldEncryptionSchema = z.object({\n fieldName: z.string(),\n encryptionConfig: EncryptionConfigSchema,\n indexable: z.boolean().default(false),\n});\n\nexport type FieldEncryption = z.infer<typeof FieldEncryptionSchema>;\n","import { z } from 'zod';\n\n/**\n * Data masking protocol for PII protection\n */\nexport const MaskingStrategySchema = z.enum([\n 'redact', // Complete redaction: ****\n 'partial', // Partial masking: 138****5678\n 'hash', // Hash value: sha256(value)\n 'tokenize', // Tokenization: token-12345\n 'randomize', // Randomize: generate random value\n 'nullify', // Null value: null\n 'substitute', // Substitute with dummy data\n]);\n\nexport type MaskingStrategy = z.infer<typeof MaskingStrategySchema>;\n\nexport const MaskingRuleSchema = z.object({\n field: z.string(),\n strategy: MaskingStrategySchema,\n pattern: z.string().optional().describe('Regex pattern for partial masking'),\n preserveFormat: z.boolean().default(true),\n preserveLength: z.boolean().default(true),\n roles: z.array(z.string()).optional().describe('Roles that see masked data'),\n exemptRoles: z.array(z.string()).optional().describe('Roles that see unmasked data'),\n});\n\nexport type MaskingRule = z.infer<typeof MaskingRuleSchema>;\n\nexport const MaskingConfigSchema = z.object({\n enabled: z.boolean().default(false),\n rules: z.array(MaskingRuleSchema),\n auditUnmasking: z.boolean().default(true),\n});\n\nexport type MaskingConfig = z.infer<typeof MaskingConfigSchema>;\n","import { z } from 'zod';\nimport { FieldSchema } from './field.zod';\nimport { ValidationRuleSchema } from './validation.zod';\n\n/**\n * API Operations Enum\n */\nexport const ApiMethod = z.enum([\n 'get', 'list', // Read\n 'create', 'update', 'delete', // Write\n 'upsert', // Idempotent Write\n 'bulk', // Batch operations\n 'aggregate', // Analytics (count, sum)\n 'history', // Audit access\n 'search', // Search access\n 'restore', 'purge', // Trash management\n 'import', 'export', // Data portability\n]);\nexport type ApiMethod = z.infer<typeof ApiMethod>;\n\n/**\n * Capability Flags\n * Defines what system features are enabled for this object.\n * \n * Optimized based on industry standards (Salesforce, ServiceNow):\n * - Added `activities` (Tasks/Events)\n * - Added `mru` (Recent Items)\n * - Added `feeds` (Social/Chatter)\n * - Grouped API permissions\n * \n * @example\n * {\n * trackHistory: true,\n * searchable: true,\n * apiEnabled: true,\n * files: true\n * }\n */\nexport const ObjectCapabilities = z.object({\n /** Enable history tracking (Audit Trail) */\n trackHistory: z.boolean().default(false).describe('Enable field history tracking for audit compliance'),\n \n /** Enable global search indexing */\n searchable: z.boolean().default(true).describe('Index records for global search'),\n \n /** Enable REST/GraphQL API access */\n apiEnabled: z.boolean().default(true).describe('Expose object via automatic APIs'),\n\n /** \n * API Supported Operations\n * Granular control over API exposure.\n */\n apiMethods: z.array(ApiMethod).optional().describe('Whitelist of allowed API operations'),\n \n /** Enable standard attachments/files engine */\n files: z.boolean().default(false).describe('Enable file attachments and document management'),\n \n /** Enable social collaboration (Comments, Mentions, Feeds) */\n feeds: z.boolean().default(false).describe('Enable social feed, comments, and mentions (Chatter-like)'),\n \n /** Enable standard Activity suite (Tasks, Calendars, Events) */\n activities: z.boolean().default(false).describe('Enable standard tasks and events tracking'),\n \n /** Enable Recycle Bin / Soft Delete */\n trash: z.boolean().default(true).describe('Enable soft-delete with restore capability'),\n\n /** Enable \"Recently Viewed\" tracking */\n mru: z.boolean().default(true).describe('Track Most Recently Used (MRU) list for users'),\n \n /** Allow cloning records */\n clone: z.boolean().default(true).describe('Allow record deep cloning'),\n});\n\n/**\n * Schema for database indexes.\n * Enhanced with additional index types and configuration options\n * \n * @example\n * {\n * name: \"idx_account_name\",\n * fields: [\"name\"],\n * type: \"btree\",\n * unique: true\n * }\n */\nexport const IndexSchema = z.object({\n name: z.string().optional().describe('Index name (auto-generated if not provided)'),\n fields: z.array(z.string()).describe('Fields included in the index'),\n type: z.enum(['btree', 'hash', 'gin', 'gist', 'fulltext']).optional().default('btree').describe('Index algorithm type'),\n unique: z.boolean().optional().default(false).describe('Whether the index enforces uniqueness'),\n partial: z.string().optional().describe('Partial index condition (SQL WHERE clause for conditional indexes)'),\n});\n\n/**\n * Search Configuration\n * Defines how this object behaves in search results.\n * \n * @example\n * {\n * fields: [\"name\", \"email\", \"phone\"],\n * displayFields: [\"name\", \"title\"],\n * filters: [\"status = 'active'\"]\n * }\n */\nexport const SearchConfigSchema = z.object({\n fields: z.array(z.string()).describe('Fields to index for full-text search weighting'),\n displayFields: z.array(z.string()).optional().describe('Fields to display in search result cards'),\n filters: z.array(z.string()).optional().describe('Default filters for search results'),\n});\n\n/**\n * Multi-Tenancy Configuration Schema\n * Configures tenant isolation strategy for SaaS applications\n * \n * @example Shared database with tenant_id isolation\n * {\n * enabled: true,\n * strategy: 'shared',\n * tenantField: 'tenant_id',\n * crossTenantAccess: false\n * }\n */\nexport const TenancyConfigSchema = z.object({\n enabled: z.boolean().describe('Enable multi-tenancy for this object'),\n strategy: z.enum(['shared', 'isolated', 'hybrid']).describe('Tenant isolation strategy: shared (single DB, row-level), isolated (separate DB per tenant), hybrid (mix)'),\n tenantField: z.string().default('tenant_id').describe('Field name for tenant identifier'),\n crossTenantAccess: z.boolean().default(false).describe('Allow cross-tenant data access (with explicit permission)'),\n});\n\n/**\n * Soft Delete Configuration Schema\n * Implements recycle bin / trash functionality\n * \n * @example Standard soft delete with cascade\n * {\n * enabled: true,\n * field: 'deleted_at',\n * cascadeDelete: true\n * }\n */\nexport const SoftDeleteConfigSchema = z.object({\n enabled: z.boolean().describe('Enable soft delete (trash/recycle bin)'),\n field: z.string().default('deleted_at').describe('Field name for soft delete timestamp'),\n cascadeDelete: z.boolean().default(false).describe('Cascade soft delete to related records'),\n});\n\n/**\n * Versioning Configuration Schema\n * Implements record versioning and history tracking\n * \n * @example Snapshot versioning with 90-day retention\n * {\n * enabled: true,\n * strategy: 'snapshot',\n * retentionDays: 90,\n * versionField: 'version'\n * }\n */\nexport const VersioningConfigSchema = z.object({\n enabled: z.boolean().describe('Enable record versioning'),\n strategy: z.enum(['snapshot', 'delta', 'event-sourcing']).describe('Versioning strategy: snapshot (full copy), delta (changes only), event-sourcing (event log)'),\n retentionDays: z.number().min(1).optional().describe('Number of days to retain old versions (undefined = infinite)'),\n versionField: z.string().default('version').describe('Field name for version number/timestamp'),\n});\n\n/**\n * Partitioning Strategy Schema\n * Configures table partitioning for performance at scale\n * \n * @example Range partitioning by date (monthly)\n * {\n * enabled: true,\n * strategy: 'range',\n * key: 'created_at',\n * interval: '1 month'\n * }\n */\nexport const PartitioningConfigSchema = z.object({\n enabled: z.boolean().describe('Enable table partitioning'),\n strategy: z.enum(['range', 'hash', 'list']).describe('Partitioning strategy: range (date ranges), hash (consistent hashing), list (predefined values)'),\n key: z.string().describe('Field name to partition by'),\n interval: z.string().optional().describe('Partition interval for range strategy (e.g., \"1 month\", \"1 year\")'),\n}).refine((data) => {\n // If strategy is 'range', interval must be provided\n if (data.strategy === 'range' && !data.interval) {\n return false;\n }\n return true;\n}, {\n message: 'interval is required when strategy is \"range\"',\n});\n\n/**\n * Change Data Capture (CDC) Configuration Schema\n * Enables real-time data streaming to external systems\n * \n * @example Stream all changes to Kafka\n * {\n * enabled: true,\n * events: ['insert', 'update', 'delete'],\n * destination: 'kafka://events.objectstack'\n * }\n */\nexport const CDCConfigSchema = z.object({\n enabled: z.boolean().describe('Enable Change Data Capture'),\n events: z.array(z.enum(['insert', 'update', 'delete'])).describe('Event types to capture'),\n destination: z.string().describe('Destination endpoint (e.g., \"kafka://topic\", \"webhook://url\")'),\n});\n\n/**\n * Base Object Schema Definition\n * \n * The Blueprint of a Business Object.\n * Represents a table, a collection, or a virtual entity.\n * \n * @example\n * ```yaml\n * name: project_task\n * label: Project Task\n * icon: task\n * fields:\n * project:\n * type: lookup\n * reference: project\n * status:\n * type: select\n * options: [todo, in_progress, done]\n * enable:\n * trackHistory: true\n * files: true\n * ```\n */\nconst ObjectSchemaBase = z.object({\n /** \n * Identity & Metadata \n */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Machine unique key (snake_case). Immutable.'),\n label: z.string().optional().describe('Human readable singular label (e.g. \"Account\")'),\n pluralLabel: z.string().optional().describe('Human readable plural label (e.g. \"Accounts\")'),\n description: z.string().optional().describe('Developer documentation / description'),\n icon: z.string().optional().describe('Icon name (Lucide/Material) for UI representation'),\n \n /**\n * Taxonomy & Organization\n */\n tags: z.array(z.string()).optional().describe('Categorization tags (e.g. \"sales\", \"system\", \"reference\")'),\n active: z.boolean().optional().default(true).describe('Is the object active and usable'),\n isSystem: z.boolean().optional().default(false).describe('Is system object (protected from deletion)'),\n abstract: z.boolean().optional().default(false).describe('Is abstract base object (cannot be instantiated)'),\n\n /** \n * Storage & Virtualization \n */\n datasource: z.string().optional().default('default').describe('Target Datasource ID. \"default\" is the primary DB.'),\n tableName: z.string().optional().describe('Physical table/collection name in the target datasource'),\n \n /** \n * Data Model \n */\n fields: z.record(z.string().regex(/^[a-z_][a-z0-9_]*$/, {\n message: 'Field names must be lowercase snake_case (e.g., \"first_name\", \"company\", \"annual_revenue\")',\n }), FieldSchema).describe('Field definitions map. Keys must be snake_case identifiers.'),\n indexes: z.array(IndexSchema).optional().describe('Database performance indexes'),\n \n /**\n * Advanced Data Management\n */\n \n // Multi-tenancy configuration\n tenancy: TenancyConfigSchema.optional().describe('Multi-tenancy configuration for SaaS applications'),\n \n // Soft delete configuration\n softDelete: SoftDeleteConfigSchema.optional().describe('Soft delete (trash/recycle bin) configuration'),\n \n // Versioning configuration\n versioning: VersioningConfigSchema.optional().describe('Record versioning and history tracking configuration'),\n \n // Partitioning strategy\n partitioning: PartitioningConfigSchema.optional().describe('Table partitioning configuration for performance'),\n \n // Change Data Capture\n cdc: CDCConfigSchema.optional().describe('Change Data Capture (CDC) configuration for real-time data streaming'),\n \n /**\n * Logic & Validation (Co-located)\n * Best Practice: Define rules close to data.\n */\n validations: z.array(ValidationRuleSchema).optional().describe('Object-level validation rules'),\n\n /** \n * Display & UI Hints (Data-Layer)\n */\n titleFormat: z.string().optional().describe('Title expression (e.g. \"{name} - {code}\"). Overrides nameField.'),\n compactLayout: z.array(z.string()).optional().describe('Primary fields for hover/cards/lookups'),\n \n /** \n * Search Engine Config \n */\n search: SearchConfigSchema.optional().describe('Search engine configuration'),\n \n /** \n * System Capabilities \n */\n enable: ObjectCapabilities.optional().describe('Enabled system features modules'),\n});\n\n/**\n * Enhanced ObjectSchema with Factory\n */\nexport const ObjectSchema = Object.assign(ObjectSchemaBase, {\n create: <T extends z.input<typeof ObjectSchemaBase>>(config: T) => config,\n});\n\nexport type ServiceObject = z.infer<typeof ObjectSchemaBase>;\nexport type ObjectCapabilities = z.infer<typeof ObjectCapabilities>;\nexport type ObjectIndex = z.infer<typeof IndexSchema>;\nexport type TenancyConfig = z.infer<typeof TenancyConfigSchema>;\nexport type SoftDeleteConfig = z.infer<typeof SoftDeleteConfigSchema>;\nexport type VersioningConfig = z.infer<typeof VersioningConfigSchema>;\nexport type PartitioningConfig = z.infer<typeof PartitioningConfigSchema>;\nexport type CDCConfig = z.infer<typeof CDCConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * # ObjectStack Validation Protocol\n * \n * This module defines the validation schema protocol for ObjectStack, providing a comprehensive\n * type-safe validation system similar to Salesforce's validation rules but with enhanced capabilities.\n * \n * ## Overview\n * \n * Validation rules are applied at the data layer to ensure data integrity and enforce business logic.\n * The system supports multiple validation types:\n * \n * 1. **Script Validation**: Formula-based validation using expressions\n * 2. **Uniqueness Validation**: Enforce unique constraints across fields\n * 3. **State Machine Validation**: Control allowed state transitions\n * 4. **Format Validation**: Validate field formats (email, URL, regex, etc.)\n * 5. **Cross-Field Validation**: Validate relationships between multiple fields\n * 6. **Async Validation**: Remote validation via API calls\n * 7. **Custom Validation**: User-defined validation functions\n * 8. **Conditional Validation**: Apply validations based on conditions\n * \n * ## Salesforce Comparison\n * \n * ObjectStack validation rules are inspired by Salesforce validation rules but enhanced:\n * - Salesforce: Formula-based validation with `Error Condition Formula`\n * - ObjectStack: Multiple validation types with composable rules\n * \n * Example Salesforce validation rule:\n * ```\n * Rule Name: Discount_Cannot_Exceed_40_Percent\n * Error Condition Formula: Discount_Percent__c > 0.40\n * Error Message: Discount cannot exceed 40%.\n * ```\n * \n * Equivalent ObjectStack rule:\n * ```typescript\n * {\n * type: 'script',\n * name: 'discount_cannot_exceed_40_percent',\n * condition: 'discount_percent > 0.40',\n * message: 'Discount cannot exceed 40%',\n * severity: 'error'\n * }\n * ```\n */\n\n/**\n * Base Validation Rule\n * \n * All validation rules extend from this base schema with common properties.\n * \n * ## Industry Standard Enhancements\n * - **Label/Description**: Essential for governance in large systems with thousands of rules.\n * - **Events**: granular control over validation timing (Context-aware validation).\n * - **Tags**: categorization for reporting and management.\n */\nconst BaseValidationSchema = z.object({\n // Identification\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Unique rule name (snake_case)'),\n label: z.string().optional().describe('Human-readable label for the rule listing'),\n description: z.string().optional().describe('Administrative notes explaining the business reason'),\n \n // Execution Control\n active: z.boolean().default(true),\n events: z.array(z.enum(['insert', 'update', 'delete'])).default(['insert', 'update']).describe('Validation contexts'),\n \n // Classification\n tags: z.array(z.string()).optional().describe('Categorization tags (e.g., \"compliance\", \"billing\")'),\n \n // Feedback\n severity: z.enum(['error', 'warning', 'info']).default('error'),\n message: z.string().describe('Error message to display to the user'),\n});\n\n/**\n * 1. Script/Expression Validation\n * Generic formula-based validation.\n */\nexport const ScriptValidationSchema = BaseValidationSchema.extend({\n type: z.literal('script'),\n condition: z.string().describe('Formula expression. If TRUE, validation fails. (e.g. amount < 0)'),\n});\n\n/**\n * 2. Uniqueness Validation\n * specialized optimized check for unique constraints.\n */\nexport const UniquenessValidationSchema = BaseValidationSchema.extend({\n type: z.literal('unique'),\n fields: z.array(z.string()).describe('Fields that must be combined unique'),\n scope: z.string().optional().describe('Formula condition for scope (e.g. active = true)'),\n caseSensitive: z.boolean().default(true),\n});\n\n/**\n * 3. State Machine Validation\n * State transition logic.\n */\nexport const StateMachineValidationSchema = BaseValidationSchema.extend({\n type: z.literal('state_machine'),\n field: z.string().describe('State field (e.g. status)'),\n transitions: z.record(z.string(), z.array(z.string())).describe('Map of { OldState: [AllowedNewStates] }'),\n});\n\n/**\n * 4. Value Format Validation\n * Regex or specialized formats.\n */\nexport const FormatValidationSchema = BaseValidationSchema.extend({\n type: z.literal('format'),\n field: z.string(),\n regex: z.string().optional(),\n format: z.enum(['email', 'url', 'phone', 'json']).optional(),\n});\n\n/**\n * 5. Cross-Field Validation\n * Validates relationships between multiple fields.\n * \n * ## Use Cases\n * - Date range validations (end_date > start_date)\n * - Amount comparisons (discount < total)\n * - Complex business rules involving multiple fields\n * \n * ## Salesforce Examples\n * \n * ### Example 1: Close Date Must Be In Current or Future Month\n * **Salesforce Formula:**\n * ```\n * MONTH(CloseDate) < MONTH(TODAY()) ||\n * YEAR(CloseDate) < YEAR(TODAY())\n * ```\n * \n * **ObjectStack Equivalent:**\n * ```typescript\n * {\n * type: 'cross_field',\n * name: 'close_date_future',\n * condition: 'MONTH(close_date) >= MONTH(TODAY()) AND YEAR(close_date) >= YEAR(TODAY())',\n * fields: ['close_date'],\n * message: 'Close Date must be in the current or a future month'\n * }\n * ```\n * \n * ### Example 2: Discount Validation\n * **Salesforce Formula:**\n * ```\n * Discount__c > (Amount__c * 0.40)\n * ```\n * \n * **ObjectStack Equivalent:**\n * ```typescript\n * {\n * type: 'cross_field',\n * name: 'discount_limit',\n * condition: 'discount > (amount * 0.40)',\n * fields: ['discount', 'amount'],\n * message: 'Discount cannot exceed 40% of the amount'\n * }\n * ```\n * \n * ### Example 3: Opportunity Must Have Products\n * **Salesforce Formula:**\n * ```\n * ISBLANK(Products__c) && ISPICKVAL(StageName, \"Closed Won\")\n * ```\n * \n * **ObjectStack Equivalent:**\n * ```typescript\n * {\n * type: 'cross_field',\n * name: 'products_required_for_won',\n * condition: 'products = null AND stage = \"closed_won\"',\n * fields: ['products', 'stage'],\n * message: 'Opportunity must have products to be marked as Closed Won'\n * }\n * ```\n */\nexport const CrossFieldValidationSchema = BaseValidationSchema.extend({\n type: z.literal('cross_field'),\n condition: z.string().describe('Formula expression comparing fields (e.g. \"end_date > start_date\")'),\n fields: z.array(z.string()).describe('Fields involved in the validation'),\n});\n\n/**\n * 6. JSON Structure Validation\n * Validates JSON fields against a JSON Schema.\n * \n * ## Use Cases\n * - Validating configuration objects stored in JSON fields\n * - Enforcing API payload structures\n * - Complex nested data validation\n */\nexport const JSONValidationSchema = BaseValidationSchema.extend({\n type: z.literal('json_schema'),\n field: z.string().describe('JSON field to validate'),\n schema: z.record(z.string(), z.any()).describe('JSON Schema object definition'),\n});\n\n/**\n * 7. Async Validation\n * Remote validation via API call or database query.\n * \n * ## Use Cases\n * \n * ### 1. Email Uniqueness Check\n * Check if an email address is already registered in the system.\n * ```typescript\n * {\n * type: 'async',\n * name: 'unique_email',\n * field: 'email',\n * validatorUrl: '/api/users/check-email',\n * message: 'This email address is already registered',\n * debounce: 500, // Wait 500ms after user stops typing\n * timeout: 3000\n * }\n * ```\n * \n * ### 2. Username Availability\n * Verify username is available before form submission.\n * ```typescript\n * {\n * type: 'async',\n * name: 'username_available',\n * field: 'username',\n * validatorUrl: '/api/users/check-username',\n * message: 'This username is already taken',\n * debounce: 300,\n * timeout: 2000\n * }\n * ```\n * \n * ### 3. Tax ID Validation\n * Validate tax ID with government API (e.g., IRS, HMRC).\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_tax_id',\n * field: 'tax_id',\n * validatorFunction: 'validateTaxIdWithIRS',\n * message: 'Invalid Tax ID number',\n * timeout: 10000, // Government APIs may be slow\n * params: { country: 'US', format: 'EIN' }\n * }\n * ```\n * \n * ### 4. Credit Card Validation\n * Verify credit card with payment gateway without charging.\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_card',\n * field: 'card_number',\n * validatorUrl: 'https://api.stripe.com/v1/tokens/validate',\n * message: 'Invalid credit card number',\n * timeout: 5000,\n * params: { \n * mode: 'validate_only',\n * checkFunds: false \n * }\n * }\n * ```\n * \n * ### 5. Address Validation\n * Validate and standardize addresses using geocoding services.\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_address',\n * field: 'street_address',\n * validatorFunction: 'validateAddressWithGoogleMaps',\n * message: 'Unable to verify address',\n * timeout: 4000,\n * params: {\n * includeFields: ['city', 'state', 'zip'],\n * strictMode: true,\n * country: 'US'\n * }\n * }\n * ```\n * \n * ### 6. Domain Name Availability\n * Check if domain name is available for registration.\n * ```typescript\n * {\n * type: 'async',\n * name: 'domain_available',\n * field: 'domain_name',\n * validatorUrl: '/api/domains/check-availability',\n * message: 'This domain is already taken or reserved',\n * debounce: 500,\n * timeout: 2000\n * }\n * ```\n * \n * ### 7. Coupon Code Validation\n * Verify coupon code is valid and not expired.\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_coupon',\n * field: 'coupon_code',\n * validatorUrl: '/api/coupons/validate',\n * message: 'Invalid or expired coupon code',\n * timeout: 2000,\n * params: {\n * checkExpiration: true,\n * checkUsageLimit: true,\n * userId: '{{current_user_id}}'\n * }\n * }\n * ```\n */\nexport const AsyncValidationSchema = BaseValidationSchema.extend({\n type: z.literal('async'),\n field: z.string().describe('Field to validate'),\n validatorUrl: z.string().optional().describe('External API endpoint for validation'),\n method: z.enum(['GET', 'POST']).default('GET').describe('HTTP method for external call'),\n headers: z.record(z.string(), z.string()).optional().describe('Custom headers for the request'),\n validatorFunction: z.string().optional().describe('Reference to custom validator function'),\n timeout: z.number().optional().default(5000).describe('Timeout in milliseconds'),\n debounce: z.number().optional().describe('Debounce delay in milliseconds'),\n params: z.record(z.string(), z.any()).optional().describe('Additional parameters to pass to validator'),\n});\n\n/**\n * 8. Custom Validator Function\n * User-defined validation logic with code reference.\n */\nexport const CustomValidatorSchema = BaseValidationSchema.extend({\n type: z.literal('custom'),\n handler: z.string().describe('Name of the custom validation function registered in the system'),\n params: z.record(z.string(), z.any()).optional().describe('Parameters passed to the custom handler'),\n});\n\n/**\n * 9. Master Validation Rule Schema\n */\nexport const ValidationRuleSchema: z.ZodType<any> = z.lazy(() =>\n z.discriminatedUnion('type', [\n ScriptValidationSchema,\n UniquenessValidationSchema,\n StateMachineValidationSchema,\n FormatValidationSchema,\n CrossFieldValidationSchema,\n JSONValidationSchema,\n AsyncValidationSchema,\n CustomValidatorSchema,\n ConditionalValidationSchema,\n ])\n);\n\n/**\n * 8. Conditional Validation\n * Validation that only applies when a condition is met.\n * \n * ## Overview\n * Conditional validations follow the pattern: \"Validate X only if Y is true\"\n * This allows for context-aware validation rules that adapt to different scenarios.\n * \n * ## Use Cases\n * \n * ### 1. Validate Based on Record Type\n * Apply different validation rules based on the type of record.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'enterprise_approval_required',\n * when: 'account_type = \"enterprise\"',\n * message: 'Enterprise validation',\n * then: {\n * type: 'script',\n * name: 'require_approval',\n * message: 'Enterprise accounts require manager approval',\n * condition: 'approval_status = null'\n * }\n * }\n * ```\n * \n * ### 2. Conditional Field Requirements\n * Require certain fields only when specific conditions are met.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'shipping_address_when_required',\n * when: 'requires_shipping = true',\n * message: 'Shipping validation',\n * then: {\n * type: 'script',\n * name: 'shipping_address_required',\n * message: 'Shipping address is required for physical products',\n * condition: 'shipping_address = null OR shipping_address = \"\"'\n * }\n * }\n * ```\n * \n * ### 3. Amount-Based Validation\n * Apply different rules based on transaction amount.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'high_value_approval',\n * when: 'order_total > 10000',\n * message: 'High value order validation',\n * then: {\n * type: 'script',\n * name: 'manager_approval_required',\n * message: 'Orders over $10,000 require manager approval',\n * condition: 'manager_approval_id = null'\n * },\n * otherwise: {\n * type: 'script',\n * name: 'standard_validation',\n * message: 'Payment method is required',\n * condition: 'payment_method = null'\n * }\n * }\n * ```\n * \n * ### 4. Regional Compliance\n * Apply region-specific validation rules.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'regional_compliance',\n * when: 'region = \"EU\"',\n * message: 'EU compliance validation',\n * then: {\n * type: 'script',\n * name: 'gdpr_consent',\n * message: 'GDPR consent is required for EU customers',\n * condition: 'gdpr_consent_given = false'\n * },\n * otherwise: {\n * type: 'script',\n * name: 'tos_acceptance',\n * message: 'Terms of Service acceptance required',\n * condition: 'tos_accepted = false'\n * }\n * }\n * ```\n * \n * ### 5. Nested Conditional Validation\n * Create complex validation logic with nested conditions.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'country_state_validation',\n * when: 'country = \"US\"',\n * message: 'US-specific validation',\n * then: {\n * type: 'conditional',\n * name: 'california_validation',\n * when: 'state = \"CA\"',\n * message: 'California-specific validation',\n * then: {\n * type: 'script',\n * name: 'ca_tax_id_required',\n * message: 'California requires a valid tax ID',\n * condition: 'tax_id = null OR NOT(REGEX(tax_id, \"^\\\\d{2}-\\\\d{7}$\"))'\n * }\n * }\n * }\n * ```\n * \n * ### 6. Tax Validation for Taxable Items\n * Only validate tax fields when the item is taxable.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'tax_field_validation',\n * when: 'is_taxable = true',\n * message: 'Tax validation',\n * then: {\n * type: 'script',\n * name: 'tax_code_required',\n * message: 'Tax code is required for taxable items',\n * condition: 'tax_code = null OR tax_code = \"\"'\n * }\n * }\n * ```\n * \n * ### 7. Role-Based Validation\n * Apply validation based on user role.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'role_based_approval_limit',\n * when: 'user_role = \"manager\"',\n * message: 'Manager approval limits',\n * then: {\n * type: 'script',\n * name: 'manager_limit',\n * message: 'Managers can approve up to $50,000',\n * condition: 'approval_amount > 50000'\n * }\n * }\n * ```\n * \n * ## Salesforce Pattern Comparison\n * \n * Salesforce doesn't have explicit \"conditional validation\" rules but achieves similar\n * behavior using formula logic. ObjectStack makes this pattern explicit and composable.\n * \n * **Salesforce Approach:**\n * ```\n * IF(\n * ISPICKVAL(Type, \"Enterprise\"),\n * AND(Amount > 100000, ISBLANK(Approval__c)),\n * FALSE\n * )\n * ```\n * \n * **ObjectStack Approach:**\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'enterprise_high_value',\n * when: 'type = \"enterprise\"',\n * then: {\n * type: 'cross_field',\n * name: 'amount_approval',\n * condition: 'amount > 100000 AND approval = null',\n * fields: ['amount', 'approval']\n * }\n * }\n * ```\n */\nexport const ConditionalValidationSchema = BaseValidationSchema.extend({\n type: z.literal('conditional'),\n when: z.string().describe('Condition formula (e.g. \"type = \\'enterprise\\'\")'),\n then: ValidationRuleSchema.describe('Validation rule to apply when condition is true'),\n otherwise: ValidationRuleSchema.optional().describe('Validation rule to apply when condition is false'),\n});\n\nexport type ValidationRule = z.infer<typeof ValidationRuleSchema>;\nexport type ScriptValidation = z.infer<typeof ScriptValidationSchema>;\nexport type UniquenessValidation = z.infer<typeof UniquenessValidationSchema>;\nexport type StateMachineValidation = z.infer<typeof StateMachineValidationSchema>;\nexport type FormatValidation = z.infer<typeof FormatValidationSchema>;\nexport type CrossFieldValidation = z.infer<typeof CrossFieldValidationSchema>;\nexport type JSONValidation = z.infer<typeof JSONValidationSchema>;\nexport type AsyncValidation = z.infer<typeof AsyncValidationSchema>;\nexport type CustomValidation = z.infer<typeof CustomValidatorSchema>;\nexport type ConditionalValidation = z.infer<typeof ConditionalValidationSchema>;","import { z } from 'zod';\n\n/**\n * Better-Auth Configuration Protocol\n * \n * Defines the configuration required to initialize the Better-Auth kernel.\n * Used in server-side configuration injection.\n */\n\nexport const AuthProviderConfigSchema = z.object({\n id: z.string().describe('Provider ID (github, google)'),\n clientId: z.string().describe('OAuth Client ID'),\n clientSecret: z.string().describe('OAuth Client Secret'),\n scope: z.array(z.string()).optional().describe('Requested permissions'),\n});\n\nexport const AuthPluginConfigSchema = z.object({\n organization: z.boolean().default(false).describe('Enable Organization/Teams support'),\n twoFactor: z.boolean().default(false).describe('Enable 2FA'),\n passkeys: z.boolean().default(false).describe('Enable Passkey support'),\n magicLink: z.boolean().default(false).describe('Enable Magic Link login'),\n});\n\nexport const AuthConfigSchema = z.object({\n secret: z.string().optional().describe('Encryption secret'),\n baseUrl: z.string().optional().describe('Base URL for auth routes'),\n databaseUrl: z.string().optional().describe('Database connection string'),\n providers: z.array(AuthProviderConfigSchema).optional(),\n plugins: AuthPluginConfigSchema.optional(),\n session: z.object({\n expiresIn: z.number().default(60 * 60 * 24 * 7).describe('Session duration in seconds'),\n updateAge: z.number().default(60 * 60 * 24).describe('Session update frequency'),\n }).optional(),\n \n // Custom auth properties\n [z.string().regex(/^[^A-Z]+$/).toString()]: z.any().optional(),\n});\n","import { z } from 'zod';\n\n/**\n * Compliance protocol for GDPR, CCPA, HIPAA, SOX, PCI-DSS\n */\nexport const GDPRConfigSchema = z.object({\n enabled: z.boolean(),\n dataSubjectRights: z.object({\n rightToAccess: z.boolean().default(true),\n rightToRectification: z.boolean().default(true),\n rightToErasure: z.boolean().default(true),\n rightToRestriction: z.boolean().default(true),\n rightToPortability: z.boolean().default(true),\n rightToObjection: z.boolean().default(true),\n }),\n legalBasis: z.enum([\n 'consent',\n 'contract',\n 'legal-obligation',\n 'vital-interests',\n 'public-task',\n 'legitimate-interests',\n ]),\n consentTracking: z.boolean().default(true),\n dataRetentionDays: z.number().optional(),\n dataProcessingAgreement: z.string().optional(),\n});\n\nexport type GDPRConfig = z.infer<typeof GDPRConfigSchema>;\n\nexport const HIPAAConfigSchema = z.object({\n enabled: z.boolean(),\n phi: z.object({\n encryption: z.boolean().default(true),\n accessControl: z.boolean().default(true),\n auditTrail: z.boolean().default(true),\n backupAndRecovery: z.boolean().default(true),\n }),\n businessAssociateAgreement: z.boolean().default(false),\n});\n\nexport type HIPAAConfig = z.infer<typeof HIPAAConfigSchema>;\n\nexport const PCIDSSConfigSchema = z.object({\n enabled: z.boolean(),\n level: z.enum(['1', '2', '3', '4']),\n cardDataFields: z.array(z.string()),\n tokenization: z.boolean().default(true),\n encryptionInTransit: z.boolean().default(true),\n encryptionAtRest: z.boolean().default(true),\n});\n\nexport type PCIDSSConfig = z.infer<typeof PCIDSSConfigSchema>;\n\nexport const AuditLogConfigSchema = z.object({\n enabled: z.boolean().default(true),\n retentionDays: z.number().default(365),\n immutable: z.boolean().default(true),\n signLogs: z.boolean().default(false),\n events: z.array(z.enum([\n 'create',\n 'read',\n 'update',\n 'delete',\n 'export',\n 'permission-change',\n 'login',\n 'logout',\n 'failed-login',\n ])),\n});\n\nexport type AuditLogConfig = z.infer<typeof AuditLogConfigSchema>;\n\nexport const ComplianceConfigSchema = z.object({\n gdpr: GDPRConfigSchema.optional(),\n hipaa: HIPAAConfigSchema.optional(),\n pciDss: PCIDSSConfigSchema.optional(),\n auditLog: AuditLogConfigSchema,\n});\n\nexport type ComplianceConfig = z.infer<typeof ComplianceConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * Cron Schedule Schema\n * Schedule jobs using cron expressions\n */\nexport const CronScheduleSchema = z.object({\n type: z.literal('cron'),\n expression: z.string().describe('Cron expression (e.g., \"0 0 * * *\" for daily at midnight)'),\n timezone: z.string().optional().default('UTC').describe('Timezone for cron execution (e.g., \"America/New_York\")'),\n});\n\n/**\n * Interval Schedule Schema\n * Schedule jobs at fixed intervals\n */\nexport const IntervalScheduleSchema = z.object({\n type: z.literal('interval'),\n intervalMs: z.number().int().positive().describe('Interval in milliseconds'),\n});\n\n/**\n * Once Schedule Schema\n * Schedule a job to run once at a specific time\n */\nexport const OnceScheduleSchema = z.object({\n type: z.literal('once'),\n at: z.string().datetime().describe('ISO 8601 datetime when to execute'),\n});\n\n/**\n * Schedule Schema\n * Discriminated union of all schedule types\n */\nexport const ScheduleSchema = z.discriminatedUnion('type', [\n CronScheduleSchema,\n IntervalScheduleSchema,\n OnceScheduleSchema,\n]);\n\nexport type Schedule = z.infer<typeof ScheduleSchema>;\nexport type CronSchedule = z.infer<typeof CronScheduleSchema>;\nexport type IntervalSchedule = z.infer<typeof IntervalScheduleSchema>;\nexport type OnceSchedule = z.infer<typeof OnceScheduleSchema>;\nexport type JobSchedule = Schedule; // Alias for backwards compatibility\n\n/**\n * Retry Policy Schema\n * Configuration for job retry behavior with exponential backoff\n */\nexport const RetryPolicySchema = z.object({\n maxRetries: z.number().int().min(0).default(3).describe('Maximum number of retry attempts'),\n backoffMs: z.number().int().positive().default(1000).describe('Initial backoff delay in milliseconds'),\n backoffMultiplier: z.number().positive().default(2).describe('Multiplier for exponential backoff'),\n});\n\nexport type RetryPolicy = z.infer<typeof RetryPolicySchema>;\n\n/**\n * Job Schema\n * Defines a scheduled job that executes background logic.\n * \n * @example Metadata Sync Job (Cron)\n * {\n * id: \"job_sync_meta\",\n * name: \"sync_metadata_nightly\",\n * schedule: {\n * type: \"cron\",\n * expression: \"0 0 * * *\", // Midnight\n * timezone: \"UTC\"\n * },\n * handler: \"services/syncStatus.ts:syncAll\", \n * retryPolicy: {\n * maxRetries: 3,\n * backoffMs: 5000\n * }\n * }\n */\nexport const JobSchema = z.object({\n id: z.string().describe('Unique job identifier'),\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Job name (snake_case)'),\n schedule: ScheduleSchema.describe('Job schedule configuration'),\n handler: z.string().describe('Handler path (e.g. \"path/to/file:functionName\") or script ID'),\n retryPolicy: RetryPolicySchema.optional().describe('Retry policy configuration'),\n timeout: z.number().int().positive().optional().describe('Timeout in milliseconds'),\n enabled: z.boolean().default(true).describe('Whether the job is enabled'),\n});\n\nexport type Job = z.infer<typeof JobSchema>;\n\n/**\n * Job Execution Status Enum\n * Status of job execution\n */\nexport const JobExecutionStatus = z.enum([\n 'running',\n 'success',\n 'failed',\n 'timeout',\n]);\n\nexport type JobExecutionStatus = z.infer<typeof JobExecutionStatus>;\n\n/**\n * Job Execution Schema\n * Logs for job execution\n */\nexport const JobExecutionSchema = z.object({\n jobId: z.string().describe('Job identifier'),\n startedAt: z.string().datetime().describe('ISO 8601 datetime when execution started'),\n completedAt: z.string().datetime().optional().describe('ISO 8601 datetime when execution completed'),\n status: JobExecutionStatus.describe('Execution status'),\n error: z.string().optional().describe('Error message if failed'),\n duration: z.number().int().optional().describe('Execution duration in milliseconds'),\n});\n\nexport type JobExecution = z.infer<typeof JobExecutionSchema>;\n","import { z } from 'zod';\n\n/**\n * Worker System Protocol\n * \n * Background task processing system with queues, priorities, and retry logic.\n * Provides a robust foundation for async task execution similar to:\n * - Sidekiq (Ruby)\n * - Celery (Python)\n * - Bull/BullMQ (Node.js)\n * - AWS SQS/Lambda\n * \n * Features:\n * - Task queues with priorities\n * - Task scheduling and retry logic\n * - Batch processing\n * - Dead letter queues\n * - Task monitoring and logging\n * \n * @example Basic task\n * ```typescript\n * const task: Task = {\n * id: 'task-123',\n * type: 'send_email',\n * payload: { to: 'user@example.com', subject: 'Welcome' },\n * queue: 'notifications',\n * priority: 5\n * };\n * ```\n */\n\n// ==========================================\n// Task Priority\n// ==========================================\n\n/**\n * Task Priority Enum\n * Lower numbers = higher priority\n */\nexport const TaskPriority = z.enum([\n 'critical', // 0 - Must execute immediately\n 'high', // 1 - Execute soon\n 'normal', // 2 - Default priority\n 'low', // 3 - Execute when resources available\n 'background', // 4 - Execute during low-traffic periods\n]);\n\nexport type TaskPriority = z.infer<typeof TaskPriority>;\n\n/**\n * Task Priority Mapping\n * Maps priority names to numeric values for sorting\n */\nexport const TASK_PRIORITY_VALUES: Record<TaskPriority, number> = {\n critical: 0,\n high: 1,\n normal: 2,\n low: 3,\n background: 4,\n};\n\n// ==========================================\n// Task Status\n// ==========================================\n\n/**\n * Task Status Enum\n * Lifecycle states of a task\n */\nexport const TaskStatus = z.enum([\n 'pending', // Waiting to be processed\n 'queued', // In queue, ready for worker\n 'processing', // Currently being executed\n 'completed', // Successfully completed\n 'failed', // Failed (may retry)\n 'cancelled', // Manually cancelled\n 'timeout', // Exceeded execution timeout\n 'dead', // Moved to dead letter queue\n]);\n\nexport type TaskStatus = z.infer<typeof TaskStatus>;\n\n// ==========================================\n// Task Schema\n// ==========================================\n\n/**\n * Task Retry Policy Schema\n * Configuration for task retry behavior\n */\nexport const TaskRetryPolicySchema = z.object({\n maxRetries: z.number().int().min(0).default(3).describe('Maximum retry attempts'),\n backoffStrategy: z.enum(['fixed', 'linear', 'exponential']).default('exponential')\n .describe('Backoff strategy between retries'),\n initialDelayMs: z.number().int().positive().default(1000).describe('Initial retry delay in milliseconds'),\n maxDelayMs: z.number().int().positive().default(60000).describe('Maximum retry delay in milliseconds'),\n backoffMultiplier: z.number().positive().default(2).describe('Multiplier for exponential backoff'),\n});\n\nexport type TaskRetryPolicy = z.infer<typeof TaskRetryPolicySchema>;\n\n/**\n * Task Schema\n * Represents a background task to be executed\n * \n * @example\n * {\n * \"id\": \"task-abc123\",\n * \"type\": \"send_email\",\n * \"payload\": { \"to\": \"user@example.com\", \"template\": \"welcome\" },\n * \"queue\": \"notifications\",\n * \"priority\": \"high\",\n * \"retryPolicy\": {\n * \"maxRetries\": 3,\n * \"backoffStrategy\": \"exponential\"\n * }\n * }\n */\nexport const TaskSchema = z.object({\n /**\n * Unique task identifier\n */\n id: z.string().describe('Unique task identifier'),\n \n /**\n * Task type (handler identifier)\n */\n type: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Task type (snake_case)'),\n \n /**\n * Task payload data\n */\n payload: z.any().describe('Task payload data'),\n \n /**\n * Queue name\n */\n queue: z.string().default('default').describe('Queue name'),\n \n /**\n * Task priority\n */\n priority: TaskPriority.default('normal').describe('Task priority level'),\n \n /**\n * Retry policy\n */\n retryPolicy: TaskRetryPolicySchema.optional().describe('Retry policy configuration'),\n \n /**\n * Execution timeout in milliseconds\n */\n timeoutMs: z.number().int().positive().optional().describe('Task timeout in milliseconds'),\n \n /**\n * Scheduled execution time\n */\n scheduledAt: z.string().datetime().optional().describe('ISO 8601 datetime to execute task'),\n \n /**\n * Maximum execution attempts\n */\n attempts: z.number().int().min(0).default(0).describe('Number of execution attempts'),\n \n /**\n * Task status\n */\n status: TaskStatus.default('pending').describe('Current task status'),\n \n /**\n * Task metadata\n */\n metadata: z.object({\n createdAt: z.string().datetime().optional().describe('When task was created'),\n updatedAt: z.string().datetime().optional().describe('Last update time'),\n createdBy: z.string().optional().describe('User who created task'),\n tags: z.array(z.string()).optional().describe('Task tags for filtering'),\n }).optional().describe('Task metadata'),\n});\n\nexport type Task = z.infer<typeof TaskSchema>;\n\n// ==========================================\n// Task Execution Result\n// ==========================================\n\n/**\n * Task Execution Result Schema\n * Result of a task execution attempt\n */\nexport const TaskExecutionResultSchema = z.object({\n /**\n * Task identifier\n */\n taskId: z.string().describe('Task identifier'),\n \n /**\n * Execution status\n */\n status: TaskStatus.describe('Execution status'),\n \n /**\n * Execution result data\n */\n result: z.any().optional().describe('Execution result data'),\n \n /**\n * Error information\n */\n error: z.object({\n message: z.string().describe('Error message'),\n stack: z.string().optional().describe('Error stack trace'),\n code: z.string().optional().describe('Error code'),\n }).optional().describe('Error details if failed'),\n \n /**\n * Execution duration\n */\n durationMs: z.number().int().optional().describe('Execution duration in milliseconds'),\n \n /**\n * Execution timestamps\n */\n startedAt: z.string().datetime().describe('When execution started'),\n completedAt: z.string().datetime().optional().describe('When execution completed'),\n \n /**\n * Retry information\n */\n attempt: z.number().int().min(1).describe('Attempt number (1-indexed)'),\n willRetry: z.boolean().describe('Whether task will be retried'),\n});\n\nexport type TaskExecutionResult = z.infer<typeof TaskExecutionResultSchema>;\n\n// ==========================================\n// Queue Configuration\n// ==========================================\n\n/**\n * Queue Configuration Schema\n * Configuration for a task queue\n * \n * @example\n * {\n * \"name\": \"notifications\",\n * \"concurrency\": 10,\n * \"rateLimit\": {\n * \"max\": 100,\n * \"duration\": 60000\n * }\n * }\n */\nexport const QueueConfigSchema = z.object({\n /**\n * Queue name\n */\n name: z.string().describe('Queue name (snake_case)'),\n \n /**\n * Maximum concurrent workers\n */\n concurrency: z.number().int().min(1).default(5).describe('Max concurrent task executions'),\n \n /**\n * Rate limiting\n */\n rateLimit: z.object({\n max: z.number().int().positive().describe('Maximum tasks per duration'),\n duration: z.number().int().positive().describe('Duration in milliseconds'),\n }).optional().describe('Rate limit configuration'),\n \n /**\n * Default retry policy\n */\n defaultRetryPolicy: TaskRetryPolicySchema.optional().describe('Default retry policy for tasks'),\n \n /**\n * Dead letter queue\n */\n deadLetterQueue: z.string().optional().describe('Dead letter queue name'),\n \n /**\n * Queue priority\n */\n priority: z.number().int().min(0).default(0).describe('Queue priority (lower = higher priority)'),\n \n /**\n * Auto-scaling configuration\n */\n autoScale: z.object({\n enabled: z.boolean().default(false).describe('Enable auto-scaling'),\n minWorkers: z.number().int().min(1).default(1).describe('Minimum workers'),\n maxWorkers: z.number().int().min(1).default(10).describe('Maximum workers'),\n scaleUpThreshold: z.number().int().positive().default(100).describe('Queue size to scale up'),\n scaleDownThreshold: z.number().int().min(0).default(10).describe('Queue size to scale down'),\n }).optional().describe('Auto-scaling configuration'),\n});\n\nexport type QueueConfig = z.infer<typeof QueueConfigSchema>;\n\n// ==========================================\n// Batch Processing\n// ==========================================\n\n/**\n * Batch Task Schema\n * Configuration for batch processing multiple items\n * \n * @example\n * {\n * \"id\": \"batch-import-123\",\n * \"type\": \"import_records\",\n * \"items\": [{ \"name\": \"Item 1\" }, { \"name\": \"Item 2\" }],\n * \"batchSize\": 100,\n * \"queue\": \"batch_processing\"\n * }\n */\nexport const BatchTaskSchema = z.object({\n /**\n * Batch job identifier\n */\n id: z.string().describe('Unique batch job identifier'),\n \n /**\n * Task type for processing each item\n */\n type: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Task type (snake_case)'),\n \n /**\n * Items to process\n */\n items: z.array(z.any()).describe('Array of items to process'),\n \n /**\n * Batch size (items per task)\n */\n batchSize: z.number().int().min(1).default(100).describe('Number of items per batch'),\n \n /**\n * Queue name\n */\n queue: z.string().default('batch').describe('Queue for batch tasks'),\n \n /**\n * Priority\n */\n priority: TaskPriority.default('normal').describe('Batch task priority'),\n \n /**\n * Parallel processing\n */\n parallel: z.boolean().default(true).describe('Process batches in parallel'),\n \n /**\n * Stop on error\n */\n stopOnError: z.boolean().default(false).describe('Stop batch if any item fails'),\n \n /**\n * Progress callback\n * \n * Called after each batch completes to report progress.\n * Invoked asynchronously and should not throw errors.\n * If the callback throws, the error is logged but batch processing continues.\n * \n * @param progress - Object containing processed count, total count, and failed count\n */\n onProgress: z.function()\n .args(z.object({\n processed: z.number(),\n total: z.number(),\n failed: z.number(),\n }))\n .returns(z.void())\n .optional()\n .describe('Progress callback function (called after each batch)'),\n});\n\nexport type BatchTask = z.infer<typeof BatchTaskSchema>;\n\n/**\n * Batch Progress Schema\n * Tracks progress of a batch job\n */\nexport const BatchProgressSchema = z.object({\n /**\n * Batch job identifier\n */\n batchId: z.string().describe('Batch job identifier'),\n \n /**\n * Total items\n */\n total: z.number().int().min(0).describe('Total number of items'),\n \n /**\n * Processed items\n */\n processed: z.number().int().min(0).default(0).describe('Items processed'),\n \n /**\n * Successful items\n */\n succeeded: z.number().int().min(0).default(0).describe('Items succeeded'),\n \n /**\n * Failed items\n */\n failed: z.number().int().min(0).default(0).describe('Items failed'),\n \n /**\n * Progress percentage\n */\n percentage: z.number().min(0).max(100).describe('Progress percentage'),\n \n /**\n * Status\n */\n status: z.enum(['pending', 'running', 'completed', 'failed', 'cancelled']).describe('Batch status'),\n \n /**\n * Timestamps\n */\n startedAt: z.string().datetime().optional().describe('When batch started'),\n completedAt: z.string().datetime().optional().describe('When batch completed'),\n});\n\nexport type BatchProgress = z.infer<typeof BatchProgressSchema>;\n\n// ==========================================\n// Worker Configuration\n// ==========================================\n\n/**\n * Worker Configuration Schema\n * Configuration for a worker instance\n */\nexport const WorkerConfigSchema = z.object({\n /**\n * Worker name\n */\n name: z.string().describe('Worker name'),\n \n /**\n * Queues to process\n */\n queues: z.array(z.string()).min(1).describe('Queue names to process'),\n \n /**\n * Queue configurations\n */\n queueConfigs: z.array(QueueConfigSchema).optional().describe('Queue configurations'),\n \n /**\n * Polling interval\n */\n pollIntervalMs: z.number().int().positive().default(1000).describe('Queue polling interval in milliseconds'),\n \n /**\n * Visibility timeout\n */\n visibilityTimeoutMs: z.number().int().positive().default(30000)\n .describe('How long a task is invisible after being claimed'),\n \n /**\n * Task timeout\n */\n defaultTimeoutMs: z.number().int().positive().default(300000).describe('Default task timeout in milliseconds'),\n \n /**\n * Graceful shutdown timeout\n */\n shutdownTimeoutMs: z.number().int().positive().default(30000)\n .describe('Graceful shutdown timeout in milliseconds'),\n \n /**\n * Task handlers\n */\n handlers: z.record(z.string(), z.function()).optional().describe('Task type handlers'),\n});\n\nexport type WorkerConfig = z.infer<typeof WorkerConfigSchema>;\n\n// ==========================================\n// Worker Stats\n// ==========================================\n\n/**\n * Worker Stats Schema\n * Runtime statistics for a worker\n */\nexport const WorkerStatsSchema = z.object({\n /**\n * Worker name\n */\n workerName: z.string().describe('Worker name'),\n \n /**\n * Total tasks processed\n */\n totalProcessed: z.number().int().min(0).describe('Total tasks processed'),\n \n /**\n * Successful tasks\n */\n succeeded: z.number().int().min(0).describe('Successful tasks'),\n \n /**\n * Failed tasks\n */\n failed: z.number().int().min(0).describe('Failed tasks'),\n \n /**\n * Active tasks\n */\n active: z.number().int().min(0).describe('Currently active tasks'),\n \n /**\n * Average execution time\n */\n avgExecutionMs: z.number().min(0).optional().describe('Average execution time in milliseconds'),\n \n /**\n * Uptime\n */\n uptimeMs: z.number().int().min(0).describe('Worker uptime in milliseconds'),\n \n /**\n * Queue stats\n */\n queues: z.record(z.string(), z.object({\n pending: z.number().int().min(0).describe('Pending tasks'),\n active: z.number().int().min(0).describe('Active tasks'),\n completed: z.number().int().min(0).describe('Completed tasks'),\n failed: z.number().int().min(0).describe('Failed tasks'),\n })).optional().describe('Per-queue statistics'),\n});\n\nexport type WorkerStats = z.infer<typeof WorkerStatsSchema>;\n\n// ==========================================\n// Helper Functions\n// ==========================================\n\n/**\n * Helper to create a task\n */\nexport const Task = Object.assign(TaskSchema, {\n create: <T extends z.input<typeof TaskSchema>>(task: T) => task,\n});\n\n/**\n * Helper to create a queue config\n */\nexport const QueueConfig = Object.assign(QueueConfigSchema, {\n create: <T extends z.input<typeof QueueConfigSchema>>(config: T) => config,\n});\n\n/**\n * Helper to create a worker config\n */\nexport const WorkerConfig = Object.assign(WorkerConfigSchema, {\n create: <T extends z.input<typeof WorkerConfigSchema>>(config: T) => config,\n});\n\n/**\n * Helper to create a batch task\n */\nexport const BatchTask = Object.assign(BatchTaskSchema, {\n create: <T extends z.input<typeof BatchTaskSchema>>(batch: T) => batch,\n});\n","import { z } from 'zod';\n\n/**\n * Email Template Schema\n * \n * Defines the structure and content of email notifications.\n * Supports variables for personalization and file attachments.\n * \n * @example\n * ```json\n * {\n * \"id\": \"welcome-email\",\n * \"subject\": \"Welcome to {{company_name}}\",\n * \"body\": \"<h1>Welcome {{user_name}}!</h1>\",\n * \"bodyType\": \"html\",\n * \"variables\": [\"company_name\", \"user_name\"],\n * \"attachments\": [\n * {\n * \"name\": \"guide.pdf\",\n * \"url\": \"https://example.com/guide.pdf\"\n * }\n * ]\n * }\n * ```\n */\nexport const EmailTemplateSchema = z.object({\n /**\n * Unique identifier for the email template\n */\n id: z.string().describe('Template identifier'),\n\n /**\n * Email subject line (supports variable interpolation)\n */\n subject: z.string().describe('Email subject'),\n\n /**\n * Email body content\n */\n body: z.string().describe('Email body content'),\n\n /**\n * Content type of the email body\n * @default 'html'\n */\n bodyType: z.enum(['text', 'html', 'markdown']).optional().default('html').describe('Body content type'),\n\n /**\n * List of template variables for dynamic content\n */\n variables: z.array(z.string()).optional().describe('Template variables'),\n\n /**\n * File attachments to include with the email\n */\n attachments: z.array(z.object({\n name: z.string().describe('Attachment filename'),\n url: z.string().url().describe('Attachment URL'),\n })).optional().describe('Email attachments'),\n});\n\n/**\n * SMS Template Schema\n * \n * Defines the structure of SMS text message notifications.\n * Includes character limits and variable support.\n * \n * @example\n * ```json\n * {\n * \"id\": \"verification-sms\",\n * \"message\": \"Your code is {{code}}\",\n * \"maxLength\": 160,\n * \"variables\": [\"code\"]\n * }\n * ```\n */\nexport const SMSTemplateSchema = z.object({\n /**\n * Unique identifier for the SMS template\n */\n id: z.string().describe('Template identifier'),\n\n /**\n * SMS message content (supports variable interpolation)\n */\n message: z.string().describe('SMS message content'),\n\n /**\n * Maximum character length for the SMS\n * @default 160\n */\n maxLength: z.number().optional().default(160).describe('Maximum message length'),\n\n /**\n * List of template variables for dynamic content\n */\n variables: z.array(z.string()).optional().describe('Template variables'),\n});\n\n/**\n * Push Notification Schema\n * \n * Defines mobile and web push notification structure.\n * Supports rich notifications with actions and badges.\n * \n * @example\n * ```json\n * {\n * \"title\": \"New Message\",\n * \"body\": \"You have a new message from John\",\n * \"icon\": \"https://example.com/icon.png\",\n * \"badge\": 5,\n * \"data\": {\"messageId\": \"msg_123\"},\n * \"actions\": [\n * {\"action\": \"view\", \"title\": \"View\"},\n * {\"action\": \"dismiss\", \"title\": \"Dismiss\"}\n * ]\n * }\n * ```\n */\nexport const PushNotificationSchema = z.object({\n /**\n * Notification title\n */\n title: z.string().describe('Notification title'),\n\n /**\n * Notification body text\n */\n body: z.string().describe('Notification body'),\n\n /**\n * Icon URL to display with notification\n */\n icon: z.string().url().optional().describe('Notification icon URL'),\n\n /**\n * Badge count to display on app icon\n */\n badge: z.number().optional().describe('Badge count'),\n\n /**\n * Custom data payload\n */\n data: z.record(z.string(), z.any()).optional().describe('Custom data'),\n\n /**\n * Action buttons for the notification\n */\n actions: z.array(z.object({\n action: z.string().describe('Action identifier'),\n title: z.string().describe('Action button title'),\n })).optional().describe('Notification actions'),\n});\n\n/**\n * In-App Notification Schema\n * \n * Defines in-application notification banners and toasts.\n * Includes severity levels and auto-dismiss settings.\n * \n * @example\n * ```json\n * {\n * \"title\": \"System Update\",\n * \"message\": \"New features are now available\",\n * \"type\": \"info\",\n * \"actionUrl\": \"/updates\",\n * \"dismissible\": true,\n * \"expiresAt\": 1704067200000\n * }\n * ```\n */\nexport const InAppNotificationSchema = z.object({\n /**\n * Notification title\n */\n title: z.string().describe('Notification title'),\n\n /**\n * Notification message content\n */\n message: z.string().describe('Notification message'),\n\n /**\n * Notification severity type\n */\n type: z.enum(['info', 'success', 'warning', 'error']).describe('Notification type'),\n\n /**\n * Optional URL to navigate to when clicked\n */\n actionUrl: z.string().optional().describe('Action URL'),\n\n /**\n * Whether the notification can be dismissed by the user\n * @default true\n */\n dismissible: z.boolean().optional().default(true).describe('User dismissible'),\n\n /**\n * Timestamp when notification expires (Unix milliseconds)\n */\n expiresAt: z.number().optional().describe('Expiration timestamp'),\n});\n\n/**\n * Notification Channel Enum\n * \n * Supported notification delivery channels.\n */\nexport const NotificationChannelSchema = z.enum([\n 'email',\n 'sms',\n 'push',\n 'in-app',\n 'slack',\n 'teams',\n 'webhook',\n]);\n\n/**\n * Notification Configuration Schema\n * \n * Unified notification management protocol supporting multiple channels.\n * Includes scheduling, retry policies, and delivery tracking.\n * \n * @example\n * ```json\n * {\n * \"id\": \"welcome-notification\",\n * \"name\": \"Welcome Email\",\n * \"channel\": \"email\",\n * \"template\": {\n * \"id\": \"tpl-001\",\n * \"subject\": \"Welcome!\",\n * \"body\": \"<h1>Welcome</h1>\",\n * \"bodyType\": \"html\"\n * },\n * \"recipients\": {\n * \"to\": [\"user@example.com\"],\n * \"cc\": [\"admin@example.com\"]\n * },\n * \"schedule\": {\n * \"type\": \"immediate\"\n * },\n * \"retryPolicy\": {\n * \"enabled\": true,\n * \"maxRetries\": 3,\n * \"backoffStrategy\": \"exponential\"\n * },\n * \"tracking\": {\n * \"trackOpens\": true,\n * \"trackClicks\": true,\n * \"trackDelivery\": true\n * }\n * }\n * ```\n */\nexport const NotificationConfigSchema = z.object({\n /**\n * Unique identifier for this notification configuration\n */\n id: z.string().describe('Notification ID'),\n\n /**\n * Human-readable name for this notification\n */\n name: z.string().describe('Notification name'),\n\n /**\n * Delivery channel for the notification\n */\n channel: NotificationChannelSchema.describe('Notification channel'),\n\n /**\n * Notification template based on channel type\n */\n template: z.union([\n EmailTemplateSchema,\n SMSTemplateSchema,\n PushNotificationSchema,\n InAppNotificationSchema,\n ]).describe('Notification template'),\n\n /**\n * Recipient configuration\n */\n recipients: z.object({\n /**\n * Primary recipients\n */\n to: z.array(z.string()).describe('Primary recipients'),\n\n /**\n * CC recipients (email only)\n */\n cc: z.array(z.string()).optional().describe('CC recipients'),\n\n /**\n * BCC recipients (email only)\n */\n bcc: z.array(z.string()).optional().describe('BCC recipients'),\n }).describe('Recipients'),\n\n /**\n * Scheduling configuration\n */\n schedule: z.object({\n /**\n * Scheduling type\n */\n type: z.enum(['immediate', 'delayed', 'scheduled']).describe('Schedule type'),\n\n /**\n * Delay in milliseconds (for delayed type)\n */\n delay: z.number().optional().describe('Delay in milliseconds'),\n\n /**\n * Scheduled send time (Unix timestamp in milliseconds)\n */\n scheduledAt: z.number().optional().describe('Scheduled timestamp'),\n }).optional().describe('Scheduling'),\n\n /**\n * Retry policy for failed deliveries\n */\n retryPolicy: z.object({\n /**\n * Enable automatic retries\n * @default true\n */\n enabled: z.boolean().optional().default(true).describe('Enable retries'),\n\n /**\n * Maximum number of retry attempts\n * @default 3\n */\n maxRetries: z.number().optional().default(3).describe('Max retry attempts'),\n\n /**\n * Backoff strategy for retries\n */\n backoffStrategy: z.enum(['exponential', 'linear', 'fixed']).describe('Backoff strategy'),\n }).optional().describe('Retry policy'),\n\n /**\n * Delivery tracking configuration\n */\n tracking: z.object({\n /**\n * Track when emails are opened\n * @default false\n */\n trackOpens: z.boolean().optional().default(false).describe('Track opens'),\n\n /**\n * Track when links are clicked\n * @default false\n */\n trackClicks: z.boolean().optional().default(false).describe('Track clicks'),\n\n /**\n * Track delivery status\n * @default true\n */\n trackDelivery: z.boolean().optional().default(true).describe('Track delivery'),\n }).optional().describe('Tracking configuration'),\n});\n\n// Type exports\nexport type NotificationConfig = z.infer<typeof NotificationConfigSchema>;\nexport type NotificationChannel = z.infer<typeof NotificationChannelSchema>;\nexport type EmailTemplate = z.infer<typeof EmailTemplateSchema>;\nexport type SMSTemplate = z.infer<typeof SMSTemplateSchema>;\nexport type PushNotification = z.infer<typeof PushNotificationSchema>;\nexport type InAppNotification = z.infer<typeof InAppNotificationSchema>;\n","import { z } from 'zod';\n\n/**\n * Translation Schema\n * Supports i18n for labels, messages, and options.\n * Example structure:\n * ```json\n * {\n * \"en\": { \"objects\": { \"account\": { \"label\": \"Account\" } } },\n * \"zh-CN\": { \"objects\": { \"account\": { \"label\": \"客户\" } } }\n * }\n * ```\n */\nexport const TranslationDataSchema = z.object({\n /** Object translations */\n objects: z.record(z.string(), z.object({\n label: z.string(),\n pluralLabel: z.string().optional(),\n fields: z.record(z.string(), z.object({\n label: z.string().optional(),\n help: z.string().optional(),\n options: z.record(z.string(), z.string()).optional(), // Option value -> Label map\n })).optional(),\n })).optional(),\n \n /** App/Menu translations */\n apps: z.record(z.string(), z.object({\n label: z.string(),\n description: z.string().optional(),\n })).optional(),\n\n /** UI Messages */\n messages: z.record(z.string(), z.string()).optional(),\n});\n\nexport const LocaleSchema = z.string().describe('BCP-47 Language Tag (e.g. en-US, zh-CN)');\n\nexport const TranslationBundleSchema = z.record(LocaleSchema, TranslationDataSchema);\n\nexport type TranslationBundle = z.infer<typeof TranslationBundleSchema>;\n","import { z } from 'zod';\n\n/**\n * Real-Time Collaboration Protocol\n * \n * Defines schemas for real-time collaborative editing in ObjectStack.\n * Supports Operational Transformation (OT), CRDT (Conflict-free Replicated Data Types),\n * cursor sharing, and awareness state for collaborative applications.\n * \n * Industry alignment: Google Docs, Figma, VSCode Live Share, Yjs\n */\n\n// ==========================================\n// Operational Transformation (OT)\n// ==========================================\n\n/**\n * OT Operation Type Enum\n * Types of operations in Operational Transformation\n */\nexport const OTOperationType = z.enum([\n 'insert', // Insert characters at position\n 'delete', // Delete characters at position\n 'retain', // Keep characters (used for composing operations)\n]);\n\nexport type OTOperationType = z.infer<typeof OTOperationType>;\n\n/**\n * OT Operation Component\n * Single component of an OT operation\n */\nexport const OTComponentSchema = z.discriminatedUnion('type', [\n z.object({\n type: z.literal('insert'),\n text: z.string().describe('Text to insert'),\n attributes: z.record(z.string(), z.any()).optional().describe('Text formatting attributes (e.g., bold, italic)'),\n }),\n z.object({\n type: z.literal('delete'),\n count: z.number().int().positive().describe('Number of characters to delete'),\n }),\n z.object({\n type: z.literal('retain'),\n count: z.number().int().positive().describe('Number of characters to retain'),\n attributes: z.record(z.string(), z.any()).optional().describe('Attribute changes to apply'),\n }),\n]);\n\nexport type OTComponent = z.infer<typeof OTComponentSchema>;\n\n/**\n * OT Operation Schema\n * Represents a complete OT operation\n * Based on the OT algorithm used by Google Docs and other collaborative editors\n */\nexport const OTOperationSchema = z.object({\n operationId: z.string().uuid().describe('Unique operation identifier'),\n documentId: z.string().describe('Document identifier'),\n userId: z.string().describe('User who created the operation'),\n sessionId: z.string().uuid().describe('Session identifier'),\n components: z.array(OTComponentSchema).describe('Operation components'),\n baseVersion: z.number().int().nonnegative().describe('Document version this operation is based on'),\n timestamp: z.string().datetime().describe('ISO 8601 datetime when operation was created'),\n metadata: z.record(z.string(), z.any()).optional().describe('Additional operation metadata'),\n});\n\nexport type OTOperation = z.infer<typeof OTOperationSchema>;\n\n/**\n * OT Transform Result\n * Result of transforming one operation against another\n */\nexport const OTTransformResultSchema = z.object({\n operation: OTOperationSchema.describe('Transformed operation'),\n transformed: z.boolean().describe('Whether transformation was applied'),\n conflicts: z.array(z.string()).optional().describe('Conflict descriptions if any'),\n});\n\nexport type OTTransformResult = z.infer<typeof OTTransformResultSchema>;\n\n// ==========================================\n// CRDT (Conflict-free Replicated Data Types)\n// ==========================================\n\n/**\n * CRDT Type Enum\n * Types of CRDTs supported\n */\nexport const CRDTType = z.enum([\n 'lww-register', // Last-Write-Wins Register\n 'g-counter', // Grow-only Counter\n 'pn-counter', // Positive-Negative Counter\n 'g-set', // Grow-only Set\n 'or-set', // Observed-Remove Set\n 'lww-map', // Last-Write-Wins Map\n 'text', // CRDT-based Text (e.g., Yjs, Automerge)\n 'tree', // CRDT-based Tree structure\n 'json', // CRDT-based JSON (e.g., Automerge)\n]);\n\nexport type CRDTType = z.infer<typeof CRDTType>;\n\n/**\n * Vector Clock Schema\n * Tracks causality in distributed systems\n */\nexport const VectorClockSchema = z.object({\n clock: z.record(z.string(), z.number().int().nonnegative()).describe('Map of replica ID to logical timestamp'),\n});\n\nexport type VectorClock = z.infer<typeof VectorClockSchema>;\n\n/**\n * LWW-Register Schema\n * Last-Write-Wins Register CRDT\n */\nexport const LWWRegisterSchema = z.object({\n type: z.literal('lww-register'),\n value: z.any().describe('Current register value'),\n timestamp: z.string().datetime().describe('ISO 8601 datetime of last write'),\n replicaId: z.string().describe('ID of replica that performed last write'),\n vectorClock: VectorClockSchema.optional().describe('Optional vector clock for causality tracking'),\n});\n\nexport type LWWRegister = z.infer<typeof LWWRegisterSchema>;\n\n/**\n * Counter Operation Schema\n * Operations for Counter CRDTs\n */\nexport const CounterOperationSchema = z.object({\n replicaId: z.string().describe('Replica identifier'),\n delta: z.number().int().describe('Change amount (positive for increment, negative for decrement)'),\n timestamp: z.string().datetime().describe('ISO 8601 datetime of operation'),\n});\n\nexport type CounterOperation = z.infer<typeof CounterOperationSchema>;\n\n/**\n * G-Counter Schema\n * Grow-only Counter CRDT\n */\nexport const GCounterSchema = z.object({\n type: z.literal('g-counter'),\n counts: z.record(z.string(), z.number().int().nonnegative()).describe('Map of replica ID to count'),\n});\n\nexport type GCounter = z.infer<typeof GCounterSchema>;\n\n/**\n * PN-Counter Schema\n * Positive-Negative Counter CRDT (supports increment and decrement)\n */\nexport const PNCounterSchema = z.object({\n type: z.literal('pn-counter'),\n positive: z.record(z.string(), z.number().int().nonnegative()).describe('Positive increments per replica'),\n negative: z.record(z.string(), z.number().int().nonnegative()).describe('Negative increments per replica'),\n});\n\nexport type PNCounter = z.infer<typeof PNCounterSchema>;\n\n/**\n * OR-Set Element Schema\n * Element in an Observed-Remove Set\n */\nexport const ORSetElementSchema = z.object({\n value: z.any().describe('Element value'),\n timestamp: z.string().datetime().describe('Addition timestamp'),\n replicaId: z.string().describe('Replica that added the element'),\n uid: z.string().uuid().describe('Unique identifier for this addition'),\n removed: z.boolean().optional().default(false).describe('Whether element has been removed'),\n});\n\nexport type ORSetElement = z.infer<typeof ORSetElementSchema>;\n\n/**\n * OR-Set Schema\n * Observed-Remove Set CRDT\n */\nexport const ORSetSchema = z.object({\n type: z.literal('or-set'),\n elements: z.array(ORSetElementSchema).describe('Set elements with metadata'),\n});\n\nexport type ORSet = z.infer<typeof ORSetSchema>;\n\n/**\n * Text CRDT Operation Schema\n * Operations for text-based CRDTs (e.g., Yjs, Automerge)\n */\nexport const TextCRDTOperationSchema = z.object({\n operationId: z.string().uuid().describe('Unique operation identifier'),\n replicaId: z.string().describe('Replica identifier'),\n position: z.number().int().nonnegative().describe('Position in document'),\n insert: z.string().optional().describe('Text to insert'),\n delete: z.number().int().positive().optional().describe('Number of characters to delete'),\n timestamp: z.string().datetime().describe('ISO 8601 datetime of operation'),\n lamportTimestamp: z.number().int().nonnegative().describe('Lamport timestamp for ordering'),\n});\n\nexport type TextCRDTOperation = z.infer<typeof TextCRDTOperationSchema>;\n\n/**\n * Text CRDT State Schema\n * State of a text-based CRDT document\n */\nexport const TextCRDTStateSchema = z.object({\n type: z.literal('text'),\n documentId: z.string().describe('Document identifier'),\n content: z.string().describe('Current text content'),\n operations: z.array(TextCRDTOperationSchema).describe('History of operations'),\n lamportClock: z.number().int().nonnegative().describe('Current Lamport clock value'),\n vectorClock: VectorClockSchema.describe('Vector clock for causality'),\n});\n\nexport type TextCRDTState = z.infer<typeof TextCRDTStateSchema>;\n\n/**\n * CRDT State Union\n * Discriminated union of all CRDT types\n */\nexport const CRDTStateSchema = z.discriminatedUnion('type', [\n LWWRegisterSchema,\n GCounterSchema,\n PNCounterSchema,\n ORSetSchema,\n TextCRDTStateSchema,\n]);\n\nexport type CRDTState = z.infer<typeof CRDTStateSchema>;\n\n/**\n * CRDT Merge Schema\n * Result of merging two CRDT states\n */\nexport const CRDTMergeResultSchema = z.object({\n state: CRDTStateSchema.describe('Merged CRDT state'),\n conflicts: z.array(z.object({\n type: z.string().describe('Conflict type'),\n description: z.string().describe('Conflict description'),\n resolved: z.boolean().describe('Whether conflict was automatically resolved'),\n })).optional().describe('Conflicts encountered during merge'),\n});\n\nexport type CRDTMergeResult = z.infer<typeof CRDTMergeResultSchema>;\n\n// ==========================================\n// Cursor Sharing\n// ==========================================\n\n/**\n * Cursor Color Preset Enum\n * Standard color presets for cursor visualization\n */\nexport const CursorColorPreset = z.enum([\n 'blue',\n 'green',\n 'red',\n 'yellow',\n 'purple',\n 'orange',\n 'pink',\n 'teal',\n 'indigo',\n 'cyan',\n]);\n\nexport type CursorColorPreset = z.infer<typeof CursorColorPreset>;\n\n/**\n * Cursor Style Schema\n * Visual styling for collaborative cursors\n */\nexport const CursorStyleSchema = z.object({\n color: z.union([CursorColorPreset, z.string()]).describe('Cursor color (preset or custom hex)'),\n opacity: z.number().min(0).max(1).optional().default(1).describe('Cursor opacity (0-1)'),\n label: z.string().optional().describe('Label to display with cursor (usually username)'),\n showLabel: z.boolean().optional().default(true).describe('Whether to show label'),\n pulseOnUpdate: z.boolean().optional().default(true).describe('Whether to pulse when cursor moves'),\n});\n\nexport type CursorStyle = z.infer<typeof CursorStyleSchema>;\n\n/**\n * Cursor Selection Schema\n * Represents a text selection in collaborative editing\n */\nexport const CursorSelectionSchema = z.object({\n anchor: z.object({\n line: z.number().int().nonnegative().describe('Anchor line number'),\n column: z.number().int().nonnegative().describe('Anchor column number'),\n }).describe('Selection anchor (start point)'),\n focus: z.object({\n line: z.number().int().nonnegative().describe('Focus line number'),\n column: z.number().int().nonnegative().describe('Focus column number'),\n }).describe('Selection focus (end point)'),\n direction: z.enum(['forward', 'backward']).optional().describe('Selection direction'),\n});\n\nexport type CursorSelection = z.infer<typeof CursorSelectionSchema>;\n\n/**\n * Collaborative Cursor Schema\n * Complete cursor state for a collaborative user\n */\nexport const CollaborativeCursorSchema = z.object({\n userId: z.string().describe('User identifier'),\n sessionId: z.string().uuid().describe('Session identifier'),\n documentId: z.string().describe('Document identifier'),\n userName: z.string().describe('Display name of user'),\n position: z.object({\n line: z.number().int().nonnegative().describe('Cursor line number (0-indexed)'),\n column: z.number().int().nonnegative().describe('Cursor column number (0-indexed)'),\n }).describe('Current cursor position'),\n selection: CursorSelectionSchema.optional().describe('Current text selection'),\n style: CursorStyleSchema.describe('Visual style for this cursor'),\n isTyping: z.boolean().optional().default(false).describe('Whether user is currently typing'),\n lastUpdate: z.string().datetime().describe('ISO 8601 datetime of last cursor update'),\n metadata: z.record(z.string(), z.any()).optional().describe('Additional cursor metadata'),\n});\n\nexport type CollaborativeCursor = z.infer<typeof CollaborativeCursorSchema>;\n\n/**\n * Cursor Update Schema\n * Update to a collaborative cursor\n */\nexport const CursorUpdateSchema = z.object({\n position: z.object({\n line: z.number().int().nonnegative(),\n column: z.number().int().nonnegative(),\n }).optional().describe('Updated cursor position'),\n selection: CursorSelectionSchema.optional().describe('Updated selection'),\n isTyping: z.boolean().optional().describe('Updated typing state'),\n metadata: z.record(z.string(), z.any()).optional().describe('Updated metadata'),\n});\n\nexport type CursorUpdate = z.infer<typeof CursorUpdateSchema>;\n\n// ==========================================\n// Awareness State\n// ==========================================\n\n/**\n * User Activity Status Enum\n * User activity status for awareness\n */\nexport const UserActivityStatus = z.enum([\n 'active', // User is actively editing\n 'idle', // User is idle but connected\n 'viewing', // User is viewing but not editing\n 'disconnected', // User is disconnected\n]);\n\nexport type UserActivityStatus = z.infer<typeof UserActivityStatus>;\n\n/**\n * Awareness User State Schema\n * Tracks what a user is doing in the collaborative session\n */\nexport const AwarenessUserStateSchema = z.object({\n userId: z.string().describe('User identifier'),\n sessionId: z.string().uuid().describe('Session identifier'),\n userName: z.string().describe('Display name'),\n userAvatar: z.string().optional().describe('User avatar URL'),\n status: UserActivityStatus.describe('Current activity status'),\n currentDocument: z.string().optional().describe('Document ID user is currently editing'),\n currentView: z.string().optional().describe('Current view/page user is on'),\n lastActivity: z.string().datetime().describe('ISO 8601 datetime of last activity'),\n joinedAt: z.string().datetime().describe('ISO 8601 datetime when user joined session'),\n permissions: z.array(z.string()).optional().describe('User permissions in this session'),\n metadata: z.record(z.string(), z.any()).optional().describe('Additional user state metadata'),\n});\n\nexport type AwarenessUserState = z.infer<typeof AwarenessUserStateSchema>;\n\n/**\n * Awareness Session Schema\n * Represents the complete awareness state for a collaboration session\n */\nexport const AwarenessSessionSchema = z.object({\n sessionId: z.string().uuid().describe('Session identifier'),\n documentId: z.string().optional().describe('Document ID this session is for'),\n users: z.array(AwarenessUserStateSchema).describe('Active users in session'),\n startedAt: z.string().datetime().describe('ISO 8601 datetime when session started'),\n lastUpdate: z.string().datetime().describe('ISO 8601 datetime of last update'),\n metadata: z.record(z.string(), z.any()).optional().describe('Session metadata'),\n});\n\nexport type AwarenessSession = z.infer<typeof AwarenessSessionSchema>;\n\n/**\n * Awareness Update Schema\n * Update to awareness state\n */\nexport const AwarenessUpdateSchema = z.object({\n status: UserActivityStatus.optional().describe('Updated status'),\n currentDocument: z.string().optional().describe('Updated current document'),\n currentView: z.string().optional().describe('Updated current view'),\n metadata: z.record(z.string(), z.any()).optional().describe('Updated metadata'),\n});\n\nexport type AwarenessUpdate = z.infer<typeof AwarenessUpdateSchema>;\n\n/**\n * Awareness Event Schema\n * Events that occur in awareness tracking\n */\nexport const AwarenessEventSchema = z.object({\n eventId: z.string().uuid().describe('Event identifier'),\n sessionId: z.string().uuid().describe('Session identifier'),\n eventType: z.enum([\n 'user.joined',\n 'user.left',\n 'user.updated',\n 'session.created',\n 'session.ended',\n ]).describe('Type of awareness event'),\n userId: z.string().optional().describe('User involved in event'),\n timestamp: z.string().datetime().describe('ISO 8601 datetime of event'),\n payload: z.any().describe('Event payload'),\n});\n\nexport type AwarenessEvent = z.infer<typeof AwarenessEventSchema>;\n\n// ==========================================\n// Collaboration Session Management\n// ==========================================\n\n/**\n * Collaboration Mode Enum\n * Types of collaboration modes\n */\nexport const CollaborationMode = z.enum([\n 'ot', // Operational Transformation\n 'crdt', // CRDT-based\n 'lock', // Pessimistic locking (turn-based)\n 'hybrid', // Hybrid approach\n]);\n\nexport type CollaborationMode = z.infer<typeof CollaborationMode>;\n\n/**\n * Collaboration Session Config\n * Configuration for a collaboration session\n */\nexport const CollaborationSessionConfigSchema = z.object({\n mode: CollaborationMode.describe('Collaboration mode to use'),\n enableCursorSharing: z.boolean().optional().default(true).describe('Enable cursor sharing'),\n enablePresence: z.boolean().optional().default(true).describe('Enable presence tracking'),\n enableAwareness: z.boolean().optional().default(true).describe('Enable awareness state'),\n maxUsers: z.number().int().positive().optional().describe('Maximum concurrent users'),\n idleTimeout: z.number().int().positive().optional().default(300000).describe('Idle timeout in milliseconds'),\n conflictResolution: z.enum(['ot', 'crdt', 'manual']).optional().default('ot').describe('Conflict resolution strategy'),\n persistence: z.boolean().optional().default(true).describe('Enable operation persistence'),\n snapshot: z.object({\n enabled: z.boolean().describe('Enable periodic snapshots'),\n interval: z.number().int().positive().describe('Snapshot interval in milliseconds'),\n }).optional().describe('Snapshot configuration'),\n});\n\nexport type CollaborationSessionConfig = z.infer<typeof CollaborationSessionConfigSchema>;\n\n/**\n * Collaboration Session Schema\n * Complete collaboration session state\n */\nexport const CollaborationSessionSchema = z.object({\n sessionId: z.string().uuid().describe('Session identifier'),\n documentId: z.string().describe('Document identifier'),\n config: CollaborationSessionConfigSchema.describe('Session configuration'),\n users: z.array(AwarenessUserStateSchema).describe('Active users'),\n cursors: z.array(CollaborativeCursorSchema).describe('Active cursors'),\n version: z.number().int().nonnegative().describe('Current document version'),\n operations: z.array(z.union([OTOperationSchema, TextCRDTOperationSchema])).optional().describe('Recent operations'),\n createdAt: z.string().datetime().describe('ISO 8601 datetime when session was created'),\n lastActivity: z.string().datetime().describe('ISO 8601 datetime of last activity'),\n status: z.enum(['active', 'idle', 'ended']).describe('Session status'),\n});\n\nexport type CollaborationSession = z.infer<typeof CollaborationSessionSchema>;\n","import { z } from 'zod';\n\n/**\n * Metadata Scope Enum\n * Defines the lifecycle and mutability of a metadata item.\n */\nexport const MetadataScopeSchema = z.enum([\n 'system', // Defined in Code (Files). Read-only at runtime. Upgraded via deployment.\n 'platform', // Defined in DB (Global). admin-configured. Overrides system.\n 'user', // Defined in DB (Personal). User-configured. Overrides platform/system.\n]);\n\n/**\n * Metadata Lifecycle State\n */\nexport const MetadataStateSchema = z.enum([\n 'draft', // Work in progress, not active\n 'active', // Live and running\n 'archived', // Soft deleted\n 'deprecated' // Running but flagged for removal\n]);\n\n/**\n * Unified Metadata Persistence Protocol\n * \n * Defines the standardized envelope for storing ANY metadata item (Object, View, Flow)\n * in the database (e.g. `_framework_metadata` or generic `metadata` table).\n * \n * This treats \"Metadata as Data\".\n */\nexport const MetadataRecordSchema = z.object({\n /** Primary Key (UUID) */\n _id: z.string(),\n \n /** \n * Machine Name \n * The unique identifier used in code references (e.g. \"account_list_view\").\n */\n name: z.string(),\n \n /**\n * Metadata Type\n * e.g. \"object\", \"view\", \"permission_set\", \"flow\"\n */\n type: z.string(),\n \n /**\n * Namespace / Module\n * Groups metadata into packages (e.g. \"crm\", \"finance\", \"core\").\n */\n namespace: z.string().default('default'),\n \n /**\n * Ownership differentiation\n */\n scope: MetadataScopeSchema.default('platform'),\n \n /**\n * The Payload\n * Stores the actual configuration JSON.\n * This field holds the value of `ViewSchema`, `ObjectSchema`, etc.\n */\n metadata: z.record(z.string(), z.any()),\n\n /**\n * Extension / Merge Strategy\n * If this record overrides a system record, how should it be applied?\n */\n extends: z.string().optional().describe('Name of the parent metadata to extend/override'),\n strategy: z.enum(['merge', 'replace']).default('merge'),\n\n /** Owner (for user-scope items) */\n owner: z.string().optional(),\n \n /** State */\n state: MetadataStateSchema.default('active'),\n \n /** Audit */\n created_by: z.string().optional(),\n created_at: z.date().optional(),\n updated_by: z.string().optional(),\n updated_at: z.date().optional(),\n});\n\nexport type MetadataRecord = z.infer<typeof MetadataRecordSchema>;\nexport type MetadataScope = z.infer<typeof MetadataScopeSchema>;\n\n/**\n * Metadata Format\n * Supported file formats for metadata serialization.\n */\nexport const MetadataFormatSchema = z.enum([\n 'json', 'yaml', 'yml', 'ts', 'js',\n 'typescript', 'javascript' // Aliases\n]);\n\n/**\n * Metadata Stats\n * Statistics about a metadata item.\n */\nexport const MetadataStatsSchema = z.object({\n path: z.string().optional(),\n size: z.number().optional(),\n mtime: z.date().optional(),\n hash: z.string().optional(),\n etag: z.string().optional(), // Required by local cache\n modifiedAt: z.date().optional(), // Alias for mtime\n format: MetadataFormatSchema.optional(), // Required for serialization\n});\n\n/**\n * Metadata Loader Contract\n * Describes the capabilities and identity of a metadata loader.\n */\nexport const MetadataLoaderContractSchema = z.object({\n name: z.string(),\n protocol: z.string(), // e.g. 'file:', 'http:', 's3:'\n description: z.string().optional(),\n supportedFormats: z.array(z.string()).optional(),\n supportsWatch: z.boolean().optional(),\n supportsWrite: z.boolean().optional(),\n supportsCache: z.boolean().optional(),\n capabilities: z.object({\n read: z.boolean().default(true),\n write: z.boolean().default(false),\n watch: z.boolean().default(false),\n list: z.boolean().default(true),\n }),\n});\n\n/**\n * Metadata Load Options\n */\nexport const MetadataLoadOptionsSchema = z.object({\n scope: MetadataScopeSchema.optional(),\n namespace: z.string().optional(),\n raw: z.boolean().optional().describe('Return raw file content instead of parsed JSON'),\n cache: z.boolean().optional(),\n useCache: z.boolean().optional(), // Alias for cache\n validate: z.boolean().optional(),\n ifNoneMatch: z.string().optional(), // For caching\n recursive: z.boolean().optional(),\n limit: z.number().optional(),\n patterns: z.array(z.string()).optional(),\n loader: z.string().optional().describe('Specific loader to use (e.g. filesystem, database)'),\n});\n\n/**\n * Metadata Load Result\n */\nexport const MetadataLoadResultSchema = z.object({\n data: z.any(),\n stats: MetadataStatsSchema.optional(),\n format: MetadataFormatSchema.optional(),\n source: z.string().optional(), // File path or URL\n fromCache: z.boolean().optional(),\n etag: z.string().optional(),\n notModified: z.boolean().optional(),\n loadTime: z.number().optional(),\n});\n\n/**\n * Metadata Save Options\n */\nexport const MetadataSaveOptionsSchema = z.object({\n format: MetadataFormatSchema.optional(),\n create: z.boolean().default(true),\n overwrite: z.boolean().default(true),\n path: z.string().optional(),\n prettify: z.boolean().optional(),\n indent: z.number().optional(),\n sortKeys: z.boolean().optional(),\n backup: z.boolean().optional(),\n atomic: z.boolean().optional(),\n loader: z.string().optional().describe('Specific loader to use (e.g. filesystem, database)'),\n});\n\n/**\n * Metadata Save Result\n */\nexport const MetadataSaveResultSchema = z.object({\n success: z.boolean(),\n path: z.string().optional(),\n stats: MetadataStatsSchema.optional(),\n etag: z.string().optional(),\n size: z.number().optional(),\n saveTime: z.number().optional(),\n backupPath: z.string().optional(),\n});\n\n/**\n * Metadata Watch Event\n */\nexport const MetadataWatchEventSchema = z.object({\n type: z.enum(['add', 'change', 'unlink', 'added', 'changed', 'deleted']),\n path: z.string(),\n name: z.string().optional(),\n stats: MetadataStatsSchema.optional(),\n metadataType: z.string().optional(),\n data: z.any().optional(),\n timestamp: z.date().optional(),\n});\n\n/**\n * Metadata Collection Info\n */\nexport const MetadataCollectionInfoSchema = z.object({\n type: z.string(),\n count: z.number(),\n namespaces: z.array(z.string()),\n});\n\n/**\n * Metadata Export/Import Options\n */\nexport const MetadataExportOptionsSchema = z.object({\n types: z.array(z.string()).optional(),\n namespaces: z.array(z.string()).optional(),\n output: z.string().describe('Output directory or file'),\n format: MetadataFormatSchema.default('json'),\n});\n\nexport const MetadataImportOptionsSchema = z.object({\n source: z.string().describe('Input directory or file'),\n strategy: z.enum(['merge', 'replace', 'skip']).default('merge'),\n validate: z.boolean().default(true),\n});\n\n/**\n * Metadata Manager Config\n */\nexport const MetadataManagerConfigSchema = z.object({\n loaders: z.array(z.any()).optional(),\n watch: z.boolean().optional(),\n cache: z.boolean().optional(),\n basePath: z.string().optional(),\n rootDir: z.string().optional(),\n formats: z.array(MetadataFormatSchema).optional(),\n watchOptions: z.any().optional(), // Chokidar options\n});\n\nexport type MetadataFormat = z.infer<typeof MetadataFormatSchema>;\nexport type MetadataStats = z.infer<typeof MetadataStatsSchema>;\nexport type MetadataLoaderContract = z.infer<typeof MetadataLoaderContractSchema>;\nexport type MetadataLoadOptions = z.infer<typeof MetadataLoadOptionsSchema>;\nexport type MetadataLoadResult = z.infer<typeof MetadataLoadResultSchema>;\nexport type MetadataSaveOptions = z.infer<typeof MetadataSaveOptionsSchema>;\nexport type MetadataSaveResult = z.infer<typeof MetadataSaveResultSchema>;\nexport type MetadataWatchEvent = z.infer<typeof MetadataWatchEventSchema>;\nexport type MetadataCollectionInfo = z.infer<typeof MetadataCollectionInfoSchema>;\nexport type MetadataExportOptions = z.infer<typeof MetadataExportOptionsSchema>;\nexport type MetadataImportOptions = z.infer<typeof MetadataImportOptionsSchema>;\nexport type MetadataManagerConfig = z.infer<typeof MetadataManagerConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * # Service Registry Protocol\n * \n * Defines the standard built-in services that constitute the ObjectStack Kernel.\n * This registry is used by the `ObjectKernel` and `HttpDispatcher` to:\n * 1. Verify service availability.\n * 2. Route requests to the correct service handler.\n * 3. Type-check service interactions.\n */\n\n// ==========================================\n// Service Identifiers\n// ==========================================\n\nexport const CoreServiceName = z.enum([\n // Core Data & Metadata\n 'metadata', // Object/Field Definitions\n 'data', // CRUD & Query Engine\n 'auth', // Authentication & Identity\n \n // Infrastructure\n 'file-storage', // Storage Driver (Local/S3)\n 'search', // Search Engine (Elastic/Meili)\n 'cache', // Cache Driver (Redis/Memory)\n 'queue', // Job Queue (BullMQ/Redis)\n \n // Advanced Capabilities\n 'automation', // Flow & Script Engine\n 'graphql', // GraphQL API Engine\n 'analytics', // BI & Semantic Layer\n 'hub', // Multi-tenant & Marketplace Management\n 'realtime', // WebSocket & PubSub\n 'job', // Background Job Manager\n 'notification', // Email/Push/SMS\n]);\n\nexport type CoreServiceName = z.infer<typeof CoreServiceName>;\n\n/**\n * Service Criticality Level\n * Defines the startup behavior when a service is missing.\n */\nexport const ServiceCriticalitySchema = z.enum([\n 'required', // System fails to start if missing (Exit Code 1)\n 'core', // System warns if missing, functionality degraded (Warn)\n 'optional', // System ignores if missing, feature disabled (Info)\n]);\n\n/**\n * Service Requirement Definition\n */\nexport const ServiceRequirementDef = {\n // Required: The kernel cannot function without these\n metadata: 'required',\n data: 'required',\n auth: 'required',\n\n // Core: Highly recommended, defaults to in-memory if missing\n cache: 'core',\n queue: 'core',\n job: 'core',\n\n // Optional: Add-on capabilities\n 'file-storage': 'optional',\n search: 'optional',\n automation: 'optional',\n graphql: 'optional',\n analytics: 'optional',\n hub: 'optional',\n realtime: 'optional',\n notification: 'optional',\n} as const;\n\n// ==========================================\n// Service Capabilities\n// ==========================================\n\n/**\n * Describes the availability and health of a service\n */\nexport const ServiceStatusSchema = z.object({\n name: CoreServiceName,\n enabled: z.boolean(),\n status: z.enum(['running', 'stopped', 'degraded', 'initializing']),\n version: z.string().optional(),\n provider: z.string().optional().describe('Implementation provider (e.g. \"s3\" for storage)'),\n features: z.array(z.string()).optional().describe('List of supported sub-features'),\n});\n\n/**\n * The Contract definition for what the Kernel MUST expose\n * map<ServiceName, ServiceInstance>\n */\nexport const KernelServiceMapSchema = z.record(\n CoreServiceName, \n z.any().describe('Service Instance implementing the protocol interface')\n);\n\n// ==========================================\n// Service Interfaces (Stub definitions)\n// ==========================================\n// Ideally, we would define strict Typescript interfaces here \n// for what methods each service must expose to the Registry.\n// For Zod, we primarily validate configuration and status.\n\n// e.g.\nexport const ServiceConfigSchema = z.object({\n id: z.string(),\n name: CoreServiceName,\n options: z.record(z.string(), z.any()).optional(),\n});\n"],"mappings":";AAAA,SAAS,SAAS;AA0BX,IAAM,sBAAsB,EAAE,KAAK;AAAA,EACxC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAIM,IAAM,kBAAkB,EAAE,OAAO;AAAA,EACtC,MAAM,EAAE,OAAO;AAAA,EACf,MAAM,EAAE,KAAK,CAAC,UAAU,SAAS,aAAa,KAAK,CAAC;AAAA,EACpD,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gBAAgB;AAAA,EACxD,KAAK,EAAE,OAAO,EAAE,QAAQ,GAAG,EAAE,SAAS,wBAAwB;AAAA,EAC9D,UAAU,oBAAoB,QAAQ,KAAK;AAAA,EAC3C,QAAQ,EAAE,QAAQ,EAAE,QAAQ,KAAK;AACnC,CAAC;AAIM,IAAM,0BAA0B,EAAE,OAAO;AAAA,EAC9C,SAAS,EAAE,KAAK,CAAC,UAAU,UAAU,UAAU,QAAQ,CAAC;AAAA,EACxD,OAAO,EAAE,KAAK,CAAC,OAAO,WAAW,OAAO,KAAK,CAAC;AAAA,EAC9C,SAAS,EAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AACrC,CAAC;AAIM,IAAM,oBAAoB,EAAE,OAAO;AAAA,EACxC,SAAS,EAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAClC,OAAO,EAAE,MAAM,eAAe;AAAA,EAC9B,cAAc,EAAE,MAAM,uBAAuB;AAAA,EAC7C,UAAU,EAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACnC,aAAa,EAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACtC,YAAY,EAAE,QAAQ,EAAE,QAAQ,KAAK;AACvC,CAAC;;;AC/DD,SAAS,KAAAA,UAAS;AAMX,IAAM,6BAA6BA,GAAE,KAAK;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAIM,IAAM,oBAAoBA,GAAE,OAAO;AAAA,EACxC,MAAMA,GAAE,OAAO;AAAA,EACf,YAAYA,GAAE,OAAO,EAAE,QAAQ,CAAC;AAAA,EAChC,mBAAmBA,GAAE,OAAO,EAAE,QAAQ,CAAC;AAAA,EACvC,aAAaA,GAAE,OAAO,EAAE,SAAS;AAAA,EACjC,iBAAiBA,GAAE,KAAK,CAAC,QAAQ,QAAQ,UAAU,KAAK,CAAC,EAAE,QAAQ,MAAM;AAC3E,CAAC;AAIM,IAAM,uBAAuBA,GAAE,OAAO;AAAA,EAC3C,SAASA,GAAE,OAAO;AAAA,EAClB,iBAAiBA,GAAE,KAAK,CAAC,YAAY,QAAQ,CAAC,EAAE,QAAQ,QAAQ;AAAA,EAChE,kBAAkBA,GAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAC1C,gBAAgBA,GAAE,OAAO,EAAE,QAAQ,GAAG;AACxC,CAAC;AAIM,IAAM,wBAAwBA,GAAE,OAAO;AAAA,EAC5C,SAASA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAClC,YAAYA,GAAE,OAAO,EAAE,QAAQ,CAAC;AAAA,EAChC,WAAWA,GAAE,OAAO;AACtB,CAAC;AAIM,IAAM,2BAA2BA,GAAE,OAAO;AAAA,EAC/C,UAAU;AAAA,EACV,QAAQA,GAAE,MAAM,iBAAiB;AAAA,EACjC,WAAWA,GAAE,MAAM,oBAAoB,EAAE,SAAS;AAAA,EAClD,iBAAiB,sBAAsB,SAAS;AAAA,EAChD,KAAKA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAC9B,MAAMA,GAAE,OAAO;AAAA,IACb,WAAWA,GAAE,KAAK,CAAC,SAAS,iBAAiB,eAAe,CAAC;AAAA,IAC7D,UAAUA,GAAE,OAAO;AAAA,IACnB,UAAUA,GAAE,OAAO;AAAA,EACrB,CAAC,EAAE,SAAS;AACd,CAAC;;;ACvDD,SAAS,KAAAC,UAAS;;;ACAlB,SAAS,KAAAC,UAAS;AA6CX,IAAM,yBAAyBA,GACnC,OAAO,EACP,IAAI,GAAG,EAAE,SAAS,kDAAkD,CAAC,EACrE,MAAM,sBAAsB;AAAA,EAC3B,SACE;AACJ,CAAC,EACA,SAAS,wDAAwD;AAiB7D,IAAM,4BAA4BA,GACtC,OAAO,EACP,IAAI,GAAG,EAAE,SAAS,2CAA2C,CAAC,EAC9D,MAAM,qBAAqB;AAAA,EAC1B,SACE;AACJ,CAAC,EACA,SAAS,yDAAyD;AAoB9D,IAAM,kBAAkBA,GAC5B,OAAO,EACP,IAAI,GAAG,EAAE,SAAS,2CAA2C,CAAC,EAC9D,MAAM,sBAAsB;AAAA,EAC3B,SACE;AACJ,CAAC,EACA,SAAS,0DAA0D;;;AD9E/D,IAAM,qBAAqBC,GAAE,KAAK;AAAA,EACvC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,EAAE,SAAS,8BAA8B;AAQnC,IAAM,qBAAqBA,GAAE,OAAO;AAAA,EACzC,MAAMA,GAAE,OAAO,EAAE,SAAS,WAAW;AAAA,EACrC,MAAMA,GAAE,OAAO,EAAE,SAAS,WAAW;AAAA,EACrC,MAAMA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,oBAAoB;AAAA,EACpD,UAAUA,GAAE,OAAO,EAAE,SAAS,WAAW;AAAA,EACzC,cAAcA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,yBAAyB;AAAA,EACtE,SAASA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA,EAC5D,MAAMA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,YAAY;AACnD,CAAC;AAaM,IAAM,wBAAwBA,GAAE,KAAK;AAAA,EAC1C;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,EAAE,SAAS,uBAAuB;AAS5B,IAAM,mBAAmBA,GAAE,KAAK;AAAA,EACrC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,EAAE,SAAS,8BAA8B;AAUnC,IAAM,qBAAqBA,GAAE,KAAK;AAAA,EACvC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,EAAE,SAAS,0CAA0C;AAO/C,IAAM,wBAAwBA,GAAE,KAAK;AAAA,EAC1C;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,EAAE,SAAS,8BAA8B;AAyBnC,IAAM,uBAAuBA,GAAE,OAAO;AAAA,EAC3C,aAAaA,GAAE,OAAO,EAAE,SAAS,+CAA+C;AAAA,EAChF,eAAeA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,oBAAoB;AAAA,EAC9D,iBAAiBA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,+BAA+B;AAAA,EAC/E,oBAAoBA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA,EAC/E,iBAAiBA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,kBAAkB;AAAA,EAClE,cAAcA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,0BAA0B;AAAA,EACvE,MAAMA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mCAAmC;AAAA,EACxE,cAAcA,GAAE,KAAK,EAAE,SAAS,EAAE,SAAS,6BAA6B;AAAA,EACxE,WAAWA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,2BAA2B;AAAA,EACrE,cAAc,mBAAmB,SAAS,EAAE,SAAS,oBAAoB;AAAA,EACzE,YAAYA,GAAE,OAAO;AAAA,IACnB,WAAWA,GAAE,OAAO,EAAE,SAAS,8CAA8C;AAAA,IAC7E,OAAOA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,wCAAwC;AAAA,EAChF,CAAC,EAAE,SAAS,EAAE,SAAS,sCAAsC;AAAA,EAC7D,QAAQA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,8BAA8B;AAC7F,CAAC;AA2BM,IAAM,2BAA2BA,GAAE,OAAO;AAAA,EAC/C,WAAWA,GAAE,KAAK,CAAC,OAAO,OAAO,UAAU,MAAM,CAAC,EAAE,SAAS,mBAAmB;AAAA,EAChF,WAAWA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,MAAM,EAAE,SAAS,yCAAyC;AAAA,EAC3F,aAAaA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,0CAA0C;AAAA,EACtF,SAASA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,+CAA+C;AAAA,EAC9F,qBAAqBA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,0CAA0C;AAAA,EAC9F,4BAA4BA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iDAAiD;AAC9G,CAAC;AAoBM,IAAM,8BAA8BA,GAAE,OAAO;AAAA,EAClD,SAASA,GAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,0BAA0B;AAAA,EACtE,UAAUA,GAAE,OAAO,EAAE,IAAI,IAAI,OAAO,IAAI,EAAE,IAAI,IAAI,OAAO,OAAO,IAAI,EAAE,QAAQ,KAAK,OAAO,IAAI,EAAE,SAAS,uCAAuC;AAAA,EAChJ,UAAUA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAK,EAAE,QAAQ,GAAK,EAAE,SAAS,sCAAsC;AAAA,EACrG,WAAWA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,MAAM,OAAO,IAAI,EAAE,SAAS,yDAAyD;AAAA,EAC1H,eAAeA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,SAAS,iCAAiC;AAAA,EAC/F,0BAA0BA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,4CAA4C;AAC9G,CAAC;AAqBM,IAAM,4BAA4BA,GAAE,OAAO;AAAA,EAChD,KAAK,iBAAiB,QAAQ,SAAS,EAAE,SAAS,8BAA8B;AAAA,EAChF,gBAAgBA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAAA,EAC9E,gBAAgBA,GAAE,MAAMA,GAAE,KAAK,CAAC,OAAO,OAAO,QAAQ,UAAU,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,2BAA2B;AAAA,EACzH,gBAAgBA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAAA,EAC9E,eAAeA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAAA,EAC7E,QAAQA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,0CAA0C;AAAA,EACxF,aAAaA,GAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,2BAA2B;AAAA,EAC5E,cAAcA,GAAE,OAAO;AAAA,IACrB,iBAAiBA,GAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,0BAA0B;AAAA,IAC/E,kBAAkBA,GAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,2BAA2B;AAAA,IACjF,iBAAiBA,GAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,6BAA6B;AAAA,EACpF,CAAC,EAAE,SAAS,EAAE,SAAS,uBAAuB;AAAA,EAC9C,YAAYA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,kCAAkC;AAAA,EACtF,YAAYA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,kCAAkC;AACxF,CAAC;AA4BM,IAAM,4BAA4BA,GAAE,OAAO;AAAA,EAChD,IAAI,uBAAuB,SAAS,iBAAiB;AAAA,EACrD,SAASA,GAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,kBAAkB;AAAA,EAC9D,QAAQ,sBAAsB,SAAS,mBAAmB;AAAA,EAC1D,QAAQA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,6CAA6C;AAAA,EACpF,MAAMA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA,EAC/E,mBAAmBA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA,EACrF,uBAAuBA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,8BAA8B;AAAA,EAC3F,oBAAoB,mBAAmB,SAAS,EAAE,SAAS,4CAA4C;AACzG,CAAC,EAAE,OAAO,CAAC,SAAS;AAElB,MAAI,KAAK,WAAW,gBAAgB,CAAC,KAAK,oBAAoB;AAC5D,WAAO;AAAA,EACT;AACA,SAAO;AACT,GAAG;AAAA,EACD,SAAS;AACX,CAAC;AA8BM,IAAM,8BAA8BA,GAAE,OAAO;AAAA,EAClD,SAASA,GAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,2BAA2B;AAAA,EACxE,OAAOA,GAAE,MAAM,yBAAyB,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,iBAAiB;AAClF,CAAC;AA4BM,IAAM,qBAAqBA,GAAE,OAAO;AAAA,EACzC,MAAM,uBAAuB,SAAS,+CAA+C;AAAA,EACrF,OAAOA,GAAE,OAAO,EAAE,SAAS,eAAe;AAAA,EAC1C,YAAYA,GAAE,OAAO,EAAE,SAAS,kDAAkD;AAAA,EAClF,QAAQA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,0CAA0C;AAAA,EACjF,UAAU,sBAAsB,SAAS,kBAAkB;AAAA,EAC3D,UAAUA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mDAAmD;AAAA,EAC5F,WAAWA,GAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,mDAAmD;AAAA,EAElG,YAAYA,GAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,0BAA0B;AAAA,EAC1E,YAAYA,GAAE,OAAO;AAAA,IACnB,SAASA,GAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,+BAA+B;AAAA,IAC5E,WAAWA,GAAE,KAAK,CAAC,UAAU,WAAW,aAAa,SAAS,CAAC,EAAE,QAAQ,QAAQ,EAAE,SAAS,sBAAsB;AAAA,IAClH,UAAUA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mCAAmC;AAAA,EAC9E,CAAC,EAAE,SAAS,EAAE,SAAS,sCAAsC;AAAA,EAE7D,eAAe,0BAA0B,SAAS,EAAE,SAAS,8BAA8B;AAAA,EAC3F,iBAAiB,4BAA4B,SAAS,EAAE,SAAS,gCAAgC;AAAA,EACjG,iBAAiB,4BAA4B,SAAS,EAAE,SAAS,gCAAgC;AAAA,EAEjG,MAAMA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,8BAA8B;AAAA,EACzF,aAAaA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA,EAChE,SAASA,GAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,oBAAoB;AAClE,CAAC;AAwBM,IAAM,0BAA0BA,GAAE,OAAO;AAAA;AAAA,EAE9C,aAAaA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,uCAAuC;AAAA,EACnF,iBAAiBA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,2CAA2C;AAAA,EAC3F,cAAcA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,6CAA6C;AAAA;AAAA,EAG1F,aAAaA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA,EACxE,YAAYA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,2BAA2B;AAAA,EACtE,UAAUA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iBAAiB;AAAA;AAAA,EAG1D,WAAWA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gBAAgB;AAAA,EAC1D,aAAaA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,sCAAsC;AAAA;AAAA,EAGlF,UAAUA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,qBAAqB;AAAA,EAC9D,QAAQA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gBAAgB;AAAA,EACvD,QAAQA,GAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,6BAA6B;AAAA,EACxE,SAASA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,oCAAoC;AACrF,CAAC;AAgCM,IAAM,4BAA4BA,GAAE,OAAO;AAAA,EAChD,MAAM,uBAAuB,SAAS,kCAAkC;AAAA,EACxE,OAAOA,GAAE,OAAO,EAAE,SAAS,eAAe;AAAA,EAC1C,UAAU,sBAAsB,SAAS,0BAA0B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMnE,OAAO,mBAAmB,SAAS,EAAE,QAAQ,QAAQ,EAAE,SAAS,eAAe;AAAA,EAE/E,YAAY,wBAAwB,SAAS,wBAAwB;AAAA,EACrE,SAASA,GAAE,MAAM,kBAAkB,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,oBAAoB;AAAA,EAC9E,eAAeA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oCAAoC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMlF,UAAUA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oCAAoC;AAAA;AAAA;AAAA;AAAA,EAK7E,OAAOA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAK1E,SAASA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,yCAAyC;AAAA,EAEpG,SAASA,GAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,mCAAmC;AAAA,EAC/E,aAAaA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,2BAA2B;AACzE,CAAC;AAWM,IAAM,mBAAmB,0BAA0B,MAAM;AAAA,EAC9D,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,QAAQ;AAAA,EACV;AAAA,EACA,SAAS;AAAA,IACP;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,YAAY;AAAA,QACV,SAAS;AAAA,QACT,WAAW;AAAA,QACX,UAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,KAAK;AAAA,QACL,aAAa;AAAA,QACb,gBAAgB,CAAC,yBAAyB;AAAA,QAC1C,gBAAgB,CAAC,OAAO,OAAO,MAAM;AAAA,MACvC;AAAA,MACA,iBAAiB;AAAA,QACf,SAAS;AAAA,QACT,OAAO;AAAA,UACL;AAAA,YACE,IAAI;AAAA,YACJ,SAAS;AAAA,YACT,QAAQ;AAAA,YACR,mBAAmB;AAAA,YACnB,oBAAoB;AAAA,UACtB;AAAA,QACF;AAAA,MACF;AAAA,MACA,iBAAiB;AAAA,QACf,SAAS;AAAA,QACT,UAAU,KAAK,OAAO;AAAA,QACtB,WAAW,MAAM,OAAO;AAAA,QACxB,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AAAA,EACA,eAAe;AAAA,EACf,SAAS;AACX,CAAC;AAKM,IAAM,sBAAsB,0BAA0B,MAAM;AAAA,EACjE,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,UAAU;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EACA,SAAS;AAAA,IACP;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,UAAU;AAAA,MACV,WAAW;AAAA,MACX,eAAe;AAAA,QACb,KAAK;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAAA,EACA,eAAe;AAAA,EACf,SAAS;AACX,CAAC;AAKM,IAAM,0BAA0B,0BAA0B,MAAM;AAAA,EACrE,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,IACV,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,eAAe;AAAA,QACb,KAAK;AAAA,QACL,cAAc;AAAA,UACZ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,eAAe;AAAA,EACf,SAAS;AACX,CAAC;AAKM,IAAM,oBAAoB,0BAA0B,MAAM;AAAA,EAC/D,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,IACV,WAAW;AAAA,IACX,aAAa;AAAA,EACf;AAAA,EACA,SAAS;AAAA,IACP;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,iBAAiB;AAAA,QACf,SAAS;AAAA,QACT,OAAO;AAAA,UACL;AAAA,YACE,IAAI;AAAA,YACJ,SAAS;AAAA,YACT,QAAQ;AAAA,YACR,mBAAmB;AAAA,UACrB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,eAAe;AAAA,EACf,SAAS;AACX,CAAC;;;AE7oBD,SAAS,KAAAC,UAAS;AAMX,IAAM,uBAAuBA,GAAE,KAAK;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAIM,IAAM,uBAAuBA,GAAE,OAAO;AAAA,EAC3C,MAAMA,GAAE,KAAK,CAAC,YAAY,UAAU,cAAc,WAAW,WAAW,UAAU,CAAC;AAAA,EACnF,UAAUA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,WAAWA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACxC,eAAeA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS;AAC9C,CAAC;AAIM,IAAM,0BAA0BA,GAAE,OAAO;AAAA,EAC9C,WAAWA,GAAE,OAAO;AAAA,EACpB,YAAYA,GAAE,OAAO,EAAE,SAAS,wBAAwB;AAAA,EACxD,QAAQA,GAAE,MAAMA,GAAE,OAAO;AAAA,IACvB,MAAMA,GAAE,OAAO;AAAA,IACf,MAAMA,GAAE,KAAK,CAAC,QAAQ,WAAW,UAAU,QAAQ,WAAW,KAAK,CAAC;AAAA,IACpE,UAAUA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC9B,YAAYA,GAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,IACpC,YAAYA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,IACrC,UAAUA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,IACnC,OAAOA,GAAE,OAAO,EAAE,QAAQ,CAAC;AAAA,EAC7B,CAAC,CAAC;AAAA,EACF,UAAUA,GAAE,OAAO,EAAE,QAAQ,CAAC;AAAA,EAC9B,QAAQA,GAAE,OAAO,EAAE,QAAQ,CAAC;AAC9B,CAAC;AAIM,IAAM,oBAAoBA,GAAE,OAAO;AAAA,EACxC,OAAOA,GAAE,OAAO;AAAA,EAChB,WAAWA,GAAE,OAAO,EAAE,QAAQ,EAAE;AAAA,EAChC,MAAMA,GAAE,KAAK,CAAC,SAAS,OAAO,CAAC,EAAE,QAAQ,OAAO;AAClD,CAAC;AAIM,IAAM,qBAAqBA,GAAE,OAAO;AAAA,EACzC,UAAU;AAAA,EACV,SAASA,GAAE,MAAM,uBAAuB;AAAA,EACxC,WAAWA,GAAE,OAAOA,GAAE,OAAO,GAAG,oBAAoB,EAAE,SAAS;AAAA,EAC/D,QAAQA,GAAE,MAAM,iBAAiB,EAAE,SAAS;AAAA,EAC5C,eAAeA,GAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EACvC,UAAUA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,MAAMA,GAAE,OAAO,CAAC,CAAC,EAAE,SAAS;AAAA,EAC7D,SAASA,GAAE,MAAMA,GAAE,KAAK,CAAC,QAAQ,OAAO,SAAS,WAAW,aAAa,aAAa,SAAS,QAAQ,CAAC,CAAC,EAAE,SAAS;AACtH,CAAC;;;AC3DD,SAAS,KAAAC,UAAS;;;ACAlB,SAAS,KAAAC,UAAS;AAgBX,IAAM,aAAaA,GAAE,KAAK;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAyBM,IAAM,mBAAmBA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIvC,SAASA,GAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,EAKzD,SAASA,GAAE,MAAM;AAAA,IACfA,GAAE,OAAO;AAAA,IACTA,GAAE,MAAMA,GAAE,OAAO,CAAC;AAAA,EACpB,CAAC,EAAE,QAAQ,GAAG,EAAE,SAAS,6BAA6B;AAAA;AAAA;AAAA;AAAA,EAKtD,SAASA,GAAE,MAAM,UAAU,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAAA;AAAA;AAAA;AAAA,EAKvE,aAAaA,GAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,oDAAoD;AAAA;AAAA;AAAA;AAAA,EAKrG,QAAQA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,qCAAqC;AACpF,CAAC;AAsBM,IAAM,wBAAwBA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI5C,SAASA,GAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,sBAAsB;AAAA;AAAA;AAAA;AAAA,EAKnE,UAAUA,GAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,GAAK,EAAE,SAAS,6BAA6B;AAAA;AAAA;AAAA;AAAA,EAKhF,aAAaA,GAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,GAAG,EAAE,SAAS,yBAAyB;AAC/E,CAAC;AAuBM,IAAM,oBAAoBA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIxC,MAAMA,GAAE,OAAO,EAAE,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA,EAKlD,WAAWA,GAAE,OAAO,EAAE,SAAS,6BAA6B;AAAA;AAAA;AAAA;AAAA,EAK5D,cAAcA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAC3E,CAAC;;;ADrHM,IAAM,yBAAyBC,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI7C,MAAMA,GAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,KAAK,EAAE,QAAQ,GAAI,EAAE,SAAS,0BAA0B;AAAA;AAAA;AAAA;AAAA,EAK1F,MAAMA,GAAE,OAAO,EAAE,QAAQ,SAAS,EAAE,SAAS,yBAAyB;AAAA;AAAA;AAAA;AAAA,EAKtE,MAAM,iBAAiB,SAAS,EAAE,SAAS,oBAAoB;AAAA;AAAA;AAAA;AAAA,EAK/D,gBAAgBA,GAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,GAAK,EAAE,SAAS,iCAAiC;AAAA,EAC1F,WAAWA,GAAE,OAAO,EAAE,QAAQ,MAAM,EAAE,SAAS,2BAA2B;AAAA;AAAA;AAAA;AAAA,EAK1E,aAAaA,GAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,6BAA6B;AAAA;AAAA;AAAA;AAAA,EAK7E,UAAUA,GAAE,OAAO;AAAA,IACjB,QAAQA,GAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,oCAAoC;AAAA,IAC/E,WAAW,sBAAsB,SAAS,EAAE,SAAS,oCAAoC;AAAA,EAC3F,CAAC,EAAE,SAAS,EAAE,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA,EAK/C,QAAQA,GAAE,MAAM,iBAAiB,EAAE,SAAS,EAAE,SAAS,mCAAmC;AAAA;AAAA;AAAA;AAAA,EAK1F,YAAYA,GAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,6BAA6B;AAC/E,CAAC;AAYM,IAAM,6BAA6BA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIjD,QAAQ,WAAW,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,EAKzC,MAAMA,GAAE,OAAO,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAK5C,SAASA,GAAE,OAAO,EAAE,SAAS,4BAA4B;AAAA;AAAA;AAAA;AAAA,EAKzD,UAAUA,GAAE,OAAO;AAAA,IACjB,SAASA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iCAAiC;AAAA,IACzE,aAAaA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA,IAC/D,MAAMA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA,IACjE,aAAaA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,6BAA6B;AAAA,EAC3E,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,UAAUA,GAAE,OAAO;AAAA,IACjB,cAAcA,GAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,wBAAwB;AAAA,IACzE,aAAaA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAAA,IAC3E,WAAWA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA,EACxE,CAAC,EAAE,SAAS;AACd,CAAC;AAWM,IAAM,iBAAiBA,GAAE,KAAK;AAAA,EACnC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAoBM,IAAM,yBAAyBA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI7C,MAAMA,GAAE,OAAO,EAAE,MAAM,oBAAoB,EAAE,SAAS,8BAA8B;AAAA;AAAA;AAAA;AAAA,EAKpF,MAAM,eAAe,SAAS,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAK/C,SAASA,GAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,+BAA+B;AAAA;AAAA;AAAA;AAAA,EAK3E,OAAOA,GAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,GAAG,EAAE,SAAS,0BAA0B;AAAA;AAAA;AAAA;AAAA,EAKxE,QAAQA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,iCAAiC;AAAA;AAAA;AAAA;AAAA,EAK3F,OAAOA,GAAE,OAAO;AAAA,IACd,SAASA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,8BAA8B;AAAA,IAC/E,SAASA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,8BAA8B;AAAA,EACjF,CAAC,EAAE,SAAS,EAAE,SAAS,gBAAgB;AACzC,CAAC;AAWM,IAAM,kBAAkBA,GAAE,KAAK;AAAA,EACpC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAQM,IAAM,oBAAoBA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIxC,MAAM,gBAAgB,SAAS,YAAY;AAAA;AAAA;AAAA;AAAA,EAK3C,WAAWA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA;AAAA;AAAA;AAAA,EAKtE,MAAMA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,qBAAqB;AAC/E,CAAC;AAYM,IAAM,2BAA2BA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI/C,cAAcA,GAAE,MAAMA,GAAE,KAAK,CAAC,OAAO,OAAO,OAAO,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,yBAAyB;AAAA;AAAA;AAAA;AAAA,EAK/G,WAAWA,GAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAKlE,KAAKA,GAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,4BAA4B;AAAA;AAAA;AAAA;AAAA,EAKrE,YAAYA,GAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,4BAA4B;AAAA;AAAA;AAAA;AAAA,EAK5E,WAAWA,GAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,4BAA4B;AAAA;AAAA;AAAA;AAAA,EAK1E,YAAYA,GAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,0BAA0B;AAAA;AAAA;AAAA;AAAA,EAKzE,aAAaA,GAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,oCAAoC;AAAA;AAAA;AAAA;AAAA,EAKpF,aAAaA,GAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,8BAA8B;AAChF,CAAC;AAYM,IAAM,qBAAqBA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIzC,OAAOA,GAAE,KAAK,CAAC,WAAW,YAAY,WAAW,YAAY,OAAO,CAAC,EAAE,SAAS,sBAAsB;AAAA;AAAA;AAAA;AAAA,EAKtG,QAAQA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,+BAA+B;AAAA;AAAA;AAAA;AAAA,EAK5E,QAAQA,GAAE,OAAO;AAAA,IACf,MAAMA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,gBAAgB;AAAA,IAChD,MAAMA,GAAE,OAAO,EAAE,SAAS,YAAY;AAAA,IACtC,KAAKA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iBAAiB;AAAA,EACvD,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,aAAaA,GAAE,OAAO;AAAA,IACpB,QAAQA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,oBAAoB;AAAA,IACtD,OAAOA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,2BAA2B;AAAA,EAC9D,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,UAAUA,GAAE,OAAO;AAAA,IACjB,OAAOA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,0BAA0B;AAAA,IAC3D,SAASA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,qBAAqB;AAAA,IACxD,QAAQA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,iBAAiB;AAAA,EACrD,CAAC,EAAE,SAAS;AACd,CAAC;AAWM,IAAM,mBAAmB,OAAO,OAAO,wBAAwB;AAAA,EACpE,QAAQ,CAAmD,WAAc;AAC3E,CAAC;AAKM,IAAM,mBAAmB,OAAO,OAAO,wBAAwB;AAAA,EACpE,QAAQ,CAAmD,WAAc;AAC3E,CAAC;;;AEvWD,SAAS,KAAAC,UAAS;AAoBX,IAAM,iBAAiBA,GAAE,KAAK;AAAA;AAAA,EAEnC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA;AAAA,EAGA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA;AAAA,EAGA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA;AAAA,EAGA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA;AAAA,EAGA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAQM,IAAM,qBAAqBA,GAAE,KAAK;AAAA,EACvC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAQM,IAAM,wBAAwBA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI5C,MAAMA,GAAE,KAAK,CAAC,QAAQ,UAAU,WAAW,cAAc,aAAa,CAAC,EAAE,SAAS,YAAY;AAAA;AAAA;AAAA;AAAA,EAK9F,IAAIA,GAAE,OAAO,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAK1C,MAAMA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA;AAAA;AAAA;AAAA,EAKzD,OAAOA,GAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,qBAAqB;AAAA;AAAA;AAAA;AAAA,EAKnE,WAAWA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAK5D,WAAWA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAC/D,CAAC;AAQM,IAAM,yBAAyBA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI7C,MAAMA,GAAE,OAAO,EAAE,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,EAKvC,IAAIA,GAAE,OAAO,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAK3C,MAAMA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,qBAAqB;AAAA;AAAA;AAAA;AAAA,EAK1D,UAAUA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,iBAAiB;AAC/E,CAAC;AAQM,IAAM,yBAAyBA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI7C,OAAOA,GAAE,OAAO,EAAE,SAAS,oBAAoB;AAAA;AAAA;AAAA;AAAA,EAK/C,UAAUA,GAAE,IAAI,EAAE,SAAS,EAAE,SAAS,gBAAgB;AAAA;AAAA;AAAA;AAAA,EAKtD,UAAUA,GAAE,IAAI,EAAE,SAAS,EAAE,SAAS,WAAW;AACnD,CAAC;AAQM,IAAM,mBAAmBA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIvC,IAAIA,GAAE,OAAO,EAAE,SAAS,gBAAgB;AAAA;AAAA;AAAA;AAAA,EAKxC,WAAW,eAAe,SAAS,YAAY;AAAA;AAAA;AAAA;AAAA,EAK/C,UAAU,mBAAmB,QAAQ,MAAM,EAAE,SAAS,gBAAgB;AAAA;AAAA;AAAA;AAAA,EAKtE,WAAWA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAK3D,OAAO,sBAAsB,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,EAKnD,QAAQ,uBAAuB,SAAS,EAAE,SAAS,cAAc;AAAA;AAAA;AAAA;AAAA,EAKjE,aAAaA,GAAE,OAAO,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAKpD,SAASA,GAAE,MAAM,sBAAsB,EAAE,SAAS,EAAE,SAAS,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAK9E,QAAQA,GAAE,KAAK,CAAC,WAAW,WAAW,SAAS,CAAC,EAAE,QAAQ,SAAS,EAAE,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,EAK7F,cAAcA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,EAK5D,UAAUA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAK5D,WAAWA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA,EAKlE,UAAUA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,qBAAqB;AAAA;AAAA;AAAA;AAAA,EAKjF,UAAUA,GAAE,OAAO;AAAA,IACjB,SAASA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC7B,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC5B,MAAMA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,CAAC,EAAE,SAAS,EAAE,SAAS,qBAAqB;AAC9C,CAAC;AAQM,IAAM,6BAA6BA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAKjD,eAAeA,GAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,EAAE,SAAS,0BAA0B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMvF,uBAAuBA,GAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,qCAAqC;AAAA;AAAA;AAAA;AAAA,EAK/F,gBAAgBA,GAAE,OAAO;AAAA,IACvB,MAAMA,GAAE,KAAK,CAAC,MAAM,OAAO,cAAc,YAAY,CAAC,EAAE,SAAS,sBAAsB;AAAA,IACvF,UAAUA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAAA,IAC/D,QAAQA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,+BAA+B;AAAA,IACtE,MAAMA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,qBAAqB;AAAA,IAC1D,aAAaA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,qBAAqB;AAAA,EACtF,CAAC,EAAE,SAAS,EAAE,SAAS,+BAA+B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMtD,iBAAiBA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,SAAS,gCAAgC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMvH,sBAAsBA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,kCAAkC;AAC1G,CAAC;AAQM,IAAM,+BAA+BA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAInD,IAAIA,GAAE,OAAO,EAAE,SAAS,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAKzC,MAAMA,GAAE,OAAO,EAAE,SAAS,WAAW;AAAA;AAAA;AAAA;AAAA,EAKrC,aAAaA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAK9D,SAASA,GAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,qBAAqB;AAAA;AAAA;AAAA;AAAA,EAKjE,YAAYA,GAAE,MAAM,cAAc,EAAE,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA,EAKrE,WAAWA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIlB,WAAWA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,iBAAiB;AAAA;AAAA;AAAA;AAAA,IAKjE,eAAeA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA,IAK5E,SAASA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,IAKpE,SAASA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA,EACjF,CAAC,EAAE,SAAS,qBAAqB;AAAA;AAAA;AAAA;AAAA,EAKjC,SAASA,GAAE,MAAMA,GAAE,KAAK;AAAA,IACtB;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EACF,CAAC,CAAC,EAAE,SAAS,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAK9B,eAAe,mBAAmB,QAAQ,SAAS,EAAE,SAAS,gBAAgB;AAAA;AAAA;AAAA;AAAA,EAK9E,eAAeA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAItB,OAAOA,GAAE,MAAMA,GAAE,OAAO,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,IAKzE,OAAOA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,IAK/D,SAASA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA,EACpE,CAAC,EAAE,SAAS,EAAE,SAAS,4BAA4B;AACrD,CAAC;AAQM,IAAM,2BAA2BA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI/C,MAAMA,GAAE,KAAK;AAAA,IACX;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EACF,CAAC,EAAE,SAAS,sBAAsB;AAAA;AAAA;AAAA;AAAA,EAKlC,kBAAkBA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAKpE,QAAQA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,gCAAgC;AAAA;AAAA;AAAA;AAAA,EAK1F,eAAeA,GAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAKpE,YAAYA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,GAAG,EAAE,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,EAK3E,sBAAsBA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,SAAS,2BAA2B;AAAA;AAAA;AAAA;AAAA,EAKjG,aAAaA,GAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,oBAAoB;AACtE,CAAC;AAQM,IAAM,yBAAyBA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI7C,YAAYA,GAAE,MAAM,cAAc,EAAE,SAAS,EAAE,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA,EAKhF,YAAYA,GAAE,MAAM,kBAAkB,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA;AAAA;AAAA;AAAA,EAKxF,SAASA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAK1D,UAAUA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAK5D,WAAWA,GAAE,OAAO;AAAA,IAClB,MAAMA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,YAAY;AAAA,IACjD,IAAIA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,UAAU;AAAA,EAC/C,CAAC,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAK1C,QAAQA,GAAE,KAAK,CAAC,WAAW,WAAW,SAAS,CAAC,EAAE,SAAS,EAAE,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,EAKrF,aAAaA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,cAAc;AAAA;AAAA;AAAA;AAAA,EAK1D,eAAeA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,gBAAgB;AACnF,CAAC;AAQM,IAAM,oBAAoBA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMxC,MAAMA,GAAE,OAAO,EACZ,MAAM,oBAAoB,EAC1B,IAAI,EAAE,EACN,SAAS,+CAA+C;AAAA;AAAA;AAAA;AAAA,EAK3D,OAAOA,GAAE,OAAO,EAAE,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,EAK1C,SAASA,GAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMlE,YAAYA,GAAE,MAAM,cAAc,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAAA;AAAA;AAAA;AAAA,EAK9E,mBAAmBA,GAAE,MAAM,cAAc,EAAE,SAAS,EAAE,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMvF,iBAAiB,mBAAmB,QAAQ,MAAM,EAAE,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA,EAKrF,SAAS,yBAAyB,SAAS,uBAAuB;AAAA;AAAA;AAAA;AAAA,EAKlE,iBAAiB,2BAA2B,SAAS,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAKlF,yBAAyBA,GAAE,MAAM,4BAA4B,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,2BAA2B;AAAA;AAAA;AAAA;AAAA;AAAA,EAM/G,sBAAsBA,GAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA,EAKlF,cAAcA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,QAAQ;AAAA,IACxC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,EAM9B,UAAUA,GAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMnE,kBAAkBA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,EAAE,SAAS,oBAAoB;AAAA;AAAA;AAAA;AAAA,EAKrF,iBAAiBA,GAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMvE,gBAAgBA,GAAE,MAAMA,GAAE,OAAO;AAAA,IAC/B,WAAW,eAAe,SAAS,sBAAsB;AAAA,IACzD,WAAWA,GAAE,OAAO,EAAE,SAAS,mCAAmC;AAAA,EACpE,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,iCAAiC;AAAA;AAAA;AAAA;AAAA,EAKzD,YAAYA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAInB,WAAWA,GAAE,MAAMA,GAAE,KAAK;AAAA,MACxB;AAAA;AAAA,MACA;AAAA;AAAA,MACA;AAAA;AAAA,MACA;AAAA;AAAA,MACA;AAAA;AAAA,MACA;AAAA;AAAA,IACF,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAAA;AAAA;AAAA;AAAA,IAK9C,eAAeA,GAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA,IAK1E,gBAAgBA,GAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,qBAAqB;AAAA;AAAA;AAAA;AAAA,IAKzE,YAAYA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,aAAa;AAAA,EAC1D,CAAC,EAAE,SAAS,EAAE,SAAS,0BAA0B;AACnD,CAAC;AAQM,IAAM,oCAA8D;AAAA,EACzE;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,YAAY,CAAC,mBAAmB;AAAA,IAChC,WAAW;AAAA,MACT,WAAW;AAAA,MACX,eAAe;AAAA;AAAA,MACf,SAAS,CAAC,YAAY,iBAAiB;AAAA,IACzC;AAAA,IACA,SAAS,CAAC,SAAS,cAAc;AAAA,IACjC,eAAe;AAAA,EACjB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,YAAY,CAAC,aAAa;AAAA,IAC1B,WAAW;AAAA,MACT,WAAW;AAAA,MACX,eAAe;AAAA;AAAA,MACf,SAAS,CAAC,UAAU;AAAA,IACtB;AAAA,IACA,SAAS,CAAC,SAAS,cAAc;AAAA,IACjC,eAAe;AAAA,EACjB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,YAAY,CAAC,4BAA4B,qBAAqB;AAAA,IAC9D,WAAW;AAAA,MACT,WAAW;AAAA,MACX,eAAe;AAAA;AAAA,MACf,SAAS,CAAC,UAAU;AAAA,IACtB;AAAA,IACA,SAAS,CAAC,SAAS,cAAc;AAAA,IACjC,eAAe;AAAA,EACjB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA;AAAA,IACT,YAAY,CAAC,YAAY;AAAA,IACzB,WAAW;AAAA,MACT,WAAW;AAAA,MACX,eAAe;AAAA;AAAA,IACjB;AAAA,IACA,SAAS,CAAC,OAAO;AAAA,IACjB,eAAe;AAAA,EACjB;AACF;;;AC9rBA,SAAS,KAAAC,UAAS;AAsBX,IAAM,WAAWA,GAAE,KAAK;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC,EAAE,SAAS,oBAAoB;AAOzB,IAAM,YAAYA,GAAE,KAAK;AAAA,EAC9B;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,EAAE,SAAS,mBAAmB;AAQxB,IAAM,qBAAqBA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIzC,MAAMA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA,EAK7D,OAAO,SAAS,SAAS,EAAE,QAAQ,MAAM;AAAA;AAAA;AAAA;AAAA,EAKzC,QAAQ,UAAU,SAAS,EAAE,QAAQ,MAAM;AAAA;AAAA;AAAA;AAAA,EAK3C,QAAQA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,YAAY,SAAS,UAAU,KAAK,CAAC,EAClF,SAAS,iCAAiC;AAAA;AAAA;AAAA;AAAA,EAK7C,gBAAgBA,GAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,KAAK,EACjD,SAAS,8BAA8B;AAAA;AAAA;AAAA;AAAA,EAK1C,MAAMA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAKvD,UAAUA,GAAE,OAAO;AAAA,IACf,SAASA,GAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK;AAAA,IAC5C,UAAUA,GAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;AAAA,EAC7C,CAAC,EAAE,SAAS;AACd,CAAC;AAQM,IAAM,iBAAiBA,GAAE,OAAO;AAAA,EACrC,WAAWA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA,EAC9D,OAAO;AAAA,EACP,SAASA,GAAE,OAAO,EAAE,SAAS,aAAa;AAAA,EAC1C,SAASA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,yBAAyB;AAAA,EACpF,OAAOA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,yBAAyB;AAAA;AAAA,EAGlF,SAASA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAAA,EAC9D,QAAQA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,SAAS;AAAA;AAAA,EAGhD,SAASA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,cAAc;AAAA,EACtD,WAAWA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iCAAiC;AAC7E,CAAC;AAYM,IAAM,mBAAmBA,GAAE,KAAK;AAAA,EACrC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,EAAE,SAAS,6BAA6B;AAQlC,IAAM,qBAAqBA,GAAE,KAAK;AAAA,EACvC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,EAAE,SAAS,sBAAsB;AAO3B,IAAM,iCAAiCA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIrD,QAAQA,GAAE,KAAK,CAAC,UAAU,QAAQ,CAAC,EAAE,SAAS,EAAE,QAAQ,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKhE,QAAQA,GAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,EAK3C,aAAaA,GAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,KAAK;AACnD,CAAC,EAAE,SAAS,mCAAmC;AAOxC,IAAM,8BAA8BA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIlD,MAAMA,GAAE,OAAO,EAAE,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,EAKzC,UAAUA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIjB,SAASA,GAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK;AAAA;AAAA;AAAA;AAAA,IAK5C,UAAUA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA,IAK1D,UAAUA,GAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,IAK7C,UAAUA,GAAE,KAAK,CAAC,UAAU,SAAS,UAAU,SAAS,CAAC,EAAE,SAAS;AAAA,EACtE,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,UAAUA,GAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,MAAM;AAAA;AAAA;AAAA;AAAA,EAK9C,QAAQA,GAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAC7C,CAAC,EAAE,SAAS,gCAAgC;AAOrC,IAAM,8BAA8BA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIlD,KAAKA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAKlD,QAAQA,GAAE,KAAK,CAAC,QAAQ,KAAK,CAAC,EAAE,SAAS,EAAE,QAAQ,MAAM;AAAA;AAAA;AAAA;AAAA,EAKzD,SAASA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,OAAO,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKnD,MAAMA,GAAE,OAAO;AAAA,IACb,MAAMA,GAAE,KAAK,CAAC,SAAS,UAAU,SAAS,CAAC,EAAE,SAAS,WAAW;AAAA,IACjE,UAAUA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC9B,UAAUA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC9B,OAAOA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC3B,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC5B,cAAcA,GAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,WAAW;AAAA,EACzD,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,OAAOA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAId,SAASA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAG;AAAA;AAAA;AAAA;AAAA,IAK3D,eAAeA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAI;AAAA,EACpE,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,OAAOA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAId,aAAaA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA,IAK7D,cAAcA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAI;AAAA;AAAA;AAAA;AAAA,IAKjE,mBAAmBA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;AAAA,EAC/D,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,SAASA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAK;AAC/D,CAAC,EAAE,SAAS,gCAAgC;AAQrC,IAAM,yCAAyCA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI7D,UAAUA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKpC,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAK5B,aAAaA,GAAE,OAAO;AAAA,IACpB,aAAaA,GAAE,OAAO,EAAE,SAAS;AAAA,IACjC,iBAAiBA,GAAE,OAAO,EAAE,SAAS;AAAA,IACrC,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC5B,WAAWA,GAAE,OAAO,EAAE,SAAS;AAAA,EACjC,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,UAAUA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,WAAWA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,OAAOA,GAAE,OAAO,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAK3B,QAAQA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,IAAI,CAAC,EAAE,SAAS;AACjD,CAAC,EAAE,SAAS,4CAA4C;AAQjD,IAAM,uBAAuBA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI3C,MAAMA,GAAE,OAAO,EACZ,MAAM,oBAAoB,EAC1B,SAAS,+BAA+B;AAAA;AAAA;AAAA;AAAA,EAK3C,MAAM,mBAAmB,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAKpD,OAAO,iBAAiB,SAAS,EAAE,QAAQ,MAAM;AAAA;AAAA;AAAA;AAAA,EAKjD,SAASA,GAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,EAK5C,SAAS,+BAA+B,SAAS;AAAA;AAAA;AAAA;AAAA,EAKjD,MAAM,4BAA4B,SAAS;AAAA;AAAA;AAAA;AAAA,EAK3C,MAAM,4BAA4B,SAAS;AAAA;AAAA;AAAA;AAAA,EAK3C,iBAAiB,uCAAuC,SAAS;AAAA;AAAA;AAAA;AAAA,EAKjE,QAAQA,GAAE,KAAK,CAAC,QAAQ,QAAQ,QAAQ,CAAC,EAAE,SAAS,EAAE,QAAQ,MAAM;AAAA;AAAA;AAAA;AAAA,EAKpE,UAAUA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4BAA4B;AACvE,CAAC,EAAE,SAAS,+BAA+B;AAQpC,IAAM,4BAA4BA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIhD,cAAcA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,kCAAkC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMlG,kBAAkBA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,+BAA+B;AAAA;AAAA;AAAA;AAAA,EAKzF,aAAaA,GAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,EAKhD,cAAcA,GAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,EAKjD,gBAAgBA,GAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,EAKnD,qBAAqBA,GAAE,OAAO;AAAA,IAC5B,MAAMA,GAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,KAAK;AAAA,IAC1C,KAAKA,GAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA,EAC1C,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,WAAWA,GAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,KAAK;AAAA;AAAA;AAAA;AAAA,EAK/C,mBAAmBA,GAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AACxD,CAAC,EAAE,SAAS,8BAA8B;AAQnC,IAAM,2BAA2BA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI/C,WAAWA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA;AAAA;AAAA;AAAA,EAK9D,OAAO,iBAAiB,SAAS,oBAAoB;AAAA;AAAA;AAAA;AAAA,EAKrD,SAASA,GAAE,OAAO,EAAE,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,EAK1C,SAASA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA;AAAA;AAAA;AAAA,EAK/E,OAAOA,GAAE,OAAO;AAAA,IACd,MAAMA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC1B,SAASA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC7B,OAAOA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC3B,MAAMA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC1B,SAASA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAClD,CAAC,EAAE,SAAS,EAAE,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,EAKtC,OAAOA,GAAE,OAAO;AAAA,IACd,SAASA,GAAE,OAAO,EAAE,SAAS,UAAU;AAAA,IACvC,QAAQA,GAAE,OAAO,EAAE,SAAS,SAAS;AAAA,IACrC,cAAcA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gBAAgB;AAAA,IAC7D,YAAYA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,aAAa;AAAA,EAChE,CAAC,EAAE,SAAS,EAAE,SAAS,6BAA6B;AAAA;AAAA;AAAA;AAAA,EAKpD,QAAQA,GAAE,OAAO;AAAA,IACf,SAASA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,cAAc;AAAA,IACtD,WAAWA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gBAAgB;AAAA,IAC1D,MAAMA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,aAAa;AAAA,IAClD,MAAMA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,aAAa;AAAA,IACxD,UAAUA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,eAAe;AAAA,EAC1D,CAAC,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA;AAAA;AAAA;AAAA,EAK3C,MAAMA,GAAE,OAAO;AAAA,IACb,UAAUA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC9B,KAAKA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,IAC/B,IAAIA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,CAAC,EAAE,SAAS,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAKzC,aAAaA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,yCAAyC;AAAA;AAAA;AAAA;AAAA,EAKrF,MAAMA,GAAE,OAAO;AAAA,IACb,IAAIA,GAAE,OAAO,EAAE,SAAS;AAAA,IACxB,UAAUA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC9B,OAAOA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC,EAAE,SAAS,EAAE,SAAS,cAAc;AAAA;AAAA;AAAA;AAAA,EAKrC,SAASA,GAAE,OAAO;AAAA,IAChB,IAAIA,GAAE,OAAO,EAAE,SAAS;AAAA,IACxB,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC5B,MAAMA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC1B,WAAWA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC/B,IAAIA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,CAAC,EAAE,SAAS,EAAE,SAAS,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAKxC,QAAQA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,EAK5E,UAAUA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,qBAAqB;AACnF,CAAC,EAAE,SAAS,sBAAsB;AAQ3B,IAAM,sBAAsBA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI1C,MAAMA,GAAE,OAAO,EACZ,MAAM,oBAAoB,EAC1B,IAAI,EAAE,EACN,SAAS,+CAA+C;AAAA;AAAA;AAAA;AAAA,EAK3D,OAAOA,GAAE,OAAO,EAAE,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,EAK1C,SAASA,GAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,EAK5C,OAAO,iBAAiB,SAAS,EAAE,QAAQ,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,EAMjD,SAAS,mBAAmB,SAAS,EAAE,SAAS,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA,EAM9E,SAASA,GAAE,OAAOA,GAAE,OAAO,GAAG,kBAAkB,EAAE,SAAS,EAAE,SAAS,6BAA6B;AAAA;AAAA;AAAA;AAAA,EAKnG,cAAcA,GAAE,MAAM,oBAAoB,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAKvE,YAAY,0BAA0B,SAAS;AAAA;AAAA;AAAA;AAAA,EAK/C,QAAQA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS,EAAE,QAAQ;AAAA,IAC7C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAK9B,UAAUA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIjB,SAASA,GAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,KAAK;AAAA;AAAA;AAAA;AAAA,IAK7C,MAAMA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAG;AAAA;AAAA;AAAA;AAAA,IAKrD,aAAaA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS;AAAA,EACvE,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,QAAQA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIf,SAASA,GAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,IAK5C,MAAMA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAI;AAAA;AAAA;AAAA;AAAA,IAKzD,eAAeA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAI;AAAA;AAAA;AAAA;AAAA,IAKlE,iBAAiBA,GAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA,EACtD,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,aAAaA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIpB,OAAOA,GAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,IAK1C,SAASA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;AAAA,EAC3D,CAAC,EAAE,SAAS;AACd,CAAC,EAAE,SAAS,uBAAuB;;;ACtqBnC,SAAS,KAAAC,WAAS;AAiBX,IAAM,aAAaA,IAAE,KAAK;AAAA,EAC/B;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,EAAE,SAAS,aAAa;AAQlB,IAAM,aAAaA,IAAE,KAAK;AAAA;AAAA,EAE/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA;AAAA,EAGA;AACF,CAAC,EAAE,SAAS,aAAa;AAOlB,IAAM,wBAAwBA,IAAE,KAAK;AAAA,EAC1C;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,EAAE,SAAS,yBAAyB;AAO9B,IAAM,8BAA8BA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIlD,MAAMA,IAAE,KAAK,CAAC,UAAU,eAAe,UAAU,CAAC,EAAE,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,EAK1E,QAAQA,IAAE,OAAO;AAAA,IACf,OAAOA,IAAE,OAAO,EAAE,SAAS,aAAa;AAAA,IACxC,OAAOA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,cAAc;AAAA,IACpD,OAAOA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA,EACjE,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,aAAaA,IAAE,OAAO;AAAA,IACpB,OAAOA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,aAAa;AAAA,IACnD,QAAQA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,eAAe;AAAA,IACtD,OAAOA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA,EACjE,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,UAAUA,IAAE,OAAO;AAAA,IACjB,YAAYA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,mBAAmB;AAAA,EAC9D,CAAC,EAAE,SAAS;AACd,CAAC,EAAE,SAAS,gCAAgC;AAQrC,IAAM,qBAAqBA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,EAAE,SAAS,eAAe;AAOpF,IAAM,yBAAyBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI7C,MAAMA,IAAE,OAAO,EACZ,MAAM,oBAAoB,EAC1B,SAAS,0BAA0B;AAAA;AAAA;AAAA;AAAA,EAKtC,OAAOA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,EAKrD,MAAM,WAAW,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,EAKvC,MAAM,WAAW,SAAS,EAAE,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,EAKlD,aAAaA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA;AAAA;AAAA;AAAA,EAKhE,YAAYA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,EAK7E,WAAW,4BAA4B,SAAS;AAAA;AAAA;AAAA;AAAA,EAKhD,SAASA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIhB,WAAWA,IAAE,MAAMA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA,IAKhF,QAAQA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAG;AAAA;AAAA;AAAA;AAAA,IAK1D,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;AAAA,EAC9D,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,SAASA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAC9C,CAAC,EAAE,SAAS,mBAAmB;AAQxB,IAAM,wBAAwBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI5C,MAAMA,IAAE,OAAO,EAAE,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,EAKvC,MAAM,WAAW,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,EAKvC,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,uBAAuB;AAAA;AAAA;AAAA;AAAA,EAKjE,OAAOA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,cAAc;AAAA;AAAA;AAAA;AAAA,EAKpD,QAAQ,mBAAmB,SAAS,EAAE,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,EAK9D,WAAWA,IAAE,OAAO;AAAA,IAClB,OAAOA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,aAAa;AAAA,IAC5D,KAAKA,IAAE,OAAO,EAAE,SAAS,mBAAmB;AAAA,IAC5C,SAASA,IAAE,MAAMA,IAAE,OAAO;AAAA,MACxB,YAAYA,IAAE,OAAO,EAAE,SAAS,uBAAuB;AAAA,MACvD,OAAOA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,iBAAiB;AAAA,IAClE,CAAC,CAAC,EAAE,SAAS,mBAAmB;AAAA,EAClC,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,SAASA,IAAE,OAAO;AAAA,IAChB,OAAOA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,aAAa;AAAA,IAC5D,KAAKA,IAAE,OAAO,EAAE,SAAS,mBAAmB;AAAA,IAC5C,WAAWA,IAAE,MAAMA,IAAE,OAAO;AAAA,MAC1B,UAAUA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS,gBAAgB;AAAA,MAC5D,OAAOA,IAAE,OAAO,EAAE,SAAS,gBAAgB;AAAA,IAC7C,CAAC,CAAC,EAAE,SAAS,mBAAmB;AAAA,EAClC,CAAC,EAAE,SAAS;AACd,CAAC,EAAE,SAAS,mBAAmB;AAOxB,IAAM,4BAA4BA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIhD,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,WAAW;AAAA;AAAA;AAAA;AAAA,EAKrD,OAAOA,IAAE,OAAO,EAAE,SAAS,OAAO;AAAA;AAAA;AAAA;AAAA,EAKlC,QAAQA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,QAAQ;AACvE,CAAC,EAAE,SAAS,wBAAwB;AAO7B,IAAM,mBAAmBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIvC,MAAMA,IAAE,OAAO,EAAE,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,EAKvC,QAAQA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,EAK5E,YAAYA,IAAE,MAAM,yBAAyB,EAAE,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,EAKrE,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,YAAY;AAAA;AAAA;AAAA;AAAA,EAKjE,SAASA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,UAAU;AAC/D,CAAC,EAAE,SAAS,aAAa;AAOlB,IAAM,gCAAgCA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIpD,MAAM,sBAAsB,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAKvD,QAAQA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIf,MAAMA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA,IAKnE,SAASA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,KAAK;AAAA;AAAA;AAAA;AAAA,IAK7C,eAAeA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EACtD,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAAA;AAAA;AAAA;AAAA,EAKvE,SAASA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,iBAAiB;AAC9E,CAAC,EAAE,SAAS,kCAAkC;AAOvC,IAAM,8BAA8BA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIlD,MAAMA,IAAE,OAAO,EACZ,MAAM,oBAAoB,EAC1B,SAAS,uBAAuB;AAAA;AAAA;AAAA;AAAA,EAKnC,OAAOA,IAAE,OAAO,EAAE,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,EAK1C,aAAaA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAK7D,QAAQA,IAAE,OAAO,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAK9C,MAAMA,IAAE,KAAK;AAAA,IACX;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EACF,CAAC,EAAE,SAAS,UAAU;AAAA;AAAA;AAAA;AAAA,EAKtB,iBAAiBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIxB,WAAWA,IAAE,OAAO,EAAE,SAAS,iBAAiB;AAAA;AAAA;AAAA;AAAA,IAKhD,UAAUA,IAAE,KAAK,CAAC,MAAM,OAAO,MAAM,OAAO,IAAI,CAAC,EAAE,SAAS,qBAAqB;AAAA;AAAA;AAAA;AAAA,IAKjF,YAAYA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,kBAAkB;AAAA,EAC7E,CAAC,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAK9B,QAAQA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIf,MAAMA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA,IAKnE,SAASA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA,EAC9C,CAAC,EAAE,SAAS,oBAAoB;AAAA;AAAA;AAAA;AAAA,EAKhC,SAASA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAC9C,CAAC,EAAE,SAAS,yBAAyB;AAO9B,IAAM,8BAA8BA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIlD,MAAMA,IAAE,OAAO,EACZ,MAAM,oBAAoB,EAC1B,SAAS,uBAAuB;AAAA;AAAA;AAAA;AAAA,EAKnC,OAAOA,IAAE,OAAO,EAAE,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,EAK1C,aAAaA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAK7D,KAAKA,IAAE,OAAO,EAAE,SAAS,UAAU;AAAA;AAAA;AAAA;AAAA,EAKnC,QAAQA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAK/D,QAAQA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIf,MAAMA,IAAE,KAAK,CAAC,WAAW,UAAU,CAAC,EAAE,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,IAK5D,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,qBAAqB;AAAA;AAAA;AAAA;AAAA,IAK/E,UAAUA,IAAE,KAAK,CAAC,SAAS,UAAU,WAAW,aAAa,QAAQ,CAAC,EAAE,SAAS;AAAA,EACnF,CAAC,EAAE,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,EAKzB,aAAaA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIpB,SAASA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,IAK5C,gBAAgBA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE;AAAA;AAAA;AAAA;AAAA,IAKhE,iBAAiBA,IAAE,MAAMA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,MAIhC,QAAQA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,MAK1D,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,qBAAqB;AAAA,IACjE,CAAC,CAAC,EAAE,SAAS;AAAA,EACf,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,QAAQA,IAAE,MAAMA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIvB,MAAMA,IAAE,OAAO,EAAE,SAAS,YAAY;AAAA;AAAA;AAAA;AAAA,IAKtC,UAAUA,IAAE,KAAK,CAAC,QAAQ,WAAW,UAAU,CAAC,EAAE,SAAS,gBAAgB;AAAA;AAAA;AAAA;AAAA,IAK3E,WAAWA,IAAE,OAAO;AAAA,MAClB,MAAMA,IAAE,KAAK,CAAC,cAAc,gBAAgB,WAAW,CAAC,EAAE,SAAS,gBAAgB;AAAA,MACnF,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iBAAiB;AAAA,IAC7D,CAAC,EAAE,SAAS,iBAAiB;AAAA,EAC/B,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,EAKzB,SAASA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAC9C,CAAC,EAAE,SAAS,yBAAyB;AAO9B,IAAM,2BAA2BA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI/C,MAAMA,IAAE,KAAK;AAAA,IACX;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EACF,CAAC,EAAE,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,EAKzB,UAAUA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAK1D,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE;AAAA;AAAA;AAAA;AAAA,EAK3D,OAAOA,IAAE,OAAO;AAAA,IACd,SAASA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA,IAC5C,MAAMA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAI;AAAA,EAC3D,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,MAAMA,IAAE,OAAO;AAAA,IACb,MAAMA,IAAE,KAAK,CAAC,QAAQ,SAAS,UAAU,SAAS,CAAC,EAAE,SAAS,WAAW;AAAA,IACzE,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,IAC9B,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,IAC9B,OAAOA,IAAE,OAAO,EAAE,SAAS;AAAA,IAC3B,QAAQA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,QAAQA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,0BAA0B;AACtF,CAAC,EAAE,SAAS,6BAA6B;AAOlC,IAAM,sBAAsBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI1C,MAAMA,IAAE,OAAO,EACZ,MAAM,oBAAoB,EAC1B,IAAI,EAAE,EACN,SAAS,+CAA+C;AAAA;AAAA;AAAA;AAAA,EAK3D,OAAOA,IAAE,OAAO,EAAE,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,EAK1C,SAASA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,EAK5C,SAASA,IAAE,MAAM,sBAAsB,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,EAK9D,eAAe,mBAAmB,SAAS,EAAE,QAAQ,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,EAKvD,cAAcA,IAAE,MAAM,6BAA6B,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,EAK1E,MAAMA,IAAE,MAAM,2BAA2B,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,EAKhE,MAAMA,IAAE,MAAM,2BAA2B,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,EAKhE,SAASA,IAAE,MAAM,wBAAwB,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,EAKhE,oBAAoBA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE;AAAA;AAAA;AAAA;AAAA,EAKrE,WAAWA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIlB,QAAQA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,IAK7D,cAAcA,IAAE,MAAMA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,MAI7B,cAAcA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,0BAA0B;AAAA;AAAA;AAAA;AAAA,MAK7E,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,wBAAwB;AAAA,IAC3E,CAAC,CAAC,EAAE,SAAS;AAAA,EACf,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,mBAAmBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAI1B,sBAAsBA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAK;AAAA;AAAA;AAAA;AAAA,IAK1E,iBAAiBA,IAAE,KAAK,CAAC,QAAQ,UAAU,OAAO,CAAC,EAAE,SAAS,EAAE,QAAQ,OAAO;AAAA,EACjF,CAAC,EAAE,SAAS;AACd,CAAC,EAAE,SAAS,uBAAuB;;;AC7rBnC,SAAS,KAAAC,WAAS;AAiBX,IAAM,mBAAmBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIvC,SAASA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,EAAE,SAAS,qBAAqB;AAC1E,CAAC,EAAE,SAAS,aAAa;AAQlB,IAAM,mBAAmBA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS,oBAAoB;AAQvF,IAAM,qBAAqBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIzC,SAASA,IAAE,OAAO,EACf,MAAM,gBAAgB,EACtB,SAAS,yBAAyB;AAAA;AAAA;AAAA;AAAA,EAKrC,QAAQA,IAAE,OAAO,EACd,MAAM,gBAAgB,EACtB,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA,EAKpC,YAAY,iBAAiB,SAAS,EAAE,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA,EAKjD,YAAY,iBAAiB,SAAS;AAAA;AAAA;AAAA;AAAA,EAKtC,cAAcA,IAAE,OAAO,EACpB,MAAM,gBAAgB,EACtB,SAAS,EACT,SAAS,+BAA+B;AAAA;AAAA;AAAA;AAAA,EAK3C,SAASA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,EAK5C,QAAQA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,KAAK;AAC9C,CAAC,EAAE,SAAS,mCAAmC;AAQxC,IAAM,WAAWA,IAAE,KAAK;AAAA,EAC7B;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,EAAE,SAAS,WAAW;AAQhB,IAAM,aAAaA,IAAE,KAAK;AAAA,EAC/B;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,EAAE,SAAS,aAAa;AAOlB,IAAM,2BAA2BA,IAAE,MAAM;AAAA,EAC9CA,IAAE,OAAO;AAAA,EACTA,IAAE,OAAO;AAAA,EACTA,IAAE,QAAQ;AAAA,EACVA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAAA,EAClBA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAAA,EAClBA,IAAE,MAAMA,IAAE,QAAQ,CAAC;AACrB,CAAC,EAAE,SAAS,sBAAsB;AAQ3B,IAAM,uBAAuBA,IAAE,OAAOA,IAAE,OAAO,GAAG,wBAAwB,EAAE,SAAS,iBAAiB;AAOtG,IAAM,kBAAkBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAItC,MAAMA,IAAE,OAAO,EAAE,SAAS,YAAY;AAAA;AAAA;AAAA;AAAA,EAKtC,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAK3D,YAAY,qBAAqB,SAAS,EAAE,SAAS,kBAAkB;AACzE,CAAC,EAAE,SAAS,YAAY;AAQjB,IAAM,iBAAiBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIrC,SAAS,mBAAmB,SAAS,sBAAsB;AAAA;AAAA;AAAA;AAAA,EAK3D,YAAY,qBAAqB,SAAS,EAAE,SAAS,iBAAiB;AACxE,CAAC,EAAE,SAAS,WAAW;AAQhB,IAAM,aAAaA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIjC,SAAS,mBAAmB,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,EAKpD,MAAMA,IAAE,OAAO,EAAE,SAAS,WAAW;AAAA;AAAA;AAAA;AAAA,EAKrC,MAAM,SAAS,SAAS,EAAE,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA,EAK5C,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAK3D,SAASA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,EAKlE,UAAUA,IAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,0BAA0B;AAAA;AAAA;AAAA;AAAA,EAKjF,QAAQA,IAAE,OAAO;AAAA,IACf,MAAM,WAAW,SAAS,aAAa;AAAA,IACvC,SAASA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gBAAgB;AAAA,EAC1D,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,YAAY,qBAAqB,SAAS,EAAE,QAAQ,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,EAKtD,QAAQA,IAAE,MAAM,eAAe,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,EAKtD,OAAOA,IAAE,MAAM,cAAc,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,EAKpD,UAAU,qBAAqB,SAAS,EAAE,SAAS,qBAAqB;AAAA;AAAA;AAAA;AAAA,EAKxE,wBAAwBA,IAAE,OAAO;AAAA,IAC/B,MAAMA,IAAE,OAAO,EAAE,SAAS,cAAc;AAAA,IACxC,SAASA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iBAAiB;AAAA,EAC3D,CAAC,EAAE,SAAS;AACd,CAAC,EAAE,SAAS,oBAAoB;AAOzB,IAAM,mBAAmBA,IAAE,KAAK;AAAA,EACrC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,EAAE,SAAS,mBAAmB;AAOxB,IAAM,uBAAuBA,IAAE,KAAK;AAAA,EACzC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,EAAE,SAAS,wBAAwB;AAO7B,IAAM,4BAA4BA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIhD,MAAM,qBAAqB,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAKvD,OAAOA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA;AAAA;AAAA;AAAA,EAKxE,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAKxE,aAAaA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIpB,mBAAmB,qBAAqB,SAAS,EAAE,QAAQ,WAAW;AAAA;AAAA;AAAA;AAAA,IAKtE,sBAAsB,qBAAqB,SAAS,EAAE,QAAQ,YAAY;AAAA;AAAA;AAAA;AAAA,IAK1E,MAAM,qBAAqB,SAAS,EAAE,QAAQ,gBAAgB;AAAA;AAAA;AAAA;AAAA,IAK9D,WAAWA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,GAAG;AAAA,EAC5D,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,WAAWA,IAAE,MAAMA,IAAE,OAAO;AAAA,IAC1B,UAAU,qBAAqB,SAAS,eAAe;AAAA,IACvD,OAAOA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,IACzC,WAAWA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,6BAA6B;AAAA,EAC5F,CAAC,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKb,OAAOA,IAAE,MAAMA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAItB,MAAMA,IAAE,OAAO,EAAE,SAAS,WAAW;AAAA;AAAA;AAAA;AAAA,IAKrC,OAAOA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,MAId,SAASA,IAAE,OAAO,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,MAK7B,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,MAK9B,YAAYA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,IAAI,CAAC,EAAE,SAAS;AAAA,IACrD,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,IAKZ,UAAU,iBAAiB,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,IAKvD,MAAMA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC1C,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,EAKzB,iBAAiBA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,2BAA2B;AAC7E,CAAC,EAAE,SAAS,8BAA8B;AAOnC,IAAM,yBAAyBA,IAAE,KAAK;AAAA,EAC3C;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,EAAE,SAAS,0BAA0B;AAO/B,IAAM,gCAAgCA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIpD,SAASA,IAAE,MAAM,sBAAsB,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA,EAKnE,SAASA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,EAK5C,QAAQA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,EAK3C,SAASA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIhB,SAASA,IAAE,OAAO,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,IAK7B,QAAQA,IAAE,OAAO,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,IAK5B,YAAYA,IAAE,OAAO,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,IAKhC,YAAYA,IAAE,OAAO,EAAE,SAAS;AAAA,EAClC,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,SAASA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIhB,SAASA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,IAK5C,SAASA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,IAK5D,aAAaA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EAC5C,CAAC,EAAE,SAAS;AACd,CAAC,EAAE,SAAS,2BAA2B;AAOhC,IAAM,mBAAmBA,IAAE,KAAK;AAAA,EACrC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC,EAAE,SAAS,6BAA6B;AAOlC,IAAM,mCAAmCA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIvD,YAAYA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAK7D,UAAUA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIjB,MAAM,iBAAiB,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,IAK/C,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,IAKlE,UAAUA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,IAK3D,SAASA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,cAAc;AAAA;AAAA;AAAA;AAAA,IAK5E,SAASA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAK;AAAA;AAAA;AAAA;AAAA,IAK7D,aAAaA,IAAE,KAAK,CAAC,QAAQ,MAAM,CAAC,EAAE,SAAS,EAAE,QAAQ,MAAM;AAAA;AAAA;AAAA;AAAA,IAK/D,OAAOA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,MAId,cAAcA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAG;AAAA;AAAA;AAAA;AAAA,MAKhE,cAAcA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,MAKjE,eAAeA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAK;AAAA;AAAA;AAAA;AAAA,MAKnE,gBAAgBA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAI;AAAA,IACrE,CAAC,EAAE,SAAS;AAAA,EACd,CAAC,EAAE,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA,EAKpC,UAAUA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIjB,aAAaA,IAAE,OAAO,EAAE,SAAS,cAAc;AAAA;AAAA;AAAA;AAAA,IAK/C,gBAAgBA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iBAAiB;AAAA;AAAA;AAAA;AAAA,IAKhE,mBAAmBA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,qBAAqB;AAAA;AAAA;AAAA;AAAA,IAKvE,kBAAkBA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,IAKpE,uBAAuBA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA,IAK9E,YAAY,qBAAqB,SAAS,EAAE,SAAS,gCAAgC;AAAA,EACvF,CAAC,EAAE,SAAS,qBAAqB;AAAA;AAAA;AAAA;AAAA,EAKjC,iBAAiBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIxB,qBAAqBA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,IAKxD,WAAWA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,IAKtE,mBAAmBA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA,EACjF,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,4BAA4BA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,8BAA8B;AAC3F,CAAC,EAAE,SAAS,2CAA2C;AAOhD,IAAM,sBAAsBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI1C,MAAMA,IAAE,OAAO,EACZ,MAAM,oBAAoB,EAC1B,IAAI,EAAE,EACN,SAAS,+CAA+C;AAAA;AAAA;AAAA;AAAA,EAK3D,OAAOA,IAAE,OAAO,EAAE,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,EAK1C,SAASA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,EAK5C,UAAU,0BAA0B,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,OAAO,CAAC,EAAE,CAAC;AAAA;AAAA;AAAA;AAAA,EAKvF,aAAa,8BAA8B,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,KAAK,GAAG,SAAS,MAAM,QAAQ,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA,EAK/G,eAAe,iCAAiC,SAAS;AAAA;AAAA;AAAA;AAAA,EAKzD,YAAYA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAInB,eAAeA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAG;AAAA;AAAA;AAAA;AAAA,IAKjE,WAAWA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAG;AAAA;AAAA;AAAA;AAAA,IAK7D,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAG;AAAA;AAAA;AAAA;AAAA,IAK5D,yBAAyBA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA,EAC9E,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAKZ,kBAAkBA,IAAE,KAAK,CAAC,UAAU,QAAQ,QAAQ,CAAC,EAAE,SAAS,EAAE,QAAQ,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKlF,0BAA0BA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,6BAA6B;AAAA;AAAA;AAAA;AAAA,EAKtF,aAAaA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIpB,aAAaA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,IAKhD,gBAAgBA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAI;AAAA,EACrE,CAAC,EAAE,SAAS;AACd,CAAC,EAAE,SAAS,uBAAuB;;;ACprBnC,SAAS,KAAAC,WAAS;AAQX,IAAM,mBAAmBA,IAAE,KAAK;AAAA,EACrC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAOM,IAAM,uBAAuBA,IAAE,KAAK;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAOM,IAAM,qBAAqBA,IAAE,KAAK;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAqBM,IAAM,qBAAqBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIzC,OAAOA,IAAE,KAAK,CAAC,OAAO,UAAU,QAAQ,UAAU,CAAC,EAAE,SAAS,cAAc;AAAA;AAAA;AAAA;AAAA,EAK5E,iBAAiBA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAKhE,eAAeA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,qBAAqB;AAAA;AAAA;AAAA;AAAA,EAKnE,UAAUA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIjB,UAAUA,IAAE,QAAQ,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,IAKlD,iBAAiBA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA,EACrE,CAAC,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAC/C,CAAC;AA4BM,IAAM,qBAAqBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIzC,aAAaA,IAAE,OAAO,EAAE,SAAS,sBAAsB;AAAA;AAAA;AAAA;AAAA,EAKvD,OAAOA,IAAE,MAAMA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAItB,OAAOA,IAAE,OAAO,EAAE,SAAS,YAAY;AAAA;AAAA;AAAA;AAAA,IAKvC,aAAaA,IAAE,OAAO,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,IAKnD,kBAAkBA,IAAE,OAAO,EAAE,SAAS,oBAAoB;AAAA,EAC5D,CAAC,CAAC,EAAE,SAAS,gBAAgB;AAAA;AAAA;AAAA;AAAA,EAK7B,eAAeA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gBAAgB;AAChE,CAAC;AAwDM,IAAM,sBAAsBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI1C,IAAIA,IAAE,OAAO,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAK3C,OAAOA,IAAE,OAAO,EAAE,SAAS,cAAc;AAAA;AAAA;AAAA;AAAA,EAKzC,aAAaA,IAAE,OAAO,EAAE,SAAS,oBAAoB;AAAA;AAAA;AAAA;AAAA,EAKrD,MAAM,iBAAiB,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,EAK7C,UAAU,qBAAqB,SAAS,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAKzD,QAAQ,mBAAmB,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,EAKnD,aAAaA,IAAE,OAAO,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAKpD,aAAaA,IAAE,OAAO,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAKpD,QAAQ,mBAAmB,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAKvD,gBAAgBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIvB,aAAaA,IAAE,OAAO,EAAE,SAAS,4BAA4B;AAAA;AAAA;AAAA;AAAA,IAK7D,OAAOA,IAAE,MAAMA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,MAItB,OAAOA,IAAE,OAAO,EAAE,SAAS,YAAY;AAAA;AAAA;AAAA;AAAA,MAKvC,aAAaA,IAAE,OAAO,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,MAKnD,kBAAkBA,IAAE,OAAO,EAAE,SAAS,oBAAoB;AAAA,IAC5D,CAAC,CAAC,EAAE,SAAS,sBAAsB;AAAA;AAAA;AAAA;AAAA,IAKnC,SAASA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA,EAC7D,CAAC,EAAE,SAAS,qBAAqB;AAAA;AAAA;AAAA;AAAA,EAKjC,cAAc,mBAAmB,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,EAKzD,UAAUA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIjB,cAAcA,IAAE,OAAO,EAAE,SAAS,oBAAoB;AAAA;AAAA;AAAA;AAAA,IAKtD,YAAYA,IAAE,OAAO,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,IAKlD,aAAaA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,IAK/D,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iBAAiB;AAAA,EAC7D,CAAC,EAAE,SAAS,EAAE,SAAS,UAAU;AAAA;AAAA;AAAA;AAAA,EAKjC,UAAUA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIjB,UAAUA,IAAE,QAAQ,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,IAKlD,WAAWA,IAAE,MAAMA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,MAI1B,QAAQA,IAAE,OAAO,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,MAK9C,YAAYA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA;AAAA;AAAA;AAAA,MAK/D,UAAUA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA,IAC9D,CAAC,CAAC,EAAE,SAAS,WAAW;AAAA,EAC1B,CAAC,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAK1C,aAAaA,IAAE,MAAMA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAI5B,MAAMA,IAAE,OAAO,EAAE,SAAS,iBAAiB;AAAA;AAAA;AAAA;AAAA,IAK3C,KAAKA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,gBAAgB;AAAA,EACjD,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,aAAa;AACvC,CAAC;;;AC3WD,SAAS,KAAAC,WAAS;;;ACAlB,SAAS,KAAAC,WAAS;;;ACAlB,SAAS,KAAAC,WAAS;AAMX,IAAM,4BAA4BA,IAAE,KAAK;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAIM,IAAM,8BAA8BA,IAAE,KAAK;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAIM,IAAM,0BAA0BA,IAAE,OAAO;AAAA,EAC9C,SAASA,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAClC,eAAeA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE;AAAA,EAC3C,mBAAmBA,IAAE,OAAO,EAAE,QAAQ,CAAC;AAAA,EACvC,YAAYA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AACtC,CAAC;AAIM,IAAM,yBAAyBA,IAAE,OAAO;AAAA,EAC7C,SAASA,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAClC,WAAW,0BAA0B,QAAQ,aAAa;AAAA,EAC1D,eAAeA,IAAE,OAAO;AAAA,IACtB,UAAU;AAAA,IACV,OAAOA,IAAE,OAAO,EAAE,SAAS;AAAA,IAC3B,gBAAgB,wBAAwB,SAAS;AAAA,EACnD,CAAC;AAAA,EACD,OAAOA,IAAE,KAAK,CAAC,SAAS,UAAU,SAAS,UAAU,CAAC;AAAA,EACtD,yBAAyBA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,2CAA2C;AAAA,EACxG,sBAAsBA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,iCAAiC;AAC7F,CAAC;AAIM,IAAM,wBAAwBA,IAAE,OAAO;AAAA,EAC5C,WAAWA,IAAE,OAAO;AAAA,EACpB,kBAAkB;AAAA,EAClB,WAAWA,IAAE,QAAQ,EAAE,QAAQ,KAAK;AACtC,CAAC;;;ACpDD,SAAS,KAAAC,WAAS;AAKX,IAAM,wBAAwBA,IAAE,KAAK;AAAA,EAC1C;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAIM,IAAM,oBAAoBA,IAAE,OAAO;AAAA,EACxC,OAAOA,IAAE,OAAO;AAAA,EAChB,UAAU;AAAA,EACV,SAASA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mCAAmC;AAAA,EAC3E,gBAAgBA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EACxC,gBAAgBA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EACxC,OAAOA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA,EAC3E,aAAaA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,8BAA8B;AACrF,CAAC;AAIM,IAAM,sBAAsBA,IAAE,OAAO;AAAA,EAC1C,SAASA,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAClC,OAAOA,IAAE,MAAM,iBAAiB;AAAA,EAChC,gBAAgBA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAC1C,CAAC;;;AFzBM,IAAM,YAAYC,IAAE,KAAK;AAAA;AAAA,EAE9B;AAAA,EAAQ;AAAA,EAAY;AAAA,EAAS;AAAA,EAAO;AAAA,EAAS;AAAA;AAAA,EAE7C;AAAA,EAAY;AAAA,EAAQ;AAAA;AAAA,EAEpB;AAAA,EAAU;AAAA,EAAY;AAAA;AAAA,EAEtB;AAAA,EAAQ;AAAA,EAAY;AAAA;AAAA,EAEpB;AAAA,EAAW;AAAA;AAAA;AAAA,EAEX;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA;AAAA,EAEA;AAAA,EAAU;AAAA;AAAA,EACV;AAAA;AAAA;AAAA,EAEA;AAAA,EAAS;AAAA,EAAQ;AAAA,EAAU;AAAA,EAAS;AAAA;AAAA,EAEpC;AAAA,EAAW;AAAA,EAAW;AAAA;AAAA,EAEtB;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA;AAAA,EAEA;AAAA;AACF,CAAC;AAsBM,IAAM,qBAAqBA,IAAE,OAAO;AAAA,EACzC,OAAOA,IAAE,OAAO,EAAE,SAAS,kDAAkD;AAAA,EAC7E,OAAO,uBAAuB,SAAS,6CAA6C;AAAA,EACpF,OAAOA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,8BAA8B;AAAA,EACpE,SAASA,IAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAC9D,CAAC;AAMM,IAAM,4BAA4BA,IAAE,OAAO;AAAA,EAChD,UAAUA,IAAE,OAAO,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,SAAS,qBAAqB;AAAA,EACpE,WAAWA,IAAE,OAAO,EAAE,IAAI,IAAI,EAAE,IAAI,GAAG,EAAE,SAAS,sBAAsB;AAAA,EACxE,UAAUA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA,EAC7D,UAAUA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAC/D,CAAC;AAYM,IAAM,uBAAuBA,IAAE,OAAO;AAAA,EAC3C,WAAWA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC,EAAE,SAAS,gCAAgC;AAAA,EAC/F,cAAcA,IAAE,KAAK,CAAC,WAAW,OAAO,CAAC,EAAE,QAAQ,SAAS,EAAE,SAAS,qEAAqE;AAAA,EAC5I,iBAAiBA,IAAE,OAAO,EAAE,OAAO,CAAC,EAAE,QAAQ,KAAK,EAAE,SAAS,gEAAgE;AAChI,CAAC;AASM,IAAM,sBAAsBA,IAAE,OAAO;AAAA,EAC1C,OAAOA,IAAE,OAAO,EAAE,SAAS,iBAAiB;AAAA,EAC5C,UAAUA,IAAE,OAAO,EAAE,OAAO,CAAC,EAAE,SAAS,0BAA0B;AACpE,CAAC;AAMM,IAAM,gBAAgBA,IAAE,OAAO;AAAA,EACpC,QAAQA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gBAAgB;AAAA,EACvD,MAAMA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,WAAW;AAAA,EAChD,OAAOA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gBAAgB;AAAA,EACtD,YAAYA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iBAAiB;AAAA,EAC5D,SAASA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAAA,EAC9D,aAAaA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iCAAiC;AAAA,EAC7E,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,0BAA0B;AACtE,CAAC;AA0BM,IAAM,qBAAqBA,IAAE,OAAO;AAAA,EACzC,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAK,EAAE,SAAS,0DAA0D;AAAA,EAClH,gBAAgBA,IAAE,KAAK,CAAC,UAAU,aAAa,cAAc,WAAW,CAAC,EAAE,QAAQ,QAAQ,EAAE,SAAS,8CAA8C;AAAA,EACpJ,YAAYA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,8CAA8C;AAAA,EAC9F,SAASA,IAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,6DAA6D;AAAA,EACzG,WAAWA,IAAE,KAAK,CAAC,QAAQ,WAAW,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,6EAA6E;AAClJ,CAAC;AA+BM,IAAM,6BAA6BA,IAAE,OAAO;AAAA;AAAA,EAEjD,SAASA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA,EAC3E,SAASA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,oDAAoD;AAAA;AAAA,EAGnG,cAAcA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,2DAA2D;AAAA,EACjH,cAAcA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,yDAAyD;AAAA,EAC/G,kBAAkBA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,8DAA8D;AAAA,EACxH,kBAAkBA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA;AAAA,EAG9E,WAAWA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,0CAA0C;AAAA,EACzF,mBAAmBA,IAAE,KAAK,CAAC,UAAU,cAAc,gBAAgB,QAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,iCAAiC;AAAA,EACnI,mBAAmBA,IAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,kCAAkC;AAAA,EACxF,oBAAoBA,IAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,qCAAqC;AAAA;AAAA,EAG5F,iBAAiBA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,+DAA+D;AAAA,EAC/G,eAAeA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA,EAClE,eAAeA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,kDAAkD;AAAA;AAAA,EAGhG,iBAAiBA,IAAE,OAAO;AAAA,IACxB,UAAUA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,+BAA+B;AAAA,IAC/E,UAAUA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,+BAA+B;AAAA,IAC/E,WAAWA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,gCAAgC;AAAA,IACjF,WAAWA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,gCAAgC;AAAA,IACjF,aAAaA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,6CAA6C;AAAA,IACzF,oBAAoBA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,0BAA0B;AAAA,IAClF,gBAAgBA,IAAE,MAAMA,IAAE,OAAO;AAAA,MAC/B,MAAMA,IAAE,OAAO,EAAE,SAAS,2DAA2D;AAAA,MACrF,OAAOA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,2BAA2B;AAAA,MAC7D,QAAQA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,4BAA4B;AAAA,MAC/D,MAAMA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,0BAA0B;AAAA,IACtE,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,+BAA+B;AAAA,IACvD,kBAAkBA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,wBAAwB;AAAA,IAC9E,YAAYA,IAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,uCAAuC;AAAA,EACxF,CAAC,EAAE,SAAS,EAAE,SAAS,iCAAiC;AAAA;AAAA,EAGxD,eAAeA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,wDAAwD;AAAA,EAC3G,cAAcA,IAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,gCAAgC;AAAA,EACjF,aAAaA,IAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,+BAA+B;AAAA,EAC/E,eAAeA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,kDAAkD;AAAA;AAAA,EAGrG,iBAAiBA,IAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,gDAAgD;AAAA,EACpG,aAAaA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,mDAAmD;AAAA;AAAA,EAGpG,mBAAmBA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,0CAA0C;AAAA,EACjG,aAAaA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,sCAAsC;AAAA;AAAA,EAGzF,YAAYA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,4CAA4C;AAAA,EAC5F,oBAAoBA,IAAE,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,MAAM,EAAE,QAAQ,IAAI,EAAE,SAAS,uDAAuD;AACnI,CAAC,EAAE,OAAO,CAAC,SAAS;AAElB,MAAI,KAAK,YAAY,UAAa,KAAK,YAAY,UAAa,KAAK,UAAU,KAAK,SAAS;AAC3F,WAAO;AAAA,EACT;AACA,SAAO;AACT,GAAG;AAAA,EACD,SAAS;AACX,CAAC,EAAE,OAAO,CAAC,SAAS;AAElB,MAAI,KAAK,sBAAsB,UAAa,KAAK,cAAc,MAAM;AACnE,WAAO;AAAA,EACT;AACA,SAAO;AACT,GAAG;AAAA,EACD,SAAS;AACX,CAAC;AAgBM,IAAM,yBAAyBA,IAAE,OAAO;AAAA;AAAA,EAE7C,YAAYA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,0CAA0C;AAAA;AAAA,EAG1F,cAAcA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAS,qEAAqE;AAAA;AAAA,EAGhI,UAAUA,IAAE,OAAO;AAAA,IACjB,QAAQA,IAAE,OAAO,EAAE,SAAS,8EAA8E;AAAA,IAC1G,WAAWA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS,mEAAmE;AAAA,EAClH,CAAC,EAAE,SAAS,EAAE,SAAS,mCAAmC;AAC5D,CAAC;AAaM,IAAM,2BAA2BA,IAAE,OAAO;AAAA;AAAA,EAE/C,SAASA,IAAE,QAAQ,EAAE,SAAS,2CAA2C;AAAA;AAAA,EAGzE,KAAKA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,0CAA0C;AAAA;AAAA,EAG1E,cAAcA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,wFAAwF;AACrI,CAAC;AA8BM,IAAM,cAAcA,IAAE,OAAO;AAAA;AAAA,EAElC,MAAMA,IAAE,OAAO,EAAE,MAAM,oBAAoB,EAAE,SAAS,2BAA2B,EAAE,SAAS;AAAA,EAC5F,OAAOA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAAA,EAC5D,MAAM,UAAU,SAAS,iBAAiB;AAAA,EAC1C,aAAaA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA,EAC/D,QAAQA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mCAAmC;AAAA;AAAA,EAG1E,UAAUA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,aAAa;AAAA,EAC3D,YAAYA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,eAAe;AAAA,EAC/D,UAAUA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,2FAA2F;AAAA,EACzI,QAAQA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,sBAAsB;AAAA,EAClE,cAAcA,IAAE,IAAI,EAAE,SAAS,EAAE,SAAS,eAAe;AAAA;AAAA,EAGzD,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAAA,EAChE,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAAA;AAAA,EAGhE,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,cAAc;AAAA,EACxD,OAAOA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gBAAgB;AAAA,EACtD,KAAKA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,eAAe;AAAA,EACnD,KAAKA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,eAAe;AAAA;AAAA,EAGnD,SAASA,IAAE,MAAM,kBAAkB,EAAE,SAAS,EAAE,SAAS,uCAAuC;AAAA;AAAA,EAGhG,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA,EAC9D,kBAAkBA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,0DAA0D;AAAA,EACpH,yBAAyBA,IAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,qEAAqE;AAAA,EAC9H,gBAAgBA,IAAE,KAAK,CAAC,YAAY,WAAW,UAAU,CAAC,EAAE,SAAS,EAAE,QAAQ,UAAU,EAAE,SAAS,8CAA8C;AAAA;AAAA,EAGlJ,YAAYA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA,EAC/D,SAASA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA,EACpE,mBAAmBA,IAAE,OAAO;AAAA,IAC1B,QAAQA,IAAE,OAAO;AAAA,IACjB,OAAOA,IAAE,OAAO;AAAA,IAChB,UAAUA,IAAE,KAAK,CAAC,SAAS,OAAO,OAAO,OAAO,KAAK,CAAC;AAAA,EACxD,CAAC,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA;AAAA;AAAA,EAInD,UAAUA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,8EAA8E;AAAA,EACvH,OAAOA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gDAAgD;AAAA,EACtF,aAAaA,IAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,kCAAkC;AAAA;AAAA,EAG/E,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mCAAmC;AAAA,EAC7E,WAAWA,IAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,yBAAyB;AAAA;AAAA,EAGpE,YAAYA,IAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,uCAAuC;AAAA,EACnF,gBAAgBA,IAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,wCAAwC;AAAA;AAAA,EAGxF,eAAeA,IAAE,KAAK,CAAC,MAAM,MAAM,eAAe,CAAC,EAAE,SAAS,EAAE,SAAS,yBAAyB;AAAA;AAAA,EAGlG,aAAaA,IAAE,KAAK,CAAC,OAAO,OAAO,QAAQ,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA,EAC3F,YAAYA,IAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,kCAAkC;AAAA,EAC9E,cAAcA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAAA;AAAA,EAG5E,MAAMA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,wCAAwC;AAAA,EAC7E,WAAWA,IAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,iCAAiC;AAAA,EAC5E,OAAOA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,sFAAsF;AAAA;AAAA;AAAA;AAAA,EAKlJ,eAAeA,IAAE,KAAK,CAAC,MAAM,SAAS,QAAQ,WAAW,UAAU,QAAQ,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,qBAAqB;AAAA,EAC7H,mBAAmBA,IAAE,KAAK,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,wGAAwG;AAAA,EAC5K,cAAcA,IAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,oDAAoD;AAAA,EAClG,eAAeA,IAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,kDAAkD;AAAA;AAAA,EAGjG,gBAAgB,qBAAqB,SAAS,EAAE,SAAS,uCAAuC;AAAA;AAAA,EAGhG,cAAc,mBAAmB,SAAS,EAAE,SAAS,wDAAwD;AAAA;AAAA,EAG7G,sBAAsB,2BAA2B,SAAS,EAAE,SAAS,mDAAmD;AAAA;AAAA;AAAA,EAIxH,kBAAkB,uBAAuB,SAAS,EAAE,SAAS,8EAA8E;AAAA;AAAA,EAG3I,aAAa,kBAAkB,SAAS,EAAE,SAAS,uCAAuC;AAAA;AAAA,EAG1F,YAAYA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,yFAAyF;AAAA;AAAA;AAAA,EAIzI,cAAcA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,wFAAwF;AAAA;AAAA;AAAA,EAI9I,QAAQ,yBAAyB,SAAS,EAAE,SAAS,mDAAmD;AAAA;AAAA;AAAA,EAIxG,aAAa,uBAAuB,SAAS,EAAE,SAAS,8CAA8C;AAAA;AAAA,EAGtG,QAAQA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,wBAAwB;AAAA,EACpE,UAAUA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,iBAAiB;AAAA,EAC/D,YAAYA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,4GAA4G;AAAA;AAAA,EAG5J,OAAOA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,gCAAgC;AAAA,EAC3E,YAAYA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,sCAAsC;AACxF,CAAC;;;AG1cD,SAAS,KAAAC,WAAS;;;ACAlB,SAAS,KAAAC,WAAS;AAyDlB,IAAM,uBAAuBA,IAAE,OAAO;AAAA;AAAA,EAEpC,MAAMA,IAAE,OAAO,EAAE,MAAM,oBAAoB,EAAE,SAAS,+BAA+B;AAAA,EACrF,OAAOA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,2CAA2C;AAAA,EACjF,aAAaA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,qDAAqD;AAAA;AAAA,EAGjG,QAAQA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAChC,QAAQA,IAAE,MAAMA,IAAE,KAAK,CAAC,UAAU,UAAU,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,QAAQ,CAAC,EAAE,SAAS,qBAAqB;AAAA;AAAA,EAGpH,MAAMA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,qDAAqD;AAAA;AAAA,EAGnG,UAAUA,IAAE,KAAK,CAAC,SAAS,WAAW,MAAM,CAAC,EAAE,QAAQ,OAAO;AAAA,EAC9D,SAASA,IAAE,OAAO,EAAE,SAAS,sCAAsC;AACrE,CAAC;AAMM,IAAM,yBAAyB,qBAAqB,OAAO;AAAA,EAChE,MAAMA,IAAE,QAAQ,QAAQ;AAAA,EACxB,WAAWA,IAAE,OAAO,EAAE,SAAS,kEAAkE;AACnG,CAAC;AAMM,IAAM,6BAA6B,qBAAqB,OAAO;AAAA,EACpE,MAAMA,IAAE,QAAQ,QAAQ;AAAA,EACxB,QAAQA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,qCAAqC;AAAA,EAC1E,OAAOA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,kDAAkD;AAAA,EACxF,eAAeA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AACzC,CAAC;AAMM,IAAM,+BAA+B,qBAAqB,OAAO;AAAA,EACtE,MAAMA,IAAE,QAAQ,eAAe;AAAA,EAC/B,OAAOA,IAAE,OAAO,EAAE,SAAS,2BAA2B;AAAA,EACtD,aAAaA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,MAAMA,IAAE,OAAO,CAAC,CAAC,EAAE,SAAS,yCAAyC;AAC3G,CAAC;AAMM,IAAM,yBAAyB,qBAAqB,OAAO;AAAA,EAChE,MAAMA,IAAE,QAAQ,QAAQ;AAAA,EACxB,OAAOA,IAAE,OAAO;AAAA,EAChB,OAAOA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,QAAQA,IAAE,KAAK,CAAC,SAAS,OAAO,SAAS,MAAM,CAAC,EAAE,SAAS;AAC7D,CAAC;AAiEM,IAAM,6BAA6B,qBAAqB,OAAO;AAAA,EACpE,MAAMA,IAAE,QAAQ,aAAa;AAAA,EAC7B,WAAWA,IAAE,OAAO,EAAE,SAAS,oEAAoE;AAAA,EACnG,QAAQA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,mCAAmC;AAC1E,CAAC;AAWM,IAAM,uBAAuB,qBAAqB,OAAO;AAAA,EAC9D,MAAMA,IAAE,QAAQ,aAAa;AAAA,EAC7B,OAAOA,IAAE,OAAO,EAAE,SAAS,wBAAwB;AAAA,EACnD,QAAQA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,IAAI,CAAC,EAAE,SAAS,+BAA+B;AAChF,CAAC;AAqHM,IAAM,wBAAwB,qBAAqB,OAAO;AAAA,EAC/D,MAAMA,IAAE,QAAQ,OAAO;AAAA,EACvB,OAAOA,IAAE,OAAO,EAAE,SAAS,mBAAmB;AAAA,EAC9C,cAAcA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,sCAAsC;AAAA,EACnF,QAAQA,IAAE,KAAK,CAAC,OAAO,MAAM,CAAC,EAAE,QAAQ,KAAK,EAAE,SAAS,+BAA+B;AAAA,EACvF,SAASA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,gCAAgC;AAAA,EAC9F,mBAAmBA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,wCAAwC;AAAA,EAC1F,SAASA,IAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,GAAI,EAAE,SAAS,yBAAyB;AAAA,EAC/E,UAAUA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gCAAgC;AAAA,EACzE,QAAQA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,4CAA4C;AACxG,CAAC;AAMM,IAAM,wBAAwB,qBAAqB,OAAO;AAAA,EAC/D,MAAMA,IAAE,QAAQ,QAAQ;AAAA,EACxB,SAASA,IAAE,OAAO,EAAE,SAAS,iEAAiE;AAAA,EAC9F,QAAQA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,yCAAyC;AACrG,CAAC;AAKM,IAAM,uBAAuCA,IAAE;AAAA,EAAK,MACzDA,IAAE,mBAAmB,QAAQ;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAkLO,IAAM,8BAA8B,qBAAqB,OAAO;AAAA,EACrE,MAAMA,IAAE,QAAQ,aAAa;AAAA,EAC7B,MAAMA,IAAE,OAAO,EAAE,SAAS,gDAAkD;AAAA,EAC5E,MAAM,qBAAqB,SAAS,iDAAiD;AAAA,EACrF,WAAW,qBAAqB,SAAS,EAAE,SAAS,kDAAkD;AACxG,CAAC;;;ADhhBM,IAAM,YAAYC,IAAE,KAAK;AAAA,EAC9B;AAAA,EAAO;AAAA;AAAA,EACP;AAAA,EAAU;AAAA,EAAU;AAAA;AAAA,EACpB;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA,EAAW;AAAA;AAAA,EACX;AAAA,EAAU;AAAA;AACZ,CAAC;AAqBM,IAAM,qBAAqBA,IAAE,OAAO;AAAA;AAAA,EAEzC,cAAcA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,oDAAoD;AAAA;AAAA,EAGtG,YAAYA,IAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,iCAAiC;AAAA;AAAA,EAGhF,YAAYA,IAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,kCAAkC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMjF,YAAYA,IAAE,MAAM,SAAS,EAAE,SAAS,EAAE,SAAS,qCAAqC;AAAA;AAAA,EAGxF,OAAOA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,iDAAiD;AAAA;AAAA,EAG5F,OAAOA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,2DAA2D;AAAA;AAAA,EAGtG,YAAYA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,2CAA2C;AAAA;AAAA,EAG3F,OAAOA,IAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,4CAA4C;AAAA;AAAA,EAGtF,KAAKA,IAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,+CAA+C;AAAA;AAAA,EAGvF,OAAOA,IAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,2BAA2B;AACvE,CAAC;AAcM,IAAM,cAAcA,IAAE,OAAO;AAAA,EAClC,MAAMA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,6CAA6C;AAAA,EAClF,QAAQA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,8BAA8B;AAAA,EACnE,MAAMA,IAAE,KAAK,CAAC,SAAS,QAAQ,OAAO,QAAQ,UAAU,CAAC,EAAE,SAAS,EAAE,QAAQ,OAAO,EAAE,SAAS,sBAAsB;AAAA,EACtH,QAAQA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,KAAK,EAAE,SAAS,uCAAuC;AAAA,EAC9F,SAASA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oEAAoE;AAC9G,CAAC;AAaM,IAAMC,sBAAqBD,IAAE,OAAO;AAAA,EACzC,QAAQA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,gDAAgD;AAAA,EACrF,eAAeA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,0CAA0C;AAAA,EACjG,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,oCAAoC;AACvF,CAAC;AAcM,IAAM,sBAAsBA,IAAE,OAAO;AAAA,EAC1C,SAASA,IAAE,QAAQ,EAAE,SAAS,sCAAsC;AAAA,EACpE,UAAUA,IAAE,KAAK,CAAC,UAAU,YAAY,QAAQ,CAAC,EAAE,SAAS,2GAA2G;AAAA,EACvK,aAAaA,IAAE,OAAO,EAAE,QAAQ,WAAW,EAAE,SAAS,kCAAkC;AAAA,EACxF,mBAAmBA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,2DAA2D;AACpH,CAAC;AAaM,IAAM,yBAAyBA,IAAE,OAAO;AAAA,EAC7C,SAASA,IAAE,QAAQ,EAAE,SAAS,wCAAwC;AAAA,EACtE,OAAOA,IAAE,OAAO,EAAE,QAAQ,YAAY,EAAE,SAAS,sCAAsC;AAAA,EACvF,eAAeA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,wCAAwC;AAC7F,CAAC;AAcM,IAAM,yBAAyBA,IAAE,OAAO;AAAA,EAC7C,SAASA,IAAE,QAAQ,EAAE,SAAS,0BAA0B;AAAA,EACxD,UAAUA,IAAE,KAAK,CAAC,YAAY,SAAS,gBAAgB,CAAC,EAAE,SAAS,6FAA6F;AAAA,EAChK,eAAeA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,8DAA8D;AAAA,EACnH,cAAcA,IAAE,OAAO,EAAE,QAAQ,SAAS,EAAE,SAAS,yCAAyC;AAChG,CAAC;AAcM,IAAM,2BAA2BA,IAAE,OAAO;AAAA,EAC/C,SAASA,IAAE,QAAQ,EAAE,SAAS,2BAA2B;AAAA,EACzD,UAAUA,IAAE,KAAK,CAAC,SAAS,QAAQ,MAAM,CAAC,EAAE,SAAS,iGAAiG;AAAA,EACtJ,KAAKA,IAAE,OAAO,EAAE,SAAS,4BAA4B;AAAA,EACrD,UAAUA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mEAAmE;AAC9G,CAAC,EAAE,OAAO,CAAC,SAAS;AAElB,MAAI,KAAK,aAAa,WAAW,CAAC,KAAK,UAAU;AAC/C,WAAO;AAAA,EACT;AACA,SAAO;AACT,GAAG;AAAA,EACD,SAAS;AACX,CAAC;AAaM,IAAM,kBAAkBA,IAAE,OAAO;AAAA,EACtC,SAASA,IAAE,QAAQ,EAAE,SAAS,4BAA4B;AAAA,EAC1D,QAAQA,IAAE,MAAMA,IAAE,KAAK,CAAC,UAAU,UAAU,QAAQ,CAAC,CAAC,EAAE,SAAS,wBAAwB;AAAA,EACzF,aAAaA,IAAE,OAAO,EAAE,SAAS,+DAA+D;AAClG,CAAC;AAyBD,IAAM,mBAAmBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIhC,MAAMA,IAAE,OAAO,EAAE,MAAM,oBAAoB,EAAE,SAAS,6CAA6C;AAAA,EACnG,OAAOA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gDAAgD;AAAA,EACtF,aAAaA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,+CAA+C;AAAA,EAC3F,aAAaA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,uCAAuC;AAAA,EACnF,MAAMA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mDAAmD;AAAA;AAAA;AAAA;AAAA,EAKxF,MAAMA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,2DAA2D;AAAA,EACzG,QAAQA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,EAAE,SAAS,iCAAiC;AAAA,EACvF,UAAUA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,KAAK,EAAE,SAAS,4CAA4C;AAAA,EACrG,UAAUA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,KAAK,EAAE,SAAS,kDAAkD;AAAA;AAAA;AAAA;AAAA,EAK3G,YAAYA,IAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,SAAS,EAAE,SAAS,oDAAoD;AAAA,EAClH,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,yDAAyD;AAAA;AAAA;AAAA;AAAA,EAKnG,QAAQA,IAAE,OAAOA,IAAE,OAAO,EAAE,MAAM,sBAAsB;AAAA,IACtD,SAAS;AAAA,EACX,CAAC,GAAG,WAAW,EAAE,SAAS,6DAA6D;AAAA,EACvF,SAASA,IAAE,MAAM,WAAW,EAAE,SAAS,EAAE,SAAS,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA,EAOhF,SAAS,oBAAoB,SAAS,EAAE,SAAS,mDAAmD;AAAA;AAAA,EAGpG,YAAY,uBAAuB,SAAS,EAAE,SAAS,+CAA+C;AAAA;AAAA,EAGtG,YAAY,uBAAuB,SAAS,EAAE,SAAS,sDAAsD;AAAA;AAAA,EAG7G,cAAc,yBAAyB,SAAS,EAAE,SAAS,kDAAkD;AAAA;AAAA,EAG7G,KAAK,gBAAgB,SAAS,EAAE,SAAS,sEAAsE;AAAA;AAAA;AAAA;AAAA;AAAA,EAM/G,aAAaA,IAAE,MAAM,oBAAoB,EAAE,SAAS,EAAE,SAAS,+BAA+B;AAAA;AAAA;AAAA;AAAA,EAK9F,aAAaA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iEAAiE;AAAA,EAC7G,eAAeA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,wCAAwC;AAAA;AAAA;AAAA;AAAA,EAK/F,QAAQC,oBAAmB,SAAS,EAAE,SAAS,6BAA6B;AAAA;AAAA;AAAA;AAAA,EAK5E,QAAQ,mBAAmB,SAAS,EAAE,SAAS,iCAAiC;AAClF,CAAC;AAKM,IAAM,eAAe,OAAO,OAAO,kBAAkB;AAAA,EAC1D,QAAQ,CAA6C,WAAc;AACrE,CAAC;;;AJjTM,IAAM,oBAAoBC,IAAE,OAAO;AAAA,EACxC,MAAMA,IAAE,QAAQ,WAAW;AAAA,EAC3B,YAAYA,IAAE,OAAO;AAAA,EACrB,WAAWA,IAAE,OAAO;AAAA,EACpB,OAAO;AACT,CAAC;AAEM,IAAM,uBAAuBA,IAAE,OAAO;AAAA,EAC3C,MAAMA,IAAE,QAAQ,cAAc;AAAA,EAC9B,YAAYA,IAAE,OAAO;AAAA,EACrB,WAAWA,IAAE,OAAO;AAAA,EACpB,SAASA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,QAAQ,CAAC;AAAA;AAC3C,CAAC;AAEM,IAAM,uBAAuBA,IAAE,OAAO;AAAA,EAC3C,MAAMA,IAAE,QAAQ,cAAc;AAAA,EAC9B,YAAYA,IAAE,OAAO;AAAA,EACrB,WAAWA,IAAE,OAAO;AACtB,CAAC;AAEM,IAAM,wBAAwBA,IAAE,OAAO;AAAA,EAC5C,MAAMA,IAAE,QAAQ,eAAe;AAAA,EAC/B,QAAQ;AACV,CAAC;AAEM,IAAM,wBAAwBA,IAAE,OAAO;AAAA,EAC5C,MAAMA,IAAE,QAAQ,eAAe;AAAA,EAC/B,SAASA,IAAE,OAAO;AAAA,EAClB,SAASA,IAAE,OAAO;AACpB,CAAC;AAEM,IAAM,wBAAwBA,IAAE,OAAO;AAAA,EAC5C,MAAMA,IAAE,QAAQ,eAAe;AAAA,EAC/B,YAAYA,IAAE,OAAO;AACvB,CAAC;AAEM,IAAM,sBAAsBA,IAAE,OAAO;AAAA,EAC1C,MAAMA,IAAE,QAAQ,aAAa;AAAA,EAC7B,KAAKA,IAAE,OAAO;AAAA,EACd,aAAaA,IAAE,OAAO,EAAE,SAAS;AACnC,CAAC;AAGM,IAAM,2BAA2BA,IAAE,mBAAmB,QAAQ;AAAA,EACnE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAIM,IAAM,4BAA4BA,IAAE,OAAO;AAAA,EAChD,aAAaA,IAAE,OAAO;AAAA,EACtB,SAASA,IAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;AAEM,IAAM,kBAAkBA,IAAE,OAAO;AAAA,EACtC,IAAIA,IAAE,OAAO,EAAE,KAAK,EAAE,SAAS,uCAAuC;AAAA,EACtE,MAAMA,IAAE,OAAO,EAAE,SAAS,uCAAuC;AAAA,EACjE,aAAaA,IAAE,OAAO,EAAE,SAAS;AAAA,EACjC,QAAQA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA;AAAA,EAG1C,cAAcA,IAAE,MAAM,yBAAyB,EAAE,SAAS;AAAA;AAAA,EAG1D,YAAYA,IAAE,MAAM,wBAAwB;AAAA;AAAA,EAG5C,UAAUA,IAAE,MAAM,wBAAwB,EAAE,SAAS;AACvD,CAAC;;;AMjFD,SAAS,KAAAC,WAAS;AASX,IAAM,2BAA2BA,IAAE,OAAO;AAAA,EAC/C,IAAIA,IAAE,OAAO,EAAE,SAAS,8BAA8B;AAAA,EACtD,UAAUA,IAAE,OAAO,EAAE,SAAS,iBAAiB;AAAA,EAC/C,cAAcA,IAAE,OAAO,EAAE,SAAS,qBAAqB;AAAA,EACvD,OAAOA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,uBAAuB;AACxE,CAAC;AAEM,IAAM,yBAAyBA,IAAE,OAAO;AAAA,EAC7C,cAAcA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,mCAAmC;AAAA,EACrF,WAAWA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,YAAY;AAAA,EAC3D,UAAUA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,wBAAwB;AAAA,EACtE,WAAWA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,yBAAyB;AAC1E,CAAC;AAEM,IAAM,mBAAmBA,IAAE,OAAO;AAAA,EACvC,QAAQA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA,EAC1D,SAASA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,0BAA0B;AAAA,EAClE,aAAaA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA,EACxE,WAAWA,IAAE,MAAM,wBAAwB,EAAE,SAAS;AAAA,EACtD,SAAS,uBAAuB,SAAS;AAAA,EACzC,SAASA,IAAE,OAAO;AAAA,IAChB,WAAWA,IAAE,OAAO,EAAE,QAAQ,KAAK,KAAK,KAAK,CAAC,EAAE,SAAS,6BAA6B;AAAA,IACtF,WAAWA,IAAE,OAAO,EAAE,QAAQ,KAAK,KAAK,EAAE,EAAE,SAAS,0BAA0B;AAAA,EACjF,CAAC,EAAE,SAAS;AAAA;AAAA,EAGZ,CAACA,IAAE,OAAO,EAAE,MAAM,WAAW,EAAE,SAAS,CAAC,GAAGA,IAAE,IAAI,EAAE,SAAS;AAC/D,CAAC;;;ACpCD,SAAS,KAAAC,WAAS;AAKX,IAAM,mBAAmBA,IAAE,OAAO;AAAA,EACvC,SAASA,IAAE,QAAQ;AAAA,EACnB,mBAAmBA,IAAE,OAAO;AAAA,IAC1B,eAAeA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,IACvC,sBAAsBA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,IAC9C,gBAAgBA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,IACxC,oBAAoBA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,IAC5C,oBAAoBA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,IAC5C,kBAAkBA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAC5C,CAAC;AAAA,EACD,YAAYA,IAAE,KAAK;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,iBAAiBA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EACzC,mBAAmBA,IAAE,OAAO,EAAE,SAAS;AAAA,EACvC,yBAAyBA,IAAE,OAAO,EAAE,SAAS;AAC/C,CAAC;AAIM,IAAM,oBAAoBA,IAAE,OAAO;AAAA,EACxC,SAASA,IAAE,QAAQ;AAAA,EACnB,KAAKA,IAAE,OAAO;AAAA,IACZ,YAAYA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,IACpC,eAAeA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,IACvC,YAAYA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,IACpC,mBAAmBA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAC7C,CAAC;AAAA,EACD,4BAA4BA,IAAE,QAAQ,EAAE,QAAQ,KAAK;AACvD,CAAC;AAIM,IAAM,qBAAqBA,IAAE,OAAO;AAAA,EACzC,SAASA,IAAE,QAAQ;AAAA,EACnB,OAAOA,IAAE,KAAK,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC;AAAA,EAClC,gBAAgBA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAAA,EAClC,cAAcA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EACtC,qBAAqBA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAC7C,kBAAkBA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAC5C,CAAC;AAIM,IAAM,uBAAuBA,IAAE,OAAO;AAAA,EAC3C,SAASA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EACjC,eAAeA,IAAE,OAAO,EAAE,QAAQ,GAAG;AAAA,EACrC,WAAWA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EACnC,UAAUA,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACnC,QAAQA,IAAE,MAAMA,IAAE,KAAK;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC,CAAC;AACJ,CAAC;AAIM,IAAM,yBAAyBA,IAAE,OAAO;AAAA,EAC7C,MAAM,iBAAiB,SAAS;AAAA,EAChC,OAAO,kBAAkB,SAAS;AAAA,EAClC,QAAQ,mBAAmB,SAAS;AAAA,EACpC,UAAU;AACZ,CAAC;;;AC/ED,SAAS,KAAAC,WAAS;AAMX,IAAM,qBAAqBA,IAAE,OAAO;AAAA,EACzC,MAAMA,IAAE,QAAQ,MAAM;AAAA,EACtB,YAAYA,IAAE,OAAO,EAAE,SAAS,2DAA2D;AAAA,EAC3F,UAAUA,IAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,EAAE,SAAS,wDAAwD;AAClH,CAAC;AAMM,IAAM,yBAAyBA,IAAE,OAAO;AAAA,EAC7C,MAAMA,IAAE,QAAQ,UAAU;AAAA,EAC1B,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,0BAA0B;AAC7E,CAAC;AAMM,IAAM,qBAAqBA,IAAE,OAAO;AAAA,EACzC,MAAMA,IAAE,QAAQ,MAAM;AAAA,EACtB,IAAIA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mCAAmC;AACxE,CAAC;AAMM,IAAM,iBAAiBA,IAAE,mBAAmB,QAAQ;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAYM,IAAM,oBAAoBA,IAAE,OAAO;AAAA,EACxC,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAS,kCAAkC;AAAA,EAC1F,WAAWA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,GAAI,EAAE,SAAS,uCAAuC;AAAA,EACrG,mBAAmBA,IAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,SAAS,oCAAoC;AACnG,CAAC;AAwBM,IAAM,YAAYA,IAAE,OAAO;AAAA,EAChC,IAAIA,IAAE,OAAO,EAAE,SAAS,uBAAuB;AAAA,EAC/C,MAAMA,IAAE,OAAO,EAAE,MAAM,oBAAoB,EAAE,SAAS,uBAAuB;AAAA,EAC7E,UAAU,eAAe,SAAS,4BAA4B;AAAA,EAC9D,SAASA,IAAE,OAAO,EAAE,SAAS,8DAA8D;AAAA,EAC3F,aAAa,kBAAkB,SAAS,EAAE,SAAS,4BAA4B;AAAA,EAC/E,SAASA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,yBAAyB;AAAA,EAClF,SAASA,IAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,4BAA4B;AAC1E,CAAC;AAQM,IAAM,qBAAqBA,IAAE,KAAK;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAQM,IAAM,qBAAqBA,IAAE,OAAO;AAAA,EACzC,OAAOA,IAAE,OAAO,EAAE,SAAS,gBAAgB;AAAA,EAC3C,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,0CAA0C;AAAA,EACpF,aAAaA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,4CAA4C;AAAA,EACnG,QAAQ,mBAAmB,SAAS,kBAAkB;AAAA,EACtD,OAAOA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,yBAAyB;AAAA,EAC/D,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,oCAAoC;AACrF,CAAC;;;AClHD,SAAS,KAAAC,WAAS;AAuCX,IAAM,eAAeA,IAAE,KAAK;AAAA,EACjC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAQM,IAAM,uBAAqD;AAAA,EAChE,UAAU;AAAA,EACV,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,YAAY;AACd;AAUO,IAAM,aAAaA,IAAE,KAAK;AAAA,EAC/B;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAYM,IAAM,wBAAwBA,IAAE,OAAO;AAAA,EAC5C,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAS,wBAAwB;AAAA,EAChF,iBAAiBA,IAAE,KAAK,CAAC,SAAS,UAAU,aAAa,CAAC,EAAE,QAAQ,aAAa,EAC9E,SAAS,kCAAkC;AAAA,EAC9C,gBAAgBA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,GAAI,EAAE,SAAS,qCAAqC;AAAA,EACxG,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,GAAK,EAAE,SAAS,qCAAqC;AAAA,EACrG,mBAAmBA,IAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,SAAS,oCAAoC;AACnG,CAAC;AAqBM,IAAM,aAAaA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIjC,IAAIA,IAAE,OAAO,EAAE,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA,EAKhD,MAAMA,IAAE,OAAO,EAAE,MAAM,oBAAoB,EAAE,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA,EAK9E,SAASA,IAAE,IAAI,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAK7C,OAAOA,IAAE,OAAO,EAAE,QAAQ,SAAS,EAAE,SAAS,YAAY;AAAA;AAAA;AAAA;AAAA,EAK1D,UAAU,aAAa,QAAQ,QAAQ,EAAE,SAAS,qBAAqB;AAAA;AAAA;AAAA;AAAA,EAKvE,aAAa,sBAAsB,SAAS,EAAE,SAAS,4BAA4B;AAAA;AAAA;AAAA;AAAA,EAKnF,WAAWA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,8BAA8B;AAAA;AAAA;AAAA;AAAA,EAKzF,aAAaA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,mCAAmC;AAAA;AAAA;AAAA;AAAA,EAK1F,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAS,8BAA8B;AAAA;AAAA;AAAA;AAAA,EAKpF,QAAQ,WAAW,QAAQ,SAAS,EAAE,SAAS,qBAAqB;AAAA;AAAA;AAAA;AAAA,EAKpE,UAAUA,IAAE,OAAO;AAAA,IACjB,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,uBAAuB;AAAA,IAC5E,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,kBAAkB;AAAA,IACvE,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,uBAAuB;AAAA,IACjE,MAAMA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,yBAAyB;AAAA,EACzE,CAAC,EAAE,SAAS,EAAE,SAAS,eAAe;AACxC,CAAC;AAYM,IAAM,4BAA4BA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIhD,QAAQA,IAAE,OAAO,EAAE,SAAS,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAK7C,QAAQ,WAAW,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAK9C,QAAQA,IAAE,IAAI,EAAE,SAAS,EAAE,SAAS,uBAAuB;AAAA;AAAA;AAAA;AAAA,EAK3D,OAAOA,IAAE,OAAO;AAAA,IACd,SAASA,IAAE,OAAO,EAAE,SAAS,eAAe;AAAA,IAC5C,OAAOA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA,IACzD,MAAMA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,YAAY;AAAA,EACnD,CAAC,EAAE,SAAS,EAAE,SAAS,yBAAyB;AAAA;AAAA;AAAA;AAAA,EAKhD,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,oCAAoC;AAAA;AAAA;AAAA;AAAA,EAKrF,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,wBAAwB;AAAA,EAClE,aAAaA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,0BAA0B;AAAA;AAAA;AAAA;AAAA,EAKjF,SAASA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS,4BAA4B;AAAA,EACtE,WAAWA,IAAE,QAAQ,EAAE,SAAS,8BAA8B;AAChE,CAAC;AAsBM,IAAM,oBAAoBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIxC,MAAMA,IAAE,OAAO,EAAE,SAAS,yBAAyB;AAAA;AAAA;AAAA;AAAA,EAKnD,aAAaA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAS,gCAAgC;AAAA;AAAA;AAAA;AAAA,EAKzF,WAAWA,IAAE,OAAO;AAAA,IAClB,KAAKA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA,IACtE,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,0BAA0B;AAAA,EAC3E,CAAC,EAAE,SAAS,EAAE,SAAS,0BAA0B;AAAA;AAAA;AAAA;AAAA,EAKjD,oBAAoB,sBAAsB,SAAS,EAAE,SAAS,gCAAgC;AAAA;AAAA;AAAA;AAAA,EAK9F,iBAAiBA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA,EAKxE,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAS,0CAA0C;AAAA;AAAA;AAAA;AAAA,EAKhG,WAAWA,IAAE,OAAO;AAAA,IAClB,SAASA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,qBAAqB;AAAA,IAClE,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAS,iBAAiB;AAAA,IACzE,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,SAAS,iBAAiB;AAAA,IAC1E,kBAAkBA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,GAAG,EAAE,SAAS,wBAAwB;AAAA,IAC5F,oBAAoBA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,SAAS,0BAA0B;AAAA,EAC7F,CAAC,EAAE,SAAS,EAAE,SAAS,4BAA4B;AACrD,CAAC;AAqBM,IAAM,kBAAkBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAItC,IAAIA,IAAE,OAAO,EAAE,SAAS,6BAA6B;AAAA;AAAA;AAAA;AAAA,EAKrD,MAAMA,IAAE,OAAO,EAAE,MAAM,oBAAoB,EAAE,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA,EAK9E,OAAOA,IAAE,MAAMA,IAAE,IAAI,CAAC,EAAE,SAAS,2BAA2B;AAAA;AAAA;AAAA;AAAA,EAK5D,WAAWA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,EAAE,SAAS,2BAA2B;AAAA;AAAA;AAAA;AAAA,EAKpF,OAAOA,IAAE,OAAO,EAAE,QAAQ,OAAO,EAAE,SAAS,uBAAuB;AAAA;AAAA;AAAA;AAAA,EAKnE,UAAU,aAAa,QAAQ,QAAQ,EAAE,SAAS,qBAAqB;AAAA;AAAA;AAAA;AAAA,EAKvE,UAAUA,IAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS,6BAA6B;AAAA;AAAA;AAAA;AAAA,EAK1E,aAAaA,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAW/E,YAAYA,IAAE,SAAS,EACpB,KAAKA,IAAE,OAAO;AAAA,IACb,WAAWA,IAAE,OAAO;AAAA,IACpB,OAAOA,IAAE,OAAO;AAAA,IAChB,QAAQA,IAAE,OAAO;AAAA,EACnB,CAAC,CAAC,EACD,QAAQA,IAAE,KAAK,CAAC,EAChB,SAAS,EACT,SAAS,sDAAsD;AACpE,CAAC;AAQM,IAAM,sBAAsBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI1C,SAASA,IAAE,OAAO,EAAE,SAAS,sBAAsB;AAAA;AAAA;AAAA;AAAA,EAKnD,OAAOA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS,uBAAuB;AAAA;AAAA;AAAA;AAAA,EAK/D,WAAWA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAS,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAKxE,WAAWA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAS,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAKxE,QAAQA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAS,cAAc;AAAA;AAAA;AAAA;AAAA,EAKlE,YAAYA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS,qBAAqB;AAAA;AAAA;AAAA;AAAA,EAKrE,QAAQA,IAAE,KAAK,CAAC,WAAW,WAAW,aAAa,UAAU,WAAW,CAAC,EAAE,SAAS,cAAc;AAAA;AAAA;AAAA;AAAA,EAKlG,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA,EACzE,aAAaA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAC/E,CAAC;AAYM,IAAM,qBAAqBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIzC,MAAMA,IAAE,OAAO,EAAE,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,EAKvC,QAAQA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA,EAKpE,cAAcA,IAAE,MAAM,iBAAiB,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAAA;AAAA;AAAA;AAAA,EAKnF,gBAAgBA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,GAAI,EAAE,SAAS,wCAAwC;AAAA;AAAA;AAAA;AAAA,EAK3G,qBAAqBA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,GAAK,EAC3D,SAAS,kDAAkD;AAAA;AAAA;AAAA;AAAA,EAK9D,kBAAkBA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,GAAM,EAAE,SAAS,sCAAsC;AAAA;AAAA;AAAA;AAAA,EAK7G,mBAAmBA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,GAAK,EACzD,SAAS,2CAA2C;AAAA;AAAA;AAAA;AAAA,EAKvD,UAAUA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,SAAS,CAAC,EAAE,SAAS,EAAE,SAAS,oBAAoB;AACvF,CAAC;AAYM,IAAM,oBAAoBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIxC,YAAYA,IAAE,OAAO,EAAE,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,EAK7C,gBAAgBA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS,uBAAuB;AAAA;AAAA;AAAA;AAAA,EAKxE,WAAWA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAK9D,QAAQA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS,cAAc;AAAA;AAAA;AAAA;AAAA,EAKvD,QAAQA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA,EAKjE,gBAAgBA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,wCAAwC;AAAA;AAAA;AAAA;AAAA,EAK9F,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS,+BAA+B;AAAA;AAAA;AAAA;AAAA,EAK1E,QAAQA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO;AAAA,IACpC,SAASA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS,eAAe;AAAA,IACzD,QAAQA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS,cAAc;AAAA,IACvD,WAAWA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS,iBAAiB;AAAA,IAC7D,QAAQA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS,cAAc;AAAA,EACzD,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAChD,CAAC;AAWM,IAAM,OAAO,OAAO,OAAO,YAAY;AAAA,EAC5C,QAAQ,CAAuC,SAAY;AAC7D,CAAC;AAKM,IAAM,cAAc,OAAO,OAAO,mBAAmB;AAAA,EAC1D,QAAQ,CAA8C,WAAc;AACtE,CAAC;AAKM,IAAM,eAAe,OAAO,OAAO,oBAAoB;AAAA,EAC5D,QAAQ,CAA+C,WAAc;AACvE,CAAC;AAKM,IAAM,YAAY,OAAO,OAAO,iBAAiB;AAAA,EACtD,QAAQ,CAA4C,UAAa;AACnE,CAAC;;;AC3jBD,SAAS,KAAAC,WAAS;AAyBX,IAAM,sBAAsBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI1C,IAAIA,IAAE,OAAO,EAAE,SAAS,qBAAqB;AAAA;AAAA;AAAA;AAAA,EAK7C,SAASA,IAAE,OAAO,EAAE,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,EAK5C,MAAMA,IAAE,OAAO,EAAE,SAAS,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA,EAM9C,UAAUA,IAAE,KAAK,CAAC,QAAQ,QAAQ,UAAU,CAAC,EAAE,SAAS,EAAE,QAAQ,MAAM,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAKtG,WAAWA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA;AAAA;AAAA;AAAA,EAKvE,aAAaA,IAAE,MAAMA,IAAE,OAAO;AAAA,IAC5B,MAAMA,IAAE,OAAO,EAAE,SAAS,qBAAqB;AAAA,IAC/C,KAAKA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,gBAAgB;AAAA,EACjD,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAC7C,CAAC;AAkBM,IAAM,oBAAoBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIxC,IAAIA,IAAE,OAAO,EAAE,SAAS,qBAAqB;AAAA;AAAA;AAAA;AAAA,EAK7C,SAASA,IAAE,OAAO,EAAE,SAAS,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMlD,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,GAAG,EAAE,SAAS,wBAAwB;AAAA;AAAA;AAAA;AAAA,EAK/E,WAAWA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,oBAAoB;AACzE,CAAC;AAuBM,IAAM,yBAAyBA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI7C,OAAOA,IAAE,OAAO,EAAE,SAAS,oBAAoB;AAAA;AAAA;AAAA;AAAA,EAK/C,MAAMA,IAAE,OAAO,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAK7C,MAAMA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,uBAAuB;AAAA;AAAA;AAAA;AAAA,EAKlE,OAAOA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,EAKnD,MAAMA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,EAKrE,SAASA,IAAE,MAAMA,IAAE,OAAO;AAAA,IACxB,QAAQA,IAAE,OAAO,EAAE,SAAS,mBAAmB;AAAA,IAC/C,OAAOA,IAAE,OAAO,EAAE,SAAS,qBAAqB;AAAA,EAClD,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAChD,CAAC;AAoBM,IAAM,0BAA0BA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI9C,OAAOA,IAAE,OAAO,EAAE,SAAS,oBAAoB;AAAA;AAAA;AAAA;AAAA,EAK/C,SAASA,IAAE,OAAO,EAAE,SAAS,sBAAsB;AAAA;AAAA;AAAA;AAAA,EAKnD,MAAMA,IAAE,KAAK,CAAC,QAAQ,WAAW,WAAW,OAAO,CAAC,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAKlF,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,EAMtD,aAAaA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,EAAE,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAK7E,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAClE,CAAC;AAOM,IAAM,4BAA4BA,IAAE,KAAK;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAwCM,IAAM,2BAA2BA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAI/C,IAAIA,IAAE,OAAO,EAAE,SAAS,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAKzC,MAAMA,IAAE,OAAO,EAAE,SAAS,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAK7C,SAAS,0BAA0B,SAAS,sBAAsB;AAAA;AAAA;AAAA;AAAA,EAKlE,UAAUA,IAAE,MAAM;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC,EAAE,SAAS,uBAAuB;AAAA;AAAA;AAAA;AAAA,EAKnC,YAAYA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAInB,IAAIA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,oBAAoB;AAAA;AAAA;AAAA;AAAA,IAKrD,IAAIA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,IAK3D,KAAKA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,gBAAgB;AAAA,EAC/D,CAAC,EAAE,SAAS,YAAY;AAAA;AAAA;AAAA;AAAA,EAKxB,UAAUA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAIjB,MAAMA,IAAE,KAAK,CAAC,aAAa,WAAW,WAAW,CAAC,EAAE,SAAS,eAAe;AAAA;AAAA;AAAA;AAAA,IAK5E,OAAOA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,uBAAuB;AAAA;AAAA;AAAA;AAAA,IAK7D,aAAaA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,qBAAqB;AAAA,EACnE,CAAC,EAAE,SAAS,EAAE,SAAS,YAAY;AAAA;AAAA;AAAA;AAAA,EAKnC,aAAaA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKpB,SAASA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,EAAE,SAAS,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,IAMvE,YAAYA,IAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,SAAS,oBAAoB;AAAA;AAAA;AAAA;AAAA,IAK1E,iBAAiBA,IAAE,KAAK,CAAC,eAAe,UAAU,OAAO,CAAC,EAAE,SAAS,kBAAkB;AAAA,EACzF,CAAC,EAAE,SAAS,EAAE,SAAS,cAAc;AAAA;AAAA;AAAA;AAAA,EAKrC,UAAUA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKjB,YAAYA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,KAAK,EAAE,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,IAMxE,aAAaA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,KAAK,EAAE,SAAS,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,IAM1E,eAAeA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,EAAE,SAAS,gBAAgB;AAAA,EAC/E,CAAC,EAAE,SAAS,EAAE,SAAS,wBAAwB;AACjD,CAAC;;;AClXD,SAAS,KAAAC,WAAS;AAaX,IAAM,wBAAwBA,IAAE,OAAO;AAAA;AAAA,EAE5C,SAASA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO;AAAA,IACrC,OAAOA,IAAE,OAAO;AAAA,IAChB,aAAaA,IAAE,OAAO,EAAE,SAAS;AAAA,IACjC,QAAQA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO;AAAA,MACpC,OAAOA,IAAE,OAAO,EAAE,SAAS;AAAA,MAC3B,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,MAC1B,SAASA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA;AAAA,IACrD,CAAC,CAAC,EAAE,SAAS;AAAA,EACf,CAAC,CAAC,EAAE,SAAS;AAAA;AAAA,EAGb,MAAMA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO;AAAA,IAClC,OAAOA,IAAE,OAAO;AAAA,IAChB,aAAaA,IAAE,OAAO,EAAE,SAAS;AAAA,EACnC,CAAC,CAAC,EAAE,SAAS;AAAA;AAAA,EAGb,UAAUA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,EAAE,SAAS;AACtD,CAAC;AAEM,IAAM,eAAeA,IAAE,OAAO,EAAE,SAAS,yCAAyC;AAElF,IAAM,0BAA0BA,IAAE,OAAO,cAAc,qBAAqB;;;ACrCnF,SAAS,KAAAC,WAAS;AAoBX,IAAM,kBAAkBA,IAAE,KAAK;AAAA,EACpC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAQM,IAAM,oBAAoBA,IAAE,mBAAmB,QAAQ;AAAA,EAC5DA,IAAE,OAAO;AAAA,IACP,MAAMA,IAAE,QAAQ,QAAQ;AAAA,IACxB,MAAMA,IAAE,OAAO,EAAE,SAAS,gBAAgB;AAAA,IAC1C,YAAYA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,iDAAiD;AAAA,EACjH,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACP,MAAMA,IAAE,QAAQ,QAAQ;AAAA,IACxB,OAAOA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,gCAAgC;AAAA,EAC9E,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACP,MAAMA,IAAE,QAAQ,QAAQ;AAAA,IACxB,OAAOA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,gCAAgC;AAAA,IAC5E,YAAYA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA,EAC5F,CAAC;AACH,CAAC;AASM,IAAM,oBAAoBA,IAAE,OAAO;AAAA,EACxC,aAAaA,IAAE,OAAO,EAAE,KAAK,EAAE,SAAS,6BAA6B;AAAA,EACrE,YAAYA,IAAE,OAAO,EAAE,SAAS,qBAAqB;AAAA,EACrD,QAAQA,IAAE,OAAO,EAAE,SAAS,gCAAgC;AAAA,EAC5D,WAAWA,IAAE,OAAO,EAAE,KAAK,EAAE,SAAS,oBAAoB;AAAA,EAC1D,YAAYA,IAAE,MAAM,iBAAiB,EAAE,SAAS,sBAAsB;AAAA,EACtE,aAAaA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,6CAA6C;AAAA,EAClG,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,8CAA8C;AAAA,EACxF,UAAUA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,+BAA+B;AAC7F,CAAC;AAQM,IAAM,0BAA0BA,IAAE,OAAO;AAAA,EAC9C,WAAW,kBAAkB,SAAS,uBAAuB;AAAA,EAC7D,aAAaA,IAAE,QAAQ,EAAE,SAAS,oCAAoC;AAAA,EACtE,WAAWA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,8BAA8B;AACnF,CAAC;AAYM,IAAM,WAAWA,IAAE,KAAK;AAAA,EAC7B;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAQM,IAAM,oBAAoBA,IAAE,OAAO;AAAA,EACxC,OAAOA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,SAAS,wCAAwC;AAC/G,CAAC;AAQM,IAAM,oBAAoBA,IAAE,OAAO;AAAA,EACxC,MAAMA,IAAE,QAAQ,cAAc;AAAA,EAC9B,OAAOA,IAAE,IAAI,EAAE,SAAS,wBAAwB;AAAA,EAChD,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iCAAiC;AAAA,EAC3E,WAAWA,IAAE,OAAO,EAAE,SAAS,yCAAyC;AAAA,EACxE,aAAa,kBAAkB,SAAS,EAAE,SAAS,8CAA8C;AACnG,CAAC;AAQM,IAAM,yBAAyBA,IAAE,OAAO;AAAA,EAC7C,WAAWA,IAAE,OAAO,EAAE,SAAS,oBAAoB;AAAA,EACnD,OAAOA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,gEAAgE;AAAA,EACjG,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gCAAgC;AAC5E,CAAC;AAQM,IAAM,iBAAiBA,IAAE,OAAO;AAAA,EACrC,MAAMA,IAAE,QAAQ,WAAW;AAAA,EAC3B,QAAQA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,SAAS,4BAA4B;AACpG,CAAC;AAQM,IAAM,kBAAkBA,IAAE,OAAO;AAAA,EACtC,MAAMA,IAAE,QAAQ,YAAY;AAAA,EAC5B,UAAUA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,SAAS,iCAAiC;AAAA,EACzG,UAAUA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,SAAS,iCAAiC;AAC3G,CAAC;AAQM,IAAM,qBAAqBA,IAAE,OAAO;AAAA,EACzC,OAAOA,IAAE,IAAI,EAAE,SAAS,eAAe;AAAA,EACvC,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA,EAC9D,WAAWA,IAAE,OAAO,EAAE,SAAS,gCAAgC;AAAA,EAC/D,KAAKA,IAAE,OAAO,EAAE,KAAK,EAAE,SAAS,qCAAqC;AAAA,EACrE,SAASA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,KAAK,EAAE,SAAS,kCAAkC;AAC5F,CAAC;AAQM,IAAM,cAAcA,IAAE,OAAO;AAAA,EAClC,MAAMA,IAAE,QAAQ,QAAQ;AAAA,EACxB,UAAUA,IAAE,MAAM,kBAAkB,EAAE,SAAS,4BAA4B;AAC7E,CAAC;AAQM,IAAM,0BAA0BA,IAAE,OAAO;AAAA,EAC9C,aAAaA,IAAE,OAAO,EAAE,KAAK,EAAE,SAAS,6BAA6B;AAAA,EACrE,WAAWA,IAAE,OAAO,EAAE,SAAS,oBAAoB;AAAA,EACnD,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,sBAAsB;AAAA,EACxE,QAAQA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gBAAgB;AAAA,EACvD,QAAQA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,gCAAgC;AAAA,EACxF,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gCAAgC;AAAA,EAC1E,kBAAkBA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,gCAAgC;AAC5F,CAAC;AAQM,IAAM,sBAAsBA,IAAE,OAAO;AAAA,EAC1C,MAAMA,IAAE,QAAQ,MAAM;AAAA,EACtB,YAAYA,IAAE,OAAO,EAAE,SAAS,qBAAqB;AAAA,EACrD,SAASA,IAAE,OAAO,EAAE,SAAS,sBAAsB;AAAA,EACnD,YAAYA,IAAE,MAAM,uBAAuB,EAAE,SAAS,uBAAuB;AAAA,EAC7E,cAAcA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,6BAA6B;AAAA,EACnF,aAAa,kBAAkB,SAAS,4BAA4B;AACtE,CAAC;AAQM,IAAM,kBAAkBA,IAAE,mBAAmB,QAAQ;AAAA,EAC1D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAQM,IAAM,wBAAwBA,IAAE,OAAO;AAAA,EAC5C,OAAO,gBAAgB,SAAS,mBAAmB;AAAA,EACnD,WAAWA,IAAE,MAAMA,IAAE,OAAO;AAAA,IAC1B,MAAMA,IAAE,OAAO,EAAE,SAAS,eAAe;AAAA,IACzC,aAAaA,IAAE,OAAO,EAAE,SAAS,sBAAsB;AAAA,IACvD,UAAUA,IAAE,QAAQ,EAAE,SAAS,6CAA6C;AAAA,EAC9E,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,oCAAoC;AAC9D,CAAC;AAYM,IAAM,oBAAoBA,IAAE,KAAK;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAQM,IAAM,oBAAoBA,IAAE,OAAO;AAAA,EACxC,OAAOA,IAAE,MAAM,CAAC,mBAAmBA,IAAE,OAAO,CAAC,CAAC,EAAE,SAAS,qCAAqC;AAAA,EAC9F,SAASA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,SAAS,sBAAsB;AAAA,EACvF,OAAOA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iDAAiD;AAAA,EACvF,WAAWA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,EAAE,SAAS,uBAAuB;AAAA,EAChF,eAAeA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,EAAE,SAAS,oCAAoC;AACnG,CAAC;AAQM,IAAM,wBAAwBA,IAAE,OAAO;AAAA,EAC5C,QAAQA,IAAE,OAAO;AAAA,IACf,MAAMA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,oBAAoB;AAAA,IAClE,QAAQA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,sBAAsB;AAAA,EACxE,CAAC,EAAE,SAAS,gCAAgC;AAAA,EAC5C,OAAOA,IAAE,OAAO;AAAA,IACd,MAAMA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,mBAAmB;AAAA,IACjE,QAAQA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,qBAAqB;AAAA,EACvE,CAAC,EAAE,SAAS,6BAA6B;AAAA,EACzC,WAAWA,IAAE,KAAK,CAAC,WAAW,UAAU,CAAC,EAAE,SAAS,EAAE,SAAS,qBAAqB;AACtF,CAAC;AAQM,IAAM,4BAA4BA,IAAE,OAAO;AAAA,EAChD,QAAQA,IAAE,OAAO,EAAE,SAAS,iBAAiB;AAAA,EAC7C,WAAWA,IAAE,OAAO,EAAE,KAAK,EAAE,SAAS,oBAAoB;AAAA,EAC1D,YAAYA,IAAE,OAAO,EAAE,SAAS,qBAAqB;AAAA,EACrD,UAAUA,IAAE,OAAO,EAAE,SAAS,sBAAsB;AAAA,EACpD,UAAUA,IAAE,OAAO;AAAA,IACjB,MAAMA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,gCAAgC;AAAA,IAC9E,QAAQA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,kCAAkC;AAAA,EACpF,CAAC,EAAE,SAAS,yBAAyB;AAAA,EACrC,WAAW,sBAAsB,SAAS,EAAE,SAAS,wBAAwB;AAAA,EAC7E,OAAO,kBAAkB,SAAS,8BAA8B;AAAA,EAChE,UAAUA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,KAAK,EAAE,SAAS,kCAAkC;AAAA,EAC3F,YAAYA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,yCAAyC;AAAA,EACpF,UAAUA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAC1F,CAAC;AAQM,IAAM,qBAAqBA,IAAE,OAAO;AAAA,EACzC,UAAUA,IAAE,OAAO;AAAA,IACjB,MAAMA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,IACnC,QAAQA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACvC,CAAC,EAAE,SAAS,EAAE,SAAS,yBAAyB;AAAA,EAChD,WAAW,sBAAsB,SAAS,EAAE,SAAS,mBAAmB;AAAA,EACxE,UAAUA,IAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAAA,EAChE,UAAUA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,kBAAkB;AAChF,CAAC;AAYM,IAAM,qBAAqBA,IAAE,KAAK;AAAA,EACvC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAQM,IAAM,2BAA2BA,IAAE,OAAO;AAAA,EAC/C,QAAQA,IAAE,OAAO,EAAE,SAAS,iBAAiB;AAAA,EAC7C,WAAWA,IAAE,OAAO,EAAE,KAAK,EAAE,SAAS,oBAAoB;AAAA,EAC1D,UAAUA,IAAE,OAAO,EAAE,SAAS,cAAc;AAAA,EAC5C,YAAYA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iBAAiB;AAAA,EAC5D,QAAQ,mBAAmB,SAAS,yBAAyB;AAAA,EAC7D,iBAAiBA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,uCAAuC;AAAA,EACvF,aAAaA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,8BAA8B;AAAA,EAC1E,cAAcA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oCAAoC;AAAA,EACjF,UAAUA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4CAA4C;AAAA,EACrF,aAAaA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,kCAAkC;AAAA,EACvF,UAAUA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,gCAAgC;AAC9F,CAAC;AAQM,IAAM,yBAAyBA,IAAE,OAAO;AAAA,EAC7C,WAAWA,IAAE,OAAO,EAAE,KAAK,EAAE,SAAS,oBAAoB;AAAA,EAC1D,YAAYA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iCAAiC;AAAA,EAC5E,OAAOA,IAAE,MAAM,wBAAwB,EAAE,SAAS,yBAAyB;AAAA,EAC3E,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,wCAAwC;AAAA,EAClF,YAAYA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,kCAAkC;AAAA,EAC7E,UAAUA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,kBAAkB;AAChF,CAAC;AAQM,IAAM,wBAAwBA,IAAE,OAAO;AAAA,EAC5C,QAAQ,mBAAmB,SAAS,EAAE,SAAS,gBAAgB;AAAA,EAC/D,iBAAiBA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,0BAA0B;AAAA,EAC1E,aAAaA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAAA,EAClE,UAAUA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,kBAAkB;AAChF,CAAC;AAQM,IAAM,uBAAuBA,IAAE,OAAO;AAAA,EAC3C,SAASA,IAAE,OAAO,EAAE,KAAK,EAAE,SAAS,kBAAkB;AAAA,EACtD,WAAWA,IAAE,OAAO,EAAE,KAAK,EAAE,SAAS,oBAAoB;AAAA,EAC1D,WAAWA,IAAE,KAAK;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC,EAAE,SAAS,yBAAyB;AAAA,EACrC,QAAQA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,wBAAwB;AAAA,EAC/D,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA,EACtE,SAASA,IAAE,IAAI,EAAE,SAAS,eAAe;AAC3C,CAAC;AAYM,IAAM,oBAAoBA,IAAE,KAAK;AAAA,EACtC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAQM,IAAM,mCAAmCA,IAAE,OAAO;AAAA,EACvD,MAAM,kBAAkB,SAAS,2BAA2B;AAAA,EAC5D,qBAAqBA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,EAAE,SAAS,uBAAuB;AAAA,EAC1F,gBAAgBA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,EAAE,SAAS,0BAA0B;AAAA,EACxF,iBAAiBA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,EAAE,SAAS,wBAAwB;AAAA,EACvF,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,0BAA0B;AAAA,EACpF,aAAaA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAM,EAAE,SAAS,8BAA8B;AAAA,EAC3G,oBAAoBA,IAAE,KAAK,CAAC,MAAM,QAAQ,QAAQ,CAAC,EAAE,SAAS,EAAE,QAAQ,IAAI,EAAE,SAAS,8BAA8B;AAAA,EACrH,aAAaA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,EAAE,SAAS,8BAA8B;AAAA,EACzF,UAAUA,IAAE,OAAO;AAAA,IACjB,SAASA,IAAE,QAAQ,EAAE,SAAS,2BAA2B;AAAA,IACzD,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,mCAAmC;AAAA,EACpF,CAAC,EAAE,SAAS,EAAE,SAAS,wBAAwB;AACjD,CAAC;AAQM,IAAM,6BAA6BA,IAAE,OAAO;AAAA,EACjD,WAAWA,IAAE,OAAO,EAAE,KAAK,EAAE,SAAS,oBAAoB;AAAA,EAC1D,YAAYA,IAAE,OAAO,EAAE,SAAS,qBAAqB;AAAA,EACrD,QAAQ,iCAAiC,SAAS,uBAAuB;AAAA,EACzE,OAAOA,IAAE,MAAM,wBAAwB,EAAE,SAAS,cAAc;AAAA,EAChE,SAASA,IAAE,MAAM,yBAAyB,EAAE,SAAS,gBAAgB;AAAA,EACrE,SAASA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,0BAA0B;AAAA,EAC3E,YAAYA,IAAE,MAAMA,IAAE,MAAM,CAAC,mBAAmB,uBAAuB,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA,EAClH,WAAWA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4CAA4C;AAAA,EACtF,cAAcA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oCAAoC;AAAA,EACjF,QAAQA,IAAE,KAAK,CAAC,UAAU,QAAQ,OAAO,CAAC,EAAE,SAAS,gBAAgB;AACvE,CAAC;;;AC/dD,SAAS,KAAAC,WAAS;AAMX,IAAM,sBAAsBA,IAAE,KAAK;AAAA,EACxC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAKM,IAAM,sBAAsBA,IAAE,KAAK;AAAA,EACxC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAUM,IAAM,uBAAuBA,IAAE,OAAO;AAAA;AAAA,EAE3C,KAAKA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAMd,MAAMA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAMf,MAAMA,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAMf,WAAWA,IAAE,OAAO,EAAE,QAAQ,SAAS;AAAA;AAAA;AAAA;AAAA,EAKvC,OAAO,oBAAoB,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO7C,UAAUA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMtC,SAASA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gDAAgD;AAAA,EACxF,UAAUA,IAAE,KAAK,CAAC,SAAS,SAAS,CAAC,EAAE,QAAQ,OAAO;AAAA;AAAA,EAGtD,OAAOA,IAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAG3B,OAAO,oBAAoB,QAAQ,QAAQ;AAAA;AAAA,EAG3C,YAAYA,IAAE,OAAO,EAAE,SAAS;AAAA,EAChC,YAAYA,IAAE,KAAK,EAAE,SAAS;AAAA,EAC9B,YAAYA,IAAE,OAAO,EAAE,SAAS;AAAA,EAChC,YAAYA,IAAE,KAAK,EAAE,SAAS;AAChC,CAAC;AASM,IAAM,uBAAuBA,IAAE,KAAK;AAAA,EACzC;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAO;AAAA,EAAM;AAAA,EAC7B;AAAA,EAAc;AAAA;AAChB,CAAC;AAMM,IAAM,sBAAsBA,IAAE,OAAO;AAAA,EAC1C,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,OAAOA,IAAE,KAAK,EAAE,SAAS;AAAA,EACzB,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAC1B,YAAYA,IAAE,KAAK,EAAE,SAAS;AAAA;AAAA,EAC9B,QAAQ,qBAAqB,SAAS;AAAA;AACxC,CAAC;AAMM,IAAM,+BAA+BA,IAAE,OAAO;AAAA,EACnD,MAAMA,IAAE,OAAO;AAAA,EACf,UAAUA,IAAE,OAAO;AAAA;AAAA,EACnB,aAAaA,IAAE,OAAO,EAAE,SAAS;AAAA,EACjC,kBAAkBA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EAC/C,eAAeA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACpC,eAAeA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACpC,eAAeA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACpC,cAAcA,IAAE,OAAO;AAAA,IACrB,MAAMA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,IAC9B,OAAOA,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,IAChC,OAAOA,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,IAChC,MAAMA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAChC,CAAC;AACH,CAAC;AAKM,IAAM,4BAA4BA,IAAE,OAAO;AAAA,EAChD,OAAO,oBAAoB,SAAS;AAAA,EACpC,WAAWA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,KAAKA,IAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,gDAAgD;AAAA,EACrF,OAAOA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC5B,UAAUA,IAAE,QAAQ,EAAE,SAAS;AAAA;AAAA,EAC/B,UAAUA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC/B,aAAaA,IAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EACjC,WAAWA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAChC,OAAOA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,UAAUA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACvC,QAAQA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oDAAoD;AAC7F,CAAC;AAKM,IAAM,2BAA2BA,IAAE,OAAO;AAAA,EAC/C,MAAMA,IAAE,IAAI;AAAA,EACZ,OAAO,oBAAoB,SAAS;AAAA,EACpC,QAAQ,qBAAqB,SAAS;AAAA,EACtC,QAAQA,IAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAC5B,WAAWA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAChC,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,aAAaA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAClC,UAAUA,IAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAKM,IAAM,4BAA4BA,IAAE,OAAO;AAAA,EAChD,QAAQ,qBAAqB,SAAS;AAAA,EACtC,QAAQA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAChC,WAAWA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EACnC,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,UAAUA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC/B,QAAQA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,UAAUA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC/B,QAAQA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC7B,QAAQA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC7B,QAAQA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oDAAoD;AAC7F,CAAC;AAKM,IAAM,2BAA2BA,IAAE,OAAO;AAAA,EAC/C,SAASA,IAAE,QAAQ;AAAA,EACnB,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,OAAO,oBAAoB,SAAS;AAAA,EACpC,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,YAAYA,IAAE,OAAO,EAAE,SAAS;AAClC,CAAC;AAKM,IAAM,2BAA2BA,IAAE,OAAO;AAAA,EAC/C,MAAMA,IAAE,KAAK,CAAC,OAAO,UAAU,UAAU,SAAS,WAAW,SAAS,CAAC;AAAA,EACvE,MAAMA,IAAE,OAAO;AAAA,EACf,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,OAAO,oBAAoB,SAAS;AAAA,EACpC,cAAcA,IAAE,OAAO,EAAE,SAAS;AAAA,EAClC,MAAMA,IAAE,IAAI,EAAE,SAAS;AAAA,EACvB,WAAWA,IAAE,KAAK,EAAE,SAAS;AAC/B,CAAC;AAKM,IAAM,+BAA+BA,IAAE,OAAO;AAAA,EACnD,MAAMA,IAAE,OAAO;AAAA,EACf,OAAOA,IAAE,OAAO;AAAA,EAChB,YAAYA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAChC,CAAC;AAKM,IAAM,8BAA8BA,IAAE,OAAO;AAAA,EAClD,OAAOA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACpC,YAAYA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACzC,QAAQA,IAAE,OAAO,EAAE,SAAS,0BAA0B;AAAA,EACtD,QAAQ,qBAAqB,QAAQ,MAAM;AAC7C,CAAC;AAEM,IAAM,8BAA8BA,IAAE,OAAO;AAAA,EAClD,QAAQA,IAAE,OAAO,EAAE,SAAS,yBAAyB;AAAA,EACrD,UAAUA,IAAE,KAAK,CAAC,SAAS,WAAW,MAAM,CAAC,EAAE,QAAQ,OAAO;AAAA,EAC9D,UAAUA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AACpC,CAAC;AAKM,IAAM,8BAA8BA,IAAE,OAAO;AAAA,EAClD,SAASA,IAAE,MAAMA,IAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACnC,OAAOA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC5B,OAAOA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC5B,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,SAASA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,SAASA,IAAE,MAAM,oBAAoB,EAAE,SAAS;AAAA,EAChD,cAAcA,IAAE,IAAI,EAAE,SAAS;AAAA;AACjC,CAAC;;;AC/OD,SAAS,KAAAC,WAAS;AAgBX,IAAM,kBAAkBA,IAAE,KAAK;AAAA;AAAA,EAEpC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA;AAAA,EAGA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA;AAAA,EAGA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAQM,IAAM,2BAA2BA,IAAE,KAAK;AAAA,EAC7C;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF,CAAC;AAKM,IAAM,wBAAwB;AAAA;AAAA,EAEnC,UAAU;AAAA,EACV,MAAM;AAAA,EACN,MAAM;AAAA;AAAA,EAGN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,KAAK;AAAA;AAAA,EAGL,gBAAgB;AAAA,EAChB,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,WAAW;AAAA,EACX,KAAK;AAAA,EACL,UAAU;AAAA,EACV,cAAc;AAChB;AASO,IAAM,sBAAsBA,IAAE,OAAO;AAAA,EAC1C,MAAM;AAAA,EACN,SAASA,IAAE,QAAQ;AAAA,EACnB,QAAQA,IAAE,KAAK,CAAC,WAAW,WAAW,YAAY,cAAc,CAAC;AAAA,EACjE,SAASA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,UAAUA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iDAAiD;AAAA,EAC1F,UAAUA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,gCAAgC;AACpF,CAAC;AAMM,IAAM,yBAAyBA,IAAE;AAAA,EACtC;AAAA,EACAA,IAAE,IAAI,EAAE,SAAS,sDAAsD;AACzE;AAUO,IAAM,sBAAsBA,IAAE,OAAO;AAAA,EAC1C,IAAIA,IAAE,OAAO;AAAA,EACb,MAAM;AAAA,EACN,SAASA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,IAAI,CAAC,EAAE,SAAS;AAClD,CAAC;","names":["z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","SearchConfigSchema","z","z","z","z","z","z","z","z","z","z"]}
|
|
1
|
+
{"version":3,"sources":["../../src/system/cache.zod.ts","../../src/system/message-queue.zod.ts","../../src/system/object-storage.zod.ts","../../src/shared/identifiers.zod.ts","../../src/system/search-engine.zod.ts","../../src/system/http-server.zod.ts","../../src/shared/http.zod.ts","../../src/system/audit.zod.ts","../../src/system/logging.zod.ts","../../src/system/metrics.zod.ts","../../src/system/tracing.zod.ts","../../src/system/change-management.zod.ts","../../src/system/migration.zod.ts","../../src/data/field.zod.ts","../../src/system/encryption.zod.ts","../../src/system/masking.zod.ts","../../src/data/object.zod.ts","../../src/data/validation.zod.ts","../../src/automation/state-machine.zod.ts","../../src/system/auth-config.zod.ts","../../src/system/compliance.zod.ts","../../src/system/job.zod.ts","../../src/system/worker.zod.ts","../../src/system/notification.zod.ts","../../src/system/translation.zod.ts","../../src/system/collaboration.zod.ts","../../src/system/metadata-persistence.zod.ts","../../src/system/service-registry.zod.ts"],"sourcesContent":["import { z } from 'zod';\n\n/**\n * Application-Level Cache Protocol\n * \n * Multi-tier caching strategy for application data.\n * Supports Memory, Redis, Memcached, and CDN.\n * \n * ## Caching in ObjectStack\n * \n * **Application Cache (`system/cache.zod.ts`) - This File**\n * - **Purpose**: Cache computed data, query results, aggregations\n * - **Technologies**: Redis, Memcached, in-memory LRU\n * - **Configuration**: TTL, eviction policies, cache warming\n * - **Use case**: Cache expensive database queries, computed values\n * - **Scope**: Application layer, server-side data storage\n * \n * **HTTP Cache (`api/http-cache.zod.ts`)**\n * - **Purpose**: Cache API responses at HTTP protocol level\n * - **Technologies**: HTTP headers (ETag, Last-Modified, Cache-Control), CDN\n * - **Configuration**: Cache-Control headers, validation tokens\n * - **Use case**: Reduce API response time for repeated metadata requests\n * - **Scope**: HTTP layer, client-server communication\n * \n * @see ../../api/http-cache.zod.ts for HTTP-level caching\n */\nexport const CacheStrategySchema = z.enum([\n 'lru', // Least Recently Used\n 'lfu', // Least Frequently Used\n 'fifo', // First In First Out\n 'ttl', // Time To Live only\n 'adaptive', // Dynamic strategy selection\n]);\n\nexport type CacheStrategy = z.infer<typeof CacheStrategySchema>;\n\nexport const CacheTierSchema = z.object({\n name: z.string(),\n type: z.enum(['memory', 'redis', 'memcached', 'cdn']),\n maxSize: z.number().optional().describe('Max size in MB'),\n ttl: z.number().default(300).describe('Default TTL in seconds'),\n strategy: CacheStrategySchema.default('lru'),\n warmup: z.boolean().default(false),\n});\n\nexport type CacheTier = z.infer<typeof CacheTierSchema>;\n\nexport const CacheInvalidationSchema = z.object({\n trigger: z.enum(['create', 'update', 'delete', 'manual']),\n scope: z.enum(['key', 'pattern', 'tag', 'all']),\n pattern: z.string().optional(),\n tags: z.array(z.string()).optional(),\n});\n\nexport type CacheInvalidation = z.infer<typeof CacheInvalidationSchema>;\n\nexport const CacheConfigSchema = z.object({\n enabled: z.boolean().default(false),\n tiers: z.array(CacheTierSchema),\n invalidation: z.array(CacheInvalidationSchema),\n prefetch: z.boolean().default(false),\n compression: z.boolean().default(false),\n encryption: z.boolean().default(false),\n});\n\nexport type CacheConfig = z.infer<typeof CacheConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * Message queue protocol for async communication\n * Supports Kafka, RabbitMQ, AWS SQS, Redis Pub/Sub\n */\nexport const MessageQueueProviderSchema = z.enum([\n 'kafka',\n 'rabbitmq',\n 'aws-sqs',\n 'redis-pubsub',\n 'google-pubsub',\n 'azure-service-bus',\n]);\n\nexport type MessageQueueProvider = z.infer<typeof MessageQueueProviderSchema>;\n\nexport const TopicConfigSchema = z.object({\n name: z.string(),\n partitions: z.number().default(1),\n replicationFactor: z.number().default(1),\n retentionMs: z.number().optional(),\n compressionType: z.enum(['none', 'gzip', 'snappy', 'lz4']).default('none'),\n});\n\nexport type TopicConfig = z.infer<typeof TopicConfigSchema>;\n\nexport const ConsumerConfigSchema = z.object({\n groupId: z.string(),\n autoOffsetReset: z.enum(['earliest', 'latest']).default('latest'),\n enableAutoCommit: z.boolean().default(true),\n maxPollRecords: z.number().default(500),\n});\n\nexport type ConsumerConfig = z.infer<typeof ConsumerConfigSchema>;\n\nexport const DeadLetterQueueSchema = z.object({\n enabled: z.boolean().default(false),\n maxRetries: z.number().default(3),\n queueName: z.string(),\n});\n\nexport type DeadLetterQueue = z.infer<typeof DeadLetterQueueSchema>;\n\nexport const MessageQueueConfigSchema = z.object({\n provider: MessageQueueProviderSchema,\n topics: z.array(TopicConfigSchema),\n consumers: z.array(ConsumerConfigSchema).optional(),\n deadLetterQueue: DeadLetterQueueSchema.optional(),\n ssl: z.boolean().default(false),\n sasl: z.object({\n mechanism: z.enum(['plain', 'scram-sha-256', 'scram-sha-512']),\n username: z.string(),\n password: z.string(),\n }).optional(),\n});\n\nexport type MessageQueueConfig = z.infer<typeof MessageQueueConfigSchema>;\n","import { z } from 'zod';\nimport { SystemIdentifierSchema } from '../shared/identifiers.zod';\n\n/**\n * Object Storage Protocol\n * \n * Unified storage protocol that combines:\n * - Object storage systems (S3, Azure Blob, GCS, MinIO)\n * - Scoped storage configuration (temp, cache, data, logs, config, public)\n * - Multi-cloud storage providers\n * - Bucket/container configuration\n * - Access control and permissions\n * - Lifecycle policies for data retention\n * - Presigned URLs for secure direct access\n * - Multipart uploads for large files\n */\n\n// ============================================================================\n// Storage Scope Protocol (formerly from scoped-storage.zod.ts)\n// ============================================================================\n\n/**\n * Storage Scope Enum\n * Defines the lifecycle and persistence guarantee of the storage area.\n */\nexport const StorageScopeSchema = z.enum([\n 'global', // Global application-wide storage\n 'tenant', // Tenant-scoped storage (multi-tenant apps)\n 'user', // User-scoped storage\n 'session', // Session-scoped storage (ephemeral)\n 'temp', // Ephemeral, cleared on restart\n 'cache', // Ephemeral, survives restarts, cleared on LRU/Expiration\n 'data', // Persistent, backed up\n 'logs', // Append-only, rotated\n 'config', // Read-heavy, versioned\n 'public' // Publicly accessible static assets\n]).describe('Storage scope classification');\n\nexport type StorageScope = z.infer<typeof StorageScopeSchema>;\n\n/**\n * File Metadata Schema\n * Standardized file attribute structure\n */\nexport const FileMetadataSchema = z.object({\n path: z.string().describe('File path'),\n name: z.string().describe('File name'),\n size: z.number().int().describe('File size in bytes'),\n mimeType: z.string().describe('MIME type'),\n lastModified: z.string().datetime().describe('Last modified timestamp'),\n created: z.string().datetime().describe('Creation timestamp'),\n etag: z.string().optional().describe('Entity tag'),\n});\n\nexport type FileMetadata = z.infer<typeof FileMetadataSchema>;\n\n// ============================================================================\n// Enums\n// ============================================================================\n\n/**\n * Storage Provider Types\n * \n * Supported cloud and self-hosted object storage providers.\n */\nexport const StorageProviderSchema = z.enum([\n 's3', // Amazon S3\n 'azure_blob', // Azure Blob Storage\n 'gcs', // Google Cloud Storage\n 'minio', // MinIO (self-hosted S3-compatible)\n 'r2', // Cloudflare R2\n 'spaces', // DigitalOcean Spaces\n 'wasabi', // Wasabi Hot Cloud Storage\n 'backblaze', // Backblaze B2\n 'local', // Local filesystem (development only)\n]).describe('Storage provider type');\n\nexport type StorageProvider = z.infer<typeof StorageProviderSchema>;\n\n/**\n * Storage Access Control List (ACL)\n * \n * Predefined access control configurations for objects and buckets.\n */\nexport const StorageAclSchema = z.enum([\n 'private', // Owner has full control, no one else has access\n 'public_read', // Owner has full control, everyone can read\n 'public_read_write', // Owner has full control, everyone can read/write (not recommended)\n 'authenticated_read', // Owner has full control, authenticated users can read\n 'bucket_owner_read', // Object owner has full control, bucket owner can read\n 'bucket_owner_full_control', // Both object and bucket owner have full control\n]).describe('Storage access control level');\n\nexport type StorageAcl = z.infer<typeof StorageAclSchema>;\n\n/**\n * Storage Class / Tier\n * \n * Different storage tiers for cost optimization.\n * Maps to provider-specific storage classes.\n */\nexport const StorageClassSchema = z.enum([\n 'standard', // Standard/hot storage for frequently accessed data\n 'intelligent', // Intelligent tiering (auto-moves between hot/cool)\n 'infrequent_access', // Infrequent access/cool storage\n 'glacier', // Archive/cold storage (slower retrieval)\n 'deep_archive', // Deep archive (cheapest, slowest retrieval)\n]).describe('Storage class/tier for cost optimization');\n\nexport type StorageClass = z.infer<typeof StorageClassSchema>;\n\n/**\n * Lifecycle Transition Action\n */\nexport const LifecycleActionSchema = z.enum([\n 'transition', // Move to different storage class\n 'delete', // Delete the object\n 'abort', // Abort incomplete multipart uploads\n]).describe('Lifecycle policy action type');\n\nexport type LifecycleAction = z.infer<typeof LifecycleActionSchema>;\n\n// ============================================================================\n// Configuration Schemas\n// ============================================================================\n\n/**\n * Object Metadata Schema\n * \n * Standard and custom metadata attached to stored objects.\n * \n * @example\n * {\n * contentType: 'image/jpeg',\n * contentLength: 1024000,\n * etag: '\"abc123\"',\n * lastModified: new Date('2024-01-01'),\n * custom: {\n * uploadedBy: 'user123',\n * department: 'marketing'\n * }\n * }\n */\nexport const ObjectMetadataSchema = z.object({\n contentType: z.string().describe('MIME type (e.g., image/jpeg, application/pdf)'),\n contentLength: z.number().min(0).describe('File size in bytes'),\n contentEncoding: z.string().optional().describe('Content encoding (e.g., gzip)'),\n contentDisposition: z.string().optional().describe('Content disposition header'),\n contentLanguage: z.string().optional().describe('Content language'),\n cacheControl: z.string().optional().describe('Cache control directives'),\n etag: z.string().optional().describe('Entity tag for versioning/caching'),\n lastModified: z.date().optional().describe('Last modification timestamp'),\n versionId: z.string().optional().describe('Object version identifier'),\n storageClass: StorageClassSchema.optional().describe('Storage class/tier'),\n encryption: z.object({\n algorithm: z.string().describe('Encryption algorithm (e.g., AES256, aws:kms)'),\n keyId: z.string().optional().describe('KMS key ID if using managed encryption'),\n }).optional().describe('Server-side encryption configuration'),\n custom: z.record(z.string(), z.string()).optional().describe('Custom user-defined metadata'),\n});\n\nexport type ObjectMetadata = z.infer<typeof ObjectMetadataSchema>;\n\n/**\n * Presigned URL Configuration\n * \n * Configuration for generating temporary URLs for direct access to objects.\n * Useful for secure file uploads/downloads without exposing credentials.\n * \n * @example\n * // Generate download URL valid for 1 hour\n * {\n * operation: 'get',\n * expiresIn: 3600,\n * contentType: 'image/jpeg'\n * }\n * \n * @example\n * // Generate upload URL valid for 15 minutes with size limit\n * {\n * operation: 'put',\n * expiresIn: 900,\n * contentType: 'application/pdf',\n * maxSize: 10485760\n * }\n */\nexport const PresignedUrlConfigSchema = z.object({\n operation: z.enum(['get', 'put', 'delete', 'head']).describe('Allowed operation'),\n expiresIn: z.number().min(1).max(604800).describe('Expiration time in seconds (max 7 days)'),\n contentType: z.string().optional().describe('Required content type for PUT operations'),\n maxSize: z.number().min(0).optional().describe('Maximum file size in bytes for PUT operations'),\n responseContentType: z.string().optional().describe('Override content-type for GET operations'),\n responseContentDisposition: z.string().optional().describe('Override content-disposition for GET operations'),\n});\n\nexport type PresignedUrlConfig = z.infer<typeof PresignedUrlConfigSchema>;\n\n/**\n * Multipart Upload Configuration\n * \n * Configuration for chunked uploads of large files.\n * Enables resumable uploads and parallel transfer.\n * \n * @example\n * // Enable multipart for files > 100MB with 10MB chunks\n * {\n * enabled: true,\n * partSize: 10485760,\n * maxParts: 10000,\n * threshold: 104857600,\n * maxConcurrent: 4\n * }\n */\nexport const MultipartUploadConfigSchema = z.object({\n enabled: z.boolean().default(true).describe('Enable multipart uploads'),\n partSize: z.number().min(5 * 1024 * 1024).max(5 * 1024 * 1024 * 1024).default(10 * 1024 * 1024).describe('Part size in bytes (min 5MB, max 5GB)'),\n maxParts: z.number().min(1).max(10000).default(10000).describe('Maximum number of parts (max 10,000)'),\n threshold: z.number().min(0).default(100 * 1024 * 1024).describe('File size threshold to trigger multipart upload (bytes)'),\n maxConcurrent: z.number().min(1).max(100).default(4).describe('Maximum concurrent part uploads'),\n abortIncompleteAfterDays: z.number().min(1).optional().describe('Auto-abort incomplete uploads after N days'),\n});\n\nexport type MultipartUploadConfig = z.infer<typeof MultipartUploadConfigSchema>;\n\n/**\n * Access Control Configuration\n * \n * Fine-grained access control for buckets and objects.\n * \n * @example\n * {\n * acl: 'private',\n * allowedOrigins: ['https://app.example.com'],\n * allowedMethods: ['GET', 'PUT'],\n * corsEnabled: true,\n * publicAccess: {\n * allowPublicRead: false,\n * allowPublicWrite: false\n * }\n * }\n */\nexport const AccessControlConfigSchema = z.object({\n acl: StorageAclSchema.default('private').describe('Default access control level'),\n allowedOrigins: z.array(z.string()).optional().describe('CORS allowed origins'),\n allowedMethods: z.array(z.enum(['GET', 'PUT', 'POST', 'DELETE', 'HEAD'])).optional().describe('CORS allowed HTTP methods'),\n allowedHeaders: z.array(z.string()).optional().describe('CORS allowed headers'),\n exposeHeaders: z.array(z.string()).optional().describe('CORS exposed headers'),\n maxAge: z.number().min(0).optional().describe('CORS preflight cache duration in seconds'),\n corsEnabled: z.boolean().default(false).describe('Enable CORS configuration'),\n publicAccess: z.object({\n allowPublicRead: z.boolean().default(false).describe('Allow public read access'),\n allowPublicWrite: z.boolean().default(false).describe('Allow public write access'),\n allowPublicList: z.boolean().default(false).describe('Allow public bucket listing'),\n }).optional().describe('Public access control'),\n allowedIps: z.array(z.string()).optional().describe('Allowed IP addresses/CIDR blocks'),\n blockedIps: z.array(z.string()).optional().describe('Blocked IP addresses/CIDR blocks'),\n});\n\nexport type AccessControlConfig = z.infer<typeof AccessControlConfigSchema>;\n\n/**\n * Lifecycle Policy Rule\n * \n * Individual rule for automatic object lifecycle management.\n * \n * @example\n * // Transition to infrequent access after 30 days\n * {\n * id: 'move_to_ia',\n * enabled: true,\n * action: 'transition',\n * daysAfterCreation: 30,\n * targetStorageClass: 'infrequent_access'\n * }\n * \n * @example\n * // Delete objects after 365 days\n * {\n * id: 'delete_old',\n * enabled: true,\n * action: 'delete',\n * daysAfterCreation: 365\n * }\n */\nexport const LifecyclePolicyRuleSchema = z.object({\n id: SystemIdentifierSchema.describe('Rule identifier'),\n enabled: z.boolean().default(true).describe('Enable this rule'),\n action: LifecycleActionSchema.describe('Action to perform'),\n prefix: z.string().optional().describe('Object key prefix filter (e.g., \"uploads/\")'),\n tags: z.record(z.string(), z.string()).optional().describe('Object tag filters'),\n daysAfterCreation: z.number().min(0).optional().describe('Days after object creation'),\n daysAfterModification: z.number().min(0).optional().describe('Days after last modification'),\n targetStorageClass: StorageClassSchema.optional().describe('Target storage class for transition action'),\n}).refine((data) => {\n // Validate that transition action has targetStorageClass\n if (data.action === 'transition' && !data.targetStorageClass) {\n return false;\n }\n return true;\n}, {\n message: 'targetStorageClass is required when action is \"transition\"',\n});\n\nexport type LifecyclePolicyRule = z.infer<typeof LifecyclePolicyRuleSchema>;\n\n/**\n * Lifecycle Policy Configuration\n * \n * Collection of lifecycle rules for automatic data management.\n * \n * @example\n * {\n * enabled: true,\n * rules: [\n * {\n * id: 'archive_old_files',\n * enabled: true,\n * action: 'transition',\n * daysAfterCreation: 90,\n * targetStorageClass: 'glacier'\n * },\n * {\n * id: 'delete_temp_files',\n * enabled: true,\n * action: 'delete',\n * prefix: 'temp/',\n * daysAfterCreation: 7\n * }\n * ]\n * }\n */\nexport const LifecyclePolicyConfigSchema = z.object({\n enabled: z.boolean().default(false).describe('Enable lifecycle policies'),\n rules: z.array(LifecyclePolicyRuleSchema).default([]).describe('Lifecycle rules'),\n});\n\nexport type LifecyclePolicyConfig = z.infer<typeof LifecyclePolicyConfigSchema>;\n\n/**\n * Bucket Configuration Schema\n * \n * Comprehensive configuration for a storage bucket/container.\n * \n * @example\n * {\n * name: 'user_uploads',\n * label: 'User Uploads',\n * bucketName: 'my-app-uploads',\n * region: 'us-east-1',\n * provider: 's3',\n * versioning: true,\n * accessControl: {\n * acl: 'private',\n * corsEnabled: true,\n * allowedOrigins: ['https://app.example.com']\n * },\n * multipartConfig: {\n * enabled: true,\n * threshold: 104857600\n * }\n * }\n */\nexport const BucketConfigSchema = z.object({\n name: SystemIdentifierSchema.describe('Bucket identifier in ObjectStack (snake_case)'),\n label: z.string().describe('Display label'),\n bucketName: z.string().describe('Actual bucket/container name in storage provider'),\n region: z.string().optional().describe('Storage region (e.g., us-east-1, westus)'),\n provider: StorageProviderSchema.describe('Storage provider'),\n endpoint: z.string().optional().describe('Custom endpoint URL (for S3-compatible providers)'),\n pathStyle: z.boolean().default(false).describe('Use path-style URLs (for S3-compatible providers)'),\n \n versioning: z.boolean().default(false).describe('Enable object versioning'),\n encryption: z.object({\n enabled: z.boolean().default(false).describe('Enable server-side encryption'),\n algorithm: z.enum(['AES256', 'aws:kms', 'azure:kms', 'gcp:kms']).default('AES256').describe('Encryption algorithm'),\n kmsKeyId: z.string().optional().describe('KMS key ID for managed encryption'),\n }).optional().describe('Server-side encryption configuration'),\n \n accessControl: AccessControlConfigSchema.optional().describe('Access control configuration'),\n lifecyclePolicy: LifecyclePolicyConfigSchema.optional().describe('Lifecycle policy configuration'),\n multipartConfig: MultipartUploadConfigSchema.optional().describe('Multipart upload configuration'),\n \n tags: z.record(z.string(), z.string()).optional().describe('Bucket tags for organization'),\n description: z.string().optional().describe('Bucket description'),\n enabled: z.boolean().default(true).describe('Enable this bucket'),\n});\n\nexport type BucketConfig = z.infer<typeof BucketConfigSchema>;\n\n/**\n * Storage Connection Configuration\n * \n * Provider-specific connection credentials and settings.\n * \n * @example S3\n * {\n * accessKeyId: '${AWS_ACCESS_KEY_ID}',\n * secretAccessKey: '${AWS_SECRET_ACCESS_KEY}',\n * sessionToken: '${AWS_SESSION_TOKEN}',\n * region: 'us-east-1'\n * }\n * \n * @example Azure\n * {\n * accountName: 'mystorageaccount',\n * accountKey: '${AZURE_STORAGE_KEY}',\n * endpoint: 'https://mystorageaccount.blob.core.windows.net'\n * }\n */\nexport const StorageConnectionSchema = z.object({\n // AWS S3 / MinIO\n accessKeyId: z.string().optional().describe('AWS access key ID or MinIO access key'),\n secretAccessKey: z.string().optional().describe('AWS secret access key or MinIO secret key'),\n sessionToken: z.string().optional().describe('AWS session token for temporary credentials'),\n \n // Azure Blob Storage\n accountName: z.string().optional().describe('Azure storage account name'),\n accountKey: z.string().optional().describe('Azure storage account key'),\n sasToken: z.string().optional().describe('Azure SAS token'),\n \n // Google Cloud Storage\n projectId: z.string().optional().describe('GCP project ID'),\n credentials: z.string().optional().describe('GCP service account credentials JSON'),\n \n // Common\n endpoint: z.string().optional().describe('Custom endpoint URL'),\n region: z.string().optional().describe('Default region'),\n useSSL: z.boolean().default(true).describe('Use SSL/TLS for connections'),\n timeout: z.number().min(0).optional().describe('Connection timeout in milliseconds'),\n});\n\nexport type StorageConnection = z.infer<typeof StorageConnectionSchema>;\n\n/**\n * Object Storage Configuration\n * \n * Complete object storage system configuration.\n * \n * @example\n * {\n * name: 'production_storage',\n * label: 'Production File Storage',\n * provider: 's3',\n * scope: 'global',\n * connection: {\n * accessKeyId: '${AWS_ACCESS_KEY_ID}',\n * secretAccessKey: '${AWS_SECRET_ACCESS_KEY}',\n * region: 'us-east-1'\n * },\n * buckets: [\n * {\n * name: 'user_uploads',\n * label: 'User Uploads',\n * bucketName: 'prod-uploads',\n * provider: 's3',\n * region: 'us-east-1'\n * }\n * ],\n * defaultBucket: 'user_uploads'\n * }\n */\nexport const ObjectStorageConfigSchema = z.object({\n name: SystemIdentifierSchema.describe('Storage configuration identifier'),\n label: z.string().describe('Display label'),\n provider: StorageProviderSchema.describe('Primary storage provider'),\n \n /**\n * Storage scope\n * Defines the lifecycle and access pattern for this storage\n */\n scope: StorageScopeSchema.optional().default('global').describe('Storage scope'),\n \n connection: StorageConnectionSchema.describe('Connection credentials'),\n buckets: z.array(BucketConfigSchema).default([]).describe('Configured buckets'),\n defaultBucket: z.string().optional().describe('Default bucket name for operations'),\n \n /**\n * Base path or location\n * For local/scoped storage configurations\n */\n location: z.string().optional().describe('Root path (local) or base location'),\n \n /**\n * Storage quota in bytes\n */\n quota: z.number().int().positive().optional().describe('Max size in bytes'),\n \n /**\n * Provider-specific options\n */\n options: z.record(z.string(), z.any()).optional().describe('Provider-specific configuration options'),\n \n enabled: z.boolean().default(true).describe('Enable this storage configuration'),\n description: z.string().optional().describe('Configuration description'),\n});\n\nexport type ObjectStorageConfig = z.infer<typeof ObjectStorageConfigSchema>;\n\n// ============================================================================\n// Helper Examples\n// ============================================================================\n\n/**\n * Example: AWS S3 Configuration\n */\nexport const s3StorageExample = ObjectStorageConfigSchema.parse({\n name: 'aws_s3_storage',\n label: 'AWS S3 Production Storage',\n provider: 's3',\n connection: {\n accessKeyId: '${AWS_ACCESS_KEY_ID}',\n secretAccessKey: '${AWS_SECRET_ACCESS_KEY}',\n region: 'us-east-1',\n },\n buckets: [\n {\n name: 'user_uploads',\n label: 'User Uploads',\n bucketName: 'my-app-user-uploads',\n region: 'us-east-1',\n provider: 's3',\n versioning: true,\n encryption: {\n enabled: true,\n algorithm: 'aws:kms',\n kmsKeyId: '${AWS_KMS_KEY_ID}',\n },\n accessControl: {\n acl: 'private',\n corsEnabled: true,\n allowedOrigins: ['https://app.example.com'],\n allowedMethods: ['GET', 'PUT', 'POST'],\n },\n lifecyclePolicy: {\n enabled: true,\n rules: [\n {\n id: 'archive_old_uploads',\n enabled: true,\n action: 'transition',\n daysAfterCreation: 90,\n targetStorageClass: 'glacier',\n },\n ],\n },\n multipartConfig: {\n enabled: true,\n partSize: 10 * 1024 * 1024,\n threshold: 100 * 1024 * 1024,\n maxConcurrent: 4,\n },\n },\n ],\n defaultBucket: 'user_uploads',\n enabled: true,\n});\n\n/**\n * Example: MinIO Configuration\n */\nexport const minioStorageExample = ObjectStorageConfigSchema.parse({\n name: 'minio_local',\n label: 'MinIO Local Storage',\n provider: 'minio',\n connection: {\n accessKeyId: 'minioadmin',\n secretAccessKey: 'minioadmin',\n endpoint: 'http://localhost:9000',\n useSSL: false,\n },\n buckets: [\n {\n name: 'development_files',\n label: 'Development Files',\n bucketName: 'dev-files',\n provider: 'minio',\n endpoint: 'http://localhost:9000',\n pathStyle: true,\n accessControl: {\n acl: 'private',\n },\n },\n ],\n defaultBucket: 'development_files',\n enabled: true,\n});\n\n/**\n * Example: Azure Blob Storage Configuration\n */\nexport const azureBlobStorageExample = ObjectStorageConfigSchema.parse({\n name: 'azure_blob_storage',\n label: 'Azure Blob Storage',\n provider: 'azure_blob',\n connection: {\n accountName: 'mystorageaccount',\n accountKey: '${AZURE_STORAGE_KEY}',\n endpoint: 'https://mystorageaccount.blob.core.windows.net',\n },\n buckets: [\n {\n name: 'media_files',\n label: 'Media Files',\n bucketName: 'media',\n provider: 'azure_blob',\n region: 'eastus',\n accessControl: {\n acl: 'public_read',\n publicAccess: {\n allowPublicRead: true,\n allowPublicWrite: false,\n allowPublicList: false,\n },\n },\n },\n ],\n defaultBucket: 'media_files',\n enabled: true,\n});\n\n/**\n * Example: Google Cloud Storage Configuration\n */\nexport const gcsStorageExample = ObjectStorageConfigSchema.parse({\n name: 'gcs_storage',\n label: 'Google Cloud Storage',\n provider: 'gcs',\n connection: {\n projectId: 'my-gcp-project',\n credentials: '${GCP_SERVICE_ACCOUNT_JSON}',\n },\n buckets: [\n {\n name: 'backup_storage',\n label: 'Backup Storage',\n bucketName: 'my-app-backups',\n region: 'us-central1',\n provider: 'gcs',\n lifecyclePolicy: {\n enabled: true,\n rules: [\n {\n id: 'delete_old_backups',\n enabled: true,\n action: 'delete',\n daysAfterCreation: 30,\n },\n ],\n },\n },\n ],\n defaultBucket: 'backup_storage',\n enabled: true,\n});\n","import { z } from 'zod';\n\n/**\n * System Identifier Schema\n * \n * Universal naming convention for all machine identifiers (API Names) in ObjectStack.\n * Enforces lowercase with underscores or dots to ensure:\n * - Cross-platform compatibility (case-insensitive filesystems)\n * - URL-friendliness (no encoding needed)\n * - Database consistency (no collation issues)\n * - Security (no case-sensitivity bugs in permission checks)\n * \n * **Applies to all metadata that acts as a machine identifier:**\n * - Object names (tables/collections)\n * - Field names\n * - Role names\n * - Permission set names\n * - Action/trigger names\n * - Event keys\n * - App IDs\n * - Menu/page IDs\n * - Select option values\n * - Workflow names\n * - Webhook names\n * \n * **Naming Convention Summary:**\n * | Type | Pattern | Example |\n * |------|---------|---------|\n * | Machine ID | snake_case | `crm_account`, `btn_submit`, `role_admin` |\n * | Event keys | dot.notation | `user.login`, `order.created` |\n * | Labels | Any case | `Client Account`, `Submit Form` |\n * \n * @example Valid identifiers\n * - 'account'\n * - 'crm_account'\n * - 'user_profile'\n * - 'order.created' (for events)\n * - 'api_v2_endpoint'\n * \n * @example Invalid identifiers (will be rejected)\n * - 'Account' (uppercase)\n * - 'CrmAccount' (camelCase)\n * - 'crm-account' (kebab-case - use underscore instead)\n * - 'user profile' (spaces)\n */\nexport const SystemIdentifierSchema = z\n .string()\n .min(2, { message: 'System identifier must be at least 2 characters' })\n .regex(/^[a-z][a-z0-9_.]*$/, {\n message:\n 'System identifier must be lowercase, starting with a letter, and may contain letters, numbers, underscores, or dots (e.g., \"user_profile\" or \"order.created\")',\n })\n .describe('System identifier (lowercase with underscores or dots)');\n\n/**\n * Strict Snake Case Identifier\n * \n * More restrictive than SystemIdentifierSchema - only allows underscores (no dots).\n * Use this for identifiers that should NOT contain dots (e.g., database table/column names).\n * \n * @example Valid\n * - 'account'\n * - 'crm_account'\n * - 'user_profile'\n * \n * @example Invalid\n * - 'user.profile' (dots not allowed)\n * - 'UserProfile' (uppercase)\n */\nexport const SnakeCaseIdentifierSchema = z\n .string()\n .min(2, { message: 'Identifier must be at least 2 characters' })\n .regex(/^[a-z][a-z0-9_]*$/, {\n message:\n 'Identifier must be lowercase snake_case, starting with a letter, and may contain only letters, numbers, and underscores (e.g., \"user_profile\")',\n })\n .describe('Snake case identifier (lowercase with underscores only)');\n\n/**\n * Event Name Identifier\n * \n * Specialized identifier for event names that encourages dot notation.\n * Used in event-driven systems, message queues, and webhooks.\n * \n * Pattern: `namespace.action` or `entity.event_type`\n * \n * @example Valid\n * - 'user.created'\n * - 'order.paid'\n * - 'user.login_success'\n * - 'alarm.high_cpu'\n * \n * @example Invalid\n * - 'UserCreated' (camelCase)\n * - 'user_created' (should use dots for namespacing)\n */\nexport const EventNameSchema = z\n .string()\n .min(3, { message: 'Event name must be at least 3 characters' })\n .regex(/^[a-z][a-z0-9_.]*$/, {\n message:\n 'Event name must be lowercase with dots for namespacing (e.g., \"user.created\", \"order.paid\")',\n })\n .describe('Event name (lowercase with dot notation for namespacing)');\n\n/**\n * Type Exports\n */\nexport type SystemIdentifier = z.infer<typeof SystemIdentifierSchema>;\nexport type SnakeCaseIdentifier = z.infer<typeof SnakeCaseIdentifierSchema>;\nexport type EventName = z.infer<typeof EventNameSchema>;\n","import { z } from 'zod';\n\n/**\n * Full-text search protocol\n * Supports Elasticsearch, Algolia, Meilisearch, Typesense\n */\nexport const SearchProviderSchema = z.enum([\n 'elasticsearch',\n 'algolia',\n 'meilisearch',\n 'typesense',\n 'opensearch',\n]);\n\nexport type SearchProvider = z.infer<typeof SearchProviderSchema>;\n\nexport const AnalyzerConfigSchema = z.object({\n type: z.enum(['standard', 'simple', 'whitespace', 'keyword', 'pattern', 'language']),\n language: z.string().optional(),\n stopwords: z.array(z.string()).optional(),\n customFilters: z.array(z.string()).optional(),\n});\n\nexport type AnalyzerConfig = z.infer<typeof AnalyzerConfigSchema>;\n\nexport const SearchIndexConfigSchema = z.object({\n indexName: z.string(),\n objectName: z.string().describe('Source ObjectQL object'),\n fields: z.array(z.object({\n name: z.string(),\n type: z.enum(['text', 'keyword', 'number', 'date', 'boolean', 'geo']),\n analyzer: z.string().optional(),\n searchable: z.boolean().default(true),\n filterable: z.boolean().default(false),\n sortable: z.boolean().default(false),\n boost: z.number().default(1),\n })),\n replicas: z.number().default(1),\n shards: z.number().default(1),\n});\n\nexport type SearchIndexConfig = z.infer<typeof SearchIndexConfigSchema>;\n\nexport const FacetConfigSchema = z.object({\n field: z.string(),\n maxValues: z.number().default(10),\n sort: z.enum(['count', 'alpha']).default('count'),\n});\n\nexport type FacetConfig = z.infer<typeof FacetConfigSchema>;\n\nexport const SearchConfigSchema = z.object({\n provider: SearchProviderSchema,\n indexes: z.array(SearchIndexConfigSchema),\n analyzers: z.record(z.string(), AnalyzerConfigSchema).optional(),\n facets: z.array(FacetConfigSchema).optional(),\n typoTolerance: z.boolean().default(true),\n synonyms: z.record(z.string(), z.array(z.string())).optional(),\n ranking: z.array(z.enum(['typo', 'geo', 'words', 'filters', 'proximity', 'attribute', 'exact', 'custom'])).optional(),\n});\n\nexport type SearchConfig = z.infer<typeof SearchConfigSchema>;\n","import { z } from 'zod';\nimport { HttpMethod, CorsConfigSchema, RateLimitConfigSchema, StaticMountSchema } from '../shared/http.zod';\n\n/**\n * HTTP Server Protocol\n * \n * Defines the runtime HTTP server configuration and capabilities.\n * Provides abstractions for HTTP server implementations (Express, Fastify, Hono, etc.)\n * \n * Architecture alignment:\n * - Kubernetes: Service and Ingress resources\n * - AWS: API Gateway configuration\n * - Spring Boot: Application properties\n */\n\n// ==========================================\n// Server Configuration\n// ==========================================\n\n/**\n * HTTP Server Configuration Schema\n * Core configuration for HTTP server instances\n * \n * @example\n * {\n * \"port\": 3000,\n * \"host\": \"0.0.0.0\",\n * \"cors\": {\n * \"enabled\": true,\n * \"origins\": [\"http://localhost:3000\"]\n * },\n * \"compression\": true,\n * \"requestTimeout\": 30000\n * }\n */\nexport const HttpServerConfigSchema = z.object({\n /**\n * Server port number\n */\n port: z.number().int().min(1).max(65535).default(3000).describe('Port number to listen on'),\n \n /**\n * Server host address\n */\n host: z.string().default('0.0.0.0').describe('Host address to bind to'),\n \n /**\n * CORS configuration\n */\n cors: CorsConfigSchema.optional().describe('CORS configuration'),\n \n /**\n * Request handling options\n */\n requestTimeout: z.number().int().default(30000).describe('Request timeout in milliseconds'),\n bodyLimit: z.string().default('10mb').describe('Maximum request body size'),\n \n /**\n * Compression settings\n */\n compression: z.boolean().default(true).describe('Enable response compression'),\n \n /**\n * Security headers\n */\n security: z.object({\n helmet: z.boolean().default(true).describe('Enable security headers via helmet'),\n rateLimit: RateLimitConfigSchema.optional().describe('Global rate limiting configuration'),\n }).optional().describe('Security configuration'),\n \n /**\n * Static file serving\n */\n static: z.array(StaticMountSchema).optional().describe('Static file serving configuration'),\n \n /**\n * Trust proxy settings\n */\n trustProxy: z.boolean().default(false).describe('Trust X-Forwarded-* headers'),\n});\n\nexport type HttpServerConfig = z.infer<typeof HttpServerConfigSchema>;\n\n// ==========================================\n// Route Registration\n// ==========================================\n\n/**\n * Route Handler Metadata Schema\n * Metadata for route handlers used in registration\n */\nexport const RouteHandlerMetadataSchema = z.object({\n /**\n * HTTP method\n */\n method: HttpMethod.describe('HTTP method'),\n \n /**\n * URL path pattern (supports parameters like /api/users/:id)\n */\n path: z.string().describe('URL path pattern'),\n \n /**\n * Handler function name or identifier\n */\n handler: z.string().describe('Handler identifier or name'),\n \n /**\n * Route metadata\n */\n metadata: z.object({\n summary: z.string().optional().describe('Route summary for documentation'),\n description: z.string().optional().describe('Route description'),\n tags: z.array(z.string()).optional().describe('Tags for grouping'),\n operationId: z.string().optional().describe('Unique operation identifier'),\n }).optional(),\n \n /**\n * Security requirements\n */\n security: z.object({\n authRequired: z.boolean().default(true).describe('Require authentication'),\n permissions: z.array(z.string()).optional().describe('Required permissions'),\n rateLimit: z.string().optional().describe('Rate limit policy override'),\n }).optional(),\n});\n\nexport type RouteHandlerMetadata = z.infer<typeof RouteHandlerMetadataSchema>;\n\n// ==========================================\n// Middleware Configuration\n// ==========================================\n\n/**\n * Middleware Type Enum\n */\nexport const MiddlewareType = z.enum([\n 'authentication', // Authentication middleware\n 'authorization', // Authorization/permission checks\n 'logging', // Request/response logging\n 'validation', // Input validation\n 'transformation', // Request/response transformation\n 'error', // Error handling\n 'custom', // Custom middleware\n]);\n\nexport type MiddlewareType = z.infer<typeof MiddlewareType>;\n\n/**\n * Middleware Configuration Schema\n * Defines middleware execution order and configuration\n * \n * @example\n * {\n * \"name\": \"auth_middleware\",\n * \"type\": \"authentication\",\n * \"enabled\": true,\n * \"order\": 10,\n * \"config\": {\n * \"jwtSecret\": \"secret\",\n * \"excludePaths\": [\"/health\", \"/metrics\"]\n * }\n * }\n */\nexport const MiddlewareConfigSchema = z.object({\n /**\n * Middleware identifier\n */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Middleware name (snake_case)'),\n \n /**\n * Middleware type\n */\n type: MiddlewareType.describe('Middleware type'),\n \n /**\n * Enable/disable middleware\n */\n enabled: z.boolean().default(true).describe('Whether middleware is enabled'),\n \n /**\n * Execution order (lower numbers execute first)\n */\n order: z.number().int().default(100).describe('Execution order priority'),\n \n /**\n * Middleware-specific configuration\n */\n config: z.record(z.string(), z.any()).optional().describe('Middleware configuration object'),\n \n /**\n * Path patterns to apply middleware to\n */\n paths: z.object({\n include: z.array(z.string()).optional().describe('Include path patterns (glob)'),\n exclude: z.array(z.string()).optional().describe('Exclude path patterns (glob)'),\n }).optional().describe('Path filtering'),\n});\n\nexport type MiddlewareConfig = z.infer<typeof MiddlewareConfigSchema>;\n\n// ==========================================\n// Server Lifecycle Events\n// ==========================================\n\n/**\n * Server Event Type Enum\n */\nexport const ServerEventType = z.enum([\n 'starting', // Server is starting\n 'started', // Server has started and is listening\n 'stopping', // Server is stopping\n 'stopped', // Server has stopped\n 'request', // Request received\n 'response', // Response sent\n 'error', // Error occurred\n]);\n\nexport type ServerEventType = z.infer<typeof ServerEventType>;\n\n/**\n * Server Event Schema\n * Events emitted by the HTTP server during lifecycle\n */\nexport const ServerEventSchema = z.object({\n /**\n * Event type\n */\n type: ServerEventType.describe('Event type'),\n \n /**\n * Timestamp\n */\n timestamp: z.string().datetime().describe('Event timestamp (ISO 8601)'),\n \n /**\n * Event payload\n */\n data: z.record(z.string(), z.any()).optional().describe('Event-specific data'),\n});\n\nexport type ServerEvent = z.infer<typeof ServerEventSchema>;\n\n// ==========================================\n// Server Capability Declaration\n// ==========================================\n\n/**\n * Server Capabilities Schema\n * Declares what features a server implementation supports\n */\nexport const ServerCapabilitiesSchema = z.object({\n /**\n * Supported HTTP versions\n */\n httpVersions: z.array(z.enum(['1.0', '1.1', '2.0', '3.0'])).default(['1.1']).describe('Supported HTTP versions'),\n \n /**\n * WebSocket support\n */\n websocket: z.boolean().default(false).describe('WebSocket support'),\n \n /**\n * Server-Sent Events support\n */\n sse: z.boolean().default(false).describe('Server-Sent Events support'),\n \n /**\n * HTTP/2 Server Push\n */\n serverPush: z.boolean().default(false).describe('HTTP/2 Server Push support'),\n \n /**\n * Streaming support\n */\n streaming: z.boolean().default(true).describe('Response streaming support'),\n \n /**\n * Middleware support\n */\n middleware: z.boolean().default(true).describe('Middleware chain support'),\n \n /**\n * Route parameterization\n */\n routeParams: z.boolean().default(true).describe('URL parameter support (/users/:id)'),\n \n /**\n * Built-in compression\n */\n compression: z.boolean().default(true).describe('Built-in compression support'),\n});\n\nexport type ServerCapabilities = z.infer<typeof ServerCapabilitiesSchema>;\n\n// ==========================================\n// Server Status & Metrics\n// ==========================================\n\n/**\n * Server Status Schema\n * Current operational status of the server\n */\nexport const ServerStatusSchema = z.object({\n /**\n * Server state\n */\n state: z.enum(['stopped', 'starting', 'running', 'stopping', 'error']).describe('Current server state'),\n \n /**\n * Uptime in milliseconds\n */\n uptime: z.number().int().optional().describe('Server uptime in milliseconds'),\n \n /**\n * Server information\n */\n server: z.object({\n port: z.number().int().describe('Listening port'),\n host: z.string().describe('Bound host'),\n url: z.string().optional().describe('Full server URL'),\n }).optional(),\n \n /**\n * Connection metrics\n */\n connections: z.object({\n active: z.number().int().describe('Active connections'),\n total: z.number().int().describe('Total connections handled'),\n }).optional(),\n \n /**\n * Request metrics\n */\n requests: z.object({\n total: z.number().int().describe('Total requests processed'),\n success: z.number().int().describe('Successful requests'),\n errors: z.number().int().describe('Failed requests'),\n }).optional(),\n});\n\nexport type ServerStatus = z.infer<typeof ServerStatusSchema>;\n\n// ==========================================\n// Helper Functions\n// ==========================================\n\n/**\n * Helper to create HTTP server configuration\n */\nexport const HttpServerConfig = Object.assign(HttpServerConfigSchema, {\n create: <T extends z.input<typeof HttpServerConfigSchema>>(config: T) => config,\n});\n\n/**\n * Helper to create middleware configuration\n */\nexport const MiddlewareConfig = Object.assign(MiddlewareConfigSchema, {\n create: <T extends z.input<typeof MiddlewareConfigSchema>>(config: T) => config,\n});\n","import { z } from 'zod';\n\n/**\n * Shared HTTP Schemas\n * \n * Common HTTP-related schemas used across API and System protocols.\n * These schemas ensure consistency across different parts of the stack.\n */\n\n// ==========================================\n// Basic HTTP Types\n// ==========================================\n\n/**\n * HTTP Method Enum\n */\nexport const HttpMethod = z.enum([\n 'GET', \n 'POST', \n 'PUT', \n 'DELETE', \n 'PATCH', \n 'HEAD', \n 'OPTIONS'\n]);\n\nexport type HttpMethod = z.infer<typeof HttpMethod>;\n\n// ==========================================\n// CORS Configuration\n// ==========================================\n\n/**\n * CORS Configuration Schema\n * Cross-Origin Resource Sharing configuration\n * \n * Used by:\n * - api/router.zod.ts (RouterConfigSchema)\n * - system/http-server.zod.ts (HttpServerConfigSchema)\n * \n * @example\n * {\n * \"enabled\": true,\n * \"origins\": [\"http://localhost:3000\", \"https://app.example.com\"],\n * \"methods\": [\"GET\", \"POST\", \"PUT\", \"DELETE\"],\n * \"credentials\": true,\n * \"maxAge\": 86400\n * }\n */\nexport const CorsConfigSchema = z.object({\n /**\n * Enable CORS\n */\n enabled: z.boolean().default(true).describe('Enable CORS'),\n \n /**\n * Allowed origins (* for all)\n */\n origins: z.union([\n z.string(),\n z.array(z.string())\n ]).default('*').describe('Allowed origins (* for all)'),\n \n /**\n * Allowed HTTP methods\n */\n methods: z.array(HttpMethod).optional().describe('Allowed HTTP methods'),\n \n /**\n * Allow credentials (cookies, authorization headers)\n */\n credentials: z.boolean().default(false).describe('Allow credentials (cookies, authorization headers)'),\n \n /**\n * Preflight cache duration in seconds\n */\n maxAge: z.number().int().optional().describe('Preflight cache duration in seconds'),\n});\n\nexport type CorsConfig = z.infer<typeof CorsConfigSchema>;\n\n// ==========================================\n// Rate Limiting\n// ==========================================\n\n/**\n * Rate Limit Configuration Schema\n * \n * Used by:\n * - api/endpoint.zod.ts (ApiEndpointSchema)\n * - system/http-server.zod.ts (HttpServerConfigSchema)\n * \n * @example\n * {\n * \"enabled\": true,\n * \"windowMs\": 60000,\n * \"maxRequests\": 100\n * }\n */\nexport const RateLimitConfigSchema = z.object({\n /**\n * Enable rate limiting\n */\n enabled: z.boolean().default(false).describe('Enable rate limiting'),\n \n /**\n * Time window in milliseconds\n */\n windowMs: z.number().int().default(60000).describe('Time window in milliseconds'),\n \n /**\n * Max requests per window\n */\n maxRequests: z.number().int().default(100).describe('Max requests per window'),\n});\n\nexport type RateLimitConfig = z.infer<typeof RateLimitConfigSchema>;\n\n// ==========================================\n// Static File Serving\n// ==========================================\n\n/**\n * Static Mount Configuration Schema\n * Configuration for serving static files\n * \n * Used by:\n * - api/router.zod.ts (RouterConfigSchema)\n * - system/http-server.zod.ts (HttpServerConfigSchema)\n * \n * @example\n * {\n * \"path\": \"/static\",\n * \"directory\": \"./public\",\n * \"cacheControl\": \"public, max-age=31536000\"\n * }\n */\nexport const StaticMountSchema = z.object({\n /**\n * URL path to serve from\n */\n path: z.string().describe('URL path to serve from'),\n \n /**\n * Physical directory to serve\n */\n directory: z.string().describe('Physical directory to serve'),\n \n /**\n * Cache-Control header value\n */\n cacheControl: z.string().optional().describe('Cache-Control header value'),\n});\n\nexport type StaticMount = z.infer<typeof StaticMountSchema>;\n","import { z } from 'zod';\n\n/**\n * Audit Log Architecture\n * \n * Comprehensive audit logging system for compliance and security.\n * Supports SOX, HIPAA, GDPR, and other regulatory requirements.\n * \n * Features:\n * - Records all CRUD operations on data\n * - Tracks authentication events (login, logout, password reset)\n * - Monitors authorization changes (permissions, roles)\n * - Configurable retention policies (180-day GDPR requirement)\n * - Suspicious activity detection and alerting\n */\n\n/**\n * Audit Event Type Enum\n * Categorizes different types of auditable events in the system\n */\nexport const AuditEventType = z.enum([\n // Data Operations (CRUD)\n 'data.create', // Record creation\n 'data.read', // Record retrieval/viewing\n 'data.update', // Record modification\n 'data.delete', // Record deletion\n 'data.export', // Data export operations\n 'data.import', // Data import operations\n 'data.bulk_update', // Bulk update operations\n 'data.bulk_delete', // Bulk delete operations\n \n // Authentication Events\n 'auth.login', // Successful login\n 'auth.login_failed', // Failed login attempt\n 'auth.logout', // User logout\n 'auth.session_created', // New session created\n 'auth.session_expired', // Session expiration\n 'auth.password_reset', // Password reset initiated\n 'auth.password_changed', // Password successfully changed\n 'auth.email_verified', // Email verification completed\n 'auth.mfa_enabled', // Multi-factor auth enabled\n 'auth.mfa_disabled', // Multi-factor auth disabled\n 'auth.account_locked', // Account locked (too many failures)\n 'auth.account_unlocked', // Account unlocked\n \n // Authorization Events\n 'authz.permission_granted', // Permission granted to user\n 'authz.permission_revoked', // Permission revoked from user\n 'authz.role_assigned', // Role assigned to user\n 'authz.role_removed', // Role removed from user\n 'authz.role_created', // New role created\n 'authz.role_updated', // Role permissions modified\n 'authz.role_deleted', // Role deleted\n 'authz.policy_created', // Security policy created\n 'authz.policy_updated', // Security policy updated\n 'authz.policy_deleted', // Security policy deleted\n \n // System Events\n 'system.config_changed', // System configuration modified\n 'system.plugin_installed', // Plugin installed\n 'system.plugin_uninstalled', // Plugin uninstalled\n 'system.backup_created', // Backup created\n 'system.backup_restored', // Backup restored\n 'system.integration_added', // External integration added\n 'system.integration_removed',// External integration removed\n \n // Security Events\n 'security.access_denied', // Access denied (authorization failure)\n 'security.suspicious_activity', // Suspicious activity detected\n 'security.data_breach', // Potential data breach detected\n 'security.api_key_created', // API key created\n 'security.api_key_revoked', // API key revoked\n]);\n\nexport type AuditEventType = z.infer<typeof AuditEventType>;\n\n/**\n * Audit Event Severity Level\n * Indicates the importance/criticality of an audit event\n */\nexport const AuditEventSeverity = z.enum([\n 'debug', // Diagnostic information\n 'info', // Informational events (normal operations)\n 'notice', // Normal but significant events\n 'warning', // Warning conditions\n 'error', // Error conditions\n 'critical', // Critical conditions requiring immediate attention\n 'alert', // Action must be taken immediately\n 'emergency', // System is unusable\n]);\n\nexport type AuditEventSeverity = z.infer<typeof AuditEventSeverity>;\n\n/**\n * Audit Event Actor Schema\n * Identifies who/what performed the action\n */\nexport const AuditEventActorSchema = z.object({\n /**\n * Actor type (user, system, service, api_client, etc.)\n */\n type: z.enum(['user', 'system', 'service', 'api_client', 'integration']).describe('Actor type'),\n \n /**\n * Unique identifier for the actor\n */\n id: z.string().describe('Actor identifier'),\n \n /**\n * Display name of the actor\n */\n name: z.string().optional().describe('Actor display name'),\n \n /**\n * Email address (for user actors)\n */\n email: z.string().email().optional().describe('Actor email address'),\n \n /**\n * IP address of the actor\n */\n ipAddress: z.string().optional().describe('Actor IP address'),\n \n /**\n * User agent string (for web/API requests)\n */\n userAgent: z.string().optional().describe('User agent string'),\n});\n\nexport type AuditEventActor = z.infer<typeof AuditEventActorSchema>;\n\n/**\n * Audit Event Target Schema\n * Identifies what was acted upon\n */\nexport const AuditEventTargetSchema = z.object({\n /**\n * Target type (e.g., 'object', 'record', 'user', 'role', 'config')\n */\n type: z.string().describe('Target type'),\n \n /**\n * Unique identifier for the target\n */\n id: z.string().describe('Target identifier'),\n \n /**\n * Display name of the target\n */\n name: z.string().optional().describe('Target display name'),\n \n /**\n * Additional metadata about the target\n */\n metadata: z.record(z.string(), z.any()).optional().describe('Target metadata'),\n});\n\nexport type AuditEventTarget = z.infer<typeof AuditEventTargetSchema>;\n\n/**\n * Audit Event Change Schema\n * Describes what changed (for update operations)\n */\nexport const AuditEventChangeSchema = z.object({\n /**\n * Field/property that changed\n */\n field: z.string().describe('Changed field name'),\n \n /**\n * Value before the change\n */\n oldValue: z.any().optional().describe('Previous value'),\n \n /**\n * Value after the change\n */\n newValue: z.any().optional().describe('New value'),\n});\n\nexport type AuditEventChange = z.infer<typeof AuditEventChangeSchema>;\n\n/**\n * Audit Event Schema\n * Complete audit event record\n */\nexport const AuditEventSchema = z.object({\n /**\n * Unique identifier for this audit event\n */\n id: z.string().describe('Audit event ID'),\n \n /**\n * Type of event being audited\n */\n eventType: AuditEventType.describe('Event type'),\n \n /**\n * Severity level of the event\n */\n severity: AuditEventSeverity.default('info').describe('Event severity'),\n \n /**\n * Timestamp when the event occurred (ISO 8601)\n */\n timestamp: z.string().datetime().describe('Event timestamp'),\n \n /**\n * Who/what performed the action\n */\n actor: AuditEventActorSchema.describe('Event actor'),\n \n /**\n * What was acted upon\n */\n target: AuditEventTargetSchema.optional().describe('Event target'),\n \n /**\n * Human-readable description of the action\n */\n description: z.string().describe('Event description'),\n \n /**\n * Detailed changes (for update operations)\n */\n changes: z.array(AuditEventChangeSchema).optional().describe('List of changes'),\n \n /**\n * Result of the action (success, failure, partial)\n */\n result: z.enum(['success', 'failure', 'partial']).default('success').describe('Action result'),\n \n /**\n * Error message (if result is failure)\n */\n errorMessage: z.string().optional().describe('Error message'),\n \n /**\n * Tenant identifier (for multi-tenant systems)\n */\n tenantId: z.string().optional().describe('Tenant identifier'),\n \n /**\n * Request/trace ID for correlation\n */\n requestId: z.string().optional().describe('Request ID for tracing'),\n \n /**\n * Additional context and metadata\n */\n metadata: z.record(z.string(), z.any()).optional().describe('Additional metadata'),\n \n /**\n * Geographic location (if available)\n */\n location: z.object({\n country: z.string().optional(),\n region: z.string().optional(),\n city: z.string().optional(),\n }).optional().describe('Geographic location'),\n});\n\nexport type AuditEvent = z.infer<typeof AuditEventSchema>;\n\n/**\n * Audit Retention Policy Schema\n * Defines how long audit logs are retained\n */\nexport const AuditRetentionPolicySchema = z.object({\n /**\n * Retention period in days\n * Default: 180 days (GDPR 6-month requirement)\n */\n retentionDays: z.number().int().min(1).default(180).describe('Retention period in days'),\n \n /**\n * Whether to archive logs after retention period\n * If true, logs are moved to cold storage; if false, they are deleted\n */\n archiveAfterRetention: z.boolean().default(true).describe('Archive logs after retention period'),\n \n /**\n * Archive storage configuration\n */\n archiveStorage: z.object({\n type: z.enum(['s3', 'gcs', 'azure_blob', 'filesystem']).describe('Archive storage type'),\n endpoint: z.string().optional().describe('Storage endpoint URL'),\n bucket: z.string().optional().describe('Storage bucket/container name'),\n path: z.string().optional().describe('Storage path prefix'),\n credentials: z.record(z.string(), z.any()).optional().describe('Storage credentials'),\n }).optional().describe('Archive storage configuration'),\n \n /**\n * Event types that have different retention periods\n * Overrides the default retentionDays for specific event types\n */\n customRetention: z.record(z.string(), z.number().int().positive()).optional().describe('Custom retention by event type'),\n \n /**\n * Minimum retention period for compliance\n * Prevents accidental deletion below compliance requirements\n */\n minimumRetentionDays: z.number().int().positive().optional().describe('Minimum retention for compliance'),\n});\n\nexport type AuditRetentionPolicy = z.infer<typeof AuditRetentionPolicySchema>;\n\n/**\n * Suspicious Activity Rule Schema\n * Defines rules for detecting suspicious activities\n */\nexport const SuspiciousActivityRuleSchema = z.object({\n /**\n * Unique identifier for the rule\n */\n id: z.string().describe('Rule identifier'),\n \n /**\n * Rule name\n */\n name: z.string().describe('Rule name'),\n \n /**\n * Rule description\n */\n description: z.string().optional().describe('Rule description'),\n \n /**\n * Whether the rule is enabled\n */\n enabled: z.boolean().default(true).describe('Rule enabled status'),\n \n /**\n * Event types to monitor\n */\n eventTypes: z.array(AuditEventType).describe('Event types to monitor'),\n \n /**\n * Detection condition\n */\n condition: z.object({\n /**\n * Number of events that trigger the rule\n */\n threshold: z.number().int().positive().describe('Event threshold'),\n \n /**\n * Time window in seconds\n */\n windowSeconds: z.number().int().positive().describe('Time window in seconds'),\n \n /**\n * Grouping criteria (e.g., by actor.id, by ipAddress)\n */\n groupBy: z.array(z.string()).optional().describe('Grouping criteria'),\n \n /**\n * Additional filters\n */\n filters: z.record(z.string(), z.any()).optional().describe('Additional filters'),\n }).describe('Detection condition'),\n \n /**\n * Actions to take when rule is triggered\n */\n actions: z.array(z.enum([\n 'alert', // Send alert notification\n 'lock_account', // Lock the user account\n 'block_ip', // Block the IP address\n 'require_mfa', // Require multi-factor authentication\n 'log_critical', // Log as critical event\n 'webhook', // Call webhook\n ])).describe('Actions to take'),\n \n /**\n * Severity level for triggered alerts\n */\n alertSeverity: AuditEventSeverity.default('warning').describe('Alert severity'),\n \n /**\n * Notification configuration\n */\n notifications: z.object({\n /**\n * Email addresses to notify\n */\n email: z.array(z.string().email()).optional().describe('Email recipients'),\n \n /**\n * Slack webhook URL\n */\n slack: z.string().url().optional().describe('Slack webhook URL'),\n \n /**\n * Custom webhook URL\n */\n webhook: z.string().url().optional().describe('Custom webhook URL'),\n }).optional().describe('Notification configuration'),\n});\n\nexport type SuspiciousActivityRule = z.infer<typeof SuspiciousActivityRuleSchema>;\n\n/**\n * Audit Log Storage Configuration\n * Defines where and how audit logs are stored\n */\nexport const AuditStorageConfigSchema = z.object({\n /**\n * Storage backend type\n */\n type: z.enum([\n 'database', // Store in database (PostgreSQL, MySQL, etc.)\n 'elasticsearch', // Store in Elasticsearch\n 'mongodb', // Store in MongoDB\n 'clickhouse', // Store in ClickHouse (for analytics)\n 's3', // Store in S3-compatible storage\n 'gcs', // Store in Google Cloud Storage\n 'azure_blob', // Store in Azure Blob Storage\n 'custom', // Custom storage implementation\n ]).describe('Storage backend type'),\n \n /**\n * Connection string or configuration\n */\n connectionString: z.string().optional().describe('Connection string'),\n \n /**\n * Storage configuration\n */\n config: z.record(z.string(), z.any()).optional().describe('Storage-specific configuration'),\n \n /**\n * Whether to enable buffering/batching\n */\n bufferEnabled: z.boolean().default(true).describe('Enable buffering'),\n \n /**\n * Buffer size (number of events before flush)\n */\n bufferSize: z.number().int().positive().default(100).describe('Buffer size'),\n \n /**\n * Buffer flush interval in seconds\n */\n flushIntervalSeconds: z.number().int().positive().default(5).describe('Flush interval in seconds'),\n \n /**\n * Whether to compress stored data\n */\n compression: z.boolean().default(true).describe('Enable compression'),\n});\n\nexport type AuditStorageConfig = z.infer<typeof AuditStorageConfigSchema>;\n\n/**\n * Audit Event Filter Schema\n * Defines filters for querying audit events\n */\nexport const AuditEventFilterSchema = z.object({\n /**\n * Filter by event types\n */\n eventTypes: z.array(AuditEventType).optional().describe('Event types to include'),\n \n /**\n * Filter by severity levels\n */\n severities: z.array(AuditEventSeverity).optional().describe('Severity levels to include'),\n \n /**\n * Filter by actor ID\n */\n actorId: z.string().optional().describe('Actor identifier'),\n \n /**\n * Filter by tenant ID\n */\n tenantId: z.string().optional().describe('Tenant identifier'),\n \n /**\n * Filter by time range\n */\n timeRange: z.object({\n from: z.string().datetime().describe('Start time'),\n to: z.string().datetime().describe('End time'),\n }).optional().describe('Time range filter'),\n \n /**\n * Filter by result status\n */\n result: z.enum(['success', 'failure', 'partial']).optional().describe('Result status'),\n \n /**\n * Search query (full-text search)\n */\n searchQuery: z.string().optional().describe('Search query'),\n \n /**\n * Custom filters\n */\n customFilters: z.record(z.string(), z.any()).optional().describe('Custom filters'),\n});\n\nexport type AuditEventFilter = z.infer<typeof AuditEventFilterSchema>;\n\n/**\n * Complete Audit Configuration Schema\n * Main configuration for the audit system\n */\nexport const AuditConfigSchema = z.object({\n /**\n * Unique identifier for this audit configuration\n * Must be in snake_case following ObjectStack conventions\n * Maximum length: 64 characters\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .max(64)\n .describe('Configuration name (snake_case, max 64 chars)'),\n \n /**\n * Human-readable label\n */\n label: z.string().describe('Display label'),\n \n /**\n * Whether audit logging is enabled\n */\n enabled: z.boolean().default(true).describe('Enable audit logging'),\n \n /**\n * Event types to audit\n * If not specified, all event types are audited\n */\n eventTypes: z.array(AuditEventType).optional().describe('Event types to audit'),\n \n /**\n * Event types to exclude from auditing\n */\n excludeEventTypes: z.array(AuditEventType).optional().describe('Event types to exclude'),\n \n /**\n * Minimum severity level to log\n * Events below this level are not logged\n */\n minimumSeverity: AuditEventSeverity.default('info').describe('Minimum severity level'),\n \n /**\n * Storage configuration\n */\n storage: AuditStorageConfigSchema.describe('Storage configuration'),\n \n /**\n * Retention policy\n */\n retentionPolicy: AuditRetentionPolicySchema.optional().describe('Retention policy'),\n \n /**\n * Suspicious activity detection rules\n */\n suspiciousActivityRules: z.array(SuspiciousActivityRuleSchema).default([]).describe('Suspicious activity rules'),\n \n /**\n * Whether to include sensitive data in audit logs\n * If false, sensitive fields are redacted/masked\n */\n includeSensitiveData: z.boolean().default(false).describe('Include sensitive data'),\n \n /**\n * Fields to redact from audit logs\n */\n redactFields: z.array(z.string()).default([\n 'password',\n 'passwordHash',\n 'token',\n 'apiKey',\n 'secret',\n 'creditCard',\n 'ssn',\n ]).describe('Fields to redact'),\n \n /**\n * Whether to log successful read operations\n * Can be disabled to reduce log volume\n */\n logReads: z.boolean().default(false).describe('Log read operations'),\n \n /**\n * Sampling rate for read operations (0.0 to 1.0)\n * Only applies if logReads is true\n */\n readSamplingRate: z.number().min(0).max(1).default(0.1).describe('Read sampling rate'),\n \n /**\n * Whether to log system/internal operations\n */\n logSystemEvents: z.boolean().default(true).describe('Log system events'),\n \n /**\n * Custom audit event handlers\n * Note: Function handlers are for runtime configuration only and will not be serialized to JSON Schema\n */\n customHandlers: z.array(z.object({\n eventType: AuditEventType.describe('Event type to handle'),\n handlerId: z.string().describe('Unique identifier for the handler'),\n })).optional().describe('Custom event handler references'),\n \n /**\n * Compliance mode configuration\n */\n compliance: z.object({\n /**\n * Compliance standards to enforce\n */\n standards: z.array(z.enum([\n 'sox', // Sarbanes-Oxley Act\n 'hipaa', // Health Insurance Portability and Accountability Act\n 'gdpr', // General Data Protection Regulation\n 'pci_dss', // Payment Card Industry Data Security Standard\n 'iso_27001',// ISO/IEC 27001\n 'fedramp', // Federal Risk and Authorization Management Program\n ])).optional().describe('Compliance standards'),\n \n /**\n * Whether to enforce immutable audit logs\n */\n immutableLogs: z.boolean().default(true).describe('Enforce immutable logs'),\n \n /**\n * Whether to require cryptographic signing\n */\n requireSigning: z.boolean().default(false).describe('Require log signing'),\n \n /**\n * Signing key configuration\n */\n signingKey: z.string().optional().describe('Signing key'),\n }).optional().describe('Compliance configuration'),\n});\n\nexport type AuditConfig = z.infer<typeof AuditConfigSchema>;\n\n/**\n * Default suspicious activity rules\n * Common security patterns to detect\n */\nexport const DEFAULT_SUSPICIOUS_ACTIVITY_RULES: SuspiciousActivityRule[] = [\n {\n id: 'multiple_failed_logins',\n name: 'Multiple Failed Login Attempts',\n description: 'Detects multiple failed login attempts from the same user or IP',\n enabled: true,\n eventTypes: ['auth.login_failed'],\n condition: {\n threshold: 5,\n windowSeconds: 600, // 10 minutes\n groupBy: ['actor.id', 'actor.ipAddress'],\n },\n actions: ['alert', 'lock_account'],\n alertSeverity: 'warning',\n },\n {\n id: 'bulk_data_export',\n name: 'Bulk Data Export',\n description: 'Detects large data export operations',\n enabled: true,\n eventTypes: ['data.export'],\n condition: {\n threshold: 3,\n windowSeconds: 3600, // 1 hour\n groupBy: ['actor.id'],\n },\n actions: ['alert', 'log_critical'],\n alertSeverity: 'warning',\n },\n {\n id: 'suspicious_permission_changes',\n name: 'Rapid Permission Changes',\n description: 'Detects rapid permission or role changes',\n enabled: true,\n eventTypes: ['authz.permission_granted', 'authz.role_assigned'],\n condition: {\n threshold: 10,\n windowSeconds: 300, // 5 minutes\n groupBy: ['actor.id'],\n },\n actions: ['alert', 'log_critical'],\n alertSeverity: 'critical',\n },\n {\n id: 'after_hours_access',\n name: 'After Hours Access',\n description: 'Detects access during non-business hours',\n enabled: false, // Disabled by default, requires time zone configuration\n eventTypes: ['auth.login'],\n condition: {\n threshold: 1,\n windowSeconds: 86400, // 24 hours\n },\n actions: ['alert'],\n alertSeverity: 'notice',\n },\n];\n","import { z } from 'zod';\n\n/**\n * Logging Protocol - Comprehensive Observability Logging\n * \n * Unified logging protocol that combines:\n * - Basic kernel logging (LoggerConfig)\n * - Enterprise-grade features (LoggingConfig)\n * - Multiple log destinations (file, console, external services)\n * - Structured logging with enrichment\n * - Log aggregation and forwarding\n * - Integration with external log management systems\n */\n\n// ============================================================================\n// Basic Logger Protocol (formerly from logger.zod.ts)\n// ============================================================================\n\n/**\n * Log Level Enum\n * Standard RFC 5424 severity levels (simplified)\n */\nexport const LogLevel = z.enum([\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'fatal',\n 'silent'\n]).describe('Log severity level');\n\nexport type LogLevel = z.infer<typeof LogLevel>;\n\n/**\n * Log Format Enum\n */\nexport const LogFormat = z.enum([\n 'json', // Structured JSON for machine parsing\n 'text', // Simple text format\n 'pretty' // Colored human-readable output for CLI/console\n]).describe('Log output format');\n\nexport type LogFormat = z.infer<typeof LogFormat>;\n\n/**\n * Logger Configuration Schema\n * Configuration for the Kernel's internal logger\n */\nexport const LoggerConfigSchema = z.object({\n /**\n * Logger name\n */\n name: z.string().optional().describe('Logger name identifier'),\n\n /**\n * Minimum level to log\n */\n level: LogLevel.optional().default('info'),\n\n /**\n * Output format\n */\n format: LogFormat.optional().default('json'),\n\n /**\n * Redact sensitive keys\n */\n redact: z.array(z.string()).optional().default(['password', 'token', 'secret', 'key'])\n .describe('Keys to redact from log context'),\n\n /**\n * Enable source location (file/line)\n */\n sourceLocation: z.boolean().optional().default(false)\n .describe('Include file and line number'),\n\n /**\n * Log to file (optional)\n */\n file: z.string().optional().describe('Path to log file'),\n\n /**\n * Log rotation config (if file is set)\n */\n rotation: z.object({\n maxSize: z.string().optional().default('10m'),\n maxFiles: z.number().optional().default(5)\n }).optional()\n});\n\nexport type LoggerConfig = z.infer<typeof LoggerConfigSchema>;\n\n/**\n * Log Entry Schema\n * The shape of a structured log record\n */\nexport const LogEntrySchema = z.object({\n timestamp: z.string().datetime().describe('ISO 8601 timestamp'),\n level: LogLevel,\n message: z.string().describe('Log message'),\n context: z.record(z.string(), z.any()).optional().describe('Structured context data'),\n error: z.record(z.string(), z.any()).optional().describe('Error object if present'),\n \n /** Tracing */\n traceId: z.string().optional().describe('Distributed trace ID'),\n spanId: z.string().optional().describe('Span ID'),\n \n /** Source */\n service: z.string().optional().describe('Service name'),\n component: z.string().optional().describe('Component name (e.g. plugin id)'),\n});\n\nexport type LogEntry = z.infer<typeof LogEntrySchema>;\n\n// ============================================================================\n// Extended Logging Protocol (enterprise features)\n// ============================================================================\n\n/**\n * Extended Log Level Enum\n * Standard RFC 5424 severity levels with trace\n */\nexport const ExtendedLogLevel = z.enum([\n 'trace', // Very detailed debugging information\n 'debug', // Debugging information\n 'info', // Informational messages\n 'warn', // Warning messages\n 'error', // Error messages\n 'fatal', // Fatal errors causing shutdown\n]).describe('Extended log severity level');\n\nexport type ExtendedLogLevel = z.infer<typeof ExtendedLogLevel>;\n\n/**\n * Log Destination Type Enum\n * Where logs can be sent\n */\nexport const LogDestinationType = z.enum([\n 'console', // Standard output/error\n 'file', // File system\n 'syslog', // System logger\n 'elasticsearch', // Elasticsearch\n 'cloudwatch', // AWS CloudWatch\n 'stackdriver', // Google Cloud Logging\n 'azure_monitor', // Azure Monitor\n 'datadog', // Datadog\n 'splunk', // Splunk\n 'loki', // Grafana Loki\n 'http', // HTTP endpoint\n 'kafka', // Apache Kafka\n 'redis', // Redis streams\n 'custom', // Custom implementation\n]).describe('Log destination type');\n\nexport type LogDestinationType = z.infer<typeof LogDestinationType>;\n\n/**\n * Console Destination Configuration\n */\nexport const ConsoleDestinationConfigSchema = z.object({\n /**\n * Output stream\n */\n stream: z.enum(['stdout', 'stderr']).optional().default('stdout'),\n\n /**\n * Enable colored output\n */\n colors: z.boolean().optional().default(true),\n\n /**\n * Pretty print JSON\n */\n prettyPrint: z.boolean().optional().default(false),\n}).describe('Console destination configuration');\n\nexport type ConsoleDestinationConfig = z.infer<typeof ConsoleDestinationConfigSchema>;\n\n/**\n * File Destination Configuration\n */\nexport const FileDestinationConfigSchema = z.object({\n /**\n * File path\n */\n path: z.string().describe('Log file path'),\n\n /**\n * Enable log rotation\n */\n rotation: z.object({\n /**\n * Maximum file size before rotation (e.g., '10m', '100k', '1g')\n */\n maxSize: z.string().optional().default('10m'),\n\n /**\n * Maximum number of files to keep\n */\n maxFiles: z.number().int().positive().optional().default(5),\n\n /**\n * Compress rotated files\n */\n compress: z.boolean().optional().default(true),\n\n /**\n * Rotation interval (e.g., 'daily', 'weekly')\n */\n interval: z.enum(['hourly', 'daily', 'weekly', 'monthly']).optional(),\n }).optional(),\n\n /**\n * File encoding\n */\n encoding: z.string().optional().default('utf8'),\n\n /**\n * Append to existing file\n */\n append: z.boolean().optional().default(true),\n}).describe('File destination configuration');\n\nexport type FileDestinationConfig = z.infer<typeof FileDestinationConfigSchema>;\n\n/**\n * HTTP Destination Configuration\n */\nexport const HttpDestinationConfigSchema = z.object({\n /**\n * HTTP endpoint URL\n */\n url: z.string().url().describe('HTTP endpoint URL'),\n\n /**\n * HTTP method\n */\n method: z.enum(['POST', 'PUT']).optional().default('POST'),\n\n /**\n * Headers to include\n */\n headers: z.record(z.string(), z.string()).optional(),\n\n /**\n * Authentication\n */\n auth: z.object({\n type: z.enum(['basic', 'bearer', 'api_key']).describe('Auth type'),\n username: z.string().optional(),\n password: z.string().optional(),\n token: z.string().optional(),\n apiKey: z.string().optional(),\n apiKeyHeader: z.string().optional().default('X-API-Key'),\n }).optional(),\n\n /**\n * Batch configuration\n */\n batch: z.object({\n /**\n * Maximum batch size\n */\n maxSize: z.number().int().positive().optional().default(100),\n\n /**\n * Flush interval in milliseconds\n */\n flushInterval: z.number().int().positive().optional().default(5000),\n }).optional(),\n\n /**\n * Retry configuration\n */\n retry: z.object({\n /**\n * Maximum retry attempts\n */\n maxAttempts: z.number().int().positive().optional().default(3),\n\n /**\n * Initial retry delay in milliseconds\n */\n initialDelay: z.number().int().positive().optional().default(1000),\n\n /**\n * Backoff multiplier\n */\n backoffMultiplier: z.number().positive().optional().default(2),\n }).optional(),\n\n /**\n * Timeout in milliseconds\n */\n timeout: z.number().int().positive().optional().default(30000),\n}).describe('HTTP destination configuration');\n\nexport type HttpDestinationConfig = z.infer<typeof HttpDestinationConfigSchema>;\n\n/**\n * External Service Destination Configuration\n * Generic configuration for cloud logging services\n */\nexport const ExternalServiceDestinationConfigSchema = z.object({\n /**\n * Service-specific endpoint\n */\n endpoint: z.string().url().optional(),\n\n /**\n * Region (for cloud services)\n */\n region: z.string().optional(),\n\n /**\n * Credentials\n */\n credentials: z.object({\n accessKeyId: z.string().optional(),\n secretAccessKey: z.string().optional(),\n apiKey: z.string().optional(),\n projectId: z.string().optional(),\n }).optional(),\n\n /**\n * Log group/stream/index name\n */\n logGroup: z.string().optional(),\n logStream: z.string().optional(),\n index: z.string().optional(),\n\n /**\n * Service-specific configuration\n */\n config: z.record(z.string(), z.any()).optional(),\n}).describe('External service destination configuration');\n\nexport type ExternalServiceDestinationConfig = z.infer<typeof ExternalServiceDestinationConfigSchema>;\n\n/**\n * Log Destination Schema\n * Configuration for a single log destination\n */\nexport const LogDestinationSchema = z.object({\n /**\n * Destination name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('Destination name (snake_case)'),\n\n /**\n * Destination type\n */\n type: LogDestinationType.describe('Destination type'),\n\n /**\n * Minimum log level for this destination\n */\n level: ExtendedLogLevel.optional().default('info'),\n\n /**\n * Enabled flag\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Console configuration\n */\n console: ConsoleDestinationConfigSchema.optional(),\n\n /**\n * File configuration\n */\n file: FileDestinationConfigSchema.optional(),\n\n /**\n * HTTP configuration\n */\n http: HttpDestinationConfigSchema.optional(),\n\n /**\n * External service configuration\n */\n externalService: ExternalServiceDestinationConfigSchema.optional(),\n\n /**\n * Format for this destination\n */\n format: z.enum(['json', 'text', 'pretty']).optional().default('json'),\n\n /**\n * Filter function reference (runtime only)\n */\n filterId: z.string().optional().describe('Filter function identifier'),\n}).describe('Log destination configuration');\n\nexport type LogDestination = z.infer<typeof LogDestinationSchema>;\n\n/**\n * Log Enrichment Configuration\n * Add contextual data to all log entries\n */\nexport const LogEnrichmentConfigSchema = z.object({\n /**\n * Static fields to add to all logs\n */\n staticFields: z.record(z.string(), z.any()).optional().describe('Static fields added to every log'),\n\n /**\n * Dynamic field enrichers (runtime only)\n * References to functions that add dynamic context\n */\n dynamicEnrichers: z.array(z.string()).optional().describe('Dynamic enricher function IDs'),\n\n /**\n * Add hostname\n */\n addHostname: z.boolean().optional().default(true),\n\n /**\n * Add process ID\n */\n addProcessId: z.boolean().optional().default(true),\n\n /**\n * Add environment info\n */\n addEnvironment: z.boolean().optional().default(true),\n\n /**\n * Add timestamp in additional formats\n */\n addTimestampFormats: z.object({\n unix: z.boolean().optional().default(false),\n iso: z.boolean().optional().default(true),\n }).optional(),\n\n /**\n * Add caller information (file, line, function)\n */\n addCaller: z.boolean().optional().default(false),\n\n /**\n * Add correlation IDs\n */\n addCorrelationIds: z.boolean().optional().default(true),\n}).describe('Log enrichment configuration');\n\nexport type LogEnrichmentConfig = z.infer<typeof LogEnrichmentConfigSchema>;\n\n/**\n * Structured Log Entry Schema\n * Enhanced structured log record with enrichment\n */\nexport const StructuredLogEntrySchema = z.object({\n /**\n * Timestamp (ISO 8601)\n */\n timestamp: z.string().datetime().describe('ISO 8601 timestamp'),\n\n /**\n * Log level\n */\n level: ExtendedLogLevel.describe('Log severity level'),\n\n /**\n * Log message\n */\n message: z.string().describe('Log message'),\n\n /**\n * Structured context data\n */\n context: z.record(z.string(), z.any()).optional().describe('Structured context'),\n\n /**\n * Error information\n */\n error: z.object({\n name: z.string().optional(),\n message: z.string().optional(),\n stack: z.string().optional(),\n code: z.string().optional(),\n details: z.record(z.string(), z.any()).optional(),\n }).optional().describe('Error details'),\n\n /**\n * Trace context\n */\n trace: z.object({\n traceId: z.string().describe('Trace ID'),\n spanId: z.string().describe('Span ID'),\n parentSpanId: z.string().optional().describe('Parent span ID'),\n traceFlags: z.number().int().optional().describe('Trace flags'),\n }).optional().describe('Distributed tracing context'),\n\n /**\n * Source information\n */\n source: z.object({\n service: z.string().optional().describe('Service name'),\n component: z.string().optional().describe('Component name'),\n file: z.string().optional().describe('Source file'),\n line: z.number().int().optional().describe('Line number'),\n function: z.string().optional().describe('Function name'),\n }).optional().describe('Source information'),\n\n /**\n * Host information\n */\n host: z.object({\n hostname: z.string().optional(),\n pid: z.number().int().optional(),\n ip: z.string().optional(),\n }).optional().describe('Host information'),\n\n /**\n * Environment\n */\n environment: z.string().optional().describe('Environment (e.g., production, staging)'),\n\n /**\n * User information\n */\n user: z.object({\n id: z.string().optional(),\n username: z.string().optional(),\n email: z.string().optional(),\n }).optional().describe('User context'),\n\n /**\n * Request information\n */\n request: z.object({\n id: z.string().optional(),\n method: z.string().optional(),\n path: z.string().optional(),\n userAgent: z.string().optional(),\n ip: z.string().optional(),\n }).optional().describe('Request context'),\n\n /**\n * Custom labels/tags\n */\n labels: z.record(z.string(), z.string()).optional().describe('Custom labels'),\n\n /**\n * Additional metadata\n */\n metadata: z.record(z.string(), z.any()).optional().describe('Additional metadata'),\n}).describe('Structured log entry');\n\nexport type StructuredLogEntry = z.infer<typeof StructuredLogEntrySchema>;\n\n/**\n * Logging Configuration Schema\n * Main configuration for the logging system\n */\nexport const LoggingConfigSchema = z.object({\n /**\n * Configuration name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .max(64)\n .describe('Configuration name (snake_case, max 64 chars)'),\n\n /**\n * Display label\n */\n label: z.string().describe('Display label'),\n\n /**\n * Enable logging\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Global minimum log level\n */\n level: ExtendedLogLevel.optional().default('info'),\n\n /**\n * Default logger configuration\n * Basic logger config for the kernel\n */\n default: LoggerConfigSchema.optional().describe('Default logger configuration'),\n\n /**\n * Named logger configurations\n * Map of logger name to logger config for different components/modules\n */\n loggers: z.record(z.string(), LoggerConfigSchema).optional().describe('Named logger configurations'),\n\n /**\n * Log destinations\n */\n destinations: z.array(LogDestinationSchema).describe('Log destinations'),\n\n /**\n * Log enrichment configuration\n */\n enrichment: LogEnrichmentConfigSchema.optional(),\n\n /**\n * Fields to redact from logs\n */\n redact: z.array(z.string()).optional().default([\n 'password',\n 'passwordHash',\n 'token',\n 'apiKey',\n 'secret',\n 'creditCard',\n 'ssn',\n 'authorization',\n ]).describe('Fields to redact'),\n\n /**\n * Sampling configuration\n */\n sampling: z.object({\n /**\n * Enable sampling\n */\n enabled: z.boolean().optional().default(false),\n\n /**\n * Sample rate (0.0 to 1.0)\n */\n rate: z.number().min(0).max(1).optional().default(1.0),\n\n /**\n * Sample rate by level\n */\n rateByLevel: z.record(z.string(), z.number().min(0).max(1)).optional(),\n }).optional(),\n\n /**\n * Buffer configuration\n */\n buffer: z.object({\n /**\n * Enable buffering\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Buffer size\n */\n size: z.number().int().positive().optional().default(1000),\n\n /**\n * Flush interval in milliseconds\n */\n flushInterval: z.number().int().positive().optional().default(1000),\n\n /**\n * Flush on shutdown\n */\n flushOnShutdown: z.boolean().optional().default(true),\n }).optional(),\n\n /**\n * Performance configuration\n */\n performance: z.object({\n /**\n * Async logging\n */\n async: z.boolean().optional().default(true),\n\n /**\n * Worker threads for async logging\n */\n workers: z.number().int().positive().optional().default(1),\n }).optional(),\n}).describe('Logging configuration');\n\nexport type LoggingConfig = z.infer<typeof LoggingConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * Metrics Protocol - Performance and Operational Metrics\n * \n * Comprehensive metrics collection and monitoring:\n * - Counter, Gauge, Histogram, Summary metric types\n * - Time-series data collection\n * - SLI/SLO definitions\n * - Metric aggregation and export\n * - Integration with monitoring systems (Prometheus, etc.)\n */\n\n/**\n * Metric Type Enum\n * Standard Prometheus metric types\n */\nexport const MetricType = z.enum([\n 'counter', // Monotonically increasing value\n 'gauge', // Value that can go up and down\n 'histogram', // Observations bucketed by configurable ranges\n 'summary', // Observations with quantiles\n]).describe('Metric type');\n\nexport type MetricType = z.infer<typeof MetricType>;\n\n/**\n * Metric Unit Enum\n * Standard units for metrics\n */\nexport const MetricUnit = z.enum([\n // Time units\n 'nanoseconds',\n 'microseconds',\n 'milliseconds',\n 'seconds',\n 'minutes',\n 'hours',\n 'days',\n\n // Size units\n 'bytes',\n 'kilobytes',\n 'megabytes',\n 'gigabytes',\n 'terabytes',\n\n // Rate units\n 'requests_per_second',\n 'events_per_second',\n 'bytes_per_second',\n\n // Percentage\n 'percent',\n 'ratio',\n\n // Count\n 'count',\n 'operations',\n\n // Custom\n 'custom',\n]).describe('Metric unit');\n\nexport type MetricUnit = z.infer<typeof MetricUnit>;\n\n/**\n * Metric Aggregation Type\n */\nexport const MetricAggregationType = z.enum([\n 'sum', // Sum of all values\n 'avg', // Average of all values\n 'min', // Minimum value\n 'max', // Maximum value\n 'count', // Count of observations\n 'p50', // 50th percentile (median)\n 'p75', // 75th percentile\n 'p90', // 90th percentile\n 'p95', // 95th percentile\n 'p99', // 99th percentile\n 'p999', // 99.9th percentile\n 'rate', // Rate of change\n 'stddev', // Standard deviation\n]).describe('Metric aggregation type');\n\nexport type MetricAggregationType = z.infer<typeof MetricAggregationType>;\n\n/**\n * Histogram Bucket Configuration\n */\nexport const HistogramBucketConfigSchema = z.object({\n /**\n * Bucket type\n */\n type: z.enum(['linear', 'exponential', 'explicit']).describe('Bucket type'),\n\n /**\n * Linear bucket configuration\n */\n linear: z.object({\n start: z.number().describe('Start value'),\n width: z.number().positive().describe('Bucket width'),\n count: z.number().int().positive().describe('Number of buckets'),\n }).optional(),\n\n /**\n * Exponential bucket configuration\n */\n exponential: z.object({\n start: z.number().positive().describe('Start value'),\n factor: z.number().positive().describe('Growth factor'),\n count: z.number().int().positive().describe('Number of buckets'),\n }).optional(),\n\n /**\n * Explicit bucket boundaries\n */\n explicit: z.object({\n boundaries: z.array(z.number()).describe('Bucket boundaries'),\n }).optional(),\n}).describe('Histogram bucket configuration');\n\nexport type HistogramBucketConfig = z.infer<typeof HistogramBucketConfigSchema>;\n\n/**\n * Metric Labels Schema\n * Key-value pairs for metric dimensions\n */\nexport const MetricLabelsSchema = z.record(z.string(), z.string()).describe('Metric labels');\n\nexport type MetricLabels = z.infer<typeof MetricLabelsSchema>;\n\n/**\n * Metric Definition Schema\n */\nexport const MetricDefinitionSchema = z.object({\n /**\n * Metric name (snake_case)\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('Metric name (snake_case)'),\n\n /**\n * Display label\n */\n label: z.string().optional().describe('Display label'),\n\n /**\n * Metric type\n */\n type: MetricType.describe('Metric type'),\n\n /**\n * Metric unit\n */\n unit: MetricUnit.optional().describe('Metric unit'),\n\n /**\n * Description\n */\n description: z.string().optional().describe('Metric description'),\n\n /**\n * Label names for this metric\n */\n labelNames: z.array(z.string()).optional().default([]).describe('Label names'),\n\n /**\n * Histogram configuration (for histogram type)\n */\n histogram: HistogramBucketConfigSchema.optional(),\n\n /**\n * Summary configuration (for summary type)\n */\n summary: z.object({\n /**\n * Quantiles to track\n */\n quantiles: z.array(z.number().min(0).max(1)).optional().default([0.5, 0.9, 0.99]),\n\n /**\n * Max age of observations in seconds\n */\n maxAge: z.number().int().positive().optional().default(600),\n\n /**\n * Number of age buckets\n */\n ageBuckets: z.number().int().positive().optional().default(5),\n }).optional(),\n\n /**\n * Enabled flag\n */\n enabled: z.boolean().optional().default(true),\n}).describe('Metric definition');\n\nexport type MetricDefinition = z.infer<typeof MetricDefinitionSchema>;\n\n/**\n * Metric Data Point Schema\n * A single metric observation\n */\nexport const MetricDataPointSchema = z.object({\n /**\n * Metric name\n */\n name: z.string().describe('Metric name'),\n\n /**\n * Metric type\n */\n type: MetricType.describe('Metric type'),\n\n /**\n * Timestamp (ISO 8601)\n */\n timestamp: z.string().datetime().describe('Observation timestamp'),\n\n /**\n * Value (for counter and gauge)\n */\n value: z.number().optional().describe('Metric value'),\n\n /**\n * Labels\n */\n labels: MetricLabelsSchema.optional().describe('Metric labels'),\n\n /**\n * Histogram data\n */\n histogram: z.object({\n count: z.number().int().nonnegative().describe('Total count'),\n sum: z.number().describe('Sum of all values'),\n buckets: z.array(z.object({\n upperBound: z.number().describe('Upper bound of bucket'),\n count: z.number().int().nonnegative().describe('Count in bucket'),\n })).describe('Histogram buckets'),\n }).optional(),\n\n /**\n * Summary data\n */\n summary: z.object({\n count: z.number().int().nonnegative().describe('Total count'),\n sum: z.number().describe('Sum of all values'),\n quantiles: z.array(z.object({\n quantile: z.number().min(0).max(1).describe('Quantile (0-1)'),\n value: z.number().describe('Quantile value'),\n })).describe('Summary quantiles'),\n }).optional(),\n}).describe('Metric data point');\n\nexport type MetricDataPoint = z.infer<typeof MetricDataPointSchema>;\n\n/**\n * Time Series Data Point Schema\n */\nexport const TimeSeriesDataPointSchema = z.object({\n /**\n * Timestamp (ISO 8601)\n */\n timestamp: z.string().datetime().describe('Timestamp'),\n\n /**\n * Value\n */\n value: z.number().describe('Value'),\n\n /**\n * Labels/tags\n */\n labels: z.record(z.string(), z.string()).optional().describe('Labels'),\n}).describe('Time series data point');\n\nexport type TimeSeriesDataPoint = z.infer<typeof TimeSeriesDataPointSchema>;\n\n/**\n * Time Series Schema\n */\nexport const TimeSeriesSchema = z.object({\n /**\n * Series name\n */\n name: z.string().describe('Series name'),\n\n /**\n * Series labels\n */\n labels: z.record(z.string(), z.string()).optional().describe('Series labels'),\n\n /**\n * Data points\n */\n dataPoints: z.array(TimeSeriesDataPointSchema).describe('Data points'),\n\n /**\n * Start time\n */\n startTime: z.string().datetime().optional().describe('Start time'),\n\n /**\n * End time\n */\n endTime: z.string().datetime().optional().describe('End time'),\n}).describe('Time series');\n\nexport type TimeSeries = z.infer<typeof TimeSeriesSchema>;\n\n/**\n * Metric Aggregation Configuration\n */\nexport const MetricAggregationConfigSchema = z.object({\n /**\n * Aggregation type\n */\n type: MetricAggregationType.describe('Aggregation type'),\n\n /**\n * Time window for aggregation\n */\n window: z.object({\n /**\n * Window size in seconds\n */\n size: z.number().int().positive().describe('Window size in seconds'),\n\n /**\n * Sliding window (true) or tumbling window (false)\n */\n sliding: z.boolean().optional().default(false),\n\n /**\n * Slide interval for sliding windows\n */\n slideInterval: z.number().int().positive().optional(),\n }).optional(),\n\n /**\n * Group by labels\n */\n groupBy: z.array(z.string()).optional().describe('Group by label names'),\n\n /**\n * Filters\n */\n filters: z.record(z.string(), z.any()).optional().describe('Filter criteria'),\n}).describe('Metric aggregation configuration');\n\nexport type MetricAggregationConfig = z.infer<typeof MetricAggregationConfigSchema>;\n\n/**\n * Service Level Indicator (SLI) Schema\n */\nexport const ServiceLevelIndicatorSchema = z.object({\n /**\n * SLI name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('SLI name (snake_case)'),\n\n /**\n * Display label\n */\n label: z.string().describe('Display label'),\n\n /**\n * Description\n */\n description: z.string().optional().describe('SLI description'),\n\n /**\n * Metric name this SLI is based on\n */\n metric: z.string().describe('Base metric name'),\n\n /**\n * SLI type\n */\n type: z.enum([\n 'availability', // Percentage of successful requests\n 'latency', // Response time percentile\n 'throughput', // Requests per second\n 'error_rate', // Error percentage\n 'saturation', // Resource utilization\n 'custom', // Custom calculation\n ]).describe('SLI type'),\n\n /**\n * Success criteria\n */\n successCriteria: z.object({\n /**\n * Threshold value\n */\n threshold: z.number().describe('Threshold value'),\n\n /**\n * Comparison operator\n */\n operator: z.enum(['lt', 'lte', 'gt', 'gte', 'eq']).describe('Comparison operator'),\n\n /**\n * Percentile (for latency SLIs)\n */\n percentile: z.number().min(0).max(1).optional().describe('Percentile (0-1)'),\n }).describe('Success criteria'),\n\n /**\n * Measurement window\n */\n window: z.object({\n /**\n * Window size in seconds\n */\n size: z.number().int().positive().describe('Window size in seconds'),\n\n /**\n * Rolling window (true) or calendar-aligned (false)\n */\n rolling: z.boolean().optional().default(true),\n }).describe('Measurement window'),\n\n /**\n * Enabled flag\n */\n enabled: z.boolean().optional().default(true),\n}).describe('Service Level Indicator');\n\nexport type ServiceLevelIndicator = z.infer<typeof ServiceLevelIndicatorSchema>;\n\n/**\n * Service Level Objective (SLO) Schema\n */\nexport const ServiceLevelObjectiveSchema = z.object({\n /**\n * SLO name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('SLO name (snake_case)'),\n\n /**\n * Display label\n */\n label: z.string().describe('Display label'),\n\n /**\n * Description\n */\n description: z.string().optional().describe('SLO description'),\n\n /**\n * SLI this SLO is based on\n */\n sli: z.string().describe('SLI name'),\n\n /**\n * Target percentage (0-100)\n */\n target: z.number().min(0).max(100).describe('Target percentage'),\n\n /**\n * Time period for SLO\n */\n period: z.object({\n /**\n * Period type\n */\n type: z.enum(['rolling', 'calendar']).describe('Period type'),\n\n /**\n * Duration in seconds (for rolling)\n */\n duration: z.number().int().positive().optional().describe('Duration in seconds'),\n\n /**\n * Calendar period (for calendar)\n */\n calendar: z.enum(['daily', 'weekly', 'monthly', 'quarterly', 'yearly']).optional(),\n }).describe('Time period'),\n\n /**\n * Error budget configuration\n */\n errorBudget: z.object({\n /**\n * Auto-calculated budget (1 - target)\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Alert when budget consumed percentage exceeds threshold\n */\n alertThreshold: z.number().min(0).max(100).optional().default(80),\n\n /**\n * Burn rate alert windows\n */\n burnRateWindows: z.array(z.object({\n /**\n * Window size in seconds\n */\n window: z.number().int().positive().describe('Window size'),\n\n /**\n * Burn rate multiplier threshold\n */\n threshold: z.number().positive().describe('Burn rate threshold'),\n })).optional(),\n }).optional(),\n\n /**\n * Alert configuration\n */\n alerts: z.array(z.object({\n /**\n * Alert name\n */\n name: z.string().describe('Alert name'),\n\n /**\n * Severity\n */\n severity: z.enum(['info', 'warning', 'critical']).describe('Alert severity'),\n\n /**\n * Condition\n */\n condition: z.object({\n type: z.enum(['slo_breach', 'error_budget', 'burn_rate']).describe('Condition type'),\n threshold: z.number().optional().describe('Threshold value'),\n }).describe('Alert condition'),\n })).optional().default([]),\n\n /**\n * Enabled flag\n */\n enabled: z.boolean().optional().default(true),\n}).describe('Service Level Objective');\n\nexport type ServiceLevelObjective = z.infer<typeof ServiceLevelObjectiveSchema>;\n\n/**\n * Metric Export Configuration\n */\nexport const MetricExportConfigSchema = z.object({\n /**\n * Export type\n */\n type: z.enum([\n 'prometheus', // Prometheus exposition format\n 'openmetrics', // OpenMetrics format\n 'graphite', // Graphite plaintext protocol\n 'statsd', // StatsD protocol\n 'influxdb', // InfluxDB line protocol\n 'datadog', // Datadog agent\n 'cloudwatch', // AWS CloudWatch\n 'stackdriver', // Google Cloud Monitoring\n 'azure_monitor', // Azure Monitor\n 'http', // HTTP push\n 'custom', // Custom exporter\n ]).describe('Export type'),\n\n /**\n * Endpoint configuration\n */\n endpoint: z.string().optional().describe('Export endpoint'),\n\n /**\n * Export interval in seconds\n */\n interval: z.number().int().positive().optional().default(60),\n\n /**\n * Batch configuration\n */\n batch: z.object({\n enabled: z.boolean().optional().default(true),\n size: z.number().int().positive().optional().default(1000),\n }).optional(),\n\n /**\n * Authentication\n */\n auth: z.object({\n type: z.enum(['none', 'basic', 'bearer', 'api_key']).describe('Auth type'),\n username: z.string().optional(),\n password: z.string().optional(),\n token: z.string().optional(),\n apiKey: z.string().optional(),\n }).optional(),\n\n /**\n * Additional configuration\n */\n config: z.record(z.string(), z.any()).optional().describe('Additional configuration'),\n}).describe('Metric export configuration');\n\nexport type MetricExportConfig = z.infer<typeof MetricExportConfigSchema>;\n\n/**\n * Metrics Configuration Schema\n */\nexport const MetricsConfigSchema = z.object({\n /**\n * Configuration name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .max(64)\n .describe('Configuration name (snake_case, max 64 chars)'),\n\n /**\n * Display label\n */\n label: z.string().describe('Display label'),\n\n /**\n * Enable metrics collection\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Metric definitions\n */\n metrics: z.array(MetricDefinitionSchema).optional().default([]),\n\n /**\n * Default labels applied to all metrics\n */\n defaultLabels: MetricLabelsSchema.optional().default({}),\n\n /**\n * Aggregation configurations\n */\n aggregations: z.array(MetricAggregationConfigSchema).optional().default([]),\n\n /**\n * Service Level Indicators\n */\n slis: z.array(ServiceLevelIndicatorSchema).optional().default([]),\n\n /**\n * Service Level Objectives\n */\n slos: z.array(ServiceLevelObjectiveSchema).optional().default([]),\n\n /**\n * Export configurations\n */\n exports: z.array(MetricExportConfigSchema).optional().default([]),\n\n /**\n * Collection interval in seconds\n */\n collectionInterval: z.number().int().positive().optional().default(15),\n\n /**\n * Retention configuration\n */\n retention: z.object({\n /**\n * Retention period in seconds\n */\n period: z.number().int().positive().optional().default(604800), // 7 days\n\n /**\n * Downsampling configuration\n */\n downsampling: z.array(z.object({\n /**\n * After this duration, downsample to this resolution\n */\n afterSeconds: z.number().int().positive().describe('Downsample after seconds'),\n\n /**\n * Resolution in seconds\n */\n resolution: z.number().int().positive().describe('Downsampled resolution'),\n })).optional(),\n }).optional(),\n\n /**\n * Cardinality limits\n */\n cardinalityLimits: z.object({\n /**\n * Maximum unique label combinations per metric\n */\n maxLabelCombinations: z.number().int().positive().optional().default(10000),\n\n /**\n * Action when limit exceeded\n */\n onLimitExceeded: z.enum(['drop', 'sample', 'alert']).optional().default('alert'),\n }).optional(),\n}).describe('Metrics configuration');\n\nexport type MetricsConfig = z.infer<typeof MetricsConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * Tracing Protocol - Distributed Tracing & Observability\n * \n * Comprehensive distributed tracing based on OpenTelemetry standards:\n * - Trace context propagation\n * - Span creation and management\n * - Sampling strategies\n * - Integration with tracing backends (Jaeger, Zipkin, etc.)\n * - W3C Trace Context standard compliance\n */\n\n/**\n * Trace State Schema\n * W3C Trace Context tracestate header\n */\nexport const TraceStateSchema = z.object({\n /**\n * Vendor-specific key-value pairs\n */\n entries: z.record(z.string(), z.string()).describe('Trace state entries'),\n}).describe('Trace state');\n\nexport type TraceState = z.infer<typeof TraceStateSchema>;\n\n/**\n * Trace Flags Enum\n * W3C Trace Context trace flags\n */\nexport const TraceFlagsSchema = z.number().int().min(0).max(255).describe('Trace flags bitmap');\n\nexport type TraceFlags = z.infer<typeof TraceFlagsSchema>;\n\n/**\n * Trace Context Schema\n * W3C Trace Context standard\n */\nexport const TraceContextSchema = z.object({\n /**\n * Trace ID (128-bit identifier, 32 hex chars)\n */\n traceId: z.string()\n .regex(/^[0-9a-f]{32}$/)\n .describe('Trace ID (32 hex chars)'),\n\n /**\n * Span ID (64-bit identifier, 16 hex chars)\n */\n spanId: z.string()\n .regex(/^[0-9a-f]{16}$/)\n .describe('Span ID (16 hex chars)'),\n\n /**\n * Trace flags (8-bit)\n */\n traceFlags: TraceFlagsSchema.optional().default(1),\n\n /**\n * Trace state (vendor-specific)\n */\n traceState: TraceStateSchema.optional(),\n\n /**\n * Parent span ID\n */\n parentSpanId: z.string()\n .regex(/^[0-9a-f]{16}$/)\n .optional()\n .describe('Parent span ID (16 hex chars)'),\n\n /**\n * Is sampled\n */\n sampled: z.boolean().optional().default(true),\n\n /**\n * Remote context (from incoming request)\n */\n remote: z.boolean().optional().default(false),\n}).describe('Trace context (W3C Trace Context)');\n\nexport type TraceContext = z.infer<typeof TraceContextSchema>;\n\n/**\n * Span Kind Enum\n * OpenTelemetry span kinds\n */\nexport const SpanKind = z.enum([\n 'internal', // Internal operation\n 'server', // Server-side request handling\n 'client', // Client-side request\n 'producer', // Message producer\n 'consumer', // Message consumer\n]).describe('Span kind');\n\nexport type SpanKind = z.infer<typeof SpanKind>;\n\n/**\n * Span Status Enum\n * OpenTelemetry span status\n */\nexport const SpanStatus = z.enum([\n 'unset', // Default status\n 'ok', // Successful operation\n 'error', // Error occurred\n]).describe('Span status');\n\nexport type SpanStatus = z.infer<typeof SpanStatus>;\n\n/**\n * Span Attribute Value Schema\n */\nexport const SpanAttributeValueSchema = z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.array(z.string()),\n z.array(z.number()),\n z.array(z.boolean()),\n]).describe('Span attribute value');\n\nexport type SpanAttributeValue = z.infer<typeof SpanAttributeValueSchema>;\n\n/**\n * Span Attributes Schema\n * OpenTelemetry semantic conventions\n */\nexport const SpanAttributesSchema = z.record(z.string(), SpanAttributeValueSchema).describe('Span attributes');\n\nexport type SpanAttributes = z.infer<typeof SpanAttributesSchema>;\n\n/**\n * Span Event Schema\n */\nexport const SpanEventSchema = z.object({\n /**\n * Event name\n */\n name: z.string().describe('Event name'),\n\n /**\n * Event timestamp (ISO 8601)\n */\n timestamp: z.string().datetime().describe('Event timestamp'),\n\n /**\n * Event attributes\n */\n attributes: SpanAttributesSchema.optional().describe('Event attributes'),\n}).describe('Span event');\n\nexport type SpanEvent = z.infer<typeof SpanEventSchema>;\n\n/**\n * Span Link Schema\n * Links to other spans\n */\nexport const SpanLinkSchema = z.object({\n /**\n * Linked trace context\n */\n context: TraceContextSchema.describe('Linked trace context'),\n\n /**\n * Link attributes\n */\n attributes: SpanAttributesSchema.optional().describe('Link attributes'),\n}).describe('Span link');\n\nexport type SpanLink = z.infer<typeof SpanLinkSchema>;\n\n/**\n * Span Schema\n * OpenTelemetry span representation\n */\nexport const SpanSchema = z.object({\n /**\n * Trace context\n */\n context: TraceContextSchema.describe('Trace context'),\n\n /**\n * Span name\n */\n name: z.string().describe('Span name'),\n\n /**\n * Span kind\n */\n kind: SpanKind.optional().default('internal'),\n\n /**\n * Start time (ISO 8601)\n */\n startTime: z.string().datetime().describe('Span start time'),\n\n /**\n * End time (ISO 8601)\n */\n endTime: z.string().datetime().optional().describe('Span end time'),\n\n /**\n * Duration in milliseconds\n */\n duration: z.number().nonnegative().optional().describe('Duration in milliseconds'),\n\n /**\n * Span status\n */\n status: z.object({\n code: SpanStatus.describe('Status code'),\n message: z.string().optional().describe('Status message'),\n }).optional(),\n\n /**\n * Span attributes\n */\n attributes: SpanAttributesSchema.optional().default({}),\n\n /**\n * Span events\n */\n events: z.array(SpanEventSchema).optional().default([]),\n\n /**\n * Span links\n */\n links: z.array(SpanLinkSchema).optional().default([]),\n\n /**\n * Resource attributes\n */\n resource: SpanAttributesSchema.optional().describe('Resource attributes'),\n\n /**\n * Instrumentation library\n */\n instrumentationLibrary: z.object({\n name: z.string().describe('Library name'),\n version: z.string().optional().describe('Library version'),\n }).optional(),\n}).describe('OpenTelemetry span');\n\nexport type Span = z.infer<typeof SpanSchema>;\n\n/**\n * Sampling Decision Enum\n */\nexport const SamplingDecision = z.enum([\n 'drop', // Do not record or export\n 'record_only', // Record but do not export\n 'record_and_sample', // Record and export\n]).describe('Sampling decision');\n\nexport type SamplingDecision = z.infer<typeof SamplingDecision>;\n\n/**\n * Sampling Strategy Type Enum\n */\nexport const SamplingStrategyType = z.enum([\n 'always_on', // Always sample\n 'always_off', // Never sample\n 'trace_id_ratio', // Sample based on trace ID ratio\n 'rate_limiting', // Rate-limited sampling\n 'parent_based', // Respect parent span sampling decision\n 'probability', // Probability-based sampling\n 'composite', // Combine multiple strategies\n 'custom', // Custom sampling logic\n]).describe('Sampling strategy type');\n\nexport type SamplingStrategyType = z.infer<typeof SamplingStrategyType>;\n\n/**\n * Trace Sampling Configuration Schema\n */\nexport const TraceSamplingConfigSchema = z.object({\n /**\n * Sampling strategy type\n */\n type: SamplingStrategyType.describe('Sampling strategy'),\n\n /**\n * Sample ratio (0.0 to 1.0) for trace_id_ratio and probability strategies\n */\n ratio: z.number().min(0).max(1).optional().describe('Sample ratio (0-1)'),\n\n /**\n * Rate limit (traces per second) for rate_limiting strategy\n */\n rateLimit: z.number().positive().optional().describe('Traces per second'),\n\n /**\n * Parent-based configuration\n */\n parentBased: z.object({\n /**\n * Sampler to use when parent is sampled\n */\n whenParentSampled: SamplingStrategyType.optional().default('always_on'),\n\n /**\n * Sampler to use when parent is not sampled\n */\n whenParentNotSampled: SamplingStrategyType.optional().default('always_off'),\n\n /**\n * Sampler to use when there is no parent (root span)\n */\n root: SamplingStrategyType.optional().default('trace_id_ratio'),\n\n /**\n * Root sampler ratio\n */\n rootRatio: z.number().min(0).max(1).optional().default(0.1),\n }).optional(),\n\n /**\n * Composite sampling (multiple strategies)\n */\n composite: z.array(z.object({\n strategy: SamplingStrategyType.describe('Strategy type'),\n ratio: z.number().min(0).max(1).optional(),\n condition: z.record(z.string(), z.any()).optional().describe('Condition for this strategy'),\n })).optional(),\n\n /**\n * Sampling rules\n */\n rules: z.array(z.object({\n /**\n * Rule name\n */\n name: z.string().describe('Rule name'),\n\n /**\n * Match condition\n */\n match: z.object({\n /**\n * Service name pattern\n */\n service: z.string().optional(),\n\n /**\n * Span name pattern (regex)\n */\n spanName: z.string().optional(),\n\n /**\n * Attribute filters\n */\n attributes: z.record(z.string(), z.any()).optional(),\n }).optional(),\n\n /**\n * Sampling decision for matching spans\n */\n decision: SamplingDecision.describe('Sampling decision'),\n\n /**\n * Sample rate for this rule\n */\n rate: z.number().min(0).max(1).optional(),\n })).optional().default([]),\n\n /**\n * Custom sampler ID (for custom strategy)\n */\n customSamplerId: z.string().optional().describe('Custom sampler identifier'),\n}).describe('Trace sampling configuration');\n\nexport type TraceSamplingConfig = z.infer<typeof TraceSamplingConfigSchema>;\n\n/**\n * Trace Context Propagation Format Enum\n */\nexport const TracePropagationFormat = z.enum([\n 'w3c', // W3C Trace Context\n 'b3', // Zipkin B3 (single header)\n 'b3_multi', // Zipkin B3 (multi header)\n 'jaeger', // Jaeger propagation\n 'xray', // AWS X-Ray\n 'ottrace', // OpenTracing\n 'custom', // Custom format\n]).describe('Trace propagation format');\n\nexport type TracePropagationFormat = z.infer<typeof TracePropagationFormat>;\n\n/**\n * Trace Context Propagation Schema\n */\nexport const TraceContextPropagationSchema = z.object({\n /**\n * Propagation formats (in priority order)\n */\n formats: z.array(TracePropagationFormat).optional().default(['w3c']),\n\n /**\n * Extract context from incoming requests\n */\n extract: z.boolean().optional().default(true),\n\n /**\n * Inject context into outgoing requests\n */\n inject: z.boolean().optional().default(true),\n\n /**\n * Custom header mappings\n */\n headers: z.object({\n /**\n * Trace ID header name\n */\n traceId: z.string().optional(),\n\n /**\n * Span ID header name\n */\n spanId: z.string().optional(),\n\n /**\n * Trace flags header name\n */\n traceFlags: z.string().optional(),\n\n /**\n * Trace state header name\n */\n traceState: z.string().optional(),\n }).optional(),\n\n /**\n * Baggage propagation\n */\n baggage: z.object({\n /**\n * Enable baggage propagation\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Maximum baggage size in bytes\n */\n maxSize: z.number().int().positive().optional().default(8192),\n\n /**\n * Allowed baggage keys (whitelist)\n */\n allowedKeys: z.array(z.string()).optional(),\n }).optional(),\n}).describe('Trace context propagation');\n\nexport type TraceContextPropagation = z.infer<typeof TraceContextPropagationSchema>;\n\n/**\n * OpenTelemetry Exporter Type Enum\n */\nexport const OtelExporterType = z.enum([\n 'otlp_http', // OTLP over HTTP\n 'otlp_grpc', // OTLP over gRPC\n 'jaeger', // Jaeger\n 'zipkin', // Zipkin\n 'console', // Console (for debugging)\n 'datadog', // Datadog\n 'honeycomb', // Honeycomb\n 'lightstep', // Lightstep\n 'newrelic', // New Relic\n 'custom', // Custom exporter\n]).describe('OpenTelemetry exporter type');\n\nexport type OtelExporterType = z.infer<typeof OtelExporterType>;\n\n/**\n * OpenTelemetry Compatibility Schema\n */\nexport const OpenTelemetryCompatibilitySchema = z.object({\n /**\n * OpenTelemetry SDK version\n */\n sdkVersion: z.string().optional().describe('OTel SDK version'),\n\n /**\n * Exporter configuration\n */\n exporter: z.object({\n /**\n * Exporter type\n */\n type: OtelExporterType.describe('Exporter type'),\n\n /**\n * Endpoint URL\n */\n endpoint: z.string().url().optional().describe('Exporter endpoint'),\n\n /**\n * Protocol version\n */\n protocol: z.string().optional().describe('Protocol version'),\n\n /**\n * Headers\n */\n headers: z.record(z.string(), z.string()).optional().describe('HTTP headers'),\n\n /**\n * Timeout in milliseconds\n */\n timeout: z.number().int().positive().optional().default(10000),\n\n /**\n * Compression\n */\n compression: z.enum(['none', 'gzip']).optional().default('none'),\n\n /**\n * Batch configuration\n */\n batch: z.object({\n /**\n * Maximum batch size\n */\n maxBatchSize: z.number().int().positive().optional().default(512),\n\n /**\n * Maximum queue size\n */\n maxQueueSize: z.number().int().positive().optional().default(2048),\n\n /**\n * Export timeout in milliseconds\n */\n exportTimeout: z.number().int().positive().optional().default(30000),\n\n /**\n * Scheduled delay in milliseconds\n */\n scheduledDelay: z.number().int().positive().optional().default(5000),\n }).optional(),\n }).describe('Exporter configuration'),\n\n /**\n * Resource attributes (service identification)\n */\n resource: z.object({\n /**\n * Service name\n */\n serviceName: z.string().describe('Service name'),\n\n /**\n * Service version\n */\n serviceVersion: z.string().optional().describe('Service version'),\n\n /**\n * Service instance ID\n */\n serviceInstanceId: z.string().optional().describe('Service instance ID'),\n\n /**\n * Service namespace\n */\n serviceNamespace: z.string().optional().describe('Service namespace'),\n\n /**\n * Deployment environment\n */\n deploymentEnvironment: z.string().optional().describe('Deployment environment'),\n\n /**\n * Additional resource attributes\n */\n attributes: SpanAttributesSchema.optional().describe('Additional resource attributes'),\n }).describe('Resource attributes'),\n\n /**\n * Instrumentation configuration\n */\n instrumentation: z.object({\n /**\n * Auto-instrumentation enabled\n */\n autoInstrumentation: z.boolean().optional().default(true),\n\n /**\n * Instrumentation libraries to enable\n */\n libraries: z.array(z.string()).optional().describe('Enabled libraries'),\n\n /**\n * Instrumentation libraries to disable\n */\n disabledLibraries: z.array(z.string()).optional().describe('Disabled libraries'),\n }).optional(),\n\n /**\n * Semantic conventions version\n */\n semanticConventionsVersion: z.string().optional().describe('Semantic conventions version'),\n}).describe('OpenTelemetry compatibility configuration');\n\nexport type OpenTelemetryCompatibility = z.infer<typeof OpenTelemetryCompatibilitySchema>;\n\n/**\n * Tracing Configuration Schema\n */\nexport const TracingConfigSchema = z.object({\n /**\n * Configuration name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .max(64)\n .describe('Configuration name (snake_case, max 64 chars)'),\n\n /**\n * Display label\n */\n label: z.string().describe('Display label'),\n\n /**\n * Enable tracing\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Sampling configuration\n */\n sampling: TraceSamplingConfigSchema.optional().default({ type: 'always_on', rules: [] }),\n\n /**\n * Context propagation\n */\n propagation: TraceContextPropagationSchema.optional().default({ formats: ['w3c'], extract: true, inject: true }),\n\n /**\n * OpenTelemetry configuration\n */\n openTelemetry: OpenTelemetryCompatibilitySchema.optional(),\n\n /**\n * Span limits\n */\n spanLimits: z.object({\n /**\n * Maximum number of attributes per span\n */\n maxAttributes: z.number().int().positive().optional().default(128),\n\n /**\n * Maximum number of events per span\n */\n maxEvents: z.number().int().positive().optional().default(128),\n\n /**\n * Maximum number of links per span\n */\n maxLinks: z.number().int().positive().optional().default(128),\n\n /**\n * Maximum attribute value length\n */\n maxAttributeValueLength: z.number().int().positive().optional().default(4096),\n }).optional(),\n\n /**\n * Trace ID generator\n */\n traceIdGenerator: z.enum(['random', 'uuid', 'custom']).optional().default('random'),\n\n /**\n * Custom trace ID generator ID\n */\n customTraceIdGeneratorId: z.string().optional().describe('Custom generator identifier'),\n\n /**\n * Performance configuration\n */\n performance: z.object({\n /**\n * Async span export\n */\n asyncExport: z.boolean().optional().default(true),\n\n /**\n * Background export interval in milliseconds\n */\n exportInterval: z.number().int().positive().optional().default(5000),\n }).optional(),\n}).describe('Tracing configuration');\n\nexport type TracingConfig = z.infer<typeof TracingConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * Change Type Enum\n * \n * Classification of change requests based on risk and approval requirements.\n * Follows ITIL change management best practices.\n */\nexport const ChangeTypeSchema = z.enum([\n 'standard', // Pre-approved, low-risk changes\n 'normal', // Requires standard approval process\n 'emergency', // Fast-track approval for critical issues\n 'major', // Requires CAB (Change Advisory Board) approval\n]);\n\n/**\n * Change Priority Enum\n * \n * Priority level for change request processing.\n */\nexport const ChangePrioritySchema = z.enum([\n 'critical',\n 'high',\n 'medium',\n 'low',\n]);\n\n/**\n * Change Status Enum\n * \n * Current status of a change request in its lifecycle.\n */\nexport const ChangeStatusSchema = z.enum([\n 'draft',\n 'submitted',\n 'in-review',\n 'approved',\n 'scheduled',\n 'in-progress',\n 'completed',\n 'failed',\n 'rolled-back',\n 'cancelled',\n]);\n\n/**\n * Change Impact Schema\n * \n * Assessment of the impact and scope of a change request.\n * Used for risk evaluation and approval routing.\n * \n * @example\n * ```json\n * {\n * \"level\": \"high\",\n * \"affectedSystems\": [\"crm-api\", \"customer-portal\"],\n * \"affectedUsers\": 5000,\n * \"downtime\": {\n * \"required\": true,\n * \"durationMinutes\": 30\n * }\n * }\n * ```\n */\nexport const ChangeImpactSchema = z.object({\n /**\n * Overall impact level of the change\n */\n level: z.enum(['low', 'medium', 'high', 'critical']).describe('Impact level'),\n\n /**\n * List of systems affected by this change\n */\n affectedSystems: z.array(z.string()).describe('Affected systems'),\n\n /**\n * Estimated number of users affected\n */\n affectedUsers: z.number().optional().describe('Affected user count'),\n\n /**\n * Downtime requirements\n */\n downtime: z.object({\n /**\n * Whether downtime is required\n */\n required: z.boolean().describe('Downtime required'),\n\n /**\n * Duration of downtime in minutes\n */\n durationMinutes: z.number().optional().describe('Downtime duration'),\n }).optional().describe('Downtime information'),\n});\n\n/**\n * Rollback Plan Schema\n * \n * Detailed procedure for reverting changes if implementation fails.\n * Required for all non-standard changes.\n * \n * @example\n * ```json\n * {\n * \"description\": \"Revert database schema to previous version\",\n * \"steps\": [\n * {\n * \"order\": 1,\n * \"description\": \"Stop application servers\",\n * \"estimatedMinutes\": 5\n * },\n * {\n * \"order\": 2,\n * \"description\": \"Restore database backup\",\n * \"estimatedMinutes\": 15\n * }\n * ],\n * \"testProcedure\": \"Verify application login and basic functionality\"\n * }\n * ```\n */\nexport const RollbackPlanSchema = z.object({\n /**\n * High-level description of the rollback approach\n */\n description: z.string().describe('Rollback description'),\n\n /**\n * Sequential steps to execute rollback\n */\n steps: z.array(z.object({\n /**\n * Step execution order\n */\n order: z.number().describe('Step order'),\n\n /**\n * Detailed description of this step\n */\n description: z.string().describe('Step description'),\n\n /**\n * Estimated time to complete this step\n */\n estimatedMinutes: z.number().describe('Estimated duration'),\n })).describe('Rollback steps'),\n\n /**\n * Testing procedure to verify successful rollback\n */\n testProcedure: z.string().optional().describe('Test procedure'),\n});\n\n/**\n * Change Request Schema\n * \n * Comprehensive change management protocol for IT governance.\n * Supports change requests, deployment tracking, and ITIL compliance.\n * \n * @example\n * ```json\n * {\n * \"id\": \"CHG-2024-001\",\n * \"title\": \"Upgrade CRM Database Schema\",\n * \"description\": \"Migrate customer database to new schema version 2.0\",\n * \"type\": \"normal\",\n * \"priority\": \"high\",\n * \"status\": \"approved\",\n * \"requestedBy\": \"user_123\",\n * \"requestedAt\": 1704067200000,\n * \"impact\": {\n * \"level\": \"high\",\n * \"affectedSystems\": [\"crm-api\", \"customer-portal\"],\n * \"affectedUsers\": 5000,\n * \"downtime\": {\n * \"required\": true,\n * \"durationMinutes\": 30\n * }\n * },\n * \"implementation\": {\n * \"description\": \"Execute database migration scripts\",\n * \"steps\": [\n * {\n * \"order\": 1,\n * \"description\": \"Backup current database\",\n * \"estimatedMinutes\": 10\n * }\n * ],\n * \"testing\": \"Run integration test suite\"\n * },\n * \"rollbackPlan\": {\n * \"description\": \"Restore from backup\",\n * \"steps\": [\n * {\n * \"order\": 1,\n * \"description\": \"Restore backup\",\n * \"estimatedMinutes\": 15\n * }\n * ]\n * },\n * \"schedule\": {\n * \"plannedStart\": 1704153600000,\n * \"plannedEnd\": 1704155400000\n * }\n * }\n * ```\n */\nexport const ChangeRequestSchema = z.object({\n /**\n * Unique change request identifier\n */\n id: z.string().describe('Change request ID'),\n\n /**\n * Short descriptive title of the change\n */\n title: z.string().describe('Change title'),\n\n /**\n * Detailed description of the change and its purpose\n */\n description: z.string().describe('Change description'),\n\n /**\n * Change classification type\n */\n type: ChangeTypeSchema.describe('Change type'),\n\n /**\n * Priority level for processing\n */\n priority: ChangePrioritySchema.describe('Change priority'),\n\n /**\n * Current status in the change lifecycle\n */\n status: ChangeStatusSchema.describe('Change status'),\n\n /**\n * User ID of the change requester\n */\n requestedBy: z.string().describe('Requester user ID'),\n\n /**\n * Timestamp when change was requested (Unix milliseconds)\n */\n requestedAt: z.number().describe('Request timestamp'),\n\n /**\n * Impact assessment of the change\n */\n impact: ChangeImpactSchema.describe('Impact assessment'),\n\n /**\n * Implementation plan and procedures\n */\n implementation: z.object({\n /**\n * High-level implementation description\n */\n description: z.string().describe('Implementation description'),\n\n /**\n * Sequential implementation steps\n */\n steps: z.array(z.object({\n /**\n * Step execution order\n */\n order: z.number().describe('Step order'),\n\n /**\n * Detailed description of this step\n */\n description: z.string().describe('Step description'),\n\n /**\n * Estimated time to complete this step\n */\n estimatedMinutes: z.number().describe('Estimated duration'),\n })).describe('Implementation steps'),\n\n /**\n * Testing procedures to verify successful implementation\n */\n testing: z.string().optional().describe('Testing procedure'),\n }).describe('Implementation plan'),\n\n /**\n * Rollback plan in case of failure\n */\n rollbackPlan: RollbackPlanSchema.describe('Rollback plan'),\n\n /**\n * Change schedule and timing\n */\n schedule: z.object({\n /**\n * Planned start time (Unix milliseconds)\n */\n plannedStart: z.number().describe('Planned start time'),\n\n /**\n * Planned end time (Unix milliseconds)\n */\n plannedEnd: z.number().describe('Planned end time'),\n\n /**\n * Actual start time (Unix milliseconds)\n */\n actualStart: z.number().optional().describe('Actual start time'),\n\n /**\n * Actual end time (Unix milliseconds)\n */\n actualEnd: z.number().optional().describe('Actual end time'),\n }).optional().describe('Schedule'),\n\n /**\n * Approval workflow configuration\n */\n approval: z.object({\n /**\n * Whether approval is required for this change\n */\n required: z.boolean().describe('Approval required'),\n\n /**\n * List of approvers and their approval status\n */\n approvers: z.array(z.object({\n /**\n * Approver user ID\n */\n userId: z.string().describe('Approver user ID'),\n\n /**\n * Timestamp when approval was granted (Unix milliseconds)\n */\n approvedAt: z.number().optional().describe('Approval timestamp'),\n\n /**\n * Comments from the approver\n */\n comments: z.string().optional().describe('Approver comments'),\n })).describe('Approvers'),\n }).optional().describe('Approval workflow'),\n\n /**\n * Supporting documentation and files\n */\n attachments: z.array(z.object({\n /**\n * Attachment file name\n */\n name: z.string().describe('Attachment name'),\n\n /**\n * URL to download the attachment\n */\n url: z.string().url().describe('Attachment URL'),\n })).optional().describe('Attachments'),\n});\n\n// Type exports\nexport type ChangeRequest = z.infer<typeof ChangeRequestSchema>;\nexport type ChangeType = z.infer<typeof ChangeTypeSchema>;\nexport type ChangeStatus = z.infer<typeof ChangeStatusSchema>;\nexport type ChangePriority = z.infer<typeof ChangePrioritySchema>;\nexport type ChangeImpact = z.infer<typeof ChangeImpactSchema>;\nexport type RollbackPlan = z.infer<typeof RollbackPlanSchema>;\n","import { z } from 'zod';\nimport { FieldSchema } from '../data/field.zod';\nimport { ObjectSchema } from '../data/object.zod';\n\n// --- Atomic Operations ---\n\nexport const AddFieldOperation = z.object({\n type: z.literal('add_field'),\n objectName: z.string(),\n fieldName: z.string(),\n field: FieldSchema\n});\n\nexport const ModifyFieldOperation = z.object({\n type: z.literal('modify_field'),\n objectName: z.string(),\n fieldName: z.string(),\n changes: z.record(z.string(), z.unknown()) // Partial field definition updates\n});\n\nexport const RemoveFieldOperation = z.object({\n type: z.literal('remove_field'),\n objectName: z.string(),\n fieldName: z.string()\n});\n\nexport const CreateObjectOperation = z.object({\n type: z.literal('create_object'),\n object: ObjectSchema\n});\n\nexport const RenameObjectOperation = z.object({\n type: z.literal('rename_object'),\n oldName: z.string(),\n newName: z.string()\n});\n\nexport const DeleteObjectOperation = z.object({\n type: z.literal('delete_object'),\n objectName: z.string()\n});\n\nexport const ExecuteSqlOperation = z.object({\n type: z.literal('execute_sql'),\n sql: z.string(),\n description: z.string().optional()\n});\n\n// Union of all possible operations\nexport const MigrationOperationSchema = z.discriminatedUnion('type', [\n AddFieldOperation,\n ModifyFieldOperation,\n RemoveFieldOperation,\n CreateObjectOperation,\n RenameObjectOperation,\n DeleteObjectOperation,\n ExecuteSqlOperation\n]);\n\n// --- Migration & ChangeSet ---\n\nexport const MigrationDependencySchema = z.object({\n migrationId: z.string(),\n package: z.string().optional()\n});\n\nexport const ChangeSetSchema = z.object({\n id: z.string().uuid().describe('Unique identifier for this change set'),\n name: z.string().describe('Human readable name for the migration'),\n description: z.string().optional(),\n author: z.string().optional(),\n createdAt: z.string().datetime().optional(),\n \n // Dependencies ensure migrations run in order\n dependencies: z.array(MigrationDependencySchema).optional(),\n \n // The actual atomic operations\n operations: z.array(MigrationOperationSchema),\n \n // Rollback operations (AI should generate these too)\n rollback: z.array(MigrationOperationSchema).optional()\n});\n\nexport type ChangeSet = z.infer<typeof ChangeSetSchema>;\nexport type MigrationOperation = z.infer<typeof MigrationOperationSchema>;\n","import { z } from 'zod';\nimport { SystemIdentifierSchema } from '../shared/identifiers.zod';\nimport { EncryptionConfigSchema } from '../system/encryption.zod';\nimport { MaskingRuleSchema } from '../system/masking.zod';\n\n/**\n * Field Type Enum\n */\nexport const FieldType = z.enum([\n // Core Text\n 'text', 'textarea', 'email', 'url', 'phone', 'password',\n // Rich Content\n 'markdown', 'html', 'richtext',\n // Numbers\n 'number', 'currency', 'percent', \n // Date & Time\n 'date', 'datetime', 'time',\n // Logic\n 'boolean', 'toggle', // Toggle is a distinct UI from checkbox\n // Selection\n 'select', // Single select dropdown\n 'multiselect', // Multi select (often tags)\n 'radio', // Radio group\n 'checkboxes', // Checkbox group\n // Relational\n 'lookup', 'master_detail', // Dynamic reference\n 'tree', // Hierarchical reference\n // Media\n 'image', 'file', 'avatar', 'video', 'audio',\n // Calculated / System\n 'formula', 'summary', 'autonumber',\n // Enhanced Types\n 'location', // GPS coordinates\n 'address', // Structured address\n 'code', // Code editor (JSON/SQL/JS)\n 'json', // Structured JSON data\n 'color', // Color picker\n 'rating', // Star rating\n 'slider', // Numeric slider\n 'signature', // Digital signature\n 'qrcode', // QR code / Barcode\n 'progress', // Progress bar\n 'tags', // Simple tag list\n // AI/ML Types\n 'vector', // Vector embeddings for AI/ML (semantic search, RAG)\n]);\n\nexport type FieldType = z.infer<typeof FieldType>;\n\n/**\n * Select Option Schema\n * \n * Defines option values for select/picklist fields.\n * \n * **CRITICAL RULE**: The `value` field is a machine identifier that gets stored in the database.\n * It MUST be lowercase to avoid case-sensitivity issues in queries and comparisons.\n * \n * @example Good\n * { label: 'New', value: 'new' }\n * { label: 'In Progress', value: 'in_progress' }\n * { label: 'Closed Won', value: 'closed_won' }\n * \n * @example Bad (will be rejected)\n * { label: 'New', value: 'New' } // uppercase\n * { label: 'In Progress', value: 'In Progress' } // spaces and uppercase\n * { label: 'Closed Won', value: 'Closed_Won' } // mixed case\n */\nexport const SelectOptionSchema = z.object({\n label: z.string().describe('Display label (human-readable, any case allowed)'),\n value: SystemIdentifierSchema.describe('Stored value (lowercase machine identifier)'),\n color: z.string().optional().describe('Color code for badges/charts'),\n default: z.boolean().optional().describe('Is default option'),\n});\n\n/**\n * Location Coordinates Schema\n * GPS coordinates for location field type\n */\nexport const LocationCoordinatesSchema = z.object({\n latitude: z.number().min(-90).max(90).describe('Latitude coordinate'),\n longitude: z.number().min(-180).max(180).describe('Longitude coordinate'),\n altitude: z.number().optional().describe('Altitude in meters'),\n accuracy: z.number().optional().describe('Accuracy in meters'),\n});\n\n/**\n * Currency Configuration Schema\n * Configuration for currency field type supporting multi-currency\n * \n * Note: Currency codes are validated by length only (3 characters) to support:\n * - Standard ISO 4217 codes (USD, EUR, CNY, etc.)\n * - Cryptocurrency codes (BTC, ETH, etc.)\n * - Custom business-specific codes\n * Stricter validation can be implemented at the application layer based on business requirements.\n */\nexport const CurrencyConfigSchema = z.object({\n precision: z.number().int().min(0).max(10).default(2).describe('Decimal precision (default: 2)'),\n currencyMode: z.enum(['dynamic', 'fixed']).default('dynamic').describe('Currency mode: dynamic (user selectable) or fixed (single currency)'),\n defaultCurrency: z.string().length(3).default('CNY').describe('Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)'),\n});\n\n/**\n * Currency Value Schema\n * Runtime value structure for currency fields\n * \n * Note: Currency codes are validated by length only (3 characters) to support flexibility.\n * See CurrencyConfigSchema for details on currency code validation strategy.\n */\nexport const CurrencyValueSchema = z.object({\n value: z.number().describe('Monetary amount'),\n currency: z.string().length(3).describe('Currency code (ISO 4217)'),\n});\n\n/**\n * Address Schema\n * Structured address for address field type\n */\nexport const AddressSchema = z.object({\n street: z.string().optional().describe('Street address'),\n city: z.string().optional().describe('City name'),\n state: z.string().optional().describe('State/Province'),\n postalCode: z.string().optional().describe('Postal/ZIP code'),\n country: z.string().optional().describe('Country name or code'),\n countryCode: z.string().optional().describe('ISO country code (e.g., US, GB)'),\n formatted: z.string().optional().describe('Formatted address string'),\n});\n\n/**\n * Vector Configuration Schema\n * Configuration for vector field type supporting AI/ML embeddings\n * \n * Vector fields store numerical embeddings for semantic search, similarity matching,\n * and Retrieval-Augmented Generation (RAG) workflows.\n * \n * @example\n * // Text embeddings for semantic search\n * {\n * dimensions: 1536, // OpenAI text-embedding-ada-002\n * distanceMetric: 'cosine',\n * indexed: true\n * }\n * \n * @example\n * // Image embeddings with normalization\n * {\n * dimensions: 512, // ResNet-50\n * distanceMetric: 'euclidean',\n * normalized: true,\n * indexed: true\n * }\n */\nexport const VectorConfigSchema = z.object({\n dimensions: z.number().int().min(1).max(10000).describe('Vector dimensionality (e.g., 1536 for OpenAI embeddings)'),\n distanceMetric: z.enum(['cosine', 'euclidean', 'dotProduct', 'manhattan']).default('cosine').describe('Distance/similarity metric for vector search'),\n normalized: z.boolean().default(false).describe('Whether vectors are normalized (unit length)'),\n indexed: z.boolean().default(true).describe('Whether to create a vector index for fast similarity search'),\n indexType: z.enum(['hnsw', 'ivfflat', 'flat']).optional().describe('Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets)'),\n});\n\n/**\n * File Attachment Configuration Schema\n * Configuration for file and attachment field types\n * \n * Provides comprehensive file upload capabilities with:\n * - File type restrictions (allowed/blocked)\n * - File size limits (min/max)\n * - Virus scanning integration\n * - Storage provider integration\n * - Image-specific features (dimensions, thumbnails)\n * \n * @example Basic file upload with size limit\n * {\n * maxSize: 10485760, // 10MB\n * allowedTypes: ['.pdf', '.docx', '.xlsx'],\n * virusScan: true\n * }\n * \n * @example Image upload with validation\n * {\n * maxSize: 5242880, // 5MB\n * allowedTypes: ['.jpg', '.jpeg', '.png', '.webp'],\n * imageValidation: {\n * maxWidth: 4096,\n * maxHeight: 4096,\n * generateThumbnails: true\n * }\n * }\n */\nexport const FileAttachmentConfigSchema = z.object({\n /** File Size Limits */\n minSize: z.number().min(0).optional().describe('Minimum file size in bytes'),\n maxSize: z.number().min(1).optional().describe('Maximum file size in bytes (e.g., 10485760 = 10MB)'),\n \n /** File Type Restrictions */\n allowedTypes: z.array(z.string()).optional().describe('Allowed file extensions (e.g., [\".pdf\", \".docx\", \".jpg\"])'),\n blockedTypes: z.array(z.string()).optional().describe('Blocked file extensions (e.g., [\".exe\", \".bat\", \".sh\"])'),\n allowedMimeTypes: z.array(z.string()).optional().describe('Allowed MIME types (e.g., [\"image/jpeg\", \"application/pdf\"])'),\n blockedMimeTypes: z.array(z.string()).optional().describe('Blocked MIME types'),\n \n /** Virus Scanning */\n virusScan: z.boolean().default(false).describe('Enable virus scanning for uploaded files'),\n virusScanProvider: z.enum(['clamav', 'virustotal', 'metadefender', 'custom']).optional().describe('Virus scanning service provider'),\n virusScanOnUpload: z.boolean().default(true).describe('Scan files immediately on upload'),\n quarantineOnThreat: z.boolean().default(true).describe('Quarantine files if threat detected'),\n \n /** Storage Configuration */\n storageProvider: z.string().optional().describe('Object storage provider name (references ObjectStorageConfig)'),\n storageBucket: z.string().optional().describe('Target bucket name'),\n storagePrefix: z.string().optional().describe('Storage path prefix (e.g., \"uploads/documents/\")'),\n \n /** Image-Specific Validation */\n imageValidation: z.object({\n minWidth: z.number().min(1).optional().describe('Minimum image width in pixels'),\n maxWidth: z.number().min(1).optional().describe('Maximum image width in pixels'),\n minHeight: z.number().min(1).optional().describe('Minimum image height in pixels'),\n maxHeight: z.number().min(1).optional().describe('Maximum image height in pixels'),\n aspectRatio: z.string().optional().describe('Required aspect ratio (e.g., \"16:9\", \"1:1\")'),\n generateThumbnails: z.boolean().default(false).describe('Auto-generate thumbnails'),\n thumbnailSizes: z.array(z.object({\n name: z.string().describe('Thumbnail variant name (e.g., \"small\", \"medium\", \"large\")'),\n width: z.number().min(1).describe('Thumbnail width in pixels'),\n height: z.number().min(1).describe('Thumbnail height in pixels'),\n crop: z.boolean().default(false).describe('Crop to exact dimensions'),\n })).optional().describe('Thumbnail size configurations'),\n preserveMetadata: z.boolean().default(false).describe('Preserve EXIF metadata'),\n autoRotate: z.boolean().default(true).describe('Auto-rotate based on EXIF orientation'),\n }).optional().describe('Image-specific validation rules'),\n \n /** Upload Behavior */\n allowMultiple: z.boolean().default(false).describe('Allow multiple file uploads (overrides field.multiple)'),\n allowReplace: z.boolean().default(true).describe('Allow replacing existing files'),\n allowDelete: z.boolean().default(true).describe('Allow deleting uploaded files'),\n requireUpload: z.boolean().default(false).describe('Require at least one file when field is required'),\n \n /** Metadata Extraction */\n extractMetadata: z.boolean().default(true).describe('Extract file metadata (name, size, type, etc.)'),\n extractText: z.boolean().default(false).describe('Extract text content from documents (OCR/parsing)'),\n \n /** Versioning */\n versioningEnabled: z.boolean().default(false).describe('Keep previous versions of replaced files'),\n maxVersions: z.number().min(1).optional().describe('Maximum number of versions to retain'),\n \n /** Access Control */\n publicRead: z.boolean().default(false).describe('Allow public read access to uploaded files'),\n presignedUrlExpiry: z.number().min(60).max(604800).default(3600).describe('Presigned URL expiration in seconds (default: 1 hour)'),\n}).refine((data) => {\n // Validate minSize is less than or equal to maxSize\n if (data.minSize !== undefined && data.maxSize !== undefined && data.minSize > data.maxSize) {\n return false;\n }\n return true;\n}, {\n message: 'minSize must be less than or equal to maxSize',\n}).refine((data) => {\n // Validate virusScanProvider requires virusScan to be enabled\n if (data.virusScanProvider !== undefined && data.virusScan !== true) {\n return false;\n }\n return true;\n}, {\n message: 'virusScanProvider requires virusScan to be enabled',\n});\n\n/**\n * Data Quality Rules Schema\n * Defines data quality validation and monitoring for fields\n * \n * @example Unique SSN field with completeness requirement\n * {\n * uniqueness: true,\n * completeness: 0.95, // 95% of records must have this field\n * accuracy: {\n * source: 'government_db',\n * threshold: 0.98\n * }\n * }\n */\nexport const DataQualityRulesSchema = z.object({\n /** Enforce uniqueness constraint */\n uniqueness: z.boolean().default(false).describe('Enforce unique values across all records'),\n \n /** Completeness ratio (0-1) indicating minimum percentage of non-null values */\n completeness: z.number().min(0).max(1).default(0).describe('Minimum ratio of non-null values (0-1, default: 0 = no requirement)'),\n \n /** Accuracy validation against authoritative source */\n accuracy: z.object({\n source: z.string().describe('Reference data source for validation (e.g., \"api.verify.com\", \"master_data\")'),\n threshold: z.number().min(0).max(1).describe('Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)'),\n }).optional().describe('Accuracy validation configuration'),\n});\n\n/**\n * Computed Field Caching Schema\n * Configuration for caching computed/formula field results\n * \n * @example Cache product price with 1-hour TTL, invalidate on inventory changes\n * {\n * enabled: true,\n * ttl: 3600,\n * invalidateOn: ['inventory.quantity', 'pricing.discount']\n * }\n */\nexport const ComputedFieldCacheSchema = z.object({\n /** Enable caching for this computed field */\n enabled: z.boolean().describe('Enable caching for computed field results'),\n \n /** Time-to-live in seconds */\n ttl: z.number().min(0).describe('Cache TTL in seconds (0 = no expiration)'),\n \n /** Array of field paths that trigger cache invalidation when changed */\n invalidateOn: z.array(z.string()).describe('Field paths that invalidate cache (e.g., [\"inventory.quantity\", \"pricing.base_price\"])'),\n});\n\n/**\n * Field Schema - Best Practice Enterprise Pattern\n */\n/**\n * Field Definition Schema\n * Defines the properties, type, and behavior of a single field (column) on an object.\n * \n * @example Lookup Field\n * {\n * name: \"account_id\",\n * label: \"Account\",\n * type: \"lookup\",\n * reference: \"accounts\",\n * required: true\n * }\n * \n * @example Select Field\n * {\n * name: \"status\",\n * label: \"Status\",\n * type: \"select\",\n * options: [\n * { label: \"Open\", value: \"open\" },\n * { label: \"Closed\", value: \"closed\" }\n * ],\n * defaultValue: \"open\"\n * }\n */\nexport const FieldSchema = z.object({\n /** Identity */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Machine name (snake_case)').optional(),\n label: z.string().optional().describe('Human readable label'),\n type: FieldType.describe('Field Data Type'),\n description: z.string().optional().describe('Tooltip/Help text'),\n format: z.string().optional().describe('Format string (e.g. email, phone)'),\n\n /** Database Constraints */\n required: z.boolean().default(false).describe('Is required'),\n searchable: z.boolean().default(false).describe('Is searchable'),\n multiple: z.boolean().default(false).describe('Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image.'),\n unique: z.boolean().default(false).describe('Is unique constraint'),\n defaultValue: z.any().optional().describe('Default value'),\n \n /** Text/String Constraints */\n maxLength: z.number().optional().describe('Max character length'),\n minLength: z.number().optional().describe('Min character length'),\n \n /** Number Constraints */\n precision: z.number().optional().describe('Total digits'),\n scale: z.number().optional().describe('Decimal places'),\n min: z.number().optional().describe('Minimum value'),\n max: z.number().optional().describe('Maximum value'),\n\n /** Selection Options */\n options: z.array(SelectOptionSchema).optional().describe('Static options for select/multiselect'),\n\n /** Relationship Config */\n reference: z.string().optional().describe('Target Object Name'),\n referenceFilters: z.array(z.string()).optional().describe('Filters applied to lookup dialogs (e.g. \"active = true\")'),\n writeRequiresMasterRead: z.boolean().optional().describe('If true, user needs read access to master record to edit this field'),\n deleteBehavior: z.enum(['set_null', 'cascade', 'restrict']).optional().default('set_null').describe('What happens if referenced record is deleted'),\n\n /** Calculation */\n expression: z.string().optional().describe('Formula expression'),\n formula: z.string().optional().describe('Deprecated: Use expression'),\n summaryOperations: z.object({\n object: z.string(),\n field: z.string(),\n function: z.enum(['count', 'sum', 'min', 'max', 'avg'])\n }).optional().describe('Roll-up summary definition'),\n\n /** Enhanced Field Type Configurations */\n // Code field config\n language: z.string().optional().describe('Programming language for syntax highlighting (e.g., javascript, python, sql)'),\n theme: z.string().optional().describe('Code editor theme (e.g., dark, light, monokai)'),\n lineNumbers: z.boolean().optional().describe('Show line numbers in code editor'),\n \n // Rating field config\n maxRating: z.number().optional().describe('Maximum rating value (default: 5)'),\n allowHalf: z.boolean().optional().describe('Allow half-star ratings'),\n \n // Location field config\n displayMap: z.boolean().optional().describe('Display map widget for location field'),\n allowGeocoding: z.boolean().optional().describe('Allow address-to-coordinate conversion'),\n \n // Address field config\n addressFormat: z.enum(['us', 'uk', 'international']).optional().describe('Address format template'),\n \n // Color field config\n colorFormat: z.enum(['hex', 'rgb', 'rgba', 'hsl']).optional().describe('Color value format'),\n allowAlpha: z.boolean().optional().describe('Allow transparency/alpha channel'),\n presetColors: z.array(z.string()).optional().describe('Preset color options'),\n \n // Slider field config\n step: z.number().optional().describe('Step increment for slider (default: 1)'),\n showValue: z.boolean().optional().describe('Display current value on slider'),\n marks: z.record(z.string(), z.string()).optional().describe('Custom marks/labels at specific values (e.g., {0: \"Low\", 50: \"Medium\", 100: \"High\"})'),\n \n // QR Code / Barcode field config\n // Note: qrErrorCorrection is only applicable when barcodeFormat='qr'\n // Runtime validation should enforce this constraint\n barcodeFormat: z.enum(['qr', 'ean13', 'ean8', 'code128', 'code39', 'upca', 'upce']).optional().describe('Barcode format type'),\n qrErrorCorrection: z.enum(['L', 'M', 'Q', 'H']).optional().describe('QR code error correction level (L=7%, M=15%, Q=25%, H=30%). Only applicable when barcodeFormat is \"qr\"'),\n displayValue: z.boolean().optional().describe('Display human-readable value below barcode/QR code'),\n allowScanning: z.boolean().optional().describe('Enable camera scanning for barcode/QR code input'),\n\n // Currency field config\n currencyConfig: CurrencyConfigSchema.optional().describe('Configuration for currency field type'),\n\n // Vector field config\n vectorConfig: VectorConfigSchema.optional().describe('Configuration for vector field type (AI/ML embeddings)'),\n\n // File attachment field config\n fileAttachmentConfig: FileAttachmentConfigSchema.optional().describe('Configuration for file and attachment field types'),\n\n /** Enhanced Security & Compliance */\n // Encryption configuration\n encryptionConfig: EncryptionConfigSchema.optional().describe('Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS)'),\n \n // Data masking rules\n maskingRule: MaskingRuleSchema.optional().describe('Data masking rules for PII protection'),\n \n // Audit trail\n auditTrail: z.boolean().default(false).describe('Enable detailed audit trail for this field (tracks all changes with user and timestamp)'),\n \n /** Field Dependencies & Relationships */\n // Field dependencies\n dependencies: z.array(z.string()).optional().describe('Array of field names that this field depends on (for formulas, visibility rules, etc.)'),\n \n /** Computed Field Optimization */\n // Computed field caching\n cached: ComputedFieldCacheSchema.optional().describe('Caching configuration for computed/formula fields'),\n \n /** Data Quality & Governance */\n // Data quality rules\n dataQuality: DataQualityRulesSchema.optional().describe('Data quality validation and monitoring rules'),\n\n /** Security & Visibility */\n hidden: z.boolean().default(false).describe('Hidden from default UI'),\n readonly: z.boolean().default(false).describe('Read-only in UI'),\n encryption: z.boolean().default(false).describe('Deprecated: Use encryptionConfig for enhanced encryption features. Simple flag for backward compatibility.'),\n \n /** Indexing */\n index: z.boolean().default(false).describe('Create standard database index'),\n externalId: z.boolean().default(false).describe('Is external ID for upsert operations'),\n});\n\nexport type Field = z.infer<typeof FieldSchema>;\nexport type SelectOption = z.infer<typeof SelectOptionSchema>;\nexport type LocationCoordinates = z.infer<typeof LocationCoordinatesSchema>;\nexport type Address = z.infer<typeof AddressSchema>;\nexport type CurrencyConfig = z.infer<typeof CurrencyConfigSchema>;\nexport type CurrencyValue = z.infer<typeof CurrencyValueSchema>;\nexport type VectorConfig = z.infer<typeof VectorConfigSchema>;\nexport type FileAttachmentConfig = z.infer<typeof FileAttachmentConfigSchema>;\nexport type DataQualityRules = z.infer<typeof DataQualityRulesSchema>;\nexport type ComputedFieldCache = z.infer<typeof ComputedFieldCacheSchema>;\n\n/**\n * Field Factory Helper\n */\nexport type FieldInput = Omit<Partial<Field>, 'type'>;\n\nexport const Field = {\n text: (config: FieldInput = {}) => ({ type: 'text', ...config } as const),\n textarea: (config: FieldInput = {}) => ({ type: 'textarea', ...config } as const),\n number: (config: FieldInput = {}) => ({ type: 'number', ...config } as const),\n boolean: (config: FieldInput = {}) => ({ type: 'boolean', ...config } as const),\n date: (config: FieldInput = {}) => ({ type: 'date', ...config } as const),\n datetime: (config: FieldInput = {}) => ({ type: 'datetime', ...config } as const),\n currency: (config: FieldInput = {}) => ({ type: 'currency', ...config } as const),\n percent: (config: FieldInput = {}) => ({ type: 'percent', ...config } as const),\n url: (config: FieldInput = {}) => ({ type: 'url', ...config } as const),\n email: (config: FieldInput = {}) => ({ type: 'email', ...config } as const),\n phone: (config: FieldInput = {}) => ({ type: 'phone', ...config } as const),\n image: (config: FieldInput = {}) => ({ type: 'image', ...config } as const),\n file: (config: FieldInput = {}) => ({ type: 'file', ...config } as const),\n avatar: (config: FieldInput = {}) => ({ type: 'avatar', ...config } as const),\n formula: (config: FieldInput = {}) => ({ type: 'formula', ...config } as const),\n summary: (config: FieldInput = {}) => ({ type: 'summary', ...config } as const),\n autonumber: (config: FieldInput = {}) => ({ type: 'autonumber', ...config } as const),\n markdown: (config: FieldInput = {}) => ({ type: 'markdown', ...config } as const),\n html: (config: FieldInput = {}) => ({ type: 'html', ...config } as const),\n password: (config: FieldInput = {}) => ({ type: 'password', ...config } as const),\n \n /**\n * Select field helper with backward-compatible API\n * \n * Automatically converts option values to lowercase to enforce naming conventions.\n * \n * @example Old API (array first) - auto-converts to lowercase\n * Field.select(['High', 'Low'], { label: 'Priority' })\n * // Results in: [{ label: 'High', value: 'high' }, { label: 'Low', value: 'low' }]\n * \n * @example New API (config object) - enforces lowercase\n * Field.select({ options: [{label: 'High', value: 'high'}], label: 'Priority' })\n * \n * @example Multi-word values - converts to snake_case\n * Field.select(['In Progress', 'Closed Won'], { label: 'Status' })\n * // Results in: [{ label: 'In Progress', value: 'in_progress' }, { label: 'Closed Won', value: 'closed_won' }]\n */\n select: (optionsOrConfig: SelectOption[] | string[] | FieldInput & { options: SelectOption[] | string[] }, config?: FieldInput) => {\n // Helper function to convert string to lowercase snake_case\n const toSnakeCase = (str: string): string => {\n return str\n .toLowerCase()\n .replace(/\\s+/g, '_') // Replace spaces with underscores\n .replace(/[^a-z0-9_]/g, ''); // Remove invalid characters (keeping underscores only)\n };\n\n // Support both old and new signatures:\n // Old: Field.select(['a', 'b'], { label: 'X' })\n // New: Field.select({ options: [{label: 'A', value: 'a'}], label: 'X' })\n let options: SelectOption[];\n let finalConfig: FieldInput;\n \n if (Array.isArray(optionsOrConfig)) {\n // Old signature: array as first param\n options = optionsOrConfig.map(o => \n typeof o === 'string' \n ? { label: o, value: toSnakeCase(o) } // Auto-convert string to snake_case\n : { ...o, value: o.value.toLowerCase() } // Ensure value is lowercase\n );\n finalConfig = config || {};\n } else {\n // New signature: config object with options\n options = (optionsOrConfig.options || []).map(o => \n typeof o === 'string' \n ? { label: o, value: toSnakeCase(o) } // Auto-convert string to snake_case\n : { ...o, value: o.value.toLowerCase() } // Ensure value is lowercase\n );\n // Remove options from config to avoid confusion\n const { options: _, ...restConfig } = optionsOrConfig;\n finalConfig = restConfig;\n }\n \n return { type: 'select', options, ...finalConfig } as const;\n },\n\n \n lookup: (reference: string, config: FieldInput = {}) => ({ \n type: 'lookup', \n reference, \n ...config \n } as const),\n \n masterDetail: (reference: string, config: FieldInput = {}) => ({ \n type: 'master_detail', \n reference, \n ...config \n } as const),\n\n // Enhanced Field Type Helpers\n location: (config: FieldInput = {}) => ({ \n type: 'location', \n ...config \n } as const),\n \n address: (config: FieldInput = {}) => ({ \n type: 'address', \n ...config \n } as const),\n \n richtext: (config: FieldInput = {}) => ({ \n type: 'richtext', \n ...config \n } as const),\n \n code: (language?: string, config: FieldInput = {}) => ({ \n type: 'code', \n language,\n ...config \n } as const),\n \n color: (config: FieldInput = {}) => ({ \n type: 'color', \n ...config \n } as const),\n \n rating: (maxRating: number = 5, config: FieldInput = {}) => ({ \n type: 'rating', \n maxRating,\n ...config \n } as const),\n \n signature: (config: FieldInput = {}) => ({ \n type: 'signature', \n ...config \n } as const),\n \n slider: (config: FieldInput = {}) => ({ \n type: 'slider', \n ...config \n } as const),\n \n qrcode: (config: FieldInput = {}) => ({ \n type: 'qrcode', \n ...config \n } as const),\n \n vector: (dimensions: number, config: FieldInput = {}) => ({ \n type: 'vector', \n vectorConfig: {\n dimensions,\n distanceMetric: 'cosine' as const,\n normalized: false,\n indexed: true,\n ...config.vectorConfig\n },\n ...config \n } as const),\n};\n","import { z } from 'zod';\n\n/**\n * Field-level encryption protocol\n * GDPR/HIPAA/PCI-DSS compliant\n */\nexport const EncryptionAlgorithmSchema = z.enum([\n 'aes-256-gcm',\n 'aes-256-cbc',\n 'chacha20-poly1305',\n]);\n\nexport type EncryptionAlgorithm = z.infer<typeof EncryptionAlgorithmSchema>;\n\nexport const KeyManagementProviderSchema = z.enum([\n 'local',\n 'aws-kms',\n 'azure-key-vault',\n 'gcp-kms',\n 'hashicorp-vault',\n]);\n\nexport type KeyManagementProvider = z.infer<typeof KeyManagementProviderSchema>;\n\nexport const KeyRotationPolicySchema = z.object({\n enabled: z.boolean().default(false),\n frequencyDays: z.number().min(1).default(90),\n retainOldVersions: z.number().default(3),\n autoRotate: z.boolean().default(true),\n});\n\nexport type KeyRotationPolicy = z.infer<typeof KeyRotationPolicySchema>;\n\nexport const EncryptionConfigSchema = z.object({\n enabled: z.boolean().default(false),\n algorithm: EncryptionAlgorithmSchema.default('aes-256-gcm'),\n keyManagement: z.object({\n provider: KeyManagementProviderSchema,\n keyId: z.string().optional(),\n rotationPolicy: KeyRotationPolicySchema.optional(),\n }),\n scope: z.enum(['field', 'record', 'table', 'database']),\n deterministicEncryption: z.boolean().default(false).describe('Allows equality queries on encrypted data'),\n searchableEncryption: z.boolean().default(false).describe('Allows search on encrypted data'),\n});\n\nexport type EncryptionConfig = z.infer<typeof EncryptionConfigSchema>;\n\nexport const FieldEncryptionSchema = z.object({\n fieldName: z.string(),\n encryptionConfig: EncryptionConfigSchema,\n indexable: z.boolean().default(false),\n});\n\nexport type FieldEncryption = z.infer<typeof FieldEncryptionSchema>;\n","import { z } from 'zod';\n\n/**\n * Data masking protocol for PII protection\n */\nexport const MaskingStrategySchema = z.enum([\n 'redact', // Complete redaction: ****\n 'partial', // Partial masking: 138****5678\n 'hash', // Hash value: sha256(value)\n 'tokenize', // Tokenization: token-12345\n 'randomize', // Randomize: generate random value\n 'nullify', // Null value: null\n 'substitute', // Substitute with dummy data\n]);\n\nexport type MaskingStrategy = z.infer<typeof MaskingStrategySchema>;\n\nexport const MaskingRuleSchema = z.object({\n field: z.string(),\n strategy: MaskingStrategySchema,\n pattern: z.string().optional().describe('Regex pattern for partial masking'),\n preserveFormat: z.boolean().default(true),\n preserveLength: z.boolean().default(true),\n roles: z.array(z.string()).optional().describe('Roles that see masked data'),\n exemptRoles: z.array(z.string()).optional().describe('Roles that see unmasked data'),\n});\n\nexport type MaskingRule = z.infer<typeof MaskingRuleSchema>;\n\nexport const MaskingConfigSchema = z.object({\n enabled: z.boolean().default(false),\n rules: z.array(MaskingRuleSchema),\n auditUnmasking: z.boolean().default(true),\n});\n\nexport type MaskingConfig = z.infer<typeof MaskingConfigSchema>;\n","import { z } from 'zod';\nimport { FieldSchema } from './field.zod';\nimport { ValidationRuleSchema } from './validation.zod';\nimport { StateMachineSchema } from '../automation/state-machine.zod';\n\n/**\n * API Operations Enum\n */\nexport const ApiMethod = z.enum([\n 'get', 'list', // Read\n 'create', 'update', 'delete', // Write\n 'upsert', // Idempotent Write\n 'bulk', // Batch operations\n 'aggregate', // Analytics (count, sum)\n 'history', // Audit access\n 'search', // Search access\n 'restore', 'purge', // Trash management\n 'import', 'export', // Data portability\n]);\nexport type ApiMethod = z.infer<typeof ApiMethod>;\n\n/**\n * Capability Flags\n * Defines what system features are enabled for this object.\n * \n * Optimized based on industry standards (Salesforce, ServiceNow):\n * - Added `activities` (Tasks/Events)\n * - Added `mru` (Recent Items)\n * - Added `feeds` (Social/Chatter)\n * - Grouped API permissions\n * \n * @example\n * {\n * trackHistory: true,\n * searchable: true,\n * apiEnabled: true,\n * files: true\n * }\n */\nexport const ObjectCapabilities = z.object({\n /** Enable history tracking (Audit Trail) */\n trackHistory: z.boolean().default(false).describe('Enable field history tracking for audit compliance'),\n \n /** Enable global search indexing */\n searchable: z.boolean().default(true).describe('Index records for global search'),\n \n /** Enable REST/GraphQL API access */\n apiEnabled: z.boolean().default(true).describe('Expose object via automatic APIs'),\n\n /** \n * API Supported Operations\n * Granular control over API exposure.\n */\n apiMethods: z.array(ApiMethod).optional().describe('Whitelist of allowed API operations'),\n \n /** Enable standard attachments/files engine */\n files: z.boolean().default(false).describe('Enable file attachments and document management'),\n \n /** Enable social collaboration (Comments, Mentions, Feeds) */\n feeds: z.boolean().default(false).describe('Enable social feed, comments, and mentions (Chatter-like)'),\n \n /** Enable standard Activity suite (Tasks, Calendars, Events) */\n activities: z.boolean().default(false).describe('Enable standard tasks and events tracking'),\n \n /** Enable Recycle Bin / Soft Delete */\n trash: z.boolean().default(true).describe('Enable soft-delete with restore capability'),\n\n /** Enable \"Recently Viewed\" tracking */\n mru: z.boolean().default(true).describe('Track Most Recently Used (MRU) list for users'),\n \n /** Allow cloning records */\n clone: z.boolean().default(true).describe('Allow record deep cloning'),\n});\n\n/**\n * Schema for database indexes.\n * Enhanced with additional index types and configuration options\n * \n * @example\n * {\n * name: \"idx_account_name\",\n * fields: [\"name\"],\n * type: \"btree\",\n * unique: true\n * }\n */\nexport const IndexSchema = z.object({\n name: z.string().optional().describe('Index name (auto-generated if not provided)'),\n fields: z.array(z.string()).describe('Fields included in the index'),\n type: z.enum(['btree', 'hash', 'gin', 'gist', 'fulltext']).optional().default('btree').describe('Index algorithm type'),\n unique: z.boolean().optional().default(false).describe('Whether the index enforces uniqueness'),\n partial: z.string().optional().describe('Partial index condition (SQL WHERE clause for conditional indexes)'),\n});\n\n/**\n * Search Configuration\n * Defines how this object behaves in search results.\n * \n * @example\n * {\n * fields: [\"name\", \"email\", \"phone\"],\n * displayFields: [\"name\", \"title\"],\n * filters: [\"status = 'active'\"]\n * }\n */\nexport const SearchConfigSchema = z.object({\n fields: z.array(z.string()).describe('Fields to index for full-text search weighting'),\n displayFields: z.array(z.string()).optional().describe('Fields to display in search result cards'),\n filters: z.array(z.string()).optional().describe('Default filters for search results'),\n});\n\n/**\n * Multi-Tenancy Configuration Schema\n * Configures tenant isolation strategy for SaaS applications\n * \n * @example Shared database with tenant_id isolation\n * {\n * enabled: true,\n * strategy: 'shared',\n * tenantField: 'tenant_id',\n * crossTenantAccess: false\n * }\n */\nexport const TenancyConfigSchema = z.object({\n enabled: z.boolean().describe('Enable multi-tenancy for this object'),\n strategy: z.enum(['shared', 'isolated', 'hybrid']).describe('Tenant isolation strategy: shared (single DB, row-level), isolated (separate DB per tenant), hybrid (mix)'),\n tenantField: z.string().default('tenant_id').describe('Field name for tenant identifier'),\n crossTenantAccess: z.boolean().default(false).describe('Allow cross-tenant data access (with explicit permission)'),\n});\n\n/**\n * Soft Delete Configuration Schema\n * Implements recycle bin / trash functionality\n * \n * @example Standard soft delete with cascade\n * {\n * enabled: true,\n * field: 'deleted_at',\n * cascadeDelete: true\n * }\n */\nexport const SoftDeleteConfigSchema = z.object({\n enabled: z.boolean().describe('Enable soft delete (trash/recycle bin)'),\n field: z.string().default('deleted_at').describe('Field name for soft delete timestamp'),\n cascadeDelete: z.boolean().default(false).describe('Cascade soft delete to related records'),\n});\n\n/**\n * Versioning Configuration Schema\n * Implements record versioning and history tracking\n * \n * @example Snapshot versioning with 90-day retention\n * {\n * enabled: true,\n * strategy: 'snapshot',\n * retentionDays: 90,\n * versionField: 'version'\n * }\n */\nexport const VersioningConfigSchema = z.object({\n enabled: z.boolean().describe('Enable record versioning'),\n strategy: z.enum(['snapshot', 'delta', 'event-sourcing']).describe('Versioning strategy: snapshot (full copy), delta (changes only), event-sourcing (event log)'),\n retentionDays: z.number().min(1).optional().describe('Number of days to retain old versions (undefined = infinite)'),\n versionField: z.string().default('version').describe('Field name for version number/timestamp'),\n});\n\n/**\n * Partitioning Strategy Schema\n * Configures table partitioning for performance at scale\n * \n * @example Range partitioning by date (monthly)\n * {\n * enabled: true,\n * strategy: 'range',\n * key: 'created_at',\n * interval: '1 month'\n * }\n */\nexport const PartitioningConfigSchema = z.object({\n enabled: z.boolean().describe('Enable table partitioning'),\n strategy: z.enum(['range', 'hash', 'list']).describe('Partitioning strategy: range (date ranges), hash (consistent hashing), list (predefined values)'),\n key: z.string().describe('Field name to partition by'),\n interval: z.string().optional().describe('Partition interval for range strategy (e.g., \"1 month\", \"1 year\")'),\n}).refine((data) => {\n // If strategy is 'range', interval must be provided\n if (data.strategy === 'range' && !data.interval) {\n return false;\n }\n return true;\n}, {\n message: 'interval is required when strategy is \"range\"',\n});\n\n/**\n * Change Data Capture (CDC) Configuration Schema\n * Enables real-time data streaming to external systems\n * \n * @example Stream all changes to Kafka\n * {\n * enabled: true,\n * events: ['insert', 'update', 'delete'],\n * destination: 'kafka://events.objectstack'\n * }\n */\nexport const CDCConfigSchema = z.object({\n enabled: z.boolean().describe('Enable Change Data Capture'),\n events: z.array(z.enum(['insert', 'update', 'delete'])).describe('Event types to capture'),\n destination: z.string().describe('Destination endpoint (e.g., \"kafka://topic\", \"webhook://url\")'),\n});\n\n/**\n * Base Object Schema Definition\n * \n * The Blueprint of a Business Object.\n * Represents a table, a collection, or a virtual entity.\n * \n * @example\n * ```yaml\n * name: project_task\n * label: Project Task\n * icon: task\n * fields:\n * project:\n * type: lookup\n * reference: project\n * status:\n * type: select\n * options: [todo, in_progress, done]\n * enable:\n * trackHistory: true\n * files: true\n * ```\n */\nconst ObjectSchemaBase = z.object({\n /** \n * Identity & Metadata \n */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Machine unique key (snake_case). Immutable.'),\n label: z.string().optional().describe('Human readable singular label (e.g. \"Account\")'),\n pluralLabel: z.string().optional().describe('Human readable plural label (e.g. \"Accounts\")'),\n description: z.string().optional().describe('Developer documentation / description'),\n icon: z.string().optional().describe('Icon name (Lucide/Material) for UI representation'),\n \n /**\n * Taxonomy & Organization\n */\n tags: z.array(z.string()).optional().describe('Categorization tags (e.g. \"sales\", \"system\", \"reference\")'),\n active: z.boolean().optional().default(true).describe('Is the object active and usable'),\n isSystem: z.boolean().optional().default(false).describe('Is system object (protected from deletion)'),\n abstract: z.boolean().optional().default(false).describe('Is abstract base object (cannot be instantiated)'),\n\n /** \n * Storage & Virtualization \n */\n datasource: z.string().optional().default('default').describe('Target Datasource ID. \"default\" is the primary DB.'),\n tableName: z.string().optional().describe('Physical table/collection name in the target datasource'),\n \n /** \n * Data Model \n */\n fields: z.record(z.string().regex(/^[a-z_][a-z0-9_]*$/, {\n message: 'Field names must be lowercase snake_case (e.g., \"first_name\", \"company\", \"annual_revenue\")',\n }), FieldSchema).describe('Field definitions map. Keys must be snake_case identifiers.'),\n indexes: z.array(IndexSchema).optional().describe('Database performance indexes'),\n \n /**\n * Advanced Data Management\n */\n \n // Multi-tenancy configuration\n tenancy: TenancyConfigSchema.optional().describe('Multi-tenancy configuration for SaaS applications'),\n \n // Soft delete configuration\n softDelete: SoftDeleteConfigSchema.optional().describe('Soft delete (trash/recycle bin) configuration'),\n \n // Versioning configuration\n versioning: VersioningConfigSchema.optional().describe('Record versioning and history tracking configuration'),\n \n // Partitioning strategy\n partitioning: PartitioningConfigSchema.optional().describe('Table partitioning configuration for performance'),\n \n // Change Data Capture\n cdc: CDCConfigSchema.optional().describe('Change Data Capture (CDC) configuration for real-time data streaming'),\n \n /**\n * Logic & Validation (Co-located)\n * Best Practice: Define rules close to data.\n */\n validations: z.array(ValidationRuleSchema).optional().describe('Object-level validation rules'),\n \n /**\n * State Machine(s)\n * Supports a single machine (legacy) or a named record of machines.\n * Multiple machines allow parallel lifecycles (e.g., status + payment_status + approval_status).\n * \n * @example Single: stateMachine: { id: 'lifecycle', initial: 'draft', states: {...} }\n * @example Multiple: stateMachines: { lifecycle: {...}, payment: {...}, approval: {...} }\n */\n stateMachine: StateMachineSchema.optional().describe('Single state machine for record lifecycle (shorthand)'),\n stateMachines: z.record(z.string(), StateMachineSchema).optional().describe('Named state machines for parallel lifecycles (e.g., status, payment, approval)'),\n\n /** \n * Display & UI Hints (Data-Layer)\n */\n titleFormat: z.string().optional().describe('Title expression (e.g. \"{name} - {code}\"). Overrides nameField.'),\n compactLayout: z.array(z.string()).optional().describe('Primary fields for hover/cards/lookups'),\n \n /** \n * Search Engine Config \n */\n search: SearchConfigSchema.optional().describe('Search engine configuration'),\n \n /** \n * System Capabilities \n */\n enable: ObjectCapabilities.optional().describe('Enabled system features modules'),\n});\n\n/**\n * Enhanced ObjectSchema with Factory\n */\nexport const ObjectSchema = Object.assign(ObjectSchemaBase, {\n create: <T extends z.input<typeof ObjectSchemaBase>>(config: T) => config,\n});\n\nexport type ServiceObject = z.infer<typeof ObjectSchemaBase>;\nexport type ObjectCapabilities = z.infer<typeof ObjectCapabilities>;\nexport type ObjectIndex = z.infer<typeof IndexSchema>;\nexport type TenancyConfig = z.infer<typeof TenancyConfigSchema>;\nexport type SoftDeleteConfig = z.infer<typeof SoftDeleteConfigSchema>;\nexport type VersioningConfig = z.infer<typeof VersioningConfigSchema>;\nexport type PartitioningConfig = z.infer<typeof PartitioningConfigSchema>;\nexport type CDCConfig = z.infer<typeof CDCConfigSchema>;\n\n// =================================================================\n// Object Ownership Model\n// =================================================================\n\n/**\n * How a package relates to an object it references.\n * \n * - `own`: This package is the original author/owner of the object.\n * Only one package may own a given object name. The owner defines\n * the base schema (table name, primary key, core fields).\n * \n * - `extend`: This package adds fields, views, or actions to an\n * existing object owned by another package. Multiple packages\n * may extend the same object. Extensions are merged at boot time.\n * \n * Follows Salesforce/ServiceNow patterns:\n * object name = database table name, globally unique, no namespace prefix.\n */\nexport const ObjectOwnershipEnum = z.enum(['own', 'extend']);\nexport type ObjectOwnership = z.infer<typeof ObjectOwnershipEnum>;\n\n/**\n * Object Extension Entry — used in `objectExtensions` array.\n * Declares fields/config to merge into an existing object owned by another package.\n * \n * @example\n * ```ts\n * objectExtensions: [{\n * extend: 'contact', // target object FQN\n * fields: { sales_stage: Field.select([...]) },\n * }]\n * ```\n */\nexport const ObjectExtensionSchema = z.object({\n /** The target object name (FQN) to extend */\n extend: z.string().describe('Target object name (FQN) to extend'),\n \n /** Fields to merge into the target object (additive) */\n fields: z.record(z.string(), FieldSchema).optional().describe('Fields to add/override'),\n \n /** Override label */\n label: z.string().optional(),\n \n /** Override plural label */\n pluralLabel: z.string().optional(),\n \n /** Override description */\n description: z.string().optional(),\n \n /** Additional validation rules to add */\n validations: z.array(ValidationRuleSchema).optional(),\n \n /** Additional indexes to add */\n indexes: z.array(IndexSchema).optional(),\n \n /** Merge priority. Higher number applied later (wins on conflict). Default: 200 */\n priority: z.number().int().min(0).max(999).default(200).describe('Merge priority (higher = applied later)'),\n});\n\nexport type ObjectExtension = z.infer<typeof ObjectExtensionSchema>;\n","import { z } from 'zod';\n\n/**\n * # ObjectStack Validation Protocol\n * \n * This module defines the validation schema protocol for ObjectStack, providing a comprehensive\n * type-safe validation system similar to Salesforce's validation rules but with enhanced capabilities.\n * \n * ## Overview\n * \n * Validation rules are applied at the data layer to ensure data integrity and enforce business logic.\n * The system supports multiple validation types:\n * \n * 1. **Script Validation**: Formula-based validation using expressions\n * 2. **Uniqueness Validation**: Enforce unique constraints across fields\n * 3. **State Machine Validation**: Control allowed state transitions\n * 4. **Format Validation**: Validate field formats (email, URL, regex, etc.)\n * 5. **Cross-Field Validation**: Validate relationships between multiple fields\n * 6. **Async Validation**: Remote validation via API calls\n * 7. **Custom Validation**: User-defined validation functions\n * 8. **Conditional Validation**: Apply validations based on conditions\n * \n * ## Salesforce Comparison\n * \n * ObjectStack validation rules are inspired by Salesforce validation rules but enhanced:\n * - Salesforce: Formula-based validation with `Error Condition Formula`\n * - ObjectStack: Multiple validation types with composable rules\n * \n * Example Salesforce validation rule:\n * ```\n * Rule Name: Discount_Cannot_Exceed_40_Percent\n * Error Condition Formula: Discount_Percent__c > 0.40\n * Error Message: Discount cannot exceed 40%.\n * ```\n * \n * Equivalent ObjectStack rule:\n * ```typescript\n * {\n * type: 'script',\n * name: 'discount_cannot_exceed_40_percent',\n * condition: 'discount_percent > 0.40',\n * message: 'Discount cannot exceed 40%',\n * severity: 'error'\n * }\n * ```\n */\n\n/**\n * Base Validation Rule\n * \n * All validation rules extend from this base schema with common properties.\n * \n * ## Industry Standard Enhancements\n * - **Label/Description**: Essential for governance in large systems with thousands of rules.\n * - **Events**: granular control over validation timing (Context-aware validation).\n * - **Tags**: categorization for reporting and management.\n */\nconst BaseValidationSchema = z.object({\n // Identification\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Unique rule name (snake_case)'),\n label: z.string().optional().describe('Human-readable label for the rule listing'),\n description: z.string().optional().describe('Administrative notes explaining the business reason'),\n \n // Execution Control\n active: z.boolean().default(true),\n events: z.array(z.enum(['insert', 'update', 'delete'])).default(['insert', 'update']).describe('Validation contexts'),\n \n // Classification\n tags: z.array(z.string()).optional().describe('Categorization tags (e.g., \"compliance\", \"billing\")'),\n \n // Feedback\n severity: z.enum(['error', 'warning', 'info']).default('error'),\n message: z.string().describe('Error message to display to the user'),\n});\n\n/**\n * 1. Script/Expression Validation\n * Generic formula-based validation.\n */\nexport const ScriptValidationSchema = BaseValidationSchema.extend({\n type: z.literal('script'),\n condition: z.string().describe('Formula expression. If TRUE, validation fails. (e.g. amount < 0)'),\n});\n\n/**\n * 2. Uniqueness Validation\n * specialized optimized check for unique constraints.\n */\nexport const UniquenessValidationSchema = BaseValidationSchema.extend({\n type: z.literal('unique'),\n fields: z.array(z.string()).describe('Fields that must be combined unique'),\n scope: z.string().optional().describe('Formula condition for scope (e.g. active = true)'),\n caseSensitive: z.boolean().default(true),\n});\n\n/**\n * 3. State Machine Validation\n * State transition logic.\n */\nexport const StateMachineValidationSchema = BaseValidationSchema.extend({\n type: z.literal('state_machine'),\n field: z.string().describe('State field (e.g. status)'),\n transitions: z.record(z.string(), z.array(z.string())).describe('Map of { OldState: [AllowedNewStates] }'),\n});\n\n/**\n * 4. Value Format Validation\n * Regex or specialized formats.\n */\nexport const FormatValidationSchema = BaseValidationSchema.extend({\n type: z.literal('format'),\n field: z.string(),\n regex: z.string().optional(),\n format: z.enum(['email', 'url', 'phone', 'json']).optional(),\n});\n\n/**\n * 5. Cross-Field Validation\n * Validates relationships between multiple fields.\n * \n * ## Use Cases\n * - Date range validations (end_date > start_date)\n * - Amount comparisons (discount < total)\n * - Complex business rules involving multiple fields\n * \n * ## Salesforce Examples\n * \n * ### Example 1: Close Date Must Be In Current or Future Month\n * **Salesforce Formula:**\n * ```\n * MONTH(CloseDate) < MONTH(TODAY()) ||\n * YEAR(CloseDate) < YEAR(TODAY())\n * ```\n * \n * **ObjectStack Equivalent:**\n * ```typescript\n * {\n * type: 'cross_field',\n * name: 'close_date_future',\n * condition: 'MONTH(close_date) >= MONTH(TODAY()) AND YEAR(close_date) >= YEAR(TODAY())',\n * fields: ['close_date'],\n * message: 'Close Date must be in the current or a future month'\n * }\n * ```\n * \n * ### Example 2: Discount Validation\n * **Salesforce Formula:**\n * ```\n * Discount__c > (Amount__c * 0.40)\n * ```\n * \n * **ObjectStack Equivalent:**\n * ```typescript\n * {\n * type: 'cross_field',\n * name: 'discount_limit',\n * condition: 'discount > (amount * 0.40)',\n * fields: ['discount', 'amount'],\n * message: 'Discount cannot exceed 40% of the amount'\n * }\n * ```\n * \n * ### Example 3: Opportunity Must Have Products\n * **Salesforce Formula:**\n * ```\n * ISBLANK(Products__c) && ISPICKVAL(StageName, \"Closed Won\")\n * ```\n * \n * **ObjectStack Equivalent:**\n * ```typescript\n * {\n * type: 'cross_field',\n * name: 'products_required_for_won',\n * condition: 'products = null AND stage = \"closed_won\"',\n * fields: ['products', 'stage'],\n * message: 'Opportunity must have products to be marked as Closed Won'\n * }\n * ```\n */\nexport const CrossFieldValidationSchema = BaseValidationSchema.extend({\n type: z.literal('cross_field'),\n condition: z.string().describe('Formula expression comparing fields (e.g. \"end_date > start_date\")'),\n fields: z.array(z.string()).describe('Fields involved in the validation'),\n});\n\n/**\n * 6. JSON Structure Validation\n * Validates JSON fields against a JSON Schema.\n * \n * ## Use Cases\n * - Validating configuration objects stored in JSON fields\n * - Enforcing API payload structures\n * - Complex nested data validation\n */\nexport const JSONValidationSchema = BaseValidationSchema.extend({\n type: z.literal('json_schema'),\n field: z.string().describe('JSON field to validate'),\n schema: z.record(z.string(), z.any()).describe('JSON Schema object definition'),\n});\n\n/**\n * 7. Async Validation\n * Remote validation via API call or database query.\n * \n * ## Use Cases\n * \n * ### 1. Email Uniqueness Check\n * Check if an email address is already registered in the system.\n * ```typescript\n * {\n * type: 'async',\n * name: 'unique_email',\n * field: 'email',\n * validatorUrl: '/api/users/check-email',\n * message: 'This email address is already registered',\n * debounce: 500, // Wait 500ms after user stops typing\n * timeout: 3000\n * }\n * ```\n * \n * ### 2. Username Availability\n * Verify username is available before form submission.\n * ```typescript\n * {\n * type: 'async',\n * name: 'username_available',\n * field: 'username',\n * validatorUrl: '/api/users/check-username',\n * message: 'This username is already taken',\n * debounce: 300,\n * timeout: 2000\n * }\n * ```\n * \n * ### 3. Tax ID Validation\n * Validate tax ID with government API (e.g., IRS, HMRC).\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_tax_id',\n * field: 'tax_id',\n * validatorFunction: 'validateTaxIdWithIRS',\n * message: 'Invalid Tax ID number',\n * timeout: 10000, // Government APIs may be slow\n * params: { country: 'US', format: 'EIN' }\n * }\n * ```\n * \n * ### 4. Credit Card Validation\n * Verify credit card with payment gateway without charging.\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_card',\n * field: 'card_number',\n * validatorUrl: 'https://api.stripe.com/v1/tokens/validate',\n * message: 'Invalid credit card number',\n * timeout: 5000,\n * params: { \n * mode: 'validate_only',\n * checkFunds: false \n * }\n * }\n * ```\n * \n * ### 5. Address Validation\n * Validate and standardize addresses using geocoding services.\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_address',\n * field: 'street_address',\n * validatorFunction: 'validateAddressWithGoogleMaps',\n * message: 'Unable to verify address',\n * timeout: 4000,\n * params: {\n * includeFields: ['city', 'state', 'zip'],\n * strictMode: true,\n * country: 'US'\n * }\n * }\n * ```\n * \n * ### 6. Domain Name Availability\n * Check if domain name is available for registration.\n * ```typescript\n * {\n * type: 'async',\n * name: 'domain_available',\n * field: 'domain_name',\n * validatorUrl: '/api/domains/check-availability',\n * message: 'This domain is already taken or reserved',\n * debounce: 500,\n * timeout: 2000\n * }\n * ```\n * \n * ### 7. Coupon Code Validation\n * Verify coupon code is valid and not expired.\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_coupon',\n * field: 'coupon_code',\n * validatorUrl: '/api/coupons/validate',\n * message: 'Invalid or expired coupon code',\n * timeout: 2000,\n * params: {\n * checkExpiration: true,\n * checkUsageLimit: true,\n * userId: '{{current_user_id}}'\n * }\n * }\n * ```\n */\nexport const AsyncValidationSchema = BaseValidationSchema.extend({\n type: z.literal('async'),\n field: z.string().describe('Field to validate'),\n validatorUrl: z.string().optional().describe('External API endpoint for validation'),\n method: z.enum(['GET', 'POST']).default('GET').describe('HTTP method for external call'),\n headers: z.record(z.string(), z.string()).optional().describe('Custom headers for the request'),\n validatorFunction: z.string().optional().describe('Reference to custom validator function'),\n timeout: z.number().optional().default(5000).describe('Timeout in milliseconds'),\n debounce: z.number().optional().describe('Debounce delay in milliseconds'),\n params: z.record(z.string(), z.any()).optional().describe('Additional parameters to pass to validator'),\n});\n\n/**\n * 8. Custom Validator Function\n * User-defined validation logic with code reference.\n */\nexport const CustomValidatorSchema = BaseValidationSchema.extend({\n type: z.literal('custom'),\n handler: z.string().describe('Name of the custom validation function registered in the system'),\n params: z.record(z.string(), z.any()).optional().describe('Parameters passed to the custom handler'),\n});\n\n/**\n * 9. Master Validation Rule Schema\n */\nexport const ValidationRuleSchema: z.ZodType<any> = z.lazy(() =>\n z.discriminatedUnion('type', [\n ScriptValidationSchema,\n UniquenessValidationSchema,\n StateMachineValidationSchema,\n FormatValidationSchema,\n CrossFieldValidationSchema,\n JSONValidationSchema,\n AsyncValidationSchema,\n CustomValidatorSchema,\n ConditionalValidationSchema,\n ])\n);\n\n/**\n * 8. Conditional Validation\n * Validation that only applies when a condition is met.\n * \n * ## Overview\n * Conditional validations follow the pattern: \"Validate X only if Y is true\"\n * This allows for context-aware validation rules that adapt to different scenarios.\n * \n * ## Use Cases\n * \n * ### 1. Validate Based on Record Type\n * Apply different validation rules based on the type of record.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'enterprise_approval_required',\n * when: 'account_type = \"enterprise\"',\n * message: 'Enterprise validation',\n * then: {\n * type: 'script',\n * name: 'require_approval',\n * message: 'Enterprise accounts require manager approval',\n * condition: 'approval_status = null'\n * }\n * }\n * ```\n * \n * ### 2. Conditional Field Requirements\n * Require certain fields only when specific conditions are met.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'shipping_address_when_required',\n * when: 'requires_shipping = true',\n * message: 'Shipping validation',\n * then: {\n * type: 'script',\n * name: 'shipping_address_required',\n * message: 'Shipping address is required for physical products',\n * condition: 'shipping_address = null OR shipping_address = \"\"'\n * }\n * }\n * ```\n * \n * ### 3. Amount-Based Validation\n * Apply different rules based on transaction amount.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'high_value_approval',\n * when: 'order_total > 10000',\n * message: 'High value order validation',\n * then: {\n * type: 'script',\n * name: 'manager_approval_required',\n * message: 'Orders over $10,000 require manager approval',\n * condition: 'manager_approval_id = null'\n * },\n * otherwise: {\n * type: 'script',\n * name: 'standard_validation',\n * message: 'Payment method is required',\n * condition: 'payment_method = null'\n * }\n * }\n * ```\n * \n * ### 4. Regional Compliance\n * Apply region-specific validation rules.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'regional_compliance',\n * when: 'region = \"EU\"',\n * message: 'EU compliance validation',\n * then: {\n * type: 'script',\n * name: 'gdpr_consent',\n * message: 'GDPR consent is required for EU customers',\n * condition: 'gdpr_consent_given = false'\n * },\n * otherwise: {\n * type: 'script',\n * name: 'tos_acceptance',\n * message: 'Terms of Service acceptance required',\n * condition: 'tos_accepted = false'\n * }\n * }\n * ```\n * \n * ### 5. Nested Conditional Validation\n * Create complex validation logic with nested conditions.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'country_state_validation',\n * when: 'country = \"US\"',\n * message: 'US-specific validation',\n * then: {\n * type: 'conditional',\n * name: 'california_validation',\n * when: 'state = \"CA\"',\n * message: 'California-specific validation',\n * then: {\n * type: 'script',\n * name: 'ca_tax_id_required',\n * message: 'California requires a valid tax ID',\n * condition: 'tax_id = null OR NOT(REGEX(tax_id, \"^\\\\d{2}-\\\\d{7}$\"))'\n * }\n * }\n * }\n * ```\n * \n * ### 6. Tax Validation for Taxable Items\n * Only validate tax fields when the item is taxable.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'tax_field_validation',\n * when: 'is_taxable = true',\n * message: 'Tax validation',\n * then: {\n * type: 'script',\n * name: 'tax_code_required',\n * message: 'Tax code is required for taxable items',\n * condition: 'tax_code = null OR tax_code = \"\"'\n * }\n * }\n * ```\n * \n * ### 7. Role-Based Validation\n * Apply validation based on user role.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'role_based_approval_limit',\n * when: 'user_role = \"manager\"',\n * message: 'Manager approval limits',\n * then: {\n * type: 'script',\n * name: 'manager_limit',\n * message: 'Managers can approve up to $50,000',\n * condition: 'approval_amount > 50000'\n * }\n * }\n * ```\n * \n * ## Salesforce Pattern Comparison\n * \n * Salesforce doesn't have explicit \"conditional validation\" rules but achieves similar\n * behavior using formula logic. ObjectStack makes this pattern explicit and composable.\n * \n * **Salesforce Approach:**\n * ```\n * IF(\n * ISPICKVAL(Type, \"Enterprise\"),\n * AND(Amount > 100000, ISBLANK(Approval__c)),\n * FALSE\n * )\n * ```\n * \n * **ObjectStack Approach:**\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'enterprise_high_value',\n * when: 'type = \"enterprise\"',\n * then: {\n * type: 'cross_field',\n * name: 'amount_approval',\n * condition: 'amount > 100000 AND approval = null',\n * fields: ['amount', 'approval']\n * }\n * }\n * ```\n */\nexport const ConditionalValidationSchema = BaseValidationSchema.extend({\n type: z.literal('conditional'),\n when: z.string().describe('Condition formula (e.g. \"type = \\'enterprise\\'\")'),\n then: ValidationRuleSchema.describe('Validation rule to apply when condition is true'),\n otherwise: ValidationRuleSchema.optional().describe('Validation rule to apply when condition is false'),\n});\n\nexport type ValidationRule = z.infer<typeof ValidationRuleSchema>;\nexport type ScriptValidation = z.infer<typeof ScriptValidationSchema>;\nexport type UniquenessValidation = z.infer<typeof UniquenessValidationSchema>;\nexport type StateMachineValidation = z.infer<typeof StateMachineValidationSchema>;\nexport type FormatValidation = z.infer<typeof FormatValidationSchema>;\nexport type CrossFieldValidation = z.infer<typeof CrossFieldValidationSchema>;\nexport type JSONValidation = z.infer<typeof JSONValidationSchema>;\nexport type AsyncValidation = z.infer<typeof AsyncValidationSchema>;\nexport type CustomValidation = z.infer<typeof CustomValidatorSchema>;\nexport type ConditionalValidation = z.infer<typeof ConditionalValidationSchema>;","import { z } from 'zod';\nimport { SnakeCaseIdentifierSchema } from '../shared/identifiers.zod';\n\n/**\n * XState-inspired State Machine Protocol\n * Used to define strict business logic constraints and lifecycle management.\n * Prevent AI \"hallucinations\" by enforcing valid valid transitions.\n */\n\n// --- Primitives ---\n\n/**\n * References a named action (side effect)\n * Can be a script, a webhook, or a field update.\n */\nexport const ActionRefSchema = z.union([\n z.string().describe('Action Name'),\n z.object({\n type: z.string(), // e.g., 'xstate.assign', 'log', 'email'\n params: z.record(z.string(), z.any()).optional()\n })\n]);\n\n/**\n * References a named condition (guard)\n * Must evaluate to true for the transition to occur.\n */\nexport const GuardRefSchema = z.union([\n z.string().describe('Guard Name (e.g., \"isManager\", \"amountGT1000\")'),\n z.object({\n type: z.string(),\n params: z.record(z.string(), z.any()).optional()\n })\n]);\n\n// --- Core Structure ---\n\n/**\n * State Transition Definition\n * \"When EVENT happens, if GUARD is true, go to TARGET and run ACTIONS\"\n */\nexport const TransitionSchema = z.object({\n target: z.string().optional().describe('Target State ID'),\n cond: GuardRefSchema.optional().describe('Condition (Guard) required to take this path'),\n actions: z.array(ActionRefSchema).optional().describe('Actions to execute during transition'),\n description: z.string().optional().describe('Human readable description of this rule'),\n});\n\n/**\n * Event Definition (Signals)\n */\nexport const EventSchema = z.object({\n type: z.string().describe('Event Type (e.g. \"APPROVE\", \"REJECT\", \"Submit\")'),\n // Payload validation schema could go here if we want deep validation\n schema: z.record(z.string(), z.any()).optional().describe('Expected event payload structure'),\n});\n\nexport type ActionRef = z.infer<typeof ActionRefSchema>;\nexport type Transition = z.infer<typeof TransitionSchema>;\n\nexport type StateNodeConfig = {\n type?: 'atomic' | 'compound' | 'parallel' | 'final' | 'history';\n entry?: ActionRef[];\n exit?: ActionRef[];\n on?: Record<string, string | Transition | Transition[]>;\n always?: Transition[];\n initial?: string;\n states?: Record<string, StateNodeConfig>;\n meta?: {\n label?: string;\n description?: string;\n color?: string;\n aiInstructions?: string;\n };\n};\n\n/**\n * State Node Definition\n */\nexport const StateNodeSchema: z.ZodType<StateNodeConfig> = z.lazy(() => z.object({\n /** Type of state */\n type: z.enum(['atomic', 'compound', 'parallel', 'final', 'history']).default('atomic'),\n \n /** Entry/Exit Actions */\n entry: z.array(ActionRefSchema).optional().describe('Actions to run when entering this state'),\n exit: z.array(ActionRefSchema).optional().describe('Actions to run when leaving this state'),\n \n /** Transitions (Events) */\n on: z.record(z.string(), z.union([\n z.string(), // Shorthand target\n TransitionSchema, \n z.array(TransitionSchema)\n ])).optional().describe('Map of Event Type -> Transition Definition'),\n \n /** Always Transitions (Eventless) */\n always: z.array(TransitionSchema).optional(),\n\n /** Nesting (Hierarchical States) */\n initial: z.string().optional().describe('Initial child state (if compound)'),\n states: z.record(z.string(), StateNodeSchema).optional(),\n \n /** Metadata for UI/AI */\n meta: z.object({\n label: z.string().optional(),\n description: z.string().optional(),\n color: z.string().optional(), // For UI diagrams\n // Instructions for AI Agent when in this state\n aiInstructions: z.string().optional().describe('Specific instructions for AI when in this state'),\n }).optional(),\n}));\n\n/**\n * Top-Level State Machine Definition\n */\nexport const StateMachineSchema = z.object({\n id: SnakeCaseIdentifierSchema.describe('Unique Machine ID'),\n description: z.string().optional(),\n \n /** Context (Memory) Schema */\n contextSchema: z.record(z.string(), z.any()).optional().describe('Zod Schema for the machine context/memory'),\n \n /** Initial State */\n initial: z.string().describe('Initial State ID'),\n \n /** State Definitions */\n states: z.record(z.string(), StateNodeSchema).describe('State Nodes'),\n \n /** Global Listeners */\n on: z.record(z.string(), z.union([z.string(), TransitionSchema, z.array(TransitionSchema)])).optional(),\n});\n\nexport type StateMachineConfig = z.infer<typeof StateMachineSchema>;\n","import { z } from 'zod';\n\n/**\n * Better-Auth Configuration Protocol\n * \n * Defines the configuration required to initialize the Better-Auth kernel.\n * Used in server-side configuration injection.\n */\n\nexport const AuthProviderConfigSchema = z.object({\n id: z.string().describe('Provider ID (github, google)'),\n clientId: z.string().describe('OAuth Client ID'),\n clientSecret: z.string().describe('OAuth Client Secret'),\n scope: z.array(z.string()).optional().describe('Requested permissions'),\n});\n\nexport const AuthPluginConfigSchema = z.object({\n organization: z.boolean().default(false).describe('Enable Organization/Teams support'),\n twoFactor: z.boolean().default(false).describe('Enable 2FA'),\n passkeys: z.boolean().default(false).describe('Enable Passkey support'),\n magicLink: z.boolean().default(false).describe('Enable Magic Link login'),\n});\n\nexport const AuthConfigSchema = z.object({\n secret: z.string().optional().describe('Encryption secret'),\n baseUrl: z.string().optional().describe('Base URL for auth routes'),\n databaseUrl: z.string().optional().describe('Database connection string'),\n providers: z.array(AuthProviderConfigSchema).optional(),\n plugins: AuthPluginConfigSchema.optional(),\n session: z.object({\n expiresIn: z.number().default(60 * 60 * 24 * 7).describe('Session duration in seconds'),\n updateAge: z.number().default(60 * 60 * 24).describe('Session update frequency'),\n }).optional(),\n \n // Custom auth properties\n [z.string().regex(/^[^A-Z]+$/).toString()]: z.any().optional(),\n});\n","import { z } from 'zod';\n\n/**\n * Compliance protocol for GDPR, CCPA, HIPAA, SOX, PCI-DSS\n */\nexport const GDPRConfigSchema = z.object({\n enabled: z.boolean(),\n dataSubjectRights: z.object({\n rightToAccess: z.boolean().default(true),\n rightToRectification: z.boolean().default(true),\n rightToErasure: z.boolean().default(true),\n rightToRestriction: z.boolean().default(true),\n rightToPortability: z.boolean().default(true),\n rightToObjection: z.boolean().default(true),\n }),\n legalBasis: z.enum([\n 'consent',\n 'contract',\n 'legal-obligation',\n 'vital-interests',\n 'public-task',\n 'legitimate-interests',\n ]),\n consentTracking: z.boolean().default(true),\n dataRetentionDays: z.number().optional(),\n dataProcessingAgreement: z.string().optional(),\n});\n\nexport type GDPRConfig = z.infer<typeof GDPRConfigSchema>;\n\nexport const HIPAAConfigSchema = z.object({\n enabled: z.boolean(),\n phi: z.object({\n encryption: z.boolean().default(true),\n accessControl: z.boolean().default(true),\n auditTrail: z.boolean().default(true),\n backupAndRecovery: z.boolean().default(true),\n }),\n businessAssociateAgreement: z.boolean().default(false),\n});\n\nexport type HIPAAConfig = z.infer<typeof HIPAAConfigSchema>;\n\nexport const PCIDSSConfigSchema = z.object({\n enabled: z.boolean(),\n level: z.enum(['1', '2', '3', '4']),\n cardDataFields: z.array(z.string()),\n tokenization: z.boolean().default(true),\n encryptionInTransit: z.boolean().default(true),\n encryptionAtRest: z.boolean().default(true),\n});\n\nexport type PCIDSSConfig = z.infer<typeof PCIDSSConfigSchema>;\n\nexport const AuditLogConfigSchema = z.object({\n enabled: z.boolean().default(true),\n retentionDays: z.number().default(365),\n immutable: z.boolean().default(true),\n signLogs: z.boolean().default(false),\n events: z.array(z.enum([\n 'create',\n 'read',\n 'update',\n 'delete',\n 'export',\n 'permission-change',\n 'login',\n 'logout',\n 'failed-login',\n ])),\n});\n\nexport type AuditLogConfig = z.infer<typeof AuditLogConfigSchema>;\n\nexport const ComplianceConfigSchema = z.object({\n gdpr: GDPRConfigSchema.optional(),\n hipaa: HIPAAConfigSchema.optional(),\n pciDss: PCIDSSConfigSchema.optional(),\n auditLog: AuditLogConfigSchema,\n});\n\nexport type ComplianceConfig = z.infer<typeof ComplianceConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * Cron Schedule Schema\n * Schedule jobs using cron expressions\n */\nexport const CronScheduleSchema = z.object({\n type: z.literal('cron'),\n expression: z.string().describe('Cron expression (e.g., \"0 0 * * *\" for daily at midnight)'),\n timezone: z.string().optional().default('UTC').describe('Timezone for cron execution (e.g., \"America/New_York\")'),\n});\n\n/**\n * Interval Schedule Schema\n * Schedule jobs at fixed intervals\n */\nexport const IntervalScheduleSchema = z.object({\n type: z.literal('interval'),\n intervalMs: z.number().int().positive().describe('Interval in milliseconds'),\n});\n\n/**\n * Once Schedule Schema\n * Schedule a job to run once at a specific time\n */\nexport const OnceScheduleSchema = z.object({\n type: z.literal('once'),\n at: z.string().datetime().describe('ISO 8601 datetime when to execute'),\n});\n\n/**\n * Schedule Schema\n * Discriminated union of all schedule types\n */\nexport const ScheduleSchema = z.discriminatedUnion('type', [\n CronScheduleSchema,\n IntervalScheduleSchema,\n OnceScheduleSchema,\n]);\n\nexport type Schedule = z.infer<typeof ScheduleSchema>;\nexport type CronSchedule = z.infer<typeof CronScheduleSchema>;\nexport type IntervalSchedule = z.infer<typeof IntervalScheduleSchema>;\nexport type OnceSchedule = z.infer<typeof OnceScheduleSchema>;\nexport type JobSchedule = Schedule; // Alias for backwards compatibility\n\n/**\n * Retry Policy Schema\n * Configuration for job retry behavior with exponential backoff\n */\nexport const RetryPolicySchema = z.object({\n maxRetries: z.number().int().min(0).default(3).describe('Maximum number of retry attempts'),\n backoffMs: z.number().int().positive().default(1000).describe('Initial backoff delay in milliseconds'),\n backoffMultiplier: z.number().positive().default(2).describe('Multiplier for exponential backoff'),\n});\n\nexport type RetryPolicy = z.infer<typeof RetryPolicySchema>;\n\n/**\n * Job Schema\n * Defines a scheduled job that executes background logic.\n * \n * @example Metadata Sync Job (Cron)\n * {\n * id: \"job_sync_meta\",\n * name: \"sync_metadata_nightly\",\n * schedule: {\n * type: \"cron\",\n * expression: \"0 0 * * *\", // Midnight\n * timezone: \"UTC\"\n * },\n * handler: \"services/syncStatus.ts:syncAll\", \n * retryPolicy: {\n * maxRetries: 3,\n * backoffMs: 5000\n * }\n * }\n */\nexport const JobSchema = z.object({\n id: z.string().describe('Unique job identifier'),\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Job name (snake_case)'),\n schedule: ScheduleSchema.describe('Job schedule configuration'),\n handler: z.string().describe('Handler path (e.g. \"path/to/file:functionName\") or script ID'),\n retryPolicy: RetryPolicySchema.optional().describe('Retry policy configuration'),\n timeout: z.number().int().positive().optional().describe('Timeout in milliseconds'),\n enabled: z.boolean().default(true).describe('Whether the job is enabled'),\n});\n\nexport type Job = z.infer<typeof JobSchema>;\n\n/**\n * Job Execution Status Enum\n * Status of job execution\n */\nexport const JobExecutionStatus = z.enum([\n 'running',\n 'success',\n 'failed',\n 'timeout',\n]);\n\nexport type JobExecutionStatus = z.infer<typeof JobExecutionStatus>;\n\n/**\n * Job Execution Schema\n * Logs for job execution\n */\nexport const JobExecutionSchema = z.object({\n jobId: z.string().describe('Job identifier'),\n startedAt: z.string().datetime().describe('ISO 8601 datetime when execution started'),\n completedAt: z.string().datetime().optional().describe('ISO 8601 datetime when execution completed'),\n status: JobExecutionStatus.describe('Execution status'),\n error: z.string().optional().describe('Error message if failed'),\n duration: z.number().int().optional().describe('Execution duration in milliseconds'),\n});\n\nexport type JobExecution = z.infer<typeof JobExecutionSchema>;\n","import { z } from 'zod';\n\n/**\n * Worker System Protocol\n * \n * Background task processing system with queues, priorities, and retry logic.\n * Provides a robust foundation for async task execution similar to:\n * - Sidekiq (Ruby)\n * - Celery (Python)\n * - Bull/BullMQ (Node.js)\n * - AWS SQS/Lambda\n * \n * Features:\n * - Task queues with priorities\n * - Task scheduling and retry logic\n * - Batch processing\n * - Dead letter queues\n * - Task monitoring and logging\n * \n * @example Basic task\n * ```typescript\n * const task: Task = {\n * id: 'task-123',\n * type: 'send_email',\n * payload: { to: 'user@example.com', subject: 'Welcome' },\n * queue: 'notifications',\n * priority: 5\n * };\n * ```\n */\n\n// ==========================================\n// Task Priority\n// ==========================================\n\n/**\n * Task Priority Enum\n * Lower numbers = higher priority\n */\nexport const TaskPriority = z.enum([\n 'critical', // 0 - Must execute immediately\n 'high', // 1 - Execute soon\n 'normal', // 2 - Default priority\n 'low', // 3 - Execute when resources available\n 'background', // 4 - Execute during low-traffic periods\n]);\n\nexport type TaskPriority = z.infer<typeof TaskPriority>;\n\n/**\n * Task Priority Mapping\n * Maps priority names to numeric values for sorting\n */\nexport const TASK_PRIORITY_VALUES: Record<TaskPriority, number> = {\n critical: 0,\n high: 1,\n normal: 2,\n low: 3,\n background: 4,\n};\n\n// ==========================================\n// Task Status\n// ==========================================\n\n/**\n * Task Status Enum\n * Lifecycle states of a task\n */\nexport const TaskStatus = z.enum([\n 'pending', // Waiting to be processed\n 'queued', // In queue, ready for worker\n 'processing', // Currently being executed\n 'completed', // Successfully completed\n 'failed', // Failed (may retry)\n 'cancelled', // Manually cancelled\n 'timeout', // Exceeded execution timeout\n 'dead', // Moved to dead letter queue\n]);\n\nexport type TaskStatus = z.infer<typeof TaskStatus>;\n\n// ==========================================\n// Task Schema\n// ==========================================\n\n/**\n * Task Retry Policy Schema\n * Configuration for task retry behavior\n */\nexport const TaskRetryPolicySchema = z.object({\n maxRetries: z.number().int().min(0).default(3).describe('Maximum retry attempts'),\n backoffStrategy: z.enum(['fixed', 'linear', 'exponential']).default('exponential')\n .describe('Backoff strategy between retries'),\n initialDelayMs: z.number().int().positive().default(1000).describe('Initial retry delay in milliseconds'),\n maxDelayMs: z.number().int().positive().default(60000).describe('Maximum retry delay in milliseconds'),\n backoffMultiplier: z.number().positive().default(2).describe('Multiplier for exponential backoff'),\n});\n\nexport type TaskRetryPolicy = z.infer<typeof TaskRetryPolicySchema>;\n\n/**\n * Task Schema\n * Represents a background task to be executed\n * \n * @example\n * {\n * \"id\": \"task-abc123\",\n * \"type\": \"send_email\",\n * \"payload\": { \"to\": \"user@example.com\", \"template\": \"welcome\" },\n * \"queue\": \"notifications\",\n * \"priority\": \"high\",\n * \"retryPolicy\": {\n * \"maxRetries\": 3,\n * \"backoffStrategy\": \"exponential\"\n * }\n * }\n */\nexport const TaskSchema = z.object({\n /**\n * Unique task identifier\n */\n id: z.string().describe('Unique task identifier'),\n \n /**\n * Task type (handler identifier)\n */\n type: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Task type (snake_case)'),\n \n /**\n * Task payload data\n */\n payload: z.any().describe('Task payload data'),\n \n /**\n * Queue name\n */\n queue: z.string().default('default').describe('Queue name'),\n \n /**\n * Task priority\n */\n priority: TaskPriority.default('normal').describe('Task priority level'),\n \n /**\n * Retry policy\n */\n retryPolicy: TaskRetryPolicySchema.optional().describe('Retry policy configuration'),\n \n /**\n * Execution timeout in milliseconds\n */\n timeoutMs: z.number().int().positive().optional().describe('Task timeout in milliseconds'),\n \n /**\n * Scheduled execution time\n */\n scheduledAt: z.string().datetime().optional().describe('ISO 8601 datetime to execute task'),\n \n /**\n * Maximum execution attempts\n */\n attempts: z.number().int().min(0).default(0).describe('Number of execution attempts'),\n \n /**\n * Task status\n */\n status: TaskStatus.default('pending').describe('Current task status'),\n \n /**\n * Task metadata\n */\n metadata: z.object({\n createdAt: z.string().datetime().optional().describe('When task was created'),\n updatedAt: z.string().datetime().optional().describe('Last update time'),\n createdBy: z.string().optional().describe('User who created task'),\n tags: z.array(z.string()).optional().describe('Task tags for filtering'),\n }).optional().describe('Task metadata'),\n});\n\nexport type Task = z.infer<typeof TaskSchema>;\n\n// ==========================================\n// Task Execution Result\n// ==========================================\n\n/**\n * Task Execution Result Schema\n * Result of a task execution attempt\n */\nexport const TaskExecutionResultSchema = z.object({\n /**\n * Task identifier\n */\n taskId: z.string().describe('Task identifier'),\n \n /**\n * Execution status\n */\n status: TaskStatus.describe('Execution status'),\n \n /**\n * Execution result data\n */\n result: z.any().optional().describe('Execution result data'),\n \n /**\n * Error information\n */\n error: z.object({\n message: z.string().describe('Error message'),\n stack: z.string().optional().describe('Error stack trace'),\n code: z.string().optional().describe('Error code'),\n }).optional().describe('Error details if failed'),\n \n /**\n * Execution duration\n */\n durationMs: z.number().int().optional().describe('Execution duration in milliseconds'),\n \n /**\n * Execution timestamps\n */\n startedAt: z.string().datetime().describe('When execution started'),\n completedAt: z.string().datetime().optional().describe('When execution completed'),\n \n /**\n * Retry information\n */\n attempt: z.number().int().min(1).describe('Attempt number (1-indexed)'),\n willRetry: z.boolean().describe('Whether task will be retried'),\n});\n\nexport type TaskExecutionResult = z.infer<typeof TaskExecutionResultSchema>;\n\n// ==========================================\n// Queue Configuration\n// ==========================================\n\n/**\n * Queue Configuration Schema\n * Configuration for a task queue\n * \n * @example\n * {\n * \"name\": \"notifications\",\n * \"concurrency\": 10,\n * \"rateLimit\": {\n * \"max\": 100,\n * \"duration\": 60000\n * }\n * }\n */\nexport const QueueConfigSchema = z.object({\n /**\n * Queue name\n */\n name: z.string().describe('Queue name (snake_case)'),\n \n /**\n * Maximum concurrent workers\n */\n concurrency: z.number().int().min(1).default(5).describe('Max concurrent task executions'),\n \n /**\n * Rate limiting\n */\n rateLimit: z.object({\n max: z.number().int().positive().describe('Maximum tasks per duration'),\n duration: z.number().int().positive().describe('Duration in milliseconds'),\n }).optional().describe('Rate limit configuration'),\n \n /**\n * Default retry policy\n */\n defaultRetryPolicy: TaskRetryPolicySchema.optional().describe('Default retry policy for tasks'),\n \n /**\n * Dead letter queue\n */\n deadLetterQueue: z.string().optional().describe('Dead letter queue name'),\n \n /**\n * Queue priority\n */\n priority: z.number().int().min(0).default(0).describe('Queue priority (lower = higher priority)'),\n \n /**\n * Auto-scaling configuration\n */\n autoScale: z.object({\n enabled: z.boolean().default(false).describe('Enable auto-scaling'),\n minWorkers: z.number().int().min(1).default(1).describe('Minimum workers'),\n maxWorkers: z.number().int().min(1).default(10).describe('Maximum workers'),\n scaleUpThreshold: z.number().int().positive().default(100).describe('Queue size to scale up'),\n scaleDownThreshold: z.number().int().min(0).default(10).describe('Queue size to scale down'),\n }).optional().describe('Auto-scaling configuration'),\n});\n\nexport type QueueConfig = z.infer<typeof QueueConfigSchema>;\n\n// ==========================================\n// Batch Processing\n// ==========================================\n\n/**\n * Batch Task Schema\n * Configuration for batch processing multiple items\n * \n * @example\n * {\n * \"id\": \"batch-import-123\",\n * \"type\": \"import_records\",\n * \"items\": [{ \"name\": \"Item 1\" }, { \"name\": \"Item 2\" }],\n * \"batchSize\": 100,\n * \"queue\": \"batch_processing\"\n * }\n */\nexport const BatchTaskSchema = z.object({\n /**\n * Batch job identifier\n */\n id: z.string().describe('Unique batch job identifier'),\n \n /**\n * Task type for processing each item\n */\n type: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Task type (snake_case)'),\n \n /**\n * Items to process\n */\n items: z.array(z.any()).describe('Array of items to process'),\n \n /**\n * Batch size (items per task)\n */\n batchSize: z.number().int().min(1).default(100).describe('Number of items per batch'),\n \n /**\n * Queue name\n */\n queue: z.string().default('batch').describe('Queue for batch tasks'),\n \n /**\n * Priority\n */\n priority: TaskPriority.default('normal').describe('Batch task priority'),\n \n /**\n * Parallel processing\n */\n parallel: z.boolean().default(true).describe('Process batches in parallel'),\n \n /**\n * Stop on error\n */\n stopOnError: z.boolean().default(false).describe('Stop batch if any item fails'),\n \n /**\n * Progress callback\n * \n * Called after each batch completes to report progress.\n * Invoked asynchronously and should not throw errors.\n * If the callback throws, the error is logged but batch processing continues.\n * \n * @param progress - Object containing processed count, total count, and failed count\n */\n onProgress: z.function()\n .args(z.object({\n processed: z.number(),\n total: z.number(),\n failed: z.number(),\n }))\n .returns(z.void())\n .optional()\n .describe('Progress callback function (called after each batch)'),\n});\n\nexport type BatchTask = z.infer<typeof BatchTaskSchema>;\n\n/**\n * Batch Progress Schema\n * Tracks progress of a batch job\n */\nexport const BatchProgressSchema = z.object({\n /**\n * Batch job identifier\n */\n batchId: z.string().describe('Batch job identifier'),\n \n /**\n * Total items\n */\n total: z.number().int().min(0).describe('Total number of items'),\n \n /**\n * Processed items\n */\n processed: z.number().int().min(0).default(0).describe('Items processed'),\n \n /**\n * Successful items\n */\n succeeded: z.number().int().min(0).default(0).describe('Items succeeded'),\n \n /**\n * Failed items\n */\n failed: z.number().int().min(0).default(0).describe('Items failed'),\n \n /**\n * Progress percentage\n */\n percentage: z.number().min(0).max(100).describe('Progress percentage'),\n \n /**\n * Status\n */\n status: z.enum(['pending', 'running', 'completed', 'failed', 'cancelled']).describe('Batch status'),\n \n /**\n * Timestamps\n */\n startedAt: z.string().datetime().optional().describe('When batch started'),\n completedAt: z.string().datetime().optional().describe('When batch completed'),\n});\n\nexport type BatchProgress = z.infer<typeof BatchProgressSchema>;\n\n// ==========================================\n// Worker Configuration\n// ==========================================\n\n/**\n * Worker Configuration Schema\n * Configuration for a worker instance\n */\nexport const WorkerConfigSchema = z.object({\n /**\n * Worker name\n */\n name: z.string().describe('Worker name'),\n \n /**\n * Queues to process\n */\n queues: z.array(z.string()).min(1).describe('Queue names to process'),\n \n /**\n * Queue configurations\n */\n queueConfigs: z.array(QueueConfigSchema).optional().describe('Queue configurations'),\n \n /**\n * Polling interval\n */\n pollIntervalMs: z.number().int().positive().default(1000).describe('Queue polling interval in milliseconds'),\n \n /**\n * Visibility timeout\n */\n visibilityTimeoutMs: z.number().int().positive().default(30000)\n .describe('How long a task is invisible after being claimed'),\n \n /**\n * Task timeout\n */\n defaultTimeoutMs: z.number().int().positive().default(300000).describe('Default task timeout in milliseconds'),\n \n /**\n * Graceful shutdown timeout\n */\n shutdownTimeoutMs: z.number().int().positive().default(30000)\n .describe('Graceful shutdown timeout in milliseconds'),\n \n /**\n * Task handlers\n */\n handlers: z.record(z.string(), z.function()).optional().describe('Task type handlers'),\n});\n\nexport type WorkerConfig = z.infer<typeof WorkerConfigSchema>;\n\n// ==========================================\n// Worker Stats\n// ==========================================\n\n/**\n * Worker Stats Schema\n * Runtime statistics for a worker\n */\nexport const WorkerStatsSchema = z.object({\n /**\n * Worker name\n */\n workerName: z.string().describe('Worker name'),\n \n /**\n * Total tasks processed\n */\n totalProcessed: z.number().int().min(0).describe('Total tasks processed'),\n \n /**\n * Successful tasks\n */\n succeeded: z.number().int().min(0).describe('Successful tasks'),\n \n /**\n * Failed tasks\n */\n failed: z.number().int().min(0).describe('Failed tasks'),\n \n /**\n * Active tasks\n */\n active: z.number().int().min(0).describe('Currently active tasks'),\n \n /**\n * Average execution time\n */\n avgExecutionMs: z.number().min(0).optional().describe('Average execution time in milliseconds'),\n \n /**\n * Uptime\n */\n uptimeMs: z.number().int().min(0).describe('Worker uptime in milliseconds'),\n \n /**\n * Queue stats\n */\n queues: z.record(z.string(), z.object({\n pending: z.number().int().min(0).describe('Pending tasks'),\n active: z.number().int().min(0).describe('Active tasks'),\n completed: z.number().int().min(0).describe('Completed tasks'),\n failed: z.number().int().min(0).describe('Failed tasks'),\n })).optional().describe('Per-queue statistics'),\n});\n\nexport type WorkerStats = z.infer<typeof WorkerStatsSchema>;\n\n// ==========================================\n// Helper Functions\n// ==========================================\n\n/**\n * Helper to create a task\n */\nexport const Task = Object.assign(TaskSchema, {\n create: <T extends z.input<typeof TaskSchema>>(task: T) => task,\n});\n\n/**\n * Helper to create a queue config\n */\nexport const QueueConfig = Object.assign(QueueConfigSchema, {\n create: <T extends z.input<typeof QueueConfigSchema>>(config: T) => config,\n});\n\n/**\n * Helper to create a worker config\n */\nexport const WorkerConfig = Object.assign(WorkerConfigSchema, {\n create: <T extends z.input<typeof WorkerConfigSchema>>(config: T) => config,\n});\n\n/**\n * Helper to create a batch task\n */\nexport const BatchTask = Object.assign(BatchTaskSchema, {\n create: <T extends z.input<typeof BatchTaskSchema>>(batch: T) => batch,\n});\n","import { z } from 'zod';\n\n/**\n * Email Template Schema\n * \n * Defines the structure and content of email notifications.\n * Supports variables for personalization and file attachments.\n * \n * @example\n * ```json\n * {\n * \"id\": \"welcome-email\",\n * \"subject\": \"Welcome to {{company_name}}\",\n * \"body\": \"<h1>Welcome {{user_name}}!</h1>\",\n * \"bodyType\": \"html\",\n * \"variables\": [\"company_name\", \"user_name\"],\n * \"attachments\": [\n * {\n * \"name\": \"guide.pdf\",\n * \"url\": \"https://example.com/guide.pdf\"\n * }\n * ]\n * }\n * ```\n */\nexport const EmailTemplateSchema = z.object({\n /**\n * Unique identifier for the email template\n */\n id: z.string().describe('Template identifier'),\n\n /**\n * Email subject line (supports variable interpolation)\n */\n subject: z.string().describe('Email subject'),\n\n /**\n * Email body content\n */\n body: z.string().describe('Email body content'),\n\n /**\n * Content type of the email body\n * @default 'html'\n */\n bodyType: z.enum(['text', 'html', 'markdown']).optional().default('html').describe('Body content type'),\n\n /**\n * List of template variables for dynamic content\n */\n variables: z.array(z.string()).optional().describe('Template variables'),\n\n /**\n * File attachments to include with the email\n */\n attachments: z.array(z.object({\n name: z.string().describe('Attachment filename'),\n url: z.string().url().describe('Attachment URL'),\n })).optional().describe('Email attachments'),\n});\n\n/**\n * SMS Template Schema\n * \n * Defines the structure of SMS text message notifications.\n * Includes character limits and variable support.\n * \n * @example\n * ```json\n * {\n * \"id\": \"verification-sms\",\n * \"message\": \"Your code is {{code}}\",\n * \"maxLength\": 160,\n * \"variables\": [\"code\"]\n * }\n * ```\n */\nexport const SMSTemplateSchema = z.object({\n /**\n * Unique identifier for the SMS template\n */\n id: z.string().describe('Template identifier'),\n\n /**\n * SMS message content (supports variable interpolation)\n */\n message: z.string().describe('SMS message content'),\n\n /**\n * Maximum character length for the SMS\n * @default 160\n */\n maxLength: z.number().optional().default(160).describe('Maximum message length'),\n\n /**\n * List of template variables for dynamic content\n */\n variables: z.array(z.string()).optional().describe('Template variables'),\n});\n\n/**\n * Push Notification Schema\n * \n * Defines mobile and web push notification structure.\n * Supports rich notifications with actions and badges.\n * \n * @example\n * ```json\n * {\n * \"title\": \"New Message\",\n * \"body\": \"You have a new message from John\",\n * \"icon\": \"https://example.com/icon.png\",\n * \"badge\": 5,\n * \"data\": {\"messageId\": \"msg_123\"},\n * \"actions\": [\n * {\"action\": \"view\", \"title\": \"View\"},\n * {\"action\": \"dismiss\", \"title\": \"Dismiss\"}\n * ]\n * }\n * ```\n */\nexport const PushNotificationSchema = z.object({\n /**\n * Notification title\n */\n title: z.string().describe('Notification title'),\n\n /**\n * Notification body text\n */\n body: z.string().describe('Notification body'),\n\n /**\n * Icon URL to display with notification\n */\n icon: z.string().url().optional().describe('Notification icon URL'),\n\n /**\n * Badge count to display on app icon\n */\n badge: z.number().optional().describe('Badge count'),\n\n /**\n * Custom data payload\n */\n data: z.record(z.string(), z.any()).optional().describe('Custom data'),\n\n /**\n * Action buttons for the notification\n */\n actions: z.array(z.object({\n action: z.string().describe('Action identifier'),\n title: z.string().describe('Action button title'),\n })).optional().describe('Notification actions'),\n});\n\n/**\n * In-App Notification Schema\n * \n * Defines in-application notification banners and toasts.\n * Includes severity levels and auto-dismiss settings.\n * \n * @example\n * ```json\n * {\n * \"title\": \"System Update\",\n * \"message\": \"New features are now available\",\n * \"type\": \"info\",\n * \"actionUrl\": \"/updates\",\n * \"dismissible\": true,\n * \"expiresAt\": 1704067200000\n * }\n * ```\n */\nexport const InAppNotificationSchema = z.object({\n /**\n * Notification title\n */\n title: z.string().describe('Notification title'),\n\n /**\n * Notification message content\n */\n message: z.string().describe('Notification message'),\n\n /**\n * Notification severity type\n */\n type: z.enum(['info', 'success', 'warning', 'error']).describe('Notification type'),\n\n /**\n * Optional URL to navigate to when clicked\n */\n actionUrl: z.string().optional().describe('Action URL'),\n\n /**\n * Whether the notification can be dismissed by the user\n * @default true\n */\n dismissible: z.boolean().optional().default(true).describe('User dismissible'),\n\n /**\n * Timestamp when notification expires (Unix milliseconds)\n */\n expiresAt: z.number().optional().describe('Expiration timestamp'),\n});\n\n/**\n * Notification Channel Enum\n * \n * Supported notification delivery channels.\n */\nexport const NotificationChannelSchema = z.enum([\n 'email',\n 'sms',\n 'push',\n 'in-app',\n 'slack',\n 'teams',\n 'webhook',\n]);\n\n/**\n * Notification Configuration Schema\n * \n * Unified notification management protocol supporting multiple channels.\n * Includes scheduling, retry policies, and delivery tracking.\n * \n * @example\n * ```json\n * {\n * \"id\": \"welcome-notification\",\n * \"name\": \"Welcome Email\",\n * \"channel\": \"email\",\n * \"template\": {\n * \"id\": \"tpl-001\",\n * \"subject\": \"Welcome!\",\n * \"body\": \"<h1>Welcome</h1>\",\n * \"bodyType\": \"html\"\n * },\n * \"recipients\": {\n * \"to\": [\"user@example.com\"],\n * \"cc\": [\"admin@example.com\"]\n * },\n * \"schedule\": {\n * \"type\": \"immediate\"\n * },\n * \"retryPolicy\": {\n * \"enabled\": true,\n * \"maxRetries\": 3,\n * \"backoffStrategy\": \"exponential\"\n * },\n * \"tracking\": {\n * \"trackOpens\": true,\n * \"trackClicks\": true,\n * \"trackDelivery\": true\n * }\n * }\n * ```\n */\nexport const NotificationConfigSchema = z.object({\n /**\n * Unique identifier for this notification configuration\n */\n id: z.string().describe('Notification ID'),\n\n /**\n * Human-readable name for this notification\n */\n name: z.string().describe('Notification name'),\n\n /**\n * Delivery channel for the notification\n */\n channel: NotificationChannelSchema.describe('Notification channel'),\n\n /**\n * Notification template based on channel type\n */\n template: z.union([\n EmailTemplateSchema,\n SMSTemplateSchema,\n PushNotificationSchema,\n InAppNotificationSchema,\n ]).describe('Notification template'),\n\n /**\n * Recipient configuration\n */\n recipients: z.object({\n /**\n * Primary recipients\n */\n to: z.array(z.string()).describe('Primary recipients'),\n\n /**\n * CC recipients (email only)\n */\n cc: z.array(z.string()).optional().describe('CC recipients'),\n\n /**\n * BCC recipients (email only)\n */\n bcc: z.array(z.string()).optional().describe('BCC recipients'),\n }).describe('Recipients'),\n\n /**\n * Scheduling configuration\n */\n schedule: z.object({\n /**\n * Scheduling type\n */\n type: z.enum(['immediate', 'delayed', 'scheduled']).describe('Schedule type'),\n\n /**\n * Delay in milliseconds (for delayed type)\n */\n delay: z.number().optional().describe('Delay in milliseconds'),\n\n /**\n * Scheduled send time (Unix timestamp in milliseconds)\n */\n scheduledAt: z.number().optional().describe('Scheduled timestamp'),\n }).optional().describe('Scheduling'),\n\n /**\n * Retry policy for failed deliveries\n */\n retryPolicy: z.object({\n /**\n * Enable automatic retries\n * @default true\n */\n enabled: z.boolean().optional().default(true).describe('Enable retries'),\n\n /**\n * Maximum number of retry attempts\n * @default 3\n */\n maxRetries: z.number().optional().default(3).describe('Max retry attempts'),\n\n /**\n * Backoff strategy for retries\n */\n backoffStrategy: z.enum(['exponential', 'linear', 'fixed']).describe('Backoff strategy'),\n }).optional().describe('Retry policy'),\n\n /**\n * Delivery tracking configuration\n */\n tracking: z.object({\n /**\n * Track when emails are opened\n * @default false\n */\n trackOpens: z.boolean().optional().default(false).describe('Track opens'),\n\n /**\n * Track when links are clicked\n * @default false\n */\n trackClicks: z.boolean().optional().default(false).describe('Track clicks'),\n\n /**\n * Track delivery status\n * @default true\n */\n trackDelivery: z.boolean().optional().default(true).describe('Track delivery'),\n }).optional().describe('Tracking configuration'),\n});\n\n// Type exports\nexport type NotificationConfig = z.infer<typeof NotificationConfigSchema>;\nexport type NotificationChannel = z.infer<typeof NotificationChannelSchema>;\nexport type EmailTemplate = z.infer<typeof EmailTemplateSchema>;\nexport type SMSTemplate = z.infer<typeof SMSTemplateSchema>;\nexport type PushNotification = z.infer<typeof PushNotificationSchema>;\nexport type InAppNotification = z.infer<typeof InAppNotificationSchema>;\n","import { z } from 'zod';\n\n/**\n * Translation Schema\n * Supports i18n for labels, messages, and options.\n * Example structure:\n * ```json\n * {\n * \"en\": { \"objects\": { \"account\": { \"label\": \"Account\" } } },\n * \"zh-CN\": { \"objects\": { \"account\": { \"label\": \"客户\" } } }\n * }\n * ```\n */\nexport const TranslationDataSchema = z.object({\n /** Object translations */\n objects: z.record(z.string(), z.object({\n label: z.string(),\n pluralLabel: z.string().optional(),\n fields: z.record(z.string(), z.object({\n label: z.string().optional(),\n help: z.string().optional(),\n options: z.record(z.string(), z.string()).optional(), // Option value -> Label map\n })).optional(),\n })).optional(),\n \n /** App/Menu translations */\n apps: z.record(z.string(), z.object({\n label: z.string(),\n description: z.string().optional(),\n })).optional(),\n\n /** UI Messages */\n messages: z.record(z.string(), z.string()).optional(),\n});\n\nexport const LocaleSchema = z.string().describe('BCP-47 Language Tag (e.g. en-US, zh-CN)');\n\nexport const TranslationBundleSchema = z.record(LocaleSchema, TranslationDataSchema);\n\nexport type TranslationBundle = z.infer<typeof TranslationBundleSchema>;\n","import { z } from 'zod';\n\n/**\n * Real-Time Collaboration Protocol\n * \n * Defines schemas for real-time collaborative editing in ObjectStack.\n * Supports Operational Transformation (OT), CRDT (Conflict-free Replicated Data Types),\n * cursor sharing, and awareness state for collaborative applications.\n * \n * Industry alignment: Google Docs, Figma, VSCode Live Share, Yjs\n */\n\n// ==========================================\n// Operational Transformation (OT)\n// ==========================================\n\n/**\n * OT Operation Type Enum\n * Types of operations in Operational Transformation\n */\nexport const OTOperationType = z.enum([\n 'insert', // Insert characters at position\n 'delete', // Delete characters at position\n 'retain', // Keep characters (used for composing operations)\n]);\n\nexport type OTOperationType = z.infer<typeof OTOperationType>;\n\n/**\n * OT Operation Component\n * Single component of an OT operation\n */\nexport const OTComponentSchema = z.discriminatedUnion('type', [\n z.object({\n type: z.literal('insert'),\n text: z.string().describe('Text to insert'),\n attributes: z.record(z.string(), z.any()).optional().describe('Text formatting attributes (e.g., bold, italic)'),\n }),\n z.object({\n type: z.literal('delete'),\n count: z.number().int().positive().describe('Number of characters to delete'),\n }),\n z.object({\n type: z.literal('retain'),\n count: z.number().int().positive().describe('Number of characters to retain'),\n attributes: z.record(z.string(), z.any()).optional().describe('Attribute changes to apply'),\n }),\n]);\n\nexport type OTComponent = z.infer<typeof OTComponentSchema>;\n\n/**\n * OT Operation Schema\n * Represents a complete OT operation\n * Based on the OT algorithm used by Google Docs and other collaborative editors\n */\nexport const OTOperationSchema = z.object({\n operationId: z.string().uuid().describe('Unique operation identifier'),\n documentId: z.string().describe('Document identifier'),\n userId: z.string().describe('User who created the operation'),\n sessionId: z.string().uuid().describe('Session identifier'),\n components: z.array(OTComponentSchema).describe('Operation components'),\n baseVersion: z.number().int().nonnegative().describe('Document version this operation is based on'),\n timestamp: z.string().datetime().describe('ISO 8601 datetime when operation was created'),\n metadata: z.record(z.string(), z.any()).optional().describe('Additional operation metadata'),\n});\n\nexport type OTOperation = z.infer<typeof OTOperationSchema>;\n\n/**\n * OT Transform Result\n * Result of transforming one operation against another\n */\nexport const OTTransformResultSchema = z.object({\n operation: OTOperationSchema.describe('Transformed operation'),\n transformed: z.boolean().describe('Whether transformation was applied'),\n conflicts: z.array(z.string()).optional().describe('Conflict descriptions if any'),\n});\n\nexport type OTTransformResult = z.infer<typeof OTTransformResultSchema>;\n\n// ==========================================\n// CRDT (Conflict-free Replicated Data Types)\n// ==========================================\n\n/**\n * CRDT Type Enum\n * Types of CRDTs supported\n */\nexport const CRDTType = z.enum([\n 'lww-register', // Last-Write-Wins Register\n 'g-counter', // Grow-only Counter\n 'pn-counter', // Positive-Negative Counter\n 'g-set', // Grow-only Set\n 'or-set', // Observed-Remove Set\n 'lww-map', // Last-Write-Wins Map\n 'text', // CRDT-based Text (e.g., Yjs, Automerge)\n 'tree', // CRDT-based Tree structure\n 'json', // CRDT-based JSON (e.g., Automerge)\n]);\n\nexport type CRDTType = z.infer<typeof CRDTType>;\n\n/**\n * Vector Clock Schema\n * Tracks causality in distributed systems\n */\nexport const VectorClockSchema = z.object({\n clock: z.record(z.string(), z.number().int().nonnegative()).describe('Map of replica ID to logical timestamp'),\n});\n\nexport type VectorClock = z.infer<typeof VectorClockSchema>;\n\n/**\n * LWW-Register Schema\n * Last-Write-Wins Register CRDT\n */\nexport const LWWRegisterSchema = z.object({\n type: z.literal('lww-register'),\n value: z.any().describe('Current register value'),\n timestamp: z.string().datetime().describe('ISO 8601 datetime of last write'),\n replicaId: z.string().describe('ID of replica that performed last write'),\n vectorClock: VectorClockSchema.optional().describe('Optional vector clock for causality tracking'),\n});\n\nexport type LWWRegister = z.infer<typeof LWWRegisterSchema>;\n\n/**\n * Counter Operation Schema\n * Operations for Counter CRDTs\n */\nexport const CounterOperationSchema = z.object({\n replicaId: z.string().describe('Replica identifier'),\n delta: z.number().int().describe('Change amount (positive for increment, negative for decrement)'),\n timestamp: z.string().datetime().describe('ISO 8601 datetime of operation'),\n});\n\nexport type CounterOperation = z.infer<typeof CounterOperationSchema>;\n\n/**\n * G-Counter Schema\n * Grow-only Counter CRDT\n */\nexport const GCounterSchema = z.object({\n type: z.literal('g-counter'),\n counts: z.record(z.string(), z.number().int().nonnegative()).describe('Map of replica ID to count'),\n});\n\nexport type GCounter = z.infer<typeof GCounterSchema>;\n\n/**\n * PN-Counter Schema\n * Positive-Negative Counter CRDT (supports increment and decrement)\n */\nexport const PNCounterSchema = z.object({\n type: z.literal('pn-counter'),\n positive: z.record(z.string(), z.number().int().nonnegative()).describe('Positive increments per replica'),\n negative: z.record(z.string(), z.number().int().nonnegative()).describe('Negative increments per replica'),\n});\n\nexport type PNCounter = z.infer<typeof PNCounterSchema>;\n\n/**\n * OR-Set Element Schema\n * Element in an Observed-Remove Set\n */\nexport const ORSetElementSchema = z.object({\n value: z.any().describe('Element value'),\n timestamp: z.string().datetime().describe('Addition timestamp'),\n replicaId: z.string().describe('Replica that added the element'),\n uid: z.string().uuid().describe('Unique identifier for this addition'),\n removed: z.boolean().optional().default(false).describe('Whether element has been removed'),\n});\n\nexport type ORSetElement = z.infer<typeof ORSetElementSchema>;\n\n/**\n * OR-Set Schema\n * Observed-Remove Set CRDT\n */\nexport const ORSetSchema = z.object({\n type: z.literal('or-set'),\n elements: z.array(ORSetElementSchema).describe('Set elements with metadata'),\n});\n\nexport type ORSet = z.infer<typeof ORSetSchema>;\n\n/**\n * Text CRDT Operation Schema\n * Operations for text-based CRDTs (e.g., Yjs, Automerge)\n */\nexport const TextCRDTOperationSchema = z.object({\n operationId: z.string().uuid().describe('Unique operation identifier'),\n replicaId: z.string().describe('Replica identifier'),\n position: z.number().int().nonnegative().describe('Position in document'),\n insert: z.string().optional().describe('Text to insert'),\n delete: z.number().int().positive().optional().describe('Number of characters to delete'),\n timestamp: z.string().datetime().describe('ISO 8601 datetime of operation'),\n lamportTimestamp: z.number().int().nonnegative().describe('Lamport timestamp for ordering'),\n});\n\nexport type TextCRDTOperation = z.infer<typeof TextCRDTOperationSchema>;\n\n/**\n * Text CRDT State Schema\n * State of a text-based CRDT document\n */\nexport const TextCRDTStateSchema = z.object({\n type: z.literal('text'),\n documentId: z.string().describe('Document identifier'),\n content: z.string().describe('Current text content'),\n operations: z.array(TextCRDTOperationSchema).describe('History of operations'),\n lamportClock: z.number().int().nonnegative().describe('Current Lamport clock value'),\n vectorClock: VectorClockSchema.describe('Vector clock for causality'),\n});\n\nexport type TextCRDTState = z.infer<typeof TextCRDTStateSchema>;\n\n/**\n * CRDT State Union\n * Discriminated union of all CRDT types\n */\nexport const CRDTStateSchema = z.discriminatedUnion('type', [\n LWWRegisterSchema,\n GCounterSchema,\n PNCounterSchema,\n ORSetSchema,\n TextCRDTStateSchema,\n]);\n\nexport type CRDTState = z.infer<typeof CRDTStateSchema>;\n\n/**\n * CRDT Merge Schema\n * Result of merging two CRDT states\n */\nexport const CRDTMergeResultSchema = z.object({\n state: CRDTStateSchema.describe('Merged CRDT state'),\n conflicts: z.array(z.object({\n type: z.string().describe('Conflict type'),\n description: z.string().describe('Conflict description'),\n resolved: z.boolean().describe('Whether conflict was automatically resolved'),\n })).optional().describe('Conflicts encountered during merge'),\n});\n\nexport type CRDTMergeResult = z.infer<typeof CRDTMergeResultSchema>;\n\n// ==========================================\n// Cursor Sharing\n// ==========================================\n\n/**\n * Cursor Color Preset Enum\n * Standard color presets for cursor visualization\n */\nexport const CursorColorPreset = z.enum([\n 'blue',\n 'green',\n 'red',\n 'yellow',\n 'purple',\n 'orange',\n 'pink',\n 'teal',\n 'indigo',\n 'cyan',\n]);\n\nexport type CursorColorPreset = z.infer<typeof CursorColorPreset>;\n\n/**\n * Cursor Style Schema\n * Visual styling for collaborative cursors\n */\nexport const CursorStyleSchema = z.object({\n color: z.union([CursorColorPreset, z.string()]).describe('Cursor color (preset or custom hex)'),\n opacity: z.number().min(0).max(1).optional().default(1).describe('Cursor opacity (0-1)'),\n label: z.string().optional().describe('Label to display with cursor (usually username)'),\n showLabel: z.boolean().optional().default(true).describe('Whether to show label'),\n pulseOnUpdate: z.boolean().optional().default(true).describe('Whether to pulse when cursor moves'),\n});\n\nexport type CursorStyle = z.infer<typeof CursorStyleSchema>;\n\n/**\n * Cursor Selection Schema\n * Represents a text selection in collaborative editing\n */\nexport const CursorSelectionSchema = z.object({\n anchor: z.object({\n line: z.number().int().nonnegative().describe('Anchor line number'),\n column: z.number().int().nonnegative().describe('Anchor column number'),\n }).describe('Selection anchor (start point)'),\n focus: z.object({\n line: z.number().int().nonnegative().describe('Focus line number'),\n column: z.number().int().nonnegative().describe('Focus column number'),\n }).describe('Selection focus (end point)'),\n direction: z.enum(['forward', 'backward']).optional().describe('Selection direction'),\n});\n\nexport type CursorSelection = z.infer<typeof CursorSelectionSchema>;\n\n/**\n * Collaborative Cursor Schema\n * Complete cursor state for a collaborative user\n */\nexport const CollaborativeCursorSchema = z.object({\n userId: z.string().describe('User identifier'),\n sessionId: z.string().uuid().describe('Session identifier'),\n documentId: z.string().describe('Document identifier'),\n userName: z.string().describe('Display name of user'),\n position: z.object({\n line: z.number().int().nonnegative().describe('Cursor line number (0-indexed)'),\n column: z.number().int().nonnegative().describe('Cursor column number (0-indexed)'),\n }).describe('Current cursor position'),\n selection: CursorSelectionSchema.optional().describe('Current text selection'),\n style: CursorStyleSchema.describe('Visual style for this cursor'),\n isTyping: z.boolean().optional().default(false).describe('Whether user is currently typing'),\n lastUpdate: z.string().datetime().describe('ISO 8601 datetime of last cursor update'),\n metadata: z.record(z.string(), z.any()).optional().describe('Additional cursor metadata'),\n});\n\nexport type CollaborativeCursor = z.infer<typeof CollaborativeCursorSchema>;\n\n/**\n * Cursor Update Schema\n * Update to a collaborative cursor\n */\nexport const CursorUpdateSchema = z.object({\n position: z.object({\n line: z.number().int().nonnegative(),\n column: z.number().int().nonnegative(),\n }).optional().describe('Updated cursor position'),\n selection: CursorSelectionSchema.optional().describe('Updated selection'),\n isTyping: z.boolean().optional().describe('Updated typing state'),\n metadata: z.record(z.string(), z.any()).optional().describe('Updated metadata'),\n});\n\nexport type CursorUpdate = z.infer<typeof CursorUpdateSchema>;\n\n// ==========================================\n// Awareness State\n// ==========================================\n\n/**\n * User Activity Status Enum\n * User activity status for awareness\n */\nexport const UserActivityStatus = z.enum([\n 'active', // User is actively editing\n 'idle', // User is idle but connected\n 'viewing', // User is viewing but not editing\n 'disconnected', // User is disconnected\n]);\n\nexport type UserActivityStatus = z.infer<typeof UserActivityStatus>;\n\n/**\n * Awareness User State Schema\n * Tracks what a user is doing in the collaborative session\n */\nexport const AwarenessUserStateSchema = z.object({\n userId: z.string().describe('User identifier'),\n sessionId: z.string().uuid().describe('Session identifier'),\n userName: z.string().describe('Display name'),\n userAvatar: z.string().optional().describe('User avatar URL'),\n status: UserActivityStatus.describe('Current activity status'),\n currentDocument: z.string().optional().describe('Document ID user is currently editing'),\n currentView: z.string().optional().describe('Current view/page user is on'),\n lastActivity: z.string().datetime().describe('ISO 8601 datetime of last activity'),\n joinedAt: z.string().datetime().describe('ISO 8601 datetime when user joined session'),\n permissions: z.array(z.string()).optional().describe('User permissions in this session'),\n metadata: z.record(z.string(), z.any()).optional().describe('Additional user state metadata'),\n});\n\nexport type AwarenessUserState = z.infer<typeof AwarenessUserStateSchema>;\n\n/**\n * Awareness Session Schema\n * Represents the complete awareness state for a collaboration session\n */\nexport const AwarenessSessionSchema = z.object({\n sessionId: z.string().uuid().describe('Session identifier'),\n documentId: z.string().optional().describe('Document ID this session is for'),\n users: z.array(AwarenessUserStateSchema).describe('Active users in session'),\n startedAt: z.string().datetime().describe('ISO 8601 datetime when session started'),\n lastUpdate: z.string().datetime().describe('ISO 8601 datetime of last update'),\n metadata: z.record(z.string(), z.any()).optional().describe('Session metadata'),\n});\n\nexport type AwarenessSession = z.infer<typeof AwarenessSessionSchema>;\n\n/**\n * Awareness Update Schema\n * Update to awareness state\n */\nexport const AwarenessUpdateSchema = z.object({\n status: UserActivityStatus.optional().describe('Updated status'),\n currentDocument: z.string().optional().describe('Updated current document'),\n currentView: z.string().optional().describe('Updated current view'),\n metadata: z.record(z.string(), z.any()).optional().describe('Updated metadata'),\n});\n\nexport type AwarenessUpdate = z.infer<typeof AwarenessUpdateSchema>;\n\n/**\n * Awareness Event Schema\n * Events that occur in awareness tracking\n */\nexport const AwarenessEventSchema = z.object({\n eventId: z.string().uuid().describe('Event identifier'),\n sessionId: z.string().uuid().describe('Session identifier'),\n eventType: z.enum([\n 'user.joined',\n 'user.left',\n 'user.updated',\n 'session.created',\n 'session.ended',\n ]).describe('Type of awareness event'),\n userId: z.string().optional().describe('User involved in event'),\n timestamp: z.string().datetime().describe('ISO 8601 datetime of event'),\n payload: z.any().describe('Event payload'),\n});\n\nexport type AwarenessEvent = z.infer<typeof AwarenessEventSchema>;\n\n// ==========================================\n// Collaboration Session Management\n// ==========================================\n\n/**\n * Collaboration Mode Enum\n * Types of collaboration modes\n */\nexport const CollaborationMode = z.enum([\n 'ot', // Operational Transformation\n 'crdt', // CRDT-based\n 'lock', // Pessimistic locking (turn-based)\n 'hybrid', // Hybrid approach\n]);\n\nexport type CollaborationMode = z.infer<typeof CollaborationMode>;\n\n/**\n * Collaboration Session Config\n * Configuration for a collaboration session\n */\nexport const CollaborationSessionConfigSchema = z.object({\n mode: CollaborationMode.describe('Collaboration mode to use'),\n enableCursorSharing: z.boolean().optional().default(true).describe('Enable cursor sharing'),\n enablePresence: z.boolean().optional().default(true).describe('Enable presence tracking'),\n enableAwareness: z.boolean().optional().default(true).describe('Enable awareness state'),\n maxUsers: z.number().int().positive().optional().describe('Maximum concurrent users'),\n idleTimeout: z.number().int().positive().optional().default(300000).describe('Idle timeout in milliseconds'),\n conflictResolution: z.enum(['ot', 'crdt', 'manual']).optional().default('ot').describe('Conflict resolution strategy'),\n persistence: z.boolean().optional().default(true).describe('Enable operation persistence'),\n snapshot: z.object({\n enabled: z.boolean().describe('Enable periodic snapshots'),\n interval: z.number().int().positive().describe('Snapshot interval in milliseconds'),\n }).optional().describe('Snapshot configuration'),\n});\n\nexport type CollaborationSessionConfig = z.infer<typeof CollaborationSessionConfigSchema>;\n\n/**\n * Collaboration Session Schema\n * Complete collaboration session state\n */\nexport const CollaborationSessionSchema = z.object({\n sessionId: z.string().uuid().describe('Session identifier'),\n documentId: z.string().describe('Document identifier'),\n config: CollaborationSessionConfigSchema.describe('Session configuration'),\n users: z.array(AwarenessUserStateSchema).describe('Active users'),\n cursors: z.array(CollaborativeCursorSchema).describe('Active cursors'),\n version: z.number().int().nonnegative().describe('Current document version'),\n operations: z.array(z.union([OTOperationSchema, TextCRDTOperationSchema])).optional().describe('Recent operations'),\n createdAt: z.string().datetime().describe('ISO 8601 datetime when session was created'),\n lastActivity: z.string().datetime().describe('ISO 8601 datetime of last activity'),\n status: z.enum(['active', 'idle', 'ended']).describe('Session status'),\n});\n\nexport type CollaborationSession = z.infer<typeof CollaborationSessionSchema>;\n","import { z } from 'zod';\n\n/**\n * Metadata Scope Enum\n * Defines the lifecycle and mutability of a metadata item.\n */\nexport const MetadataScopeSchema = z.enum([\n 'system', // Defined in Code (Files). Read-only at runtime. Upgraded via deployment.\n 'platform', // Defined in DB (Global). admin-configured. Overrides system.\n 'user', // Defined in DB (Personal). User-configured. Overrides platform/system.\n]);\n\n/**\n * Metadata Lifecycle State\n */\nexport const MetadataStateSchema = z.enum([\n 'draft', // Work in progress, not active\n 'active', // Live and running\n 'archived', // Soft deleted\n 'deprecated' // Running but flagged for removal\n]);\n\n/**\n * Unified Metadata Persistence Protocol\n * \n * Defines the standardized envelope for storing ANY metadata item (Object, View, Flow)\n * in the database (e.g. `_framework_metadata` or generic `metadata` table).\n * \n * This treats \"Metadata as Data\".\n */\nexport const MetadataRecordSchema = z.object({\n /** Primary Key (UUID) */\n _id: z.string(),\n \n /** \n * Machine Name \n * The unique identifier used in code references (e.g. \"account_list_view\").\n */\n name: z.string(),\n \n /**\n * Metadata Type\n * e.g. \"object\", \"view\", \"permission_set\", \"flow\"\n */\n type: z.string(),\n \n /**\n * Namespace / Module\n * Groups metadata into packages (e.g. \"crm\", \"finance\", \"core\").\n */\n namespace: z.string().default('default'),\n \n /**\n * Ownership differentiation\n */\n scope: MetadataScopeSchema.default('platform'),\n \n /**\n * The Payload\n * Stores the actual configuration JSON.\n * This field holds the value of `ViewSchema`, `ObjectSchema`, etc.\n */\n metadata: z.record(z.string(), z.any()),\n\n /**\n * Extension / Merge Strategy\n * If this record overrides a system record, how should it be applied?\n */\n extends: z.string().optional().describe('Name of the parent metadata to extend/override'),\n strategy: z.enum(['merge', 'replace']).default('merge'),\n\n /** Owner (for user-scope items) */\n owner: z.string().optional(),\n \n /** State */\n state: MetadataStateSchema.default('active'),\n \n /** Audit */\n created_by: z.string().optional(),\n created_at: z.date().optional(),\n updated_by: z.string().optional(),\n updated_at: z.date().optional(),\n});\n\nexport type MetadataRecord = z.infer<typeof MetadataRecordSchema>;\nexport type MetadataScope = z.infer<typeof MetadataScopeSchema>;\n\n/**\n * Metadata Format\n * Supported file formats for metadata serialization.\n */\nexport const MetadataFormatSchema = z.enum([\n 'json', 'yaml', 'yml', 'ts', 'js',\n 'typescript', 'javascript' // Aliases\n]);\n\n/**\n * Metadata Stats\n * Statistics about a metadata item.\n */\nexport const MetadataStatsSchema = z.object({\n path: z.string().optional(),\n size: z.number().optional(),\n mtime: z.date().optional(),\n hash: z.string().optional(),\n etag: z.string().optional(), // Required by local cache\n modifiedAt: z.date().optional(), // Alias for mtime\n format: MetadataFormatSchema.optional(), // Required for serialization\n});\n\n/**\n * Metadata Loader Contract\n * Describes the capabilities and identity of a metadata loader.\n */\nexport const MetadataLoaderContractSchema = z.object({\n name: z.string(),\n protocol: z.string(), // e.g. 'file:', 'http:', 's3:'\n description: z.string().optional(),\n supportedFormats: z.array(z.string()).optional(),\n supportsWatch: z.boolean().optional(),\n supportsWrite: z.boolean().optional(),\n supportsCache: z.boolean().optional(),\n capabilities: z.object({\n read: z.boolean().default(true),\n write: z.boolean().default(false),\n watch: z.boolean().default(false),\n list: z.boolean().default(true),\n }),\n});\n\n/**\n * Metadata Load Options\n */\nexport const MetadataLoadOptionsSchema = z.object({\n scope: MetadataScopeSchema.optional(),\n namespace: z.string().optional(),\n raw: z.boolean().optional().describe('Return raw file content instead of parsed JSON'),\n cache: z.boolean().optional(),\n useCache: z.boolean().optional(), // Alias for cache\n validate: z.boolean().optional(),\n ifNoneMatch: z.string().optional(), // For caching\n recursive: z.boolean().optional(),\n limit: z.number().optional(),\n patterns: z.array(z.string()).optional(),\n loader: z.string().optional().describe('Specific loader to use (e.g. filesystem, database)'),\n});\n\n/**\n * Metadata Load Result\n */\nexport const MetadataLoadResultSchema = z.object({\n data: z.any(),\n stats: MetadataStatsSchema.optional(),\n format: MetadataFormatSchema.optional(),\n source: z.string().optional(), // File path or URL\n fromCache: z.boolean().optional(),\n etag: z.string().optional(),\n notModified: z.boolean().optional(),\n loadTime: z.number().optional(),\n});\n\n/**\n * Metadata Save Options\n */\nexport const MetadataSaveOptionsSchema = z.object({\n format: MetadataFormatSchema.optional(),\n create: z.boolean().default(true),\n overwrite: z.boolean().default(true),\n path: z.string().optional(),\n prettify: z.boolean().optional(),\n indent: z.number().optional(),\n sortKeys: z.boolean().optional(),\n backup: z.boolean().optional(),\n atomic: z.boolean().optional(),\n loader: z.string().optional().describe('Specific loader to use (e.g. filesystem, database)'),\n});\n\n/**\n * Metadata Save Result\n */\nexport const MetadataSaveResultSchema = z.object({\n success: z.boolean(),\n path: z.string().optional(),\n stats: MetadataStatsSchema.optional(),\n etag: z.string().optional(),\n size: z.number().optional(),\n saveTime: z.number().optional(),\n backupPath: z.string().optional(),\n});\n\n/**\n * Metadata Watch Event\n */\nexport const MetadataWatchEventSchema = z.object({\n type: z.enum(['add', 'change', 'unlink', 'added', 'changed', 'deleted']),\n path: z.string(),\n name: z.string().optional(),\n stats: MetadataStatsSchema.optional(),\n metadataType: z.string().optional(),\n data: z.any().optional(),\n timestamp: z.date().optional(),\n});\n\n/**\n * Metadata Collection Info\n */\nexport const MetadataCollectionInfoSchema = z.object({\n type: z.string(),\n count: z.number(),\n namespaces: z.array(z.string()),\n});\n\n/**\n * Metadata Export/Import Options\n */\nexport const MetadataExportOptionsSchema = z.object({\n types: z.array(z.string()).optional(),\n namespaces: z.array(z.string()).optional(),\n output: z.string().describe('Output directory or file'),\n format: MetadataFormatSchema.default('json'),\n});\n\nexport const MetadataImportOptionsSchema = z.object({\n source: z.string().describe('Input directory or file'),\n strategy: z.enum(['merge', 'replace', 'skip']).default('merge'),\n validate: z.boolean().default(true),\n});\n\n/**\n * Metadata Manager Config\n */\nexport const MetadataManagerConfigSchema = z.object({\n loaders: z.array(z.any()).optional(),\n watch: z.boolean().optional(),\n cache: z.boolean().optional(),\n basePath: z.string().optional(),\n rootDir: z.string().optional(),\n formats: z.array(MetadataFormatSchema).optional(),\n watchOptions: z.any().optional(), // Chokidar options\n});\n\nexport type MetadataFormat = z.infer<typeof MetadataFormatSchema>;\nexport type MetadataStats = z.infer<typeof MetadataStatsSchema>;\nexport type MetadataLoaderContract = z.infer<typeof MetadataLoaderContractSchema>;\nexport type MetadataLoadOptions = z.infer<typeof MetadataLoadOptionsSchema>;\nexport type MetadataLoadResult = z.infer<typeof MetadataLoadResultSchema>;\nexport type MetadataSaveOptions = z.infer<typeof MetadataSaveOptionsSchema>;\nexport type MetadataSaveResult = z.infer<typeof MetadataSaveResultSchema>;\nexport type MetadataWatchEvent = z.infer<typeof MetadataWatchEventSchema>;\nexport type MetadataCollectionInfo = z.infer<typeof MetadataCollectionInfoSchema>;\nexport type MetadataExportOptions = z.infer<typeof MetadataExportOptionsSchema>;\nexport type MetadataImportOptions = z.infer<typeof MetadataImportOptionsSchema>;\nexport type MetadataManagerConfig = z.infer<typeof MetadataManagerConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * # Service Registry Protocol\n * \n * Defines the standard built-in services that constitute the ObjectStack Kernel.\n * This registry is used by the `ObjectKernel` and `HttpDispatcher` to:\n * 1. Verify service availability.\n * 2. Route requests to the correct service handler.\n * 3. Type-check service interactions.\n */\n\n// ==========================================\n// Service Identifiers\n// ==========================================\n\nexport const CoreServiceName = z.enum([\n // Core Data & Metadata\n 'metadata', // Object/Field Definitions\n 'data', // CRUD & Query Engine\n 'auth', // Authentication & Identity\n \n // Infrastructure\n 'file-storage', // Storage Driver (Local/S3)\n 'search', // Search Engine (Elastic/Meili)\n 'cache', // Cache Driver (Redis/Memory)\n 'queue', // Job Queue (BullMQ/Redis)\n \n // Advanced Capabilities\n 'automation', // Flow & Script Engine\n 'graphql', // GraphQL API Engine\n 'analytics', // BI & Semantic Layer\n 'hub', // Multi-tenant & Marketplace Management\n 'realtime', // WebSocket & PubSub\n 'job', // Background Job Manager\n 'notification', // Email/Push/SMS\n]);\n\nexport type CoreServiceName = z.infer<typeof CoreServiceName>;\n\n/**\n * Service Criticality Level\n * Defines the startup behavior when a service is missing.\n */\nexport const ServiceCriticalitySchema = z.enum([\n 'required', // System fails to start if missing (Exit Code 1)\n 'core', // System warns if missing, functionality degraded (Warn)\n 'optional', // System ignores if missing, feature disabled (Info)\n]);\n\n/**\n * Service Requirement Definition\n */\nexport const ServiceRequirementDef = {\n // Required: The kernel cannot function without these\n metadata: 'required',\n data: 'required',\n auth: 'required',\n\n // Core: Highly recommended, defaults to in-memory if missing\n cache: 'core',\n queue: 'core',\n job: 'core',\n\n // Optional: Add-on capabilities\n 'file-storage': 'optional',\n search: 'optional',\n automation: 'optional',\n graphql: 'optional',\n analytics: 'optional',\n hub: 'optional',\n realtime: 'optional',\n notification: 'optional',\n} as const;\n\n// ==========================================\n// Service Capabilities\n// ==========================================\n\n/**\n * Describes the availability and health of a service\n */\nexport const ServiceStatusSchema = z.object({\n name: CoreServiceName,\n enabled: z.boolean(),\n status: z.enum(['running', 'stopped', 'degraded', 'initializing']),\n version: z.string().optional(),\n provider: z.string().optional().describe('Implementation provider (e.g. \"s3\" for storage)'),\n features: z.array(z.string()).optional().describe('List of supported sub-features'),\n});\n\n/**\n * The Contract definition for what the Kernel MUST expose\n * map<ServiceName, ServiceInstance>\n */\nexport const KernelServiceMapSchema = z.record(\n CoreServiceName, \n z.any().describe('Service Instance implementing the protocol interface')\n);\n\n// ==========================================\n// Service Interfaces (Stub definitions)\n// ==========================================\n// Ideally, we would define strict Typescript interfaces here \n// for what methods each service must expose to the Registry.\n// For Zod, we primarily validate configuration and status.\n\n// e.g.\nexport const ServiceConfigSchema = z.object({\n id: z.string(),\n name: CoreServiceName,\n options: z.record(z.string(), z.any()).optional(),\n});\n"],"mappings":"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","names":["z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","SearchConfigSchema","z","z","z","z","z","z","z","z","z","z"]}
|