@objectstack/spec 1.0.5 → 1.0.7
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/dist/ai/index.d.mts +1 -1
- package/dist/ai/index.d.ts +1 -1
- package/dist/api/index.d.mts +2 -2
- package/dist/api/index.d.ts +2 -2
- package/dist/api/index.js +1880 -1784
- package/dist/api/index.js.map +1 -1
- package/dist/api/index.mjs +1880 -1784
- package/dist/api/index.mjs.map +1 -1
- package/dist/automation/index.d.mts +1 -1
- package/dist/automation/index.d.ts +1 -1
- package/dist/contracts/index.d.mts +3 -3
- package/dist/contracts/index.d.ts +3 -3
- package/dist/data/index.d.mts +3 -3
- package/dist/data/index.d.ts +3 -3
- package/dist/data/index.js +5 -1
- package/dist/data/index.js.map +1 -1
- package/dist/data/index.mjs +5 -1
- package/dist/data/index.mjs.map +1 -1
- package/dist/{driver.zod-YoPJRbBk.d.mts → driver.zod-BOM_Etco.d.mts} +164 -3467
- package/dist/{driver.zod-B0DitHQ2.d.ts → driver.zod-lfi00zVT.d.ts} +164 -3467
- package/dist/{field.zod-Da5S-hAo.d.mts → field.zod-B_lzVsuC.d.ts} +871 -1
- package/dist/{field.zod-Da5S-hAo.d.ts → field.zod-dhbAw0SA.d.mts} +871 -1
- package/dist/hub/index.d.mts +1 -1
- package/dist/hub/index.d.ts +1 -1
- package/dist/hub/index.js +796 -707
- package/dist/hub/index.js.map +1 -1
- package/dist/hub/index.mjs +796 -707
- package/dist/hub/index.mjs.map +1 -1
- package/dist/{index-DSLwt2M_.d.ts → index-C67cfwmW.d.ts} +6 -355
- package/dist/{index-BMqjuD4e.d.ts → index-CH5zloR3.d.ts} +2 -2
- package/dist/{index-CIBOjiZG.d.mts → index-CU4m6noq.d.mts} +2 -2
- package/dist/{index-BeFe7iF_.d.mts → index-CyognKSZ.d.ts} +268 -1565
- package/dist/{index-CFaoWA3X.d.ts → index-DE_lJ11p.d.mts} +268 -1565
- package/dist/{index-C34qbBQr.d.mts → index-DLcySG7U.d.mts} +262 -241
- package/dist/{index-C34qbBQr.d.ts → index-DLcySG7U.d.ts} +262 -241
- package/dist/{index-BYtinxqf.d.mts → index-Dp7GFJ8V.d.mts} +6 -355
- package/dist/{index-D8XFyX0x.d.mts → index-Os7lItRe.d.mts} +108 -108
- package/dist/{index-D8XFyX0x.d.ts → index-Os7lItRe.d.ts} +108 -108
- package/dist/{index-CsF8m5Wj.d.mts → index-l6WIlmOD.d.mts} +39 -39
- package/dist/{index-CsF8m5Wj.d.ts → index-l6WIlmOD.d.ts} +39 -39
- package/dist/index.d.mts +162 -162
- package/dist/index.d.ts +162 -162
- package/dist/index.js +714 -672
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +714 -672
- package/dist/index.mjs.map +1 -1
- package/dist/kernel/index.d.mts +1 -1
- package/dist/kernel/index.d.ts +1 -1
- package/dist/kernel/index.js +705 -669
- package/dist/kernel/index.js.map +1 -1
- package/dist/kernel/index.mjs +704 -669
- package/dist/kernel/index.mjs.map +1 -1
- package/json-schema/api/CompileManifestResponse.json +6 -2
- package/json-schema/api/ExportRequest.json +419 -758
- package/json-schema/api/FindDataRequest.json +9 -0
- package/json-schema/data/JoinNode.json +9 -0
- package/json-schema/data/Mapping.json +9 -0
- package/json-schema/data/Query.json +9 -0
- package/json-schema/hub/ComposerResponse.json +6 -2
- package/json-schema/kernel/Manifest.json +6 -2
- package/json-schema/kernel/Plugin.json +28 -0
- package/package.json +1 -1
- package/dist/{index-iGrpxfqq.d.mts → index-D12rNohm.d.mts} +1 -1
- package/dist/{index-iGrpxfqq.d.ts → index-D12rNohm.d.ts} +1 -1
package/dist/kernel/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/kernel/index.ts","../../src/kernel/context.zod.ts","../../src/kernel/events.zod.ts","../../src/shared/identifiers.zod.ts","../../src/kernel/feature.zod.ts","../../src/kernel/manifest.zod.ts","../../src/kernel/plugin-capability.zod.ts","../../src/kernel/plugin-loading.zod.ts","../../src/kernel/metadata-loader.zod.ts","../../src/kernel/plugin-lifecycle-advanced.zod.ts","../../src/kernel/plugin-lifecycle-events.zod.ts","../../src/kernel/plugin-security-advanced.zod.ts","../../src/kernel/plugin-structure.zod.ts","../../src/kernel/plugin-validator.zod.ts","../../src/kernel/plugin-versioning.zod.ts","../../src/kernel/plugin.zod.ts","../../src/kernel/service-registry.zod.ts","../../src/kernel/startup-orchestrator.zod.ts"],"sourcesContent":["export * from './context.zod';\nexport * from './events.zod';\nexport * from './feature.zod';\nexport * from './manifest.zod';\nexport * from './metadata-loader.zod';\nexport * from './plugin-capability.zod';\nexport * from './plugin-lifecycle-advanced.zod';\nexport * from './plugin-lifecycle-events.zod';\nexport * from './plugin-loading.zod';\nexport * from './plugin-security-advanced.zod';\nexport * from './plugin-structure.zod';\nexport * from './plugin-validator.zod';\nexport * from './plugin-versioning.zod';\nexport * from './plugin.zod';\nexport * from './service-registry.zod';\nexport * from './startup-orchestrator.zod';\n","import { z } from 'zod';\n\n/**\n * Runtime Mode Enum\n * Defines the operating mode of the kernel\n */\nexport const RuntimeMode = z.enum([\n 'development', // Hot-reload, verbose logging\n 'production', // Optimized, strict security\n 'test', // Mocked interfaces\n 'provisioning' // Setup/Migration mode\n]).describe('Kernel operating mode');\n\nexport type RuntimeMode = z.infer<typeof RuntimeMode>;\n\n/**\n * Kernel Context Schema\n * Defines the static environment information available to the Kernel at boot.\n */\nexport const KernelContextSchema = z.object({\n /**\n * Instance Identity\n */\n instanceId: z.string().uuid().describe('Unique UUID for this running kernel process'),\n \n /**\n * Environment Metadata\n */\n mode: RuntimeMode.default('production'),\n version: z.string().describe('Kernel version'),\n appName: z.string().optional().describe('Host application name'),\n \n /**\n * Paths\n */\n cwd: z.string().describe('Current working directory'),\n workspaceRoot: z.string().optional().describe('Workspace root if different from cwd'),\n \n /**\n * Telemetry\n */\n startTime: z.number().int().describe('Boot timestamp (ms)'),\n \n /**\n * Feature Flags (Global)\n */\n features: z.record(z.string(), z.boolean()).default({}).describe('Global feature toggles')\n});\n\nexport type KernelContext = z.infer<typeof KernelContextSchema>;\n","import { z } from 'zod';\nimport { EventNameSchema } from '../shared/identifiers.zod';\n\n// ==========================================\n// Event Priority\n// ==========================================\n\n/**\n * Event Priority Enum\n * Priority levels for event processing\n * Lower numbers = higher priority\n */\nexport const EventPriority = z.enum([\n 'critical', // 0 - Process immediately, block if necessary\n 'high', // 1 - Process soon, minimal delay\n 'normal', // 2 - Default priority\n 'low', // 3 - Process when resources available\n 'background', // 4 - Process during idle time\n]);\n\nexport type EventPriority = z.infer<typeof EventPriority>;\n\n/**\n * Event Priority Values\n * Maps priority names to numeric values for sorting\n */\nexport const EVENT_PRIORITY_VALUES: Record<EventPriority, number> = {\n critical: 0,\n high: 1,\n normal: 2,\n low: 3,\n background: 4,\n};\n\n// ==========================================\n// Event Metadata\n// ==========================================\n\n/**\n * Event Metadata Schema\n * Metadata associated with every event\n */\nexport const EventMetadataSchema = z.object({\n source: z.string().describe('Event source (e.g., plugin name, system component)'),\n timestamp: z.string().datetime().describe('ISO 8601 datetime when event was created'),\n userId: z.string().optional().describe('User who triggered the event'),\n tenantId: z.string().optional().describe('Tenant identifier for multi-tenant systems'),\n correlationId: z.string().optional().describe('Correlation ID for event tracing'),\n causationId: z.string().optional().describe('ID of the event that caused this event'),\n priority: EventPriority.optional().default('normal').describe('Event priority'),\n});\n\n// ==========================================\n// Event Schema\n// ==========================================\n\n/**\n * Event Type Definition Schema\n * Defines the structure of an event type\n * \n * @example\n * {\n * \"name\": \"order.created\",\n * \"version\": \"1.0.0\",\n * \"schema\": {\n * \"type\": \"object\",\n * \"properties\": {\n * \"orderId\": { \"type\": \"string\" },\n * \"customerId\": { \"type\": \"string\" },\n * \"total\": { \"type\": \"number\" }\n * }\n * }\n * }\n */\nexport const EventTypeDefinitionSchema = z.object({\n name: EventNameSchema.describe('Event type name (lowercase with dots)'),\n version: z.string().default('1.0.0').describe('Event schema version'),\n schema: z.any().optional().describe('JSON Schema for event payload validation'),\n description: z.string().optional().describe('Event type description'),\n deprecated: z.boolean().optional().default(false).describe('Whether this event type is deprecated'),\n tags: z.array(z.string()).optional().describe('Event type tags'),\n});\n\nexport type EventTypeDefinition = z.infer<typeof EventTypeDefinitionSchema>;\n\n/**\n * Event Schema\n * Base schema for all events in the system\n * \n * Event names follow dot notation for namespacing (e.g., 'user.created', 'order.paid').\n * This aligns with industry standards for event-driven architectures and message queues.\n */\nexport const EventSchema = z.object({\n /**\n * Event identifier (for tracking and deduplication)\n */\n id: z.string().optional().describe('Unique event identifier'),\n \n /**\n * Event name\n */\n name: EventNameSchema.describe('Event name (lowercase with dots, e.g., user.created, order.paid)'),\n \n /**\n * Event payload\n */\n payload: z.any().describe('Event payload schema'),\n \n /**\n * Event metadata\n */\n metadata: EventMetadataSchema.describe('Event metadata'),\n});\n\nexport type Event = z.infer<typeof EventSchema>;\n\n// ==========================================\n// Event Handlers\n// ==========================================\n\n/**\n * Event Handler Schema\n * Defines how to handle a specific event\n */\nexport const EventHandlerSchema = z.object({\n /**\n * Handler identifier\n */\n id: z.string().optional().describe('Unique handler identifier'),\n \n /**\n * Event name pattern\n */\n eventName: z.string().describe('Name of event to handle (supports wildcards like user.*)'),\n \n /**\n * Handler function\n */\n handler: z.function()\n .args(EventSchema)\n .returns(z.promise(z.void()))\n .describe('Handler function'),\n \n /**\n * Execution priority\n */\n priority: z.number().int().default(0).describe('Execution priority (lower numbers execute first)'),\n \n /**\n * Async execution\n */\n async: z.boolean().default(true).describe('Execute in background (true) or block (false)'),\n \n /**\n * Retry configuration\n */\n retry: z.object({\n maxRetries: z.number().int().min(0).default(3).describe('Maximum retry attempts'),\n backoffMs: z.number().int().positive().default(1000).describe('Initial backoff delay'),\n backoffMultiplier: z.number().positive().default(2).describe('Backoff multiplier'),\n }).optional().describe('Retry policy for failed handlers'),\n \n /**\n * Timeout\n */\n timeoutMs: z.number().int().positive().optional().describe('Handler timeout in milliseconds'),\n \n /**\n * Filter function\n */\n filter: z.function()\n .args(EventSchema)\n .returns(z.boolean())\n .optional()\n .describe('Optional filter to determine if handler should execute'),\n});\n\nexport type EventHandler = z.infer<typeof EventHandlerSchema>;\n\n/**\n * Event Route Schema\n * Routes events from one pattern to multiple targets with optional transformation\n */\nexport const EventRouteSchema = z.object({\n from: z.string().describe('Source event pattern (supports wildcards, e.g., user.* or *.created)'),\n to: z.array(z.string()).describe('Target event names to route to'),\n transform: z.function().optional().describe('Optional function to transform payload'),\n});\n\nexport type EventRoute = z.infer<typeof EventRouteSchema>;\n\n/**\n * Event Persistence Schema\n * Configuration for persisting events to storage\n */\nexport const EventPersistenceSchema = z.object({\n enabled: z.boolean().default(false).describe('Enable event persistence'),\n retention: z.number().int().positive().describe('Days to retain persisted events'),\n filter: z.function().optional().describe('Optional filter function to select which events to persist'),\n storage: z.enum(['database', 'file', 's3', 'custom']).default('database')\n .describe('Storage backend for persisted events'),\n});\n\nexport type EventPersistence = z.infer<typeof EventPersistenceSchema>;\n\n// ==========================================\n// Event Queue\n// ==========================================\n\n/**\n * Event Queue Configuration Schema\n * Configuration for async event processing queue\n * \n * @example\n * {\n * \"name\": \"event_queue\",\n * \"concurrency\": 10,\n * \"retryPolicy\": {\n * \"maxRetries\": 3,\n * \"backoffStrategy\": \"exponential\"\n * }\n * }\n */\nexport const EventQueueConfigSchema = z.object({\n /**\n * Queue name\n */\n name: z.string().default('events').describe('Event queue name'),\n \n /**\n * Concurrency\n */\n concurrency: z.number().int().min(1).default(10).describe('Max concurrent event handlers'),\n \n /**\n * Retry policy\n */\n retryPolicy: z.object({\n maxRetries: z.number().int().min(0).default(3).describe('Max retries for failed events'),\n backoffStrategy: z.enum(['fixed', 'linear', 'exponential']).default('exponential')\n .describe('Backoff strategy'),\n initialDelayMs: z.number().int().positive().default(1000).describe('Initial retry delay'),\n maxDelayMs: z.number().int().positive().default(60000).describe('Maximum retry delay'),\n }).optional().describe('Default retry policy for events'),\n \n /**\n * Dead letter queue\n */\n deadLetterQueue: z.string().optional().describe('Dead letter queue name for failed events'),\n \n /**\n * Enable priority processing\n */\n priorityEnabled: z.boolean().default(true).describe('Process events based on priority'),\n});\n\nexport type EventQueueConfig = z.infer<typeof EventQueueConfigSchema>;\n\n// ==========================================\n// Event Replay\n// ==========================================\n\n/**\n * Event Replay Configuration Schema\n * Configuration for replaying historical events\n * \n * @example\n * {\n * \"fromTimestamp\": \"2024-01-01T00:00:00Z\",\n * \"toTimestamp\": \"2024-01-31T23:59:59Z\",\n * \"eventTypes\": [\"order.created\", \"order.updated\"],\n * \"speed\": 10\n * }\n */\nexport const EventReplayConfigSchema = z.object({\n /**\n * Start timestamp\n */\n fromTimestamp: z.string().datetime().describe('Start timestamp for replay (ISO 8601)'),\n \n /**\n * End timestamp\n */\n toTimestamp: z.string().datetime().optional().describe('End timestamp for replay (ISO 8601)'),\n \n /**\n * Event types to replay\n */\n eventTypes: z.array(z.string()).optional().describe('Event types to replay (empty = all)'),\n \n /**\n * Event filters\n */\n filters: z.record(z.string(), z.any()).optional().describe('Additional filters for event selection'),\n \n /**\n * Replay speed multiplier\n */\n speed: z.number().positive().default(1).describe('Replay speed multiplier (1 = real-time)'),\n \n /**\n * Target handlers\n */\n targetHandlers: z.array(z.string()).optional().describe('Handler IDs to execute (empty = all)'),\n});\n\nexport type EventReplayConfig = z.infer<typeof EventReplayConfigSchema>;\n\n// ==========================================\n// Event Sourcing\n// ==========================================\n\n/**\n * Event Sourcing Configuration Schema\n * Configuration for event sourcing pattern\n * \n * Event sourcing stores all changes to application state as a sequence of events.\n * The current state can be reconstructed by replaying the events.\n * \n * @example\n * {\n * \"enabled\": true,\n * \"snapshotInterval\": 100,\n * \"retention\": 365\n * }\n */\nexport const EventSourcingConfigSchema = z.object({\n /**\n * Enable event sourcing\n */\n enabled: z.boolean().default(false).describe('Enable event sourcing'),\n \n /**\n * Snapshot interval\n */\n snapshotInterval: z.number().int().positive().default(100)\n .describe('Create snapshot every N events'),\n \n /**\n * Snapshot retention\n */\n snapshotRetention: z.number().int().positive().default(10)\n .describe('Number of snapshots to retain'),\n \n /**\n * Event retention\n */\n retention: z.number().int().positive().default(365)\n .describe('Days to retain events'),\n \n /**\n * Aggregate types\n */\n aggregateTypes: z.array(z.string()).optional()\n .describe('Aggregate types to enable event sourcing for'),\n \n /**\n * Storage configuration\n */\n storage: z.object({\n type: z.enum(['database', 'file', 's3', 'eventstore']).default('database')\n .describe('Storage backend'),\n options: z.record(z.string(), z.any()).optional().describe('Storage-specific options'),\n }).optional().describe('Event store configuration'),\n});\n\nexport type EventSourcingConfig = z.infer<typeof EventSourcingConfigSchema>;\n\n// ==========================================\n// Dead Letter Queue\n// ==========================================\n\n/**\n * Dead Letter Queue Entry Schema\n * Represents a failed event in the dead letter queue\n */\nexport const DeadLetterQueueEntrySchema = z.object({\n /**\n * Entry identifier\n */\n id: z.string().describe('Unique entry identifier'),\n \n /**\n * Original event\n */\n event: EventSchema.describe('Original event'),\n \n /**\n * Failure reason\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 }).describe('Failure details'),\n \n /**\n * Retry count\n */\n retries: z.number().int().min(0).describe('Number of retry attempts'),\n \n /**\n * Timestamps\n */\n firstFailedAt: z.string().datetime().describe('When event first failed'),\n lastFailedAt: z.string().datetime().describe('When event last failed'),\n \n /**\n * Handler that failed\n */\n failedHandler: z.string().optional().describe('Handler ID that failed'),\n});\n\nexport type DeadLetterQueueEntry = z.infer<typeof DeadLetterQueueEntrySchema>;\n\n// ==========================================\n// Event Log\n// ==========================================\n\n/**\n * Event Log Entry Schema\n * Represents a logged event\n */\nexport const EventLogEntrySchema = z.object({\n /**\n * Log entry ID\n */\n id: z.string().describe('Unique log entry identifier'),\n \n /**\n * Event\n */\n event: EventSchema.describe('The event'),\n \n /**\n * Status\n */\n status: z.enum(['pending', 'processing', 'completed', 'failed']).describe('Processing status'),\n \n /**\n * Handlers executed\n */\n handlersExecuted: z.array(z.object({\n handlerId: z.string().describe('Handler identifier'),\n status: z.enum(['success', 'failed', 'timeout']).describe('Handler execution status'),\n durationMs: z.number().int().optional().describe('Execution duration'),\n error: z.string().optional().describe('Error message if failed'),\n })).optional().describe('Handlers that processed this event'),\n \n /**\n * Timestamps\n */\n receivedAt: z.string().datetime().describe('When event was received'),\n processedAt: z.string().datetime().optional().describe('When event was processed'),\n \n /**\n * Total duration\n */\n totalDurationMs: z.number().int().optional().describe('Total processing time'),\n});\n\nexport type EventLogEntry = z.infer<typeof EventLogEntrySchema>;\n\n// ==========================================\n// Webhook Integration\n// ==========================================\n\n/**\n * Event Webhook Configuration Schema\n * Configuration for sending events to webhooks\n * \n * @example\n * {\n * \"eventPattern\": \"order.*\",\n * \"url\": \"https://api.example.com/webhooks/orders\",\n * \"method\": \"POST\",\n * \"headers\": { \"Authorization\": \"Bearer token\" }\n * }\n */\nexport const EventWebhookConfigSchema = z.object({\n /**\n * Webhook identifier\n */\n id: z.string().optional().describe('Unique webhook identifier'),\n \n /**\n * Event pattern to match\n */\n eventPattern: z.string().describe('Event name pattern (supports wildcards)'),\n \n /**\n * Target URL\n */\n url: z.string().url().describe('Webhook endpoint URL'),\n \n /**\n * HTTP method\n */\n method: z.enum(['GET', 'POST', 'PUT', 'PATCH']).default('POST').describe('HTTP method'),\n \n /**\n * Headers\n */\n headers: z.record(z.string(), z.string()).optional().describe('HTTP headers'),\n \n /**\n * Authentication\n */\n authentication: z.object({\n type: z.enum(['none', 'bearer', 'basic', 'api-key']).describe('Auth type'),\n credentials: z.record(z.string(), z.string()).optional().describe('Auth credentials'),\n }).optional().describe('Authentication configuration'),\n \n /**\n * Retry policy\n */\n retryPolicy: z.object({\n maxRetries: z.number().int().min(0).default(3).describe('Max retry attempts'),\n backoffStrategy: z.enum(['fixed', 'linear', 'exponential']).default('exponential'),\n initialDelayMs: z.number().int().positive().default(1000).describe('Initial retry delay'),\n maxDelayMs: z.number().int().positive().default(60000).describe('Max retry delay'),\n }).optional().describe('Retry policy'),\n \n /**\n * Timeout\n */\n timeoutMs: z.number().int().positive().default(30000).describe('Request timeout in milliseconds'),\n \n /**\n * Event transformation\n */\n transform: z.function()\n .args(EventSchema)\n .returns(z.any())\n .optional()\n .describe('Transform event before sending'),\n \n /**\n * Enabled\n */\n enabled: z.boolean().default(true).describe('Whether webhook is enabled'),\n});\n\nexport type EventWebhookConfig = z.infer<typeof EventWebhookConfigSchema>;\n\n// ==========================================\n// Message Queue Integration\n// ==========================================\n\n/**\n * Event Message Queue Configuration Schema\n * Configuration for publishing events to message queues\n * \n * @example\n * {\n * \"provider\": \"kafka\",\n * \"topic\": \"events\",\n * \"eventPattern\": \"*\",\n * \"partitionKey\": \"metadata.tenantId\"\n * }\n */\nexport const EventMessageQueueConfigSchema = z.object({\n /**\n * Provider\n */\n provider: z.enum(['kafka', 'rabbitmq', 'aws-sqs', 'redis-pubsub', 'google-pubsub', 'azure-service-bus'])\n .describe('Message queue provider'),\n \n /**\n * Topic/Queue name\n */\n topic: z.string().describe('Topic or queue name'),\n \n /**\n * Event pattern\n */\n eventPattern: z.string().default('*').describe('Event name pattern to publish (supports wildcards)'),\n \n /**\n * Partition key\n */\n partitionKey: z.string().optional().describe('JSON path for partition key (e.g., \"metadata.tenantId\")'),\n \n /**\n * Message format\n */\n format: z.enum(['json', 'avro', 'protobuf']).default('json').describe('Message serialization format'),\n \n /**\n * Include metadata\n */\n includeMetadata: z.boolean().default(true).describe('Include event metadata in message'),\n \n /**\n * Compression\n */\n compression: z.enum(['none', 'gzip', 'snappy', 'lz4']).default('none').describe('Message compression'),\n \n /**\n * Batch size\n */\n batchSize: z.number().int().min(1).default(1).describe('Batch size for publishing'),\n \n /**\n * Flush interval\n */\n flushIntervalMs: z.number().int().positive().default(1000).describe('Flush interval for batching'),\n});\n\nexport type EventMessageQueueConfig = z.infer<typeof EventMessageQueueConfigSchema>;\n\n// ==========================================\n// Real-time Notifications\n// ==========================================\n\n/**\n * Real-time Notification Configuration Schema\n * Configuration for real-time event notifications via WebSocket/SSE\n * \n * @example\n * {\n * \"enabled\": true,\n * \"protocol\": \"websocket\",\n * \"eventPattern\": \"notification.*\",\n * \"userFilter\": true\n * }\n */\nexport const RealTimeNotificationConfigSchema = z.object({\n /**\n * Enable real-time notifications\n */\n enabled: z.boolean().default(true).describe('Enable real-time notifications'),\n \n /**\n * Protocol\n */\n protocol: z.enum(['websocket', 'sse', 'long-polling']).default('websocket')\n .describe('Real-time protocol'),\n \n /**\n * Event pattern\n */\n eventPattern: z.string().default('*').describe('Event pattern to broadcast'),\n \n /**\n * User-specific filtering\n */\n userFilter: z.boolean().default(true).describe('Filter events by user'),\n \n /**\n * Tenant-specific filtering\n */\n tenantFilter: z.boolean().default(true).describe('Filter events by tenant'),\n \n /**\n * Channels\n */\n channels: z.array(z.object({\n name: z.string().describe('Channel name'),\n eventPattern: z.string().describe('Event pattern for channel'),\n filter: z.function()\n .args(EventSchema)\n .returns(z.boolean())\n .optional()\n .describe('Additional filter function'),\n })).optional().describe('Named channels for event broadcasting'),\n \n /**\n * Rate limiting\n */\n rateLimit: z.object({\n maxEventsPerSecond: z.number().int().positive().describe('Max events per second per client'),\n windowMs: z.number().int().positive().default(1000).describe('Rate limit window'),\n }).optional().describe('Rate limiting configuration'),\n});\n\nexport type RealTimeNotificationConfig = z.infer<typeof RealTimeNotificationConfigSchema>;\n\n// ==========================================\n// Complete Event Bus Configuration\n// ==========================================\n\n/**\n * Event Bus Configuration Schema\n * Complete configuration for the event bus system\n * \n * @example\n * {\n * \"persistence\": { \"enabled\": true, \"retention\": 365 },\n * \"queue\": { \"concurrency\": 20 },\n * \"eventSourcing\": { \"enabled\": true },\n * \"webhooks\": [],\n * \"messageQueue\": { \"provider\": \"kafka\", \"topic\": \"events\" },\n * \"realtime\": { \"enabled\": true, \"protocol\": \"websocket\" }\n * }\n */\nexport const EventBusConfigSchema = z.object({\n /**\n * Event persistence\n */\n persistence: EventPersistenceSchema.optional().describe('Event persistence configuration'),\n \n /**\n * Event queue\n */\n queue: EventQueueConfigSchema.optional().describe('Event queue configuration'),\n \n /**\n * Event sourcing\n */\n eventSourcing: EventSourcingConfigSchema.optional().describe('Event sourcing configuration'),\n \n /**\n * Event replay\n */\n replay: z.object({\n enabled: z.boolean().default(true).describe('Enable event replay capability'),\n }).optional().describe('Event replay configuration'),\n \n /**\n * Webhooks\n */\n webhooks: z.array(EventWebhookConfigSchema).optional().describe('Webhook configurations'),\n \n /**\n * Message queue integration\n */\n messageQueue: EventMessageQueueConfigSchema.optional().describe('Message queue integration'),\n \n /**\n * Real-time notifications\n */\n realtime: RealTimeNotificationConfigSchema.optional().describe('Real-time notification configuration'),\n \n /**\n * Event type definitions\n */\n eventTypes: z.array(EventTypeDefinitionSchema).optional().describe('Event type definitions'),\n \n /**\n * Global handlers\n */\n handlers: z.array(EventHandlerSchema).optional().describe('Global event handlers'),\n});\n\nexport type EventBusConfig = z.infer<typeof EventBusConfigSchema>;\n\n// ==========================================\n// Helper Functions\n// ==========================================\n\n/**\n * Helper to create event bus configuration\n */\nexport function createEventBusConfig<T extends z.input<typeof EventBusConfigSchema>>(config: T): T {\n return config;\n}\n\n/**\n * Helper to create event type definition\n */\nexport function createEventTypeDefinition<T extends z.input<typeof EventTypeDefinitionSchema>>(definition: T): T {\n return definition;\n}\n\n/**\n * Helper to create event webhook configuration\n */\nexport function createEventWebhookConfig<T extends z.input<typeof EventWebhookConfigSchema>>(config: T): T {\n return config;\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';\nimport { SnakeCaseIdentifierSchema } from '../shared/identifiers.zod';\n\n/**\n * Feature Rollout Strategy\n */\nexport const FeatureStrategy = z.enum([\n 'boolean', // Simple On/Off\n 'percentage', // Gradual rollout (0-100%)\n 'user_list', // Specific users\n 'group', // Specific groups/roles\n 'custom' // Custom constraint/script\n]);\n\n/**\n * Feature Flag Protocol\n * \n * Manages feature toggles and gradual rollouts.\n * Used for CI/CD, A/B Testing, and Trunk-Based Development.\n */\nexport const FeatureFlagSchema = z.object({\n name: SnakeCaseIdentifierSchema.describe('Feature key (snake_case)'),\n label: z.string().optional().describe('Display label'),\n description: z.string().optional(),\n \n /** Default state */\n enabled: z.boolean().default(false).describe('Is globally enabled'),\n \n /** Rollout Strategy */\n strategy: FeatureStrategy.default('boolean'),\n \n /** Strategy Configuration */\n conditions: z.object({\n percentage: z.number().min(0).max(100).optional(),\n users: z.array(z.string()).optional(),\n groups: z.array(z.string()).optional(),\n expression: z.string().optional().describe('Custom formula expression')\n }).optional(),\n \n /** Integration */\n environment: z.enum(['dev', 'staging', 'prod', 'all']).default('all')\n .describe('Environment validity'),\n \n /** Expiration */\n expiresAt: z.string().datetime().optional().describe('Feature flag expiration date'),\n});\n\nexport const FeatureFlag = Object.assign(FeatureFlagSchema, {\n create: <T extends z.input<typeof FeatureFlagSchema>>(config: T) => config,\n});\n\nexport type FeatureFlag = z.infer<typeof FeatureFlagSchema>;\n","import { z } from 'zod';\nimport { PluginCapabilityManifestSchema } from './plugin-capability.zod';\nimport { PluginLoadingConfigSchema } from './plugin-loading.zod';\n\n/**\n * Schema for the ObjectStack Manifest.\n * This defines the structure of a package configuration in the ObjectStack ecosystem.\n * All packages (apps, plugins, drivers, modules) must conform to this schema.\n * \n * @example App Package\n * ```yaml\n * id: com.acme.crm\n * version: 1.0.0\n * type: app\n * name: Acme CRM\n * description: Customer Relationship Management system\n * permissions:\n * - system.user.read\n * - system.object.create\n * objects:\n * - \"./src/objects/*.object.yml\"\n * ```\n */\nexport const ManifestSchema = z.object({\n /** \n * Unique package identifier using reverse domain notation.\n * Must be unique across the entire ecosystem.\n * \n * @example \"com.steedos.crm\"\n * @example \"org.apache.superset\"\n */\n id: z.string().describe('Unique package identifier (reverse domain style)'),\n \n /** \n * Package version following semantic versioning (major.minor.patch).\n * \n * @example \"1.0.0\"\n * @example \"2.1.0-beta.1\"\n */\n version: z.string().regex(/^\\d+\\.\\d+\\.\\d+$/).describe('Package version (semantic versioning)'),\n \n /** \n * Type of the package in the ObjectStack ecosystem.\n * - app: Business application package (contains objects, UIs)\n * - plugin: General-purpose functionality extension (adds logic, hooks)\n * - driver: Southbound interface - Database/external service adapter (Postgres, MongoDB, S3)\n * - module: Reusable code library/shared module\n * - objectql: Core engine - Data layer implementation\n * - gateway: Northbound interface - API protocol entry point (GraphQL, REST, RPC, OData)\n * - adapter: Host adapter - Runtime container (Express, Hono, Fastify, Serverless)\n */\n type: z.enum(['app', 'plugin', 'driver', 'module', 'objectql', 'gateway', 'adapter']).describe('Type of package'),\n \n /** \n * Human-readable name of the package.\n * Displayed in the UI for users.\n * \n * @example \"Project Management\"\n */\n name: z.string().describe('Human-readable package name'),\n \n /** \n * Brief description of the package functionality.\n * Displayed in the marketplace and plugin manager.\n */\n description: z.string().optional().describe('Package description'),\n \n /** \n * Array of permission strings that the package requires.\n * These form the \"Scope\" requested by the package at installation.\n * \n * @example [\"system.user.read\", \"system.data.write\"]\n */\n permissions: z.array(z.string()).optional().describe('Array of required permission strings'),\n \n /** \n * Glob patterns specifying ObjectQL schemas files.\n * Matches `*.object.yml` or `*.object.ts` files to load business objects.\n * \n * @example [\"./src/objects/*.object.yml\"]\n */\n objects: z.array(z.string()).optional().describe('Glob patterns for ObjectQL schemas files'),\n\n /**\n * Defines system level DataSources.\n * Matches `*.datasource.yml` files.\n * \n * @example [\"./src/datasources/*.datasource.mongo.yml\"]\n */\n datasources: z.array(z.string()).optional().describe('Glob patterns for Datasource definitions'),\n\n /**\n * Package Dependencies.\n * Map of package IDs to version requirements.\n * \n * @example { \"@steedos/plugin-auth\": \"^2.0.0\" }\n */\n dependencies: z.record(z.string(), z.string()).optional().describe('Package dependencies'),\n\n /**\n * Plugin Configuration Schema.\n * Defines the settings this plugin exposes to the user via UI/ENV.\n * Uses a simplified JSON Schema format.\n * \n * @example\n * {\n * \"title\": \"Stripe Config\",\n * \"properties\": {\n * \"apiKey\": { \"type\": \"string\", \"secret\": true },\n * \"currency\": { \"type\": \"string\", \"default\": \"USD\" }\n * }\n * }\n */\n configuration: z.object({\n title: z.string().optional(),\n properties: z.record(z.string(), z.object({\n type: z.enum(['string', 'number', 'boolean', 'array', 'object']).describe('Data type of the setting'),\n default: z.any().optional().describe('Default value'),\n description: z.string().optional().describe('Tooltip description'),\n required: z.boolean().optional().describe('Is this setting required?'),\n secret: z.boolean().optional().describe('If true, value is encrypted/masked (e.g. API Keys)'),\n enum: z.array(z.string()).optional().describe('Allowed values for select inputs'),\n })).describe('Map of configuration keys to their definitions')\n }).optional().describe('Plugin configuration settings'),\n\n /**\n * Contribution Points (VS Code Style).\n * formalized way to extend the platform capabilities.\n */\n contributes: z.object({\n /**\n * Register new Metadata Kinds (CRDs).\n * Enables the system to parse and validate new file types.\n * Example: Registering a BI plugin to handle *.report.ts\n */\n kinds: z.array(z.object({\n id: z.string().describe('The generic identifier of the kind (e.g., \"sys.bi.report\")'),\n globs: z.array(z.string()).describe('File patterns to watch (e.g., [\"**/*.report.ts\"])'),\n description: z.string().optional().describe('Description of what this kind represents'),\n })).optional().describe('New Metadata Types to recognize'),\n\n /**\n * Register System Hooks.\n * Declares that this plugin listens to specific system events.\n */\n events: z.array(z.string()).optional().describe('Events this plugin listens to'),\n\n /**\n * Register UI Menus.\n */\n menus: z.record(z.string(), z.array(z.object({\n id: z.string(),\n label: z.string(),\n command: z.string().optional(),\n }))).optional().describe('UI Menu contributions'),\n\n /**\n * Register Custom Themes.\n */\n themes: z.array(z.object({\n id: z.string(),\n label: z.string(),\n path: z.string(),\n })).optional().describe('Theme contributions'),\n\n /**\n * Register Translations.\n * Path to translation files (e.g. \"locales/en.json\").\n */\n translations: z.array(z.object({\n locale: z.string(),\n path: z.string(),\n })).optional().describe('Translation resources'),\n\n /**\n * Register Server Actions.\n * Invocable functions exposed to Flows or API.\n */\n actions: z.array(z.object({\n name: z.string().describe('Unique action name'),\n label: z.string().optional(),\n description: z.string().optional(),\n input: z.any().optional().describe('Input validation schema'),\n output: z.any().optional().describe('Output schema'),\n })).optional().describe('Exposed server actions'),\n\n /**\n * Register Storage Drivers.\n * Enables connecting to new types of datasources.\n */\n drivers: z.array(z.object({\n id: z.string().describe('Driver unique identifier (e.g. \"postgres\", \"mongo\")'),\n label: z.string().describe('Human readable name'),\n description: z.string().optional(),\n })).optional().describe('Driver contributions'),\n\n /**\n * Register Custom Field Types.\n * Extends the data model with new widget types.\n */\n fieldTypes: z.array(z.object({\n name: z.string().describe('Unique field type name (e.g. \"vector\")'),\n label: z.string().describe('Display label'),\n description: z.string().optional(),\n })).optional().describe('Field Type contributions'),\n \n /**\n * Register Custom Query Operators/Functions.\n * Extends ObjectQL with new functions (e.g. distance()).\n */\n functions: z.array(z.object({\n name: z.string().describe('Function name (e.g. \"distance\")'),\n description: z.string().optional(),\n args: z.array(z.string()).optional().describe('Argument types'),\n returnType: z.string().optional(),\n })).optional().describe('Query Function contributions'),\n }).optional().describe('Platform contributions'),\n\n /** \n * Initial data seeding configuration.\n * Defines default records to be inserted when the package is installed.\n */\n data: z.array(z.object({\n object: z.string().describe('Target Object Name'),\n records: z.array(z.record(z.string(), z.any())).describe('List of records to insert'),\n mode: z.enum(['upsert', 'insert', 'ignore']).default('upsert').describe('Seeding mode')\n })).optional().describe('Initial seed data'),\n\n /**\n * Plugin Capability Manifest.\n * Declares protocols implemented, interfaces provided, dependencies, and extension points.\n * This enables plugin interoperability and automatic discovery.\n */\n capabilities: PluginCapabilityManifestSchema.optional()\n .describe('Plugin capability declarations for interoperability'),\n\n /** \n * Extension points contributed by this package.\n * Allows packages to extend UI components, add functionality, etc.\n */\n extensions: z.record(z.string(), z.any()).optional().describe('Extension points and contributions'),\n\n /**\n * Plugin Loading Configuration.\n * Configures how the plugin is loaded, initialized, and managed at runtime.\n * Includes strategies for lazy loading, code splitting, caching, and hot reload.\n */\n loading: PluginLoadingConfigSchema.optional()\n .describe('Plugin loading and runtime behavior configuration'),\n});\n\n/**\n * TypeScript type inferred from the ManifestSchema.\n * Use this type for type-safe manifest handling in TypeScript code.\n */\nexport type ObjectStackManifest = z.infer<typeof ManifestSchema>;\n\n","import { z } from 'zod';\n\n/**\n * # Plugin Capability Protocol\n * \n * Defines the standard way plugins declare their capabilities, implementations,\n * and conformance levels to ensure interoperability across vendors.\n * \n * Based on the Protocol-Oriented Architecture pattern similar to:\n * - Kubernetes CRDs (Custom Resource Definitions)\n * - OSGi Service Registry\n * - Eclipse Extension Points\n */\n\n/**\n * Capability Conformance Level\n * Indicates how completely a plugin implements a given protocol.\n */\nexport const CapabilityConformanceLevelSchema = z.enum([\n 'full', // Complete implementation of all protocol features\n 'partial', // Subset implementation with specific features listed\n 'experimental', // Unstable/preview implementation\n 'deprecated', // Still supported but scheduled for removal\n]).describe('Level of protocol conformance');\n\n/**\n * Protocol Version Schema\n * Uses semantic versioning to track protocol evolution.\n */\nexport const ProtocolVersionSchema = z.object({\n major: z.number().int().min(0),\n minor: z.number().int().min(0),\n patch: z.number().int().min(0),\n}).describe('Semantic version of the protocol');\n\n/**\n * Protocol Reference\n * Uniquely identifies a protocol/interface that a plugin can implement.\n * \n * Examples:\n * - com.objectstack.protocol.storage.v1\n * - com.objectstack.protocol.auth.oauth2.v2\n * - com.acme.protocol.payment.stripe.v1\n */\nexport const ProtocolReferenceSchema = z.object({\n /**\n * Protocol identifier using reverse domain notation.\n * Format: {domain}.protocol.{category}.{name}[.{subcategory}].v{major}\n */\n id: z.string()\n .regex(/^([a-z][a-z0-9]*\\.)+protocol\\.[a-z][a-z0-9._]*\\.v\\d+$/)\n .describe('Unique protocol identifier (e.g., com.objectstack.protocol.storage.v1)'),\n \n /**\n * Human-readable protocol name\n */\n label: z.string(),\n \n /**\n * Protocol version\n */\n version: ProtocolVersionSchema,\n \n /**\n * Detailed protocol specification URL or file reference\n */\n specification: z.string().optional().describe('URL or path to protocol specification'),\n \n /**\n * Brief description of what this protocol defines\n */\n description: z.string().optional(),\n});\n\n/**\n * Protocol Feature\n * Represents a specific capability within a protocol.\n */\nexport const ProtocolFeatureSchema = z.object({\n name: z.string().describe('Feature identifier within the protocol'),\n enabled: z.boolean().default(true),\n description: z.string().optional(),\n sinceVersion: z.string().optional().describe('Version when this feature was added'),\n deprecatedSince: z.string().optional().describe('Version when deprecated'),\n});\n\n/**\n * Plugin Capability Declaration\n * Documents what protocols a plugin implements and to what extent.\n */\nexport const PluginCapabilitySchema = z.object({\n /**\n * The protocol being implemented\n */\n protocol: ProtocolReferenceSchema,\n \n /**\n * Conformance level\n */\n conformance: CapabilityConformanceLevelSchema.default('full'),\n \n /**\n * Specific features implemented (required if conformance is 'partial')\n */\n implementedFeatures: z.array(z.string()).optional().describe('List of implemented feature names'),\n \n /**\n * Optional feature flags indicating advanced capabilities\n */\n features: z.array(ProtocolFeatureSchema).optional(),\n \n /**\n * Custom metadata for vendor-specific information\n */\n metadata: z.record(z.string(), z.any()).optional(),\n \n /**\n * Testing/Certification status\n */\n certified: z.boolean().default(false).describe('Has passed official conformance tests'),\n certificationDate: z.string().datetime().optional(),\n});\n\n/**\n * Plugin Interface Declaration\n * Defines the contract for services this plugin provides to other plugins.\n */\nexport const PluginInterfaceSchema = z.object({\n /**\n * Unique interface identifier\n * Format: {plugin-id}.interface.{name}\n */\n id: z.string()\n .regex(/^([a-z][a-z0-9]*\\.)+interface\\.[a-z][a-z0-9._]+$/)\n .describe('Unique interface identifier'),\n \n /**\n * Interface name\n */\n name: z.string(),\n \n /**\n * Description of what this interface provides\n */\n description: z.string().optional(),\n \n /**\n * Interface version\n */\n version: ProtocolVersionSchema,\n \n /**\n * Methods exposed by this interface\n */\n methods: z.array(z.object({\n name: z.string().describe('Method name'),\n description: z.string().optional(),\n parameters: z.array(z.object({\n name: z.string(),\n type: z.string().describe('Type notation (e.g., string, number, User)'),\n required: z.boolean().default(true),\n description: z.string().optional(),\n })).optional(),\n returnType: z.string().optional().describe('Return value type'),\n async: z.boolean().default(false).describe('Whether method returns a Promise'),\n })),\n \n /**\n * Events emitted by this interface\n */\n events: z.array(z.object({\n name: z.string().describe('Event name'),\n description: z.string().optional(),\n payload: z.string().optional().describe('Event payload type'),\n })).optional(),\n \n /**\n * Stability level\n */\n stability: z.enum(['stable', 'beta', 'alpha', 'experimental']).default('stable'),\n});\n\n/**\n * Plugin Dependency Declaration\n * Specifies what other plugins or capabilities this plugin requires.\n */\nexport const PluginDependencySchema = z.object({\n /**\n * Plugin ID using reverse domain notation\n */\n pluginId: z.string()\n .regex(/^([a-z][a-z0-9]*\\.)+[a-z][a-z0-9-]+$/)\n .describe('Required plugin identifier'),\n \n /**\n * Version constraint (supports semver ranges)\n * Examples: \"1.0.0\", \"^1.2.3\", \">=2.0.0 <3.0.0\"\n */\n version: z.string().describe('Semantic version constraint'),\n \n /**\n * Whether this dependency is optional\n */\n optional: z.boolean().default(false),\n \n /**\n * Reason for the dependency\n */\n reason: z.string().optional(),\n \n /**\n * Minimum required capabilities from the dependency\n */\n requiredCapabilities: z.array(z.string()).optional().describe('Protocol IDs the dependency must support'),\n});\n\n/**\n * Extension Point Declaration\n * Defines hooks where other plugins can extend this plugin's functionality.\n */\nexport const ExtensionPointSchema = z.object({\n /**\n * Extension point identifier\n */\n id: z.string()\n .regex(/^([a-z][a-z0-9]*\\.)+extension\\.[a-z][a-z0-9._]+$/)\n .describe('Unique extension point identifier'),\n \n /**\n * Extension point name\n */\n name: z.string(),\n \n /**\n * Description\n */\n description: z.string().optional(),\n \n /**\n * Type of extension point\n */\n type: z.enum([\n 'action', // Plugins can register executable actions\n 'hook', // Plugins can listen to lifecycle events\n 'widget', // Plugins can contribute UI widgets\n 'provider', // Plugins can provide data/services\n 'transformer', // Plugins can transform data\n 'validator', // Plugins can validate data\n 'decorator', // Plugins can enhance/wrap functionality\n ]),\n \n /**\n * Expected interface contract for extensions\n */\n contract: z.object({\n input: z.string().optional().describe('Input type/schema'),\n output: z.string().optional().describe('Output type/schema'),\n signature: z.string().optional().describe('Function signature if applicable'),\n }).optional(),\n \n /**\n * Cardinality\n */\n cardinality: z.enum(['single', 'multiple']).default('multiple')\n .describe('Whether multiple extensions can register to this point'),\n});\n\n/**\n * Complete Plugin Capability Manifest\n * This is included in the main plugin manifest to declare all capabilities.\n */\nexport const PluginCapabilityManifestSchema = z.object({\n /**\n * Protocols this plugin implements\n */\n implements: z.array(PluginCapabilitySchema).optional()\n .describe('List of protocols this plugin conforms to'),\n \n /**\n * Interfaces this plugin exposes to other plugins\n */\n provides: z.array(PluginInterfaceSchema).optional()\n .describe('Services/APIs this plugin offers to others'),\n \n /**\n * Dependencies on other plugins\n */\n requires: z.array(PluginDependencySchema).optional()\n .describe('Required plugins and their capabilities'),\n \n /**\n * Extension points this plugin defines\n */\n extensionPoints: z.array(ExtensionPointSchema).optional()\n .describe('Points where other plugins can extend this plugin'),\n \n /**\n * Extensions this plugin contributes to other plugins\n */\n extensions: z.array(z.object({\n targetPluginId: z.string().describe('Plugin ID being extended'),\n extensionPointId: z.string().describe('Extension point identifier'),\n implementation: z.string().describe('Path to implementation module'),\n priority: z.number().int().default(100).describe('Registration priority (lower = higher priority)'),\n })).optional().describe('Extensions contributed to other plugins'),\n});\n\n// Export types\nexport type CapabilityConformanceLevel = z.infer<typeof CapabilityConformanceLevelSchema>;\nexport type ProtocolVersion = z.infer<typeof ProtocolVersionSchema>;\nexport type ProtocolReference = z.infer<typeof ProtocolReferenceSchema>;\nexport type ProtocolFeature = z.infer<typeof ProtocolFeatureSchema>;\nexport type PluginCapability = z.infer<typeof PluginCapabilitySchema>;\nexport type PluginInterface = z.infer<typeof PluginInterfaceSchema>;\nexport type PluginDependency = z.infer<typeof PluginDependencySchema>;\nexport type ExtensionPoint = z.infer<typeof ExtensionPointSchema>;\nexport type PluginCapabilityManifest = z.infer<typeof PluginCapabilityManifestSchema>;\n","import { z } from 'zod';\n\n/**\n * # Plugin Loading Protocol\n * \n * Defines the enhanced plugin loading mechanism for the microkernel architecture.\n * Inspired by industry best practices from:\n * - Kubernetes CRDs and Operators\n * - OSGi Dynamic Module System\n * - Eclipse Plugin Framework\n * - Webpack Module Federation\n * \n * This protocol enables:\n * - Lazy loading and code splitting\n * - Dynamic imports and parallel initialization\n * - Capability-based discovery\n * - Hot reload in development\n * - Advanced caching strategies\n */\n\n/**\n * Plugin Loading Strategy\n * Determines how and when a plugin is loaded into memory\n */\nexport const PluginLoadingStrategySchema = z.enum([\n 'eager', // Load immediately during bootstrap (critical plugins)\n 'lazy', // Load on first use (feature plugins)\n 'parallel', // Load in parallel with other plugins\n 'deferred', // Load after initial bootstrap complete\n 'on-demand', // Load only when explicitly requested\n]).describe('Plugin loading strategy');\n\n/**\n * Plugin Preloading Configuration\n * Configures preloading behavior for faster activation\n */\nexport const PluginPreloadConfigSchema = z.object({\n /**\n * Enable preloading for this plugin\n */\n enabled: z.boolean().default(false),\n \n /**\n * Preload priority (lower = higher priority)\n */\n priority: z.number().int().min(0).default(100),\n \n /**\n * Resources to preload\n */\n resources: z.array(z.enum([\n 'metadata', // Plugin manifest and metadata\n 'dependencies', // Plugin dependencies\n 'assets', // Static assets (icons, translations)\n 'code', // JavaScript code chunks\n 'services', // Service definitions\n ])).optional(),\n \n /**\n * Conditions for preloading\n */\n conditions: z.object({\n /**\n * Preload only on specific routes\n */\n routes: z.array(z.string()).optional(),\n \n /**\n * Preload only for specific user roles\n */\n roles: z.array(z.string()).optional(),\n \n /**\n * Preload based on device type\n */\n deviceType: z.array(z.enum(['desktop', 'mobile', 'tablet'])).optional(),\n \n /**\n * Network connection quality threshold\n */\n minNetworkSpeed: z.enum(['slow-2g', '2g', '3g', '4g']).optional(),\n }).optional(),\n}).describe('Plugin preloading configuration');\n\n/**\n * Plugin Code Splitting Configuration\n * Configures how plugin code is split for optimal loading\n */\nexport const PluginCodeSplittingSchema = z.object({\n /**\n * Enable code splitting for this plugin\n */\n enabled: z.boolean().default(true),\n \n /**\n * Split strategy\n */\n strategy: z.enum([\n 'route', // Split by UI routes\n 'feature', // Split by feature modules\n 'size', // Split by bundle size threshold\n 'custom', // Custom split points defined by plugin\n ]).default('feature'),\n \n /**\n * Chunk naming strategy\n */\n chunkNaming: z.enum(['hashed', 'named', 'sequential']).default('hashed'),\n \n /**\n * Maximum chunk size in KB\n */\n maxChunkSize: z.number().int().min(10).optional().describe('Max chunk size in KB'),\n \n /**\n * Shared dependencies optimization\n */\n sharedDependencies: z.object({\n enabled: z.boolean().default(true),\n /**\n * Minimum times a module must be shared before extraction\n */\n minChunks: z.number().int().min(1).default(2),\n }).optional(),\n}).describe('Plugin code splitting configuration');\n\n/**\n * Plugin Dynamic Import Configuration\n * Configures dynamic import behavior for runtime module loading\n */\nexport const PluginDynamicImportSchema = z.object({\n /**\n * Enable dynamic imports\n */\n enabled: z.boolean().default(true),\n \n /**\n * Import mode\n */\n mode: z.enum([\n 'async', // Asynchronous import (recommended)\n 'sync', // Synchronous import (blocking)\n 'eager', // Eager evaluation\n 'lazy', // Lazy evaluation\n ]).default('async'),\n \n /**\n * Prefetch strategy\n */\n prefetch: z.boolean().default(false).describe('Prefetch module in idle time'),\n \n /**\n * Preload strategy\n */\n preload: z.boolean().default(false).describe('Preload module in parallel with parent'),\n \n /**\n * Webpack magic comments support\n */\n webpackChunkName: z.string().optional().describe('Custom chunk name for webpack'),\n \n /**\n * Import timeout in milliseconds\n */\n timeout: z.number().int().min(100).default(30000).describe('Dynamic import timeout (ms)'),\n \n /**\n * Retry configuration on import failure\n */\n retry: z.object({\n enabled: z.boolean().default(true),\n maxAttempts: z.number().int().min(1).max(10).default(3),\n backoffMs: z.number().int().min(0).default(1000).describe('Exponential backoff base delay'),\n }).optional(),\n}).describe('Plugin dynamic import configuration');\n\n/**\n * Plugin Initialization Configuration\n * Configures how plugin initialization is executed\n */\nexport const PluginInitializationSchema = z.object({\n /**\n * Initialization mode\n */\n mode: z.enum([\n 'sync', // Synchronous initialization\n 'async', // Asynchronous initialization\n 'parallel', // Parallel with other plugins\n 'sequential', // Must complete before next plugin\n ]).default('async'),\n \n /**\n * Initialization timeout in milliseconds\n */\n timeout: z.number().int().min(100).default(30000),\n \n /**\n * Startup priority (lower = higher priority, earlier initialization)\n */\n priority: z.number().int().min(0).default(100),\n \n /**\n * Whether to continue bootstrap if this plugin fails\n */\n critical: z.boolean().default(false).describe('If true, kernel bootstrap fails if plugin fails'),\n \n /**\n * Retry configuration on initialization failure\n */\n retry: z.object({\n enabled: z.boolean().default(false),\n maxAttempts: z.number().int().min(1).max(5).default(3),\n backoffMs: z.number().int().min(0).default(1000),\n }).optional(),\n \n /**\n * Health check interval for monitoring\n */\n healthCheckInterval: z.number().int().min(0).optional().describe('Health check interval in ms (0 = disabled)'),\n}).describe('Plugin initialization configuration');\n\n/**\n * Plugin Dependency Resolution Configuration\n * Advanced dependency resolution using semantic versioning\n */\nexport const PluginDependencyResolutionSchema = z.object({\n /**\n * Dependency resolution strategy\n */\n strategy: z.enum([\n 'strict', // Exact version match required\n 'compatible', // Semver compatible versions (^)\n 'latest', // Always use latest compatible\n 'pinned', // Lock to specific version\n ]).default('compatible'),\n \n /**\n * Peer dependency handling\n */\n peerDependencies: z.object({\n /**\n * Whether to resolve peer dependencies\n */\n resolve: z.boolean().default(true),\n \n /**\n * Action on missing peer dependency\n */\n onMissing: z.enum(['error', 'warn', 'ignore']).default('warn'),\n \n /**\n * Action on peer version mismatch\n */\n onMismatch: z.enum(['error', 'warn', 'ignore']).default('warn'),\n }).optional(),\n \n /**\n * Optional dependency handling\n */\n optionalDependencies: z.object({\n /**\n * Whether to attempt loading optional dependencies\n */\n load: z.boolean().default(true),\n \n /**\n * Action on optional dependency load failure\n */\n onFailure: z.enum(['warn', 'ignore']).default('warn'),\n }).optional(),\n \n /**\n * Conflict resolution\n */\n conflictResolution: z.enum([\n 'fail', // Fail on any version conflict\n 'latest', // Use latest version\n 'oldest', // Use oldest version\n 'manual', // Require manual resolution\n ]).default('latest'),\n \n /**\n * Circular dependency handling\n */\n circularDependencies: z.enum([\n 'error', // Throw error on circular dependency\n 'warn', // Warn but continue\n 'allow', // Allow circular dependencies\n ]).default('warn'),\n}).describe('Plugin dependency resolution configuration');\n\n/**\n * Plugin Hot Reload Configuration\n * Enables hot module replacement for development\n */\nexport const PluginHotReloadSchema = z.object({\n /**\n * Enable hot reload\n */\n enabled: z.boolean().default(false),\n \n /**\n * Hot reload strategy\n */\n strategy: z.enum([\n 'full', // Full plugin reload (destroy and reinitialize)\n 'partial', // Partial reload (update changed modules only)\n 'state-preserve', // Preserve plugin state during reload\n ]).default('full'),\n \n /**\n * Files to watch for changes\n */\n watchPatterns: z.array(z.string()).optional().describe('Glob patterns for files to watch'),\n \n /**\n * Files to ignore\n */\n ignorePatterns: z.array(z.string()).optional().describe('Glob patterns for files to ignore'),\n \n /**\n * Debounce delay in milliseconds\n */\n debounceMs: z.number().int().min(0).default(300),\n \n /**\n * Whether to preserve state during reload\n */\n preserveState: z.boolean().default(false),\n \n /**\n * State serialization\n */\n stateSerialization: z.object({\n enabled: z.boolean().default(false),\n /**\n * Path to state serialization handler\n */\n handler: z.string().optional(),\n }).optional(),\n \n /**\n * Hooks for hot reload lifecycle\n */\n hooks: z.object({\n beforeReload: z.string().optional().describe('Function to call before reload'),\n afterReload: z.string().optional().describe('Function to call after reload'),\n onError: z.string().optional().describe('Function to call on reload error'),\n }).optional(),\n}).describe('Plugin hot reload configuration');\n\n/**\n * Plugin Caching Configuration\n * Configures caching strategy for faster subsequent loads\n */\nexport const PluginCachingSchema = z.object({\n /**\n * Enable caching\n */\n enabled: z.boolean().default(true),\n \n /**\n * Cache storage type\n */\n storage: z.enum([\n 'memory', // In-memory cache (fastest, not persistent)\n 'disk', // Disk cache (persistent)\n 'indexeddb', // Browser IndexedDB (persistent, browser only)\n 'hybrid', // Memory + Disk hybrid\n ]).default('memory'),\n \n /**\n * Cache key strategy\n */\n keyStrategy: z.enum([\n 'version', // Cache by plugin version\n 'hash', // Cache by content hash\n 'timestamp', // Cache by last modified timestamp\n ]).default('version'),\n \n /**\n * Cache TTL in seconds\n */\n ttl: z.number().int().min(0).optional().describe('Time to live in seconds (0 = infinite)'),\n \n /**\n * Maximum cache size in MB\n */\n maxSize: z.number().int().min(1).optional().describe('Max cache size in MB'),\n \n /**\n * Cache invalidation triggers\n */\n invalidateOn: z.array(z.enum([\n 'version-change',\n 'dependency-change',\n 'manual',\n 'error',\n ])).optional(),\n \n /**\n * Compression\n */\n compression: z.object({\n enabled: z.boolean().default(false),\n algorithm: z.enum(['gzip', 'brotli', 'deflate']).default('gzip'),\n }).optional(),\n}).describe('Plugin caching configuration');\n\n/**\n * Plugin Sandboxing Configuration\n * Security isolation for untrusted plugins\n */\nexport const PluginSandboxingSchema = z.object({\n /**\n * Enable sandboxing\n */\n enabled: z.boolean().default(false),\n \n /**\n * Sandbox isolation level\n */\n isolationLevel: z.enum([\n 'none', // No isolation\n 'process', // Separate process (Node.js worker threads)\n 'vm', // VM context isolation\n 'iframe', // iframe isolation (browser)\n 'web-worker', // Web Worker (browser)\n ]).default('none'),\n \n /**\n * Allowed capabilities\n */\n allowedCapabilities: z.array(z.string()).optional().describe('List of allowed capability IDs'),\n \n /**\n * Resource quotas\n */\n resourceQuotas: z.object({\n /**\n * Maximum memory usage in MB\n */\n maxMemoryMB: z.number().int().min(1).optional(),\n \n /**\n * Maximum CPU time in milliseconds\n */\n maxCpuTimeMs: z.number().int().min(100).optional(),\n \n /**\n * Maximum number of file descriptors\n */\n maxFileDescriptors: z.number().int().min(1).optional(),\n \n /**\n * Maximum network bandwidth in KB/s\n */\n maxNetworkKBps: z.number().int().min(1).optional(),\n }).optional(),\n \n /**\n * Permissions\n */\n permissions: z.object({\n /**\n * Allowed API access\n */\n allowedAPIs: z.array(z.string()).optional(),\n \n /**\n * Allowed file system paths\n */\n allowedPaths: z.array(z.string()).optional(),\n \n /**\n * Allowed network endpoints\n */\n allowedEndpoints: z.array(z.string()).optional(),\n \n /**\n * Allowed environment variables\n */\n allowedEnvVars: z.array(z.string()).optional(),\n }).optional(),\n}).describe('Plugin sandboxing configuration');\n\n/**\n * Plugin Performance Monitoring Configuration\n * Telemetry and performance tracking\n */\nexport const PluginPerformanceMonitoringSchema = z.object({\n /**\n * Enable performance monitoring\n */\n enabled: z.boolean().default(false),\n \n /**\n * Metrics to collect\n */\n metrics: z.array(z.enum([\n 'load-time',\n 'init-time',\n 'memory-usage',\n 'cpu-usage',\n 'api-calls',\n 'error-rate',\n 'cache-hit-rate',\n ])).optional(),\n \n /**\n * Sampling rate (0-1, where 1 = 100%)\n */\n samplingRate: z.number().min(0).max(1).default(1),\n \n /**\n * Reporting interval in seconds\n */\n reportingInterval: z.number().int().min(1).default(60),\n \n /**\n * Performance budget thresholds\n */\n budgets: z.object({\n /**\n * Maximum load time in milliseconds\n */\n maxLoadTimeMs: z.number().int().min(0).optional(),\n \n /**\n * Maximum init time in milliseconds\n */\n maxInitTimeMs: z.number().int().min(0).optional(),\n \n /**\n * Maximum memory usage in MB\n */\n maxMemoryMB: z.number().int().min(0).optional(),\n }).optional(),\n \n /**\n * Action on budget violation\n */\n onBudgetViolation: z.enum(['warn', 'error', 'ignore']).default('warn'),\n}).describe('Plugin performance monitoring configuration');\n\n/**\n * Complete Plugin Loading Configuration\n * Combines all loading-related configurations\n */\nexport const PluginLoadingConfigSchema = z.object({\n /**\n * Loading strategy\n */\n strategy: PluginLoadingStrategySchema.default('lazy'),\n \n /**\n * Preloading configuration\n */\n preload: PluginPreloadConfigSchema.optional(),\n \n /**\n * Code splitting configuration\n */\n codeSplitting: PluginCodeSplittingSchema.optional(),\n \n /**\n * Dynamic import configuration\n */\n dynamicImport: PluginDynamicImportSchema.optional(),\n \n /**\n * Initialization configuration\n */\n initialization: PluginInitializationSchema.optional(),\n \n /**\n * Dependency resolution configuration\n */\n dependencyResolution: PluginDependencyResolutionSchema.optional(),\n \n /**\n * Hot reload configuration (development only)\n */\n hotReload: PluginHotReloadSchema.optional(),\n \n /**\n * Caching configuration\n */\n caching: PluginCachingSchema.optional(),\n \n /**\n * Sandboxing configuration\n */\n sandboxing: PluginSandboxingSchema.optional(),\n \n /**\n * Performance monitoring\n */\n monitoring: PluginPerformanceMonitoringSchema.optional(),\n}).describe('Complete plugin loading configuration');\n\n/**\n * Plugin Loading Event\n * Emitted during plugin loading lifecycle\n */\nexport const PluginLoadingEventSchema = z.object({\n /**\n * Event type\n */\n type: z.enum([\n 'load-started',\n 'load-completed',\n 'load-failed',\n 'init-started',\n 'init-completed',\n 'init-failed',\n 'preload-started',\n 'preload-completed',\n 'cache-hit',\n 'cache-miss',\n 'hot-reload',\n ]),\n \n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Timestamp\n */\n timestamp: z.number().int().min(0),\n \n /**\n * Duration in milliseconds\n */\n durationMs: z.number().int().min(0).optional(),\n \n /**\n * Additional metadata\n */\n metadata: z.record(z.string(), z.any()).optional(),\n \n /**\n * Error if event represents a failure\n */\n error: z.object({\n message: z.string(),\n code: z.string().optional(),\n stack: z.string().optional(),\n }).optional(),\n}).describe('Plugin loading lifecycle event');\n\n/**\n * Plugin Loading State\n * Tracks the current loading state of a plugin\n */\nexport const PluginLoadingStateSchema = z.object({\n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Current state\n */\n state: z.enum([\n 'pending', // Not yet loaded\n 'loading', // Currently loading\n 'loaded', // Code loaded, not initialized\n 'initializing', // Currently initializing\n 'ready', // Fully initialized and ready\n 'failed', // Failed to load or initialize\n 'reloading', // Hot reloading in progress\n ]),\n \n /**\n * Load progress (0-100)\n */\n progress: z.number().min(0).max(100).default(0),\n \n /**\n * Loading start time\n */\n startedAt: z.number().int().min(0).optional(),\n \n /**\n * Loading completion time\n */\n completedAt: z.number().int().min(0).optional(),\n \n /**\n * Last error\n */\n lastError: z.string().optional(),\n \n /**\n * Retry count\n */\n retryCount: z.number().int().min(0).default(0),\n}).describe('Plugin loading state');\n\n// Export types\nexport type PluginLoadingStrategy = z.infer<typeof PluginLoadingStrategySchema>;\nexport type PluginPreloadConfig = z.infer<typeof PluginPreloadConfigSchema>;\nexport type PluginCodeSplitting = z.infer<typeof PluginCodeSplittingSchema>;\nexport type PluginDynamicImport = z.infer<typeof PluginDynamicImportSchema>;\nexport type PluginInitialization = z.infer<typeof PluginInitializationSchema>;\nexport type PluginDependencyResolution = z.infer<typeof PluginDependencyResolutionSchema>;\nexport type PluginHotReload = z.infer<typeof PluginHotReloadSchema>;\nexport type PluginCaching = z.infer<typeof PluginCachingSchema>;\nexport type PluginSandboxing = z.infer<typeof PluginSandboxingSchema>;\nexport type PluginPerformanceMonitoring = z.infer<typeof PluginPerformanceMonitoringSchema>;\nexport type PluginLoadingConfig = z.infer<typeof PluginLoadingConfigSchema>;\nexport type PluginLoadingEvent = z.infer<typeof PluginLoadingEventSchema>;\nexport type PluginLoadingState = z.infer<typeof PluginLoadingStateSchema>;\n","import { z } from 'zod';\n\n/**\n * # Metadata Loader Protocol\n * \n * Defines the standard interface for loading and saving metadata in ObjectStack.\n * This protocol enables consistent metadata operations across different storage backends\n * (filesystem, HTTP, S3, databases) and serialization formats (JSON, YAML, TypeScript).\n */\n\n/**\n * Metadata Format Enum\n * Supported serialization formats for metadata\n */\nexport const MetadataFormatSchema = z.enum(['json', 'yaml', 'typescript', 'javascript']);\n\n/**\n * Metadata Statistics\n * Information about a metadata item without loading its full content\n */\nexport const MetadataStatsSchema = z.object({\n /**\n * Size of the metadata file in bytes\n */\n size: z.number().int().min(0).describe('File size in bytes'),\n \n /**\n * Last modification timestamp\n */\n modifiedAt: z.date().describe('Last modified date'),\n \n /**\n * ETag for cache validation\n * Used for conditional requests (If-None-Match header)\n */\n etag: z.string().describe('Entity tag for cache validation'),\n \n /**\n * Serialization format\n */\n format: MetadataFormatSchema.describe('Serialization format'),\n \n /**\n * Full file path (if applicable)\n */\n path: z.string().optional().describe('File system path'),\n \n /**\n * Additional metadata provider-specific properties\n */\n metadata: z.record(z.string(), z.any()).optional().describe('Provider-specific metadata'),\n});\n\n/**\n * Metadata Load Options\n */\nexport const MetadataLoadOptionsSchema = z.object({\n /**\n * Glob patterns to match files\n * Example: [\"**\\/*.object.ts\", \"**\\/*.object.json\"]\n */\n patterns: z.array(z.string()).optional().describe('File glob patterns'),\n \n /**\n * If-None-Match header for conditional loading\n * Only load if ETag doesn't match\n */\n ifNoneMatch: z.string().optional().describe('ETag for conditional request'),\n \n /**\n * If-Modified-Since header for conditional loading\n */\n ifModifiedSince: z.date().optional().describe('Only load if modified after this date'),\n \n /**\n * Whether to validate against Zod schema\n */\n validate: z.boolean().default(true).describe('Validate against schema'),\n \n /**\n * Whether to use cache if available\n */\n useCache: z.boolean().default(true).describe('Enable caching'),\n \n /**\n * Filter function (serialized as string)\n * Example: \"(item) => item.name.startsWith('sys_')\"\n */\n filter: z.string().optional().describe('Filter predicate as string'),\n \n /**\n * Maximum number of items to load\n */\n limit: z.number().int().min(1).optional().describe('Maximum items to load'),\n \n /**\n * Recursively search subdirectories\n */\n recursive: z.boolean().default(true).describe('Search subdirectories'),\n});\n\n/**\n * Metadata Save Options\n */\nexport const MetadataSaveOptionsSchema = z.object({\n /**\n * Serialization format\n */\n format: MetadataFormatSchema.default('typescript').describe('Output format'),\n \n /**\n * Prettify output (formatted with indentation)\n */\n prettify: z.boolean().default(true).describe('Format with indentation'),\n \n /**\n * Indentation size (spaces)\n */\n indent: z.number().int().min(0).max(8).default(2).describe('Indentation spaces'),\n \n /**\n * Sort object keys alphabetically\n */\n sortKeys: z.boolean().default(false).describe('Sort object keys'),\n \n /**\n * Include default values in output\n */\n includeDefaults: z.boolean().default(false).describe('Include default values'),\n \n /**\n * Create backup before overwriting\n */\n backup: z.boolean().default(false).describe('Create backup file'),\n \n /**\n * Overwrite if exists\n */\n overwrite: z.boolean().default(true).describe('Overwrite existing file'),\n \n /**\n * Atomic write (write to temp file, then rename)\n */\n atomic: z.boolean().default(true).describe('Use atomic write operation'),\n \n /**\n * Custom file path (overrides default location)\n */\n path: z.string().optional().describe('Custom output path'),\n});\n\n/**\n * Metadata Export Options\n */\nexport const MetadataExportOptionsSchema = z.object({\n /**\n * Output file path\n */\n output: z.string().describe('Output file path'),\n \n /**\n * Export format\n */\n format: MetadataFormatSchema.default('json').describe('Export format'),\n \n /**\n * Filter predicate as string\n */\n filter: z.string().optional().describe('Filter items to export'),\n \n /**\n * Include statistics in export\n */\n includeStats: z.boolean().default(false).describe('Include metadata statistics'),\n \n /**\n * Compress output\n */\n compress: z.boolean().default(false).describe('Compress output (gzip)'),\n \n /**\n * Pretty print output\n */\n prettify: z.boolean().default(true).describe('Pretty print output'),\n});\n\n/**\n * Metadata Import Options\n */\nexport const MetadataImportOptionsSchema = z.object({\n /**\n * Conflict resolution strategy\n */\n conflictResolution: z.enum(['skip', 'overwrite', 'merge', 'fail'])\n .default('merge')\n .describe('How to handle existing items'),\n \n /**\n * Validate items against schema\n */\n validate: z.boolean().default(true).describe('Validate before import'),\n \n /**\n * Dry run (don't actually save)\n */\n dryRun: z.boolean().default(false).describe('Simulate import without saving'),\n \n /**\n * Continue on errors\n */\n continueOnError: z.boolean().default(false).describe('Continue if validation fails'),\n \n /**\n * Transform function (as string)\n * Example: \"(item) => ({ ...item, imported: true })\"\n */\n transform: z.string().optional().describe('Transform items before import'),\n});\n\n/**\n * Metadata Loader Result\n * Result of a metadata load operation\n */\nexport const MetadataLoadResultSchema = z.object({\n /**\n * Loaded data\n */\n data: z.any().nullable().describe('Loaded metadata'),\n \n /**\n * Whether data came from cache (304 Not Modified)\n */\n fromCache: z.boolean().default(false).describe('Loaded from cache'),\n \n /**\n * Not modified (conditional request matched)\n */\n notModified: z.boolean().default(false).describe('Not modified since last request'),\n \n /**\n * ETag of loaded data\n */\n etag: z.string().optional().describe('Entity tag'),\n \n /**\n * Statistics about loaded data\n */\n stats: MetadataStatsSchema.optional().describe('Metadata statistics'),\n \n /**\n * Load time in milliseconds\n */\n loadTime: z.number().min(0).optional().describe('Load duration in ms'),\n});\n\n/**\n * Metadata Save Result\n */\nexport const MetadataSaveResultSchema = z.object({\n /**\n * Whether save was successful\n */\n success: z.boolean().describe('Save successful'),\n \n /**\n * Path where file was saved\n */\n path: z.string().describe('Output path'),\n \n /**\n * Generated ETag\n */\n etag: z.string().optional().describe('Generated entity tag'),\n \n /**\n * File size in bytes\n */\n size: z.number().int().min(0).optional().describe('File size'),\n \n /**\n * Save time in milliseconds\n */\n saveTime: z.number().min(0).optional().describe('Save duration in ms'),\n \n /**\n * Backup path (if created)\n */\n backupPath: z.string().optional().describe('Backup file path'),\n});\n\n/**\n * Metadata Watch Event\n */\nexport const MetadataWatchEventSchema = z.object({\n /**\n * Event type\n */\n type: z.enum(['added', 'changed', 'deleted']).describe('Event type'),\n \n /**\n * Metadata type (e.g., 'object', 'view', 'app')\n */\n metadataType: z.string().describe('Type of metadata'),\n \n /**\n * Item name/identifier\n */\n name: z.string().describe('Item identifier'),\n \n /**\n * Full file path\n */\n path: z.string().describe('File path'),\n \n /**\n * Loaded item data (for added/changed events)\n */\n data: z.any().optional().describe('Item data'),\n \n /**\n * Timestamp\n */\n timestamp: z.date().describe('Event timestamp'),\n});\n\n/**\n * Metadata Collection Info\n * Summary of a metadata collection\n */\nexport const MetadataCollectionInfoSchema = z.object({\n /**\n * Collection type (e.g., 'object', 'view', 'app')\n */\n type: z.string().describe('Collection type'),\n \n /**\n * Total items in collection\n */\n count: z.number().int().min(0).describe('Number of items'),\n \n /**\n * Formats found in collection\n */\n formats: z.array(MetadataFormatSchema).describe('Formats in collection'),\n \n /**\n * Total size in bytes\n */\n totalSize: z.number().int().min(0).optional().describe('Total size in bytes'),\n \n /**\n * Last modified timestamp\n */\n lastModified: z.date().optional().describe('Last modification date'),\n \n /**\n * Collection location (path or URL)\n */\n location: z.string().optional().describe('Collection location'),\n});\n\n/**\n * Metadata Loader Interface Contract\n * Defines the standard methods all metadata loaders must implement\n */\nexport const MetadataLoaderContractSchema = z.object({\n /**\n * Loader name/identifier\n */\n name: z.string().describe('Loader identifier'),\n\n /**\n * Protocol handled by this loader (e.g. 'file', 'http', 's3')\n */\n protocol: z.string().describe('Protocol identifier'),\n\n /**\n * Detailed capabilities\n */\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 }).describe('Loader capabilities'),\n \n /**\n * Supported formats\n */\n supportedFormats: z.array(MetadataFormatSchema).describe('Supported formats'),\n \n /**\n * Whether loader supports watching for changes\n */\n supportsWatch: z.boolean().default(false).describe('Supports file watching'),\n \n /**\n * Whether loader supports saving\n */\n supportsWrite: z.boolean().default(true).describe('Supports write operations'),\n \n /**\n * Whether loader supports caching\n */\n supportsCache: z.boolean().default(true).describe('Supports caching'),\n});\n\n/**\n * Metadata Manager Configuration\n */\nexport const MetadataManagerConfigSchema = z.object({\n /**\n * Root directory for metadata (for filesystem loaders)\n */\n rootDir: z.string().optional().describe('Root directory path'),\n \n /**\n * Enabled serialization formats\n */\n formats: z.array(MetadataFormatSchema).default(['typescript', 'json', 'yaml']).describe('Enabled formats'),\n \n /**\n * Cache configuration\n */\n cache: z.object({\n enabled: z.boolean().default(true).describe('Enable caching'),\n ttl: z.number().int().min(0).default(3600).describe('Cache TTL in seconds'),\n maxSize: z.number().int().min(0).optional().describe('Max cache size in bytes'),\n }).optional().describe('Cache settings'),\n \n /**\n * Watch for file changes\n */\n watch: z.boolean().default(false).describe('Enable file watching'),\n \n /**\n * Watch options\n */\n watchOptions: z.object({\n ignored: z.array(z.string()).optional().describe('Patterns to ignore'),\n persistent: z.boolean().default(true).describe('Keep process running'),\n ignoreInitial: z.boolean().default(true).describe('Ignore initial add events'),\n }).optional().describe('File watcher options'),\n \n /**\n * Validation settings\n */\n validation: z.object({\n strict: z.boolean().default(true).describe('Strict validation'),\n throwOnError: z.boolean().default(true).describe('Throw on validation error'),\n }).optional().describe('Validation settings'),\n \n /**\n * Loader-specific options\n */\n loaderOptions: z.record(z.string(), z.any()).optional().describe('Loader-specific configuration'),\n});\n\n// Export types\nexport type MetadataFormat = z.infer<typeof MetadataFormatSchema>;\nexport type MetadataStats = z.infer<typeof MetadataStatsSchema>;\nexport type MetadataLoadOptions = z.input<typeof MetadataLoadOptionsSchema>;\nexport type MetadataSaveOptions = z.infer<typeof MetadataSaveOptionsSchema>;\nexport type MetadataExportOptions = z.infer<typeof MetadataExportOptionsSchema>;\nexport type MetadataImportOptions = z.infer<typeof MetadataImportOptionsSchema>;\nexport type MetadataLoadResult = z.infer<typeof MetadataLoadResultSchema>;\nexport type MetadataSaveResult = z.infer<typeof MetadataSaveResultSchema>;\nexport type MetadataWatchEvent = z.infer<typeof MetadataWatchEventSchema>;\nexport type MetadataCollectionInfo = z.infer<typeof MetadataCollectionInfoSchema>;\nexport type MetadataLoaderContract = z.infer<typeof MetadataLoaderContractSchema>;\nexport type MetadataManagerConfig = z.infer<typeof MetadataManagerConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * # Advanced Plugin Lifecycle Protocol\n * \n * Defines advanced lifecycle management capabilities including:\n * - Hot reload and live updates\n * - Graceful degradation and fallback mechanisms\n * - Health monitoring and auto-recovery\n * - State preservation during updates\n * \n * This protocol extends the basic plugin lifecycle with enterprise-grade\n * features for production environments.\n */\n\n/**\n * Plugin Health Status\n * Represents the current operational state of a plugin\n */\nexport const PluginHealthStatusSchema = z.enum([\n 'healthy', // Plugin is operating normally\n 'degraded', // Plugin is operational but with reduced functionality\n 'unhealthy', // Plugin has critical issues but still running\n 'failed', // Plugin has failed and is not operational\n 'recovering', // Plugin is in recovery process\n 'unknown', // Health status cannot be determined\n]).describe('Current health status of the plugin');\n\n/**\n * Plugin Health Check Configuration\n * Defines how to check plugin health\n */\nexport const PluginHealthCheckSchema = z.object({\n /**\n * Health check interval in milliseconds\n */\n interval: z.number().int().min(1000).default(30000)\n .describe('How often to perform health checks (default: 30s)'),\n \n /**\n * Timeout for health check in milliseconds\n */\n timeout: z.number().int().min(100).default(5000)\n .describe('Maximum time to wait for health check response'),\n \n /**\n * Number of consecutive failures before marking as unhealthy\n */\n failureThreshold: z.number().int().min(1).default(3)\n .describe('Consecutive failures needed to mark unhealthy'),\n \n /**\n * Number of consecutive successes to recover from unhealthy state\n */\n successThreshold: z.number().int().min(1).default(1)\n .describe('Consecutive successes needed to mark healthy'),\n \n /**\n * Custom health check function name or endpoint\n */\n checkMethod: z.string().optional()\n .describe('Method name to call for health check'),\n \n /**\n * Enable automatic restart on failure\n */\n autoRestart: z.boolean().default(false)\n .describe('Automatically restart plugin on health check failure'),\n \n /**\n * Maximum number of restart attempts\n */\n maxRestartAttempts: z.number().int().min(0).default(3)\n .describe('Maximum restart attempts before giving up'),\n \n /**\n * Backoff strategy for restarts\n */\n restartBackoff: z.enum(['fixed', 'linear', 'exponential']).default('exponential')\n .describe('Backoff strategy for restart delays'),\n});\n\n/**\n * Plugin Health Report\n * Detailed health information from a plugin\n */\nexport const PluginHealthReportSchema = z.object({\n /**\n * Overall health status\n */\n status: PluginHealthStatusSchema,\n \n /**\n * Timestamp of the health check\n */\n timestamp: z.string().datetime(),\n \n /**\n * Human-readable message about health status\n */\n message: z.string().optional(),\n \n /**\n * Detailed metrics\n */\n metrics: z.object({\n uptime: z.number().describe('Plugin uptime in milliseconds'),\n memoryUsage: z.number().optional().describe('Memory usage in bytes'),\n cpuUsage: z.number().optional().describe('CPU usage percentage'),\n activeConnections: z.number().optional().describe('Number of active connections'),\n errorRate: z.number().optional().describe('Error rate (errors per minute)'),\n responseTime: z.number().optional().describe('Average response time in ms'),\n }).partial().optional(),\n \n /**\n * List of checks performed\n */\n checks: z.array(z.object({\n name: z.string().describe('Check name'),\n status: z.enum(['passed', 'failed', 'warning']),\n message: z.string().optional(),\n data: z.record(z.string(), z.any()).optional(),\n })).optional(),\n \n /**\n * Dependencies health\n */\n dependencies: z.array(z.object({\n pluginId: z.string(),\n status: PluginHealthStatusSchema,\n message: z.string().optional(),\n })).optional(),\n});\n\n/**\n * Distributed State Configuration\n * Configuration for distributed state management in cluster environments\n */\nexport const DistributedStateConfigSchema = z.object({\n /**\n * Distributed cache provider\n */\n provider: z.enum(['redis', 'etcd', 'custom'])\n .describe('Distributed state backend provider'),\n \n /**\n * Connection URL or endpoints\n */\n endpoints: z.array(z.string()).optional()\n .describe('Backend connection endpoints'),\n \n /**\n * Key prefix for namespacing\n */\n keyPrefix: z.string().optional()\n .describe('Prefix for all keys (e.g., \"plugin:my-plugin:\")'),\n \n /**\n * Time to live in seconds\n */\n ttl: z.number().int().min(0).optional()\n .describe('State expiration time in seconds'),\n \n /**\n * Authentication configuration\n */\n auth: z.object({\n username: z.string().optional(),\n password: z.string().optional(),\n token: z.string().optional(),\n certificate: z.string().optional(),\n }).optional(),\n \n /**\n * Replication settings\n */\n replication: z.object({\n enabled: z.boolean().default(true),\n minReplicas: z.number().int().min(1).default(1),\n }).optional(),\n \n /**\n * Custom provider configuration\n */\n customConfig: z.record(z.string(), z.any()).optional()\n .describe('Provider-specific configuration'),\n});\n\n/**\n * Hot Reload Configuration\n * Controls how plugins handle live updates\n */\nexport const HotReloadConfigSchema = z.object({\n /**\n * Enable hot reload capability\n */\n enabled: z.boolean().default(false),\n \n /**\n * Watch file patterns for auto-reload\n */\n watchPatterns: z.array(z.string()).optional()\n .describe('Glob patterns to watch for changes'),\n \n /**\n * Debounce delay before reloading (milliseconds)\n */\n debounceDelay: z.number().int().min(0).default(1000)\n .describe('Wait time after change detection before reload'),\n \n /**\n * Preserve plugin state during reload\n */\n preserveState: z.boolean().default(true)\n .describe('Keep plugin state across reloads'),\n \n /**\n * State serialization strategy\n */\n stateStrategy: z.enum(['memory', 'disk', 'distributed', 'none']).default('memory')\n .describe('How to preserve state during reload'),\n \n /**\n * Distributed state configuration (required when stateStrategy is \"distributed\")\n */\n distributedConfig: DistributedStateConfigSchema.optional()\n .describe('Configuration for distributed state management'),\n \n /**\n * Graceful shutdown timeout\n */\n shutdownTimeout: z.number().int().min(0).default(30000)\n .describe('Maximum time to wait for graceful shutdown'),\n \n /**\n * Pre-reload hooks\n */\n beforeReload: z.array(z.string()).optional()\n .describe('Hook names to call before reload'),\n \n /**\n * Post-reload hooks\n */\n afterReload: z.array(z.string()).optional()\n .describe('Hook names to call after reload'),\n});\n\n/**\n * Graceful Degradation Configuration\n * Defines how plugin degrades when dependencies fail\n */\nexport const GracefulDegradationSchema = z.object({\n /**\n * Enable graceful degradation\n */\n enabled: z.boolean().default(true),\n \n /**\n * Fallback mode when dependencies fail\n */\n fallbackMode: z.enum([\n 'minimal', // Provide minimal functionality\n 'cached', // Use cached data\n 'readonly', // Allow read-only operations\n 'offline', // Offline mode with local data\n 'disabled', // Disable plugin functionality\n ]).default('minimal'),\n \n /**\n * Critical dependencies that must be available\n */\n criticalDependencies: z.array(z.string()).optional()\n .describe('Plugin IDs that are required for operation'),\n \n /**\n * Optional dependencies that can fail\n */\n optionalDependencies: z.array(z.string()).optional()\n .describe('Plugin IDs that are nice to have but not required'),\n \n /**\n * Feature flags for degraded mode\n */\n degradedFeatures: z.array(z.object({\n feature: z.string().describe('Feature name'),\n enabled: z.boolean().describe('Whether feature is available in degraded mode'),\n reason: z.string().optional(),\n })).optional(),\n \n /**\n * Automatic recovery attempts\n */\n autoRecovery: z.object({\n enabled: z.boolean().default(true),\n retryInterval: z.number().int().min(1000).default(60000)\n .describe('Interval between recovery attempts (ms)'),\n maxAttempts: z.number().int().min(0).default(5)\n .describe('Maximum recovery attempts before giving up'),\n }).optional(),\n});\n\n/**\n * Plugin Update Strategy\n * Defines how plugin handles version updates\n */\nexport const PluginUpdateStrategySchema = z.object({\n /**\n * Update mode\n */\n mode: z.enum([\n 'manual', // Manual updates only\n 'automatic', // Automatic updates\n 'scheduled', // Scheduled update windows\n 'rolling', // Rolling updates with zero downtime\n ]).default('manual'),\n \n /**\n * Version constraints for automatic updates\n */\n autoUpdateConstraints: z.object({\n major: z.boolean().default(false).describe('Allow major version updates'),\n minor: z.boolean().default(true).describe('Allow minor version updates'),\n patch: z.boolean().default(true).describe('Allow patch version updates'),\n }).optional(),\n \n /**\n * Update schedule (for scheduled mode)\n */\n schedule: z.object({\n /**\n * Cron expression for update window\n */\n cron: z.string().optional(),\n \n /**\n * Timezone for schedule\n */\n timezone: z.string().default('UTC'),\n \n /**\n * Maintenance window duration in minutes\n */\n maintenanceWindow: z.number().int().min(1).default(60),\n }).optional(),\n \n /**\n * Rollback configuration\n */\n rollback: z.object({\n enabled: z.boolean().default(true),\n \n /**\n * Automatic rollback on failure\n */\n automatic: z.boolean().default(true),\n \n /**\n * Keep N previous versions for rollback\n */\n keepVersions: z.number().int().min(1).default(3),\n \n /**\n * Rollback timeout in milliseconds\n */\n timeout: z.number().int().min(1000).default(30000),\n }).optional(),\n \n /**\n * Pre-update validation\n */\n validation: z.object({\n /**\n * Run compatibility checks before update\n */\n checkCompatibility: z.boolean().default(true),\n \n /**\n * Run tests before applying update\n */\n runTests: z.boolean().default(false),\n \n /**\n * Test suite to run\n */\n testSuite: z.string().optional(),\n }).optional(),\n});\n\n/**\n * Plugin State Snapshot\n * Captures plugin state for preservation during updates/reloads\n */\nexport const PluginStateSnapshotSchema = z.object({\n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Version at time of snapshot\n */\n version: z.string(),\n \n /**\n * Snapshot timestamp\n */\n timestamp: z.string().datetime(),\n \n /**\n * Serialized state data\n */\n state: z.record(z.string(), z.any()),\n \n /**\n * State metadata\n */\n metadata: z.object({\n checksum: z.string().optional().describe('State checksum for verification'),\n compressed: z.boolean().default(false),\n encryption: z.string().optional().describe('Encryption algorithm if encrypted'),\n }).optional(),\n});\n\n/**\n * Advanced Plugin Lifecycle Configuration\n * Complete configuration for advanced lifecycle management\n */\nexport const AdvancedPluginLifecycleConfigSchema = z.object({\n /**\n * Health monitoring configuration\n */\n health: PluginHealthCheckSchema.optional(),\n \n /**\n * Hot reload configuration\n */\n hotReload: HotReloadConfigSchema.optional(),\n \n /**\n * Graceful degradation configuration\n */\n degradation: GracefulDegradationSchema.optional(),\n \n /**\n * Update strategy\n */\n updates: PluginUpdateStrategySchema.optional(),\n \n /**\n * Resource limits\n */\n resources: z.object({\n maxMemory: z.number().int().optional().describe('Maximum memory in bytes'),\n maxCpu: z.number().min(0).max(100).optional().describe('Maximum CPU percentage'),\n maxConnections: z.number().int().optional().describe('Maximum concurrent connections'),\n timeout: z.number().int().optional().describe('Operation timeout in milliseconds'),\n }).optional(),\n \n /**\n * Monitoring and observability\n */\n observability: z.object({\n enableMetrics: z.boolean().default(true),\n enableTracing: z.boolean().default(true),\n enableProfiling: z.boolean().default(false),\n metricsInterval: z.number().int().min(1000).default(60000)\n .describe('Metrics collection interval in ms'),\n }).optional(),\n});\n\n// Export types\nexport type PluginHealthStatus = z.infer<typeof PluginHealthStatusSchema>;\nexport type PluginHealthCheck = z.infer<typeof PluginHealthCheckSchema>;\nexport type PluginHealthReport = z.infer<typeof PluginHealthReportSchema>;\nexport type DistributedStateConfig = z.infer<typeof DistributedStateConfigSchema>;\nexport type HotReloadConfig = z.infer<typeof HotReloadConfigSchema>;\nexport type GracefulDegradation = z.infer<typeof GracefulDegradationSchema>;\nexport type PluginUpdateStrategy = z.infer<typeof PluginUpdateStrategySchema>;\nexport type PluginStateSnapshot = z.infer<typeof PluginStateSnapshotSchema>;\nexport type AdvancedPluginLifecycleConfig = z.infer<typeof AdvancedPluginLifecycleConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * Plugin Lifecycle Events Protocol\n * \n * Zod schemas for plugin lifecycle event data structures.\n * These schemas align with the IPluginLifecycleEvents contract interface.\n * \n * Following ObjectStack \"Zod First\" principle - all data structures\n * must have Zod schemas for runtime validation and JSON Schema generation.\n */\n\n// ============================================================================\n// Event Payload Schemas\n// ============================================================================\n\n/**\n * Event Phase Enum\n * Lifecycle phase where an error occurred\n */\nexport const EventPhaseSchema = z.enum(['init', 'start', 'destroy'])\n .describe('Plugin lifecycle phase');\n\nexport type EventPhase = z.infer<typeof EventPhaseSchema>;\n\n/**\n * Plugin Event Base Schema\n * Common fields for all plugin events\n */\nexport const PluginEventBaseSchema = z.object({\n /**\n * Plugin name\n */\n pluginName: z.string().describe('Name of the plugin'),\n \n /**\n * Event timestamp (Unix milliseconds)\n */\n timestamp: z.number().int().describe('Unix timestamp in milliseconds when event occurred'),\n});\n\n/**\n * Plugin Registered Event Schema\n * \n * @example\n * {\n * \"pluginName\": \"crm-plugin\",\n * \"timestamp\": 1706659200000,\n * \"version\": \"1.0.0\"\n * }\n */\nexport const PluginRegisteredEventSchema = PluginEventBaseSchema.extend({\n /**\n * Plugin version (optional)\n */\n version: z.string().optional().describe('Plugin version'),\n});\n\nexport type PluginRegisteredEvent = z.infer<typeof PluginRegisteredEventSchema>;\n\n/**\n * Plugin Lifecycle Phase Event Schema\n * For init, start, destroy phases\n * \n * @example\n * {\n * \"pluginName\": \"crm-plugin\",\n * \"timestamp\": 1706659200000,\n * \"duration\": 1250,\n * \"phase\": \"init\"\n * }\n */\nexport const PluginLifecyclePhaseEventSchema = PluginEventBaseSchema.extend({\n /**\n * Duration of the phase (milliseconds)\n */\n duration: z.number().min(0).optional().describe('Duration of the lifecycle phase in milliseconds'),\n \n /**\n * Lifecycle phase\n */\n phase: EventPhaseSchema.optional().describe('Lifecycle phase'),\n});\n\nexport type PluginLifecyclePhaseEvent = z.infer<typeof PluginLifecyclePhaseEventSchema>;\n\n/**\n * Plugin Error Event Schema\n * When a plugin encounters an error\n * \n * @example\n * {\n * \"pluginName\": \"crm-plugin\",\n * \"timestamp\": 1706659200000,\n * \"error\": Error(\"Connection failed\"),\n * \"phase\": \"start\",\n * \"errorMessage\": \"Connection failed\",\n * \"errorStack\": \"Error: Connection failed\\n at ...\"\n * }\n */\nexport const PluginErrorEventSchema = PluginEventBaseSchema.extend({\n /**\n * Error object\n */\n error: z.instanceof(Error).describe('Error object'),\n \n /**\n * Lifecycle phase where error occurred\n */\n phase: EventPhaseSchema.describe('Lifecycle phase where error occurred'),\n \n /**\n * Error message (for serialization)\n */\n errorMessage: z.string().optional().describe('Error message'),\n \n /**\n * Error stack trace (for debugging)\n */\n errorStack: z.string().optional().describe('Error stack trace'),\n});\n\nexport type PluginErrorEvent = z.infer<typeof PluginErrorEventSchema>;\n\n// ============================================================================\n// Service Event Schemas\n// ============================================================================\n\n/**\n * Service Registered Event Schema\n * \n * @example\n * {\n * \"serviceName\": \"database\",\n * \"timestamp\": 1706659200000,\n * \"serviceType\": \"IDataEngine\"\n * }\n */\nexport const ServiceRegisteredEventSchema = z.object({\n /**\n * Service name\n */\n serviceName: z.string().describe('Name of the registered service'),\n \n /**\n * Event timestamp (Unix milliseconds)\n */\n timestamp: z.number().int().describe('Unix timestamp in milliseconds'),\n \n /**\n * Service type (optional)\n */\n serviceType: z.string().optional().describe('Type or interface name of the service'),\n});\n\nexport type ServiceRegisteredEvent = z.infer<typeof ServiceRegisteredEventSchema>;\n\n/**\n * Service Unregistered Event Schema\n * \n * @example\n * {\n * \"serviceName\": \"database\",\n * \"timestamp\": 1706659200000\n * }\n */\nexport const ServiceUnregisteredEventSchema = z.object({\n /**\n * Service name\n */\n serviceName: z.string().describe('Name of the unregistered service'),\n \n /**\n * Event timestamp (Unix milliseconds)\n */\n timestamp: z.number().int().describe('Unix timestamp in milliseconds'),\n});\n\nexport type ServiceUnregisteredEvent = z.infer<typeof ServiceUnregisteredEventSchema>;\n\n// ============================================================================\n// Hook Event Schemas\n// ============================================================================\n\n/**\n * Hook Registered Event Schema\n * \n * @example\n * {\n * \"hookName\": \"data.beforeInsert\",\n * \"timestamp\": 1706659200000,\n * \"handlerCount\": 3\n * }\n */\nexport const HookRegisteredEventSchema = z.object({\n /**\n * Hook name\n */\n hookName: z.string().describe('Name of the hook'),\n \n /**\n * Event timestamp (Unix milliseconds)\n */\n timestamp: z.number().int().describe('Unix timestamp in milliseconds'),\n \n /**\n * Number of handlers registered for this hook\n */\n handlerCount: z.number().int().min(0).describe('Number of handlers registered for this hook'),\n});\n\nexport type HookRegisteredEvent = z.infer<typeof HookRegisteredEventSchema>;\n\n/**\n * Hook Triggered Event Schema\n * \n * @example\n * {\n * \"hookName\": \"data.beforeInsert\",\n * \"timestamp\": 1706659200000,\n * \"args\": [{ \"object\": \"customer\", \"data\": {...} }],\n * \"handlerCount\": 3\n * }\n */\nexport const HookTriggeredEventSchema = z.object({\n /**\n * Hook name\n */\n hookName: z.string().describe('Name of the hook'),\n \n /**\n * Event timestamp (Unix milliseconds)\n */\n timestamp: z.number().int().describe('Unix timestamp in milliseconds'),\n \n /**\n * Arguments passed to the hook\n */\n args: z.array(z.any()).describe('Arguments passed to the hook handlers'),\n \n /**\n * Number of handlers that will handle this event\n */\n handlerCount: z.number().int().min(0).optional().describe('Number of handlers that will handle this event'),\n});\n\nexport type HookTriggeredEvent = z.infer<typeof HookTriggeredEventSchema>;\n\n// ============================================================================\n// Kernel Event Schemas\n// ============================================================================\n\n/**\n * Kernel Event Base Schema\n * Common fields for kernel events\n */\nexport const KernelEventBaseSchema = z.object({\n /**\n * Event timestamp (Unix milliseconds)\n */\n timestamp: z.number().int().describe('Unix timestamp in milliseconds'),\n});\n\n/**\n * Kernel Ready Event Schema\n * \n * @example\n * {\n * \"timestamp\": 1706659200000,\n * \"duration\": 5400,\n * \"pluginCount\": 12\n * }\n */\nexport const KernelReadyEventSchema = KernelEventBaseSchema.extend({\n /**\n * Total initialization duration (milliseconds)\n */\n duration: z.number().min(0).optional().describe('Total initialization duration in milliseconds'),\n \n /**\n * Number of plugins initialized\n */\n pluginCount: z.number().int().min(0).optional().describe('Number of plugins initialized'),\n});\n\nexport type KernelReadyEvent = z.infer<typeof KernelReadyEventSchema>;\n\n/**\n * Kernel Shutdown Event Schema\n * \n * @example\n * {\n * \"timestamp\": 1706659200000,\n * \"reason\": \"SIGTERM received\"\n * }\n */\nexport const KernelShutdownEventSchema = KernelEventBaseSchema.extend({\n /**\n * Shutdown reason (optional)\n */\n reason: z.string().optional().describe('Reason for kernel shutdown'),\n});\n\nexport type KernelShutdownEvent = z.infer<typeof KernelShutdownEventSchema>;\n\n// ============================================================================\n// Event Type Registry\n// ============================================================================\n\n/**\n * Plugin Lifecycle Event Type Enum\n * All possible plugin lifecycle event types\n */\nexport const PluginLifecycleEventType = z.enum([\n 'kernel:ready',\n 'kernel:shutdown',\n 'kernel:before-init',\n 'kernel:after-init',\n 'plugin:registered',\n 'plugin:before-init',\n 'plugin:init',\n 'plugin:after-init',\n 'plugin:before-start',\n 'plugin:started',\n 'plugin:after-start',\n 'plugin:before-destroy',\n 'plugin:destroyed',\n 'plugin:after-destroy',\n 'plugin:error',\n 'service:registered',\n 'service:unregistered',\n 'hook:registered',\n 'hook:triggered',\n]).describe('Plugin lifecycle event type');\n\nexport type PluginLifecycleEventType = z.infer<typeof PluginLifecycleEventType>;\n","import { z } from 'zod';\n\n/**\n * # Plugin Security and Sandboxing Protocol\n * \n * Defines comprehensive security mechanisms for plugin isolation, permission\n * management, and threat protection in the ObjectStack ecosystem.\n * \n * Features:\n * - Fine-grained permission system\n * - Resource access control\n * - Sandboxing and isolation\n * - Security scanning and verification\n * - Runtime security monitoring\n */\n\n/**\n * Permission Scope\n * Defines the scope of a permission\n */\nexport const PermissionScopeSchema = z.enum([\n 'global', // Applies to entire system\n 'tenant', // Applies to specific tenant\n 'user', // Applies to specific user\n 'resource', // Applies to specific resource\n 'plugin', // Applies within plugin boundaries\n]).describe('Scope of permission application');\n\n/**\n * Permission Action\n * Standard CRUD + extended actions\n */\nexport const PermissionActionSchema = z.enum([\n 'create', // Create new resources\n 'read', // Read existing resources\n 'update', // Update existing resources\n 'delete', // Delete resources\n 'execute', // Execute operations/functions\n 'manage', // Full management rights\n 'configure', // Configuration changes\n 'share', // Share with others\n 'export', // Export data\n 'import', // Import data\n 'admin', // Administrative access\n]).describe('Type of action being permitted');\n\n/**\n * Resource Type\n * Types of resources that can be accessed\n */\nexport const ResourceTypeSchema = z.enum([\n 'data.object', // ObjectQL objects\n 'data.record', // Individual records\n 'data.field', // Specific fields\n 'ui.view', // UI views\n 'ui.dashboard', // Dashboards\n 'ui.report', // Reports\n 'system.config', // System configuration\n 'system.plugin', // Other plugins\n 'system.api', // API endpoints\n 'system.service', // System services\n 'storage.file', // File storage\n 'storage.database', // Database access\n 'network.http', // HTTP requests\n 'network.websocket', // WebSocket connections\n 'process.spawn', // Process spawning\n 'process.env', // Environment variables\n]).describe('Type of resource being accessed');\n\n/**\n * Permission Definition\n * Defines a single permission requirement\n */\nexport const PermissionSchema = z.object({\n /**\n * Permission identifier\n */\n id: z.string().describe('Unique permission identifier'),\n \n /**\n * Resource type\n */\n resource: ResourceTypeSchema,\n \n /**\n * Allowed actions\n */\n actions: z.array(PermissionActionSchema),\n \n /**\n * Permission scope\n */\n scope: PermissionScopeSchema.default('plugin'),\n \n /**\n * Resource filter\n */\n filter: z.object({\n /**\n * Specific resource IDs\n */\n resourceIds: z.array(z.string()).optional(),\n \n /**\n * Filter condition\n */\n condition: z.string().optional().describe('Filter expression (e.g., owner = currentUser)'),\n \n /**\n * Field-level access\n */\n fields: z.array(z.string()).optional().describe('Allowed fields for data resources'),\n }).optional(),\n \n /**\n * Human-readable description\n */\n description: z.string(),\n \n /**\n * Whether this permission is required or optional\n */\n required: z.boolean().default(true),\n \n /**\n * Justification for permission\n */\n justification: z.string().optional().describe('Why this permission is needed'),\n});\n\n/**\n * Permission Set\n * Collection of permissions for a plugin\n */\nexport const PermissionSetSchema = z.object({\n /**\n * All permissions required by plugin\n */\n permissions: z.array(PermissionSchema),\n \n /**\n * Permission groups for easier management\n */\n groups: z.array(z.object({\n name: z.string().describe('Group name'),\n description: z.string(),\n permissions: z.array(z.string()).describe('Permission IDs in this group'),\n })).optional(),\n \n /**\n * Default grant strategy\n */\n defaultGrant: z.enum([\n 'prompt', // Always prompt user\n 'allow', // Allow by default\n 'deny', // Deny by default\n 'inherit', // Inherit from parent\n ]).default('prompt'),\n});\n\n/**\n * Runtime Configuration\n * Defines the execution environment for plugin isolation\n */\nexport const RuntimeConfigSchema = z.object({\n /**\n * Runtime engine type\n */\n engine: z.enum([\n 'v8-isolate', // V8 isolate-based isolation (lightweight, fast)\n 'wasm', // WebAssembly-based isolation (secure, portable)\n 'container', // Container-based isolation (Docker, podman)\n 'process', // Process-based isolation (traditional)\n ]).default('v8-isolate')\n .describe('Execution environment engine'),\n \n /**\n * Engine-specific configuration\n */\n engineConfig: z.object({\n /**\n * WASM-specific settings (when engine is \"wasm\")\n */\n wasm: z.object({\n /**\n * Maximum memory pages (64KB per page)\n */\n maxMemoryPages: z.number().int().min(1).max(65536).optional()\n .describe('Maximum WASM memory pages (64KB each)'),\n \n /**\n * Instruction execution limit\n */\n instructionLimit: z.number().int().min(1).optional()\n .describe('Maximum instructions before timeout'),\n \n /**\n * Enable SIMD instructions\n */\n enableSimd: z.boolean().default(false)\n .describe('Enable WebAssembly SIMD support'),\n \n /**\n * Enable threads\n */\n enableThreads: z.boolean().default(false)\n .describe('Enable WebAssembly threads'),\n \n /**\n * Enable bulk memory operations\n */\n enableBulkMemory: z.boolean().default(true)\n .describe('Enable bulk memory operations'),\n }).optional(),\n \n /**\n * Container-specific settings (when engine is \"container\")\n */\n container: z.object({\n /**\n * Container image\n */\n image: z.string().optional()\n .describe('Container image to use'),\n \n /**\n * Container runtime\n */\n runtime: z.enum(['docker', 'podman', 'containerd']).default('docker'),\n \n /**\n * Resource limits\n */\n resources: z.object({\n cpuLimit: z.string().optional().describe('CPU limit (e.g., \"0.5\", \"2\")'),\n memoryLimit: z.string().optional().describe('Memory limit (e.g., \"512m\", \"1g\")'),\n }).optional(),\n \n /**\n * Network mode\n */\n networkMode: z.enum(['none', 'bridge', 'host']).default('bridge'),\n }).optional(),\n \n /**\n * V8 Isolate-specific settings (when engine is \"v8-isolate\")\n */\n v8Isolate: z.object({\n /**\n * Heap size limit in MB\n */\n heapSizeMb: z.number().int().min(1).optional(),\n \n /**\n * Enable snapshot\n */\n enableSnapshot: z.boolean().default(true),\n }).optional(),\n }).optional(),\n \n /**\n * General resource limits (applies to all engines)\n */\n resourceLimits: z.object({\n /**\n * Maximum memory in bytes\n */\n maxMemory: z.number().int().optional()\n .describe('Maximum memory allocation'),\n \n /**\n * Maximum CPU percentage\n */\n maxCpu: z.number().min(0).max(100).optional()\n .describe('Maximum CPU usage percentage'),\n \n /**\n * Execution timeout in milliseconds\n */\n timeout: z.number().int().min(0).optional()\n .describe('Maximum execution time'),\n }).optional(),\n});\n\n/**\n * Sandbox Configuration\n * Defines how plugin is isolated\n */\nexport const SandboxConfigSchema = z.object({\n /**\n * Enable sandboxing\n */\n enabled: z.boolean().default(true),\n \n /**\n * Sandboxing level\n */\n level: z.enum([\n 'none', // No sandboxing\n 'minimal', // Basic isolation\n 'standard', // Standard sandboxing\n 'strict', // Strict isolation\n 'paranoid', // Maximum isolation\n ]).default('standard'),\n \n /**\n * Runtime environment configuration\n */\n runtime: RuntimeConfigSchema.optional()\n .describe('Execution environment and isolation settings'),\n \n /**\n * File system access\n */\n filesystem: z.object({\n mode: z.enum(['none', 'readonly', 'restricted', 'full']).default('restricted'),\n allowedPaths: z.array(z.string()).optional().describe('Whitelisted paths'),\n deniedPaths: z.array(z.string()).optional().describe('Blacklisted paths'),\n maxFileSize: z.number().int().optional().describe('Maximum file size in bytes'),\n }).optional(),\n \n /**\n * Network access\n */\n network: z.object({\n mode: z.enum(['none', 'local', 'restricted', 'full']).default('restricted'),\n allowedHosts: z.array(z.string()).optional().describe('Whitelisted hosts'),\n deniedHosts: z.array(z.string()).optional().describe('Blacklisted hosts'),\n allowedPorts: z.array(z.number()).optional().describe('Allowed port numbers'),\n maxConnections: z.number().int().optional(),\n }).optional(),\n \n /**\n * Process execution\n */\n process: z.object({\n allowSpawn: z.boolean().default(false).describe('Allow spawning child processes'),\n allowedCommands: z.array(z.string()).optional().describe('Whitelisted commands'),\n timeout: z.number().int().optional().describe('Process timeout in ms'),\n }).optional(),\n \n /**\n * Memory limits\n */\n memory: z.object({\n maxHeap: z.number().int().optional().describe('Maximum heap size in bytes'),\n maxStack: z.number().int().optional().describe('Maximum stack size in bytes'),\n }).optional(),\n \n /**\n * CPU limits\n */\n cpu: z.object({\n maxCpuPercent: z.number().min(0).max(100).optional(),\n maxThreads: z.number().int().optional(),\n }).optional(),\n \n /**\n * Environment variables\n */\n environment: z.object({\n mode: z.enum(['none', 'readonly', 'restricted', 'full']).default('readonly'),\n allowedVars: z.array(z.string()).optional(),\n deniedVars: z.array(z.string()).optional(),\n }).optional(),\n});\n\n/**\n * Security Vulnerability\n * Represents a known security vulnerability\n */\nexport const SecurityVulnerabilitySchema = z.object({\n /**\n * CVE identifier\n */\n cve: z.string().optional(),\n \n /**\n * Vulnerability identifier\n */\n id: z.string(),\n \n /**\n * Severity level\n */\n severity: z.enum(['critical', 'high', 'medium', 'low', 'info']),\n \n /**\n * Category (e.g., SAST, DAST, Dependency)\n */\n category: z.string().optional(),\n\n /**\n * Title\n */\n title: z.string(),\n \n /**\n * Location of the vulnerability\n */\n location: z.string().optional(),\n\n /**\n * Remediation steps\n */\n remediation: z.string().optional(),\n\n /**\n * Description\n */\n description: z.string(),\n \n /**\n * Affected versions\n */\n affectedVersions: z.array(z.string()),\n \n /**\n * Fixed in versions\n */\n fixedIn: z.array(z.string()).optional(),\n \n /**\n * CVSS score\n */\n cvssScore: z.number().min(0).max(10).optional(),\n \n /**\n * Exploit availability\n */\n exploitAvailable: z.boolean().default(false),\n \n /**\n * Patch available\n */\n patchAvailable: z.boolean().default(false),\n \n /**\n * Workaround\n */\n workaround: z.string().optional(),\n \n /**\n * References\n */\n references: z.array(z.string()).optional(),\n \n /**\n * Discovered date\n */\n discoveredDate: z.string().datetime().optional(),\n \n /**\n * Published date\n */\n publishedDate: z.string().datetime().optional(),\n});\n\n/**\n * Security Scan Result\n * Result of security scanning\n */\nexport const SecurityScanResultSchema = z.object({\n /**\n * Scan timestamp\n */\n timestamp: z.string().datetime(),\n \n /**\n * Scanner information\n */\n scanner: z.object({\n name: z.string(),\n version: z.string(),\n }),\n \n /**\n * Overall status\n */\n status: z.enum(['passed', 'failed', 'warning']),\n \n /**\n * Vulnerabilities found\n */\n vulnerabilities: z.array(SecurityVulnerabilitySchema).optional(),\n \n /**\n * Code quality issues\n */\n codeIssues: z.array(z.object({\n severity: z.enum(['error', 'warning', 'info']),\n type: z.string().describe('Issue type (e.g., sql-injection, xss)'),\n file: z.string(),\n line: z.number().int().optional(),\n message: z.string(),\n suggestion: z.string().optional(),\n })).optional(),\n \n /**\n * Dependency vulnerabilities\n */\n dependencyVulnerabilities: z.array(z.object({\n package: z.string(),\n version: z.string(),\n vulnerability: SecurityVulnerabilitySchema,\n })).optional(),\n \n /**\n * License compliance\n */\n licenseCompliance: z.object({\n status: z.enum(['compliant', 'non-compliant', 'unknown']),\n issues: z.array(z.object({\n package: z.string(),\n license: z.string(),\n reason: z.string(),\n })).optional(),\n }).optional(),\n \n /**\n * Summary statistics\n */\n summary: z.object({\n totalVulnerabilities: z.number().int(),\n criticalCount: z.number().int(),\n highCount: z.number().int(),\n mediumCount: z.number().int(),\n lowCount: z.number().int(),\n infoCount: z.number().int(),\n }),\n});\n\n/**\n * Security Policy\n * Defines security policies for plugin\n */\nexport const SecurityPolicySchema = z.object({\n /**\n * Content Security Policy\n */\n csp: z.object({\n directives: z.record(z.string(), z.array(z.string())).optional(),\n reportOnly: z.boolean().default(false),\n }).optional(),\n \n /**\n * CORS policy\n */\n cors: z.object({\n allowedOrigins: z.array(z.string()),\n allowedMethods: z.array(z.string()),\n allowedHeaders: z.array(z.string()),\n allowCredentials: z.boolean().default(false),\n maxAge: z.number().int().optional(),\n }).optional(),\n \n /**\n * Rate limiting\n */\n rateLimit: z.object({\n enabled: z.boolean().default(true),\n maxRequests: z.number().int(),\n windowMs: z.number().int().describe('Time window in milliseconds'),\n strategy: z.enum(['fixed', 'sliding', 'token-bucket']).default('sliding'),\n }).optional(),\n \n /**\n * Authentication requirements\n */\n authentication: z.object({\n required: z.boolean().default(true),\n methods: z.array(z.enum(['jwt', 'oauth2', 'api-key', 'session', 'certificate'])),\n tokenExpiration: z.number().int().optional().describe('Token expiration in seconds'),\n }).optional(),\n \n /**\n * Encryption requirements\n */\n encryption: z.object({\n dataAtRest: z.boolean().default(false).describe('Encrypt data at rest'),\n dataInTransit: z.boolean().default(true).describe('Enforce HTTPS/TLS'),\n algorithm: z.string().optional().describe('Encryption algorithm'),\n minKeyLength: z.number().int().optional().describe('Minimum key length in bits'),\n }).optional(),\n \n /**\n * Audit logging\n */\n auditLog: z.object({\n enabled: z.boolean().default(true),\n events: z.array(z.string()).optional().describe('Events to log'),\n retention: z.number().int().optional().describe('Log retention in days'),\n }).optional(),\n});\n\n/**\n * Plugin Trust Level\n * Indicates trust level of plugin\n */\nexport const PluginTrustLevelSchema = z.enum([\n 'verified', // Official/verified plugin\n 'trusted', // Trusted third-party\n 'community', // Community plugin\n 'untrusted', // Unverified plugin\n 'blocked', // Blocked/malicious\n]).describe('Trust level of the plugin');\n\n/**\n * Plugin Security Manifest\n * Complete security information for plugin\n */\nexport const PluginSecurityManifestSchema = z.object({\n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Trust level\n */\n trustLevel: PluginTrustLevelSchema,\n \n /**\n * Required permissions\n */\n permissions: PermissionSetSchema,\n \n /**\n * Sandbox configuration\n */\n sandbox: SandboxConfigSchema,\n \n /**\n * Security policy\n */\n policy: SecurityPolicySchema.optional(),\n \n /**\n * Security scan results\n */\n scanResults: z.array(SecurityScanResultSchema).optional(),\n \n /**\n * Known vulnerabilities\n */\n vulnerabilities: z.array(SecurityVulnerabilitySchema).optional(),\n \n /**\n * Code signing\n */\n codeSigning: z.object({\n signed: z.boolean(),\n signature: z.string().optional(),\n certificate: z.string().optional(),\n algorithm: z.string().optional(),\n timestamp: z.string().datetime().optional(),\n }).optional(),\n \n /**\n * Security certifications\n */\n certifications: z.array(z.object({\n name: z.string().describe('Certification name (e.g., SOC 2, ISO 27001)'),\n issuer: z.string(),\n issuedDate: z.string().datetime(),\n expiryDate: z.string().datetime().optional(),\n certificateUrl: z.string().url().optional(),\n })).optional(),\n \n /**\n * Security contact\n */\n securityContact: z.object({\n email: z.string().email().optional(),\n url: z.string().url().optional(),\n pgpKey: z.string().optional(),\n }).optional(),\n \n /**\n * Vulnerability disclosure policy\n */\n vulnerabilityDisclosure: z.object({\n policyUrl: z.string().url().optional(),\n responseTime: z.number().int().optional().describe('Expected response time in hours'),\n bugBounty: z.boolean().default(false),\n }).optional(),\n});\n\n// Export types\nexport type PermissionScope = z.infer<typeof PermissionScopeSchema>;\nexport type PermissionAction = z.infer<typeof PermissionActionSchema>;\nexport type ResourceType = z.infer<typeof ResourceTypeSchema>;\nexport type Permission = z.infer<typeof PermissionSchema>;\nexport type PermissionSet = z.infer<typeof PermissionSetSchema>;\nexport type RuntimeConfig = z.infer<typeof RuntimeConfigSchema>;\nexport type SandboxConfig = z.infer<typeof SandboxConfigSchema>;\nexport type SecurityVulnerability = z.infer<typeof SecurityVulnerabilitySchema>;\nexport type SecurityScanResult = z.infer<typeof SecurityScanResultSchema>;\nexport type SecurityPolicy = z.infer<typeof SecurityPolicySchema>;\nexport type PluginTrustLevel = z.infer<typeof PluginTrustLevelSchema>;\nexport type PluginSecurityManifest = z.infer<typeof PluginSecurityManifestSchema>;\n","import { z } from 'zod';\n\n/**\n * ObjectStack Plugin Structure Standards (OPS)\n * \n * Formal Zod definitions for the Plugin Directory Structure and File Naming conventions.\n * This can be used by the CLI or IDE extensions to lint project structure.\n * \n * @see PLUGIN_STANDARDS.md\n */\n\n// REGEX: snake_case identifiers\nconst SNAKE_CASE_REGEX = /^[a-z][a-z0-9_]*$/;\n\n// REGEX: Standard File Suffixes\nconst OPS_FILE_SUFFIX_REGEX = /\\.(object|field|trigger|function|view|page|dashboard|flow|app|router|service)\\.ts$/;\n\n/**\n * Validates a single file path against OPS Naming Conventions.\n * \n * @example Valid Paths\n * - \"src/crm/lead.object.ts\"\n * - \"src/finance/invoice_payment.trigger.ts\"\n * - \"src/index.ts\"\n * \n * @example Invalid Paths\n * - \"src/CRM/LeadObject.ts\" (PascalCase)\n * - \"src/utils/helper.js\" (Wrong extension)\n */\nexport const OpsFilePathSchema = z.string().superRefine((path, ctx) => {\n // 1. Must be in src/\n if (!path.startsWith('src/')) {\n // Non-source files (package.json, config) are ignored by this specific validator\n // or handled separately.\n return; \n }\n\n const parts = path.split('/');\n \n // 2. Validate Domain Directory (src/[domain])\n if (parts.length > 2) {\n const domainDir = parts[1];\n if (!SNAKE_CASE_REGEX.test(domainDir)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Domain directory '${domainDir}' must be lowercase snake_case`\n });\n }\n }\n\n // 3. Validate Filename suffix\n const filename = parts[parts.length - 1];\n \n // Skip index.ts and utility files if they don't match the specific resource pattern\n // But strict OPS encourages explicit suffixes for resources.\n if (filename === 'index.ts' || filename === 'main.ts') return;\n\n if (!SNAKE_CASE_REGEX.test(filename.split('.')[0])) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Filename '${filename}' base name must be lowercase snake_case`\n });\n }\n\n if (!OPS_FILE_SUFFIX_REGEX.test(filename)) {\n // We allow other files, but we warn or mark them as non-standard resources\n // For strict mode:\n // ctx.addIssue({\n // code: z.ZodIssueCode.custom,\n // message: `Filename '${filename}' does not end with a valid semantic suffix (.object.ts, .view.ts, etc.)`\n // });\n }\n});\n\n/**\n * Schema for a \"Scanned Module\" structure.\n * Represents the contents of a domain folder.\n */\nexport const OpsDomainModuleSchema = z.object({\n name: z.string().regex(SNAKE_CASE_REGEX),\n files: z.array(z.string()),\n}).superRefine((module, ctx) => {\n // Rule: Must have an index.ts\n if (!module.files.includes('index.ts')) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Module '${module.name}' is missing an 'index.ts' entry point.`\n });\n }\n});\n\n/**\n * Schema for a full Plugin Project Layout\n */\nexport const OpsPluginStructureSchema = z.object({\n root: z.string(),\n files: z.array(z.string()).describe('List of all file paths relative to root'),\n}).superRefine((project, ctx) => {\n // Check for configuration file\n if (!project.files.includes('objectstack.config.ts')) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Missing 'objectstack.config.ts' configuration file.\"\n });\n }\n \n // Validate each source file individually\n project.files.filter(f => f.startsWith('src/')).forEach(file => {\n const result = OpsFilePathSchema.safeParse(file);\n if (!result.success) {\n result.error.issues.forEach(issue => {\n ctx.addIssue({ ...issue, path: [file] });\n })\n }\n });\n});\n","import { z } from 'zod';\n\n/**\n * Plugin Validator Protocol\n * \n * Zod schemas for plugin validation data structures.\n * These schemas align with the IPluginValidator contract interface.\n * \n * Following ObjectStack \"Zod First\" principle - all data structures\n * must have Zod schemas for runtime validation and JSON Schema generation.\n */\n\n// ============================================================================\n// Validation Result Schemas\n// ============================================================================\n\n/**\n * Validation Error Schema\n * Represents a single validation error\n * \n * @example\n * {\n * \"field\": \"version\",\n * \"message\": \"Invalid semver format\",\n * \"code\": \"INVALID_VERSION\"\n * }\n */\nexport const ValidationErrorSchema = z.object({\n /**\n * Field that failed validation\n */\n field: z.string().describe('Field name that failed validation'),\n \n /**\n * Human-readable error message\n */\n message: z.string().describe('Human-readable error message'),\n \n /**\n * Machine-readable error code (optional)\n */\n code: z.string().optional().describe('Machine-readable error code'),\n});\n\nexport type ValidationError = z.infer<typeof ValidationErrorSchema>;\n\n/**\n * Validation Warning Schema\n * Represents a non-fatal validation warning\n * \n * @example\n * {\n * \"field\": \"description\",\n * \"message\": \"Description is empty\",\n * \"code\": \"MISSING_DESCRIPTION\"\n * }\n */\nexport const ValidationWarningSchema = z.object({\n /**\n * Field with warning\n */\n field: z.string().describe('Field name with warning'),\n \n /**\n * Human-readable warning message\n */\n message: z.string().describe('Human-readable warning message'),\n \n /**\n * Machine-readable warning code (optional)\n */\n code: z.string().optional().describe('Machine-readable warning code'),\n});\n\nexport type ValidationWarning = z.infer<typeof ValidationWarningSchema>;\n\n/**\n * Validation Result Schema\n * Result of plugin validation operation\n * \n * @example\n * {\n * \"valid\": false,\n * \"errors\": [{\n * \"field\": \"name\",\n * \"message\": \"Plugin name is required\",\n * \"code\": \"REQUIRED_FIELD\"\n * }],\n * \"warnings\": [{\n * \"field\": \"description\",\n * \"message\": \"Description is recommended\",\n * \"code\": \"MISSING_DESCRIPTION\"\n * }]\n * }\n */\nexport const ValidationResultSchema = z.object({\n /**\n * Whether validation passed\n */\n valid: z.boolean().describe('Whether the plugin passed validation'),\n \n /**\n * Validation errors (if any)\n */\n errors: z.array(ValidationErrorSchema).optional().describe('Validation errors'),\n \n /**\n * Validation warnings (non-fatal issues)\n */\n warnings: z.array(ValidationWarningSchema).optional().describe('Validation warnings'),\n});\n\nexport type ValidationResult = z.infer<typeof ValidationResultSchema>;\n\n// ============================================================================\n// Plugin Metadata Schema\n// ============================================================================\n\n/**\n * Plugin Schema\n * Metadata structure for a plugin\n * \n * This aligns with and extends the existing PluginSchema from plugin.zod.ts\n * \n * @example\n * {\n * \"name\": \"crm-plugin\",\n * \"version\": \"1.0.0\",\n * \"dependencies\": [\"core-plugin\"]\n * }\n */\nexport const PluginMetadataSchema = z.object({\n /**\n * Unique plugin identifier (snake_case)\n */\n name: z.string().min(1).describe('Unique plugin identifier'),\n \n /**\n * Plugin version (semver)\n */\n version: z.string().regex(/^\\d+\\.\\d+\\.\\d+$/).optional().describe('Semantic version (e.g., 1.0.0)'),\n \n /**\n * Plugin dependencies (array of plugin names)\n */\n dependencies: z.array(z.string()).optional().describe('Array of plugin names this plugin depends on'),\n \n /**\n * Plugin signature for cryptographic verification (optional)\n */\n signature: z.string().optional().describe('Cryptographic signature for plugin verification'),\n \n /**\n * Additional plugin metadata\n */\n}).passthrough().describe('Plugin metadata for validation');\n\nexport type PluginMetadata = z.infer<typeof PluginMetadataSchema>;\n","import { z } from 'zod';\n\n/**\n * # Plugin Versioning and Compatibility Protocol\n * \n * Defines comprehensive versioning, compatibility checking, and dependency\n * resolution mechanisms for the plugin ecosystem.\n * \n * Based on semantic versioning (SemVer) with extensions for:\n * - Compatibility matrices\n * - Breaking change detection\n * - Migration paths\n * - Multi-version support\n */\n\n/**\n * Semantic Version Schema\n * Standard SemVer format with optional pre-release and build metadata\n */\nexport const SemanticVersionSchema = z.object({\n major: z.number().int().min(0).describe('Major version (breaking changes)'),\n minor: z.number().int().min(0).describe('Minor version (backward compatible features)'),\n patch: z.number().int().min(0).describe('Patch version (backward compatible fixes)'),\n preRelease: z.string().optional().describe('Pre-release identifier (alpha, beta, rc.1)'),\n build: z.string().optional().describe('Build metadata'),\n}).describe('Semantic version number');\n\n/**\n * Version Constraint Schema\n * Defines version requirements using SemVer ranges\n */\nexport const VersionConstraintSchema = z.union([\n z.string().regex(/^[\\d.]+$/).describe('Exact version: `1.2.3`'),\n z.string().regex(/^\\^[\\d.]+$/).describe('Compatible with: `^1.2.3` (`>=1.2.3 <2.0.0`)'),\n z.string().regex(/^~[\\d.]+$/).describe('Approximately: `~1.2.3` (`>=1.2.3 <1.3.0`)'),\n z.string().regex(/^>=[\\d.]+$/).describe('Greater than or equal: `>=1.2.3`'),\n z.string().regex(/^>[\\d.]+$/).describe('Greater than: `>1.2.3`'),\n z.string().regex(/^<=[\\d.]+$/).describe('Less than or equal: `<=1.2.3`'),\n z.string().regex(/^<[\\d.]+$/).describe('Less than: `<1.2.3`'),\n z.string().regex(/^[\\d.]+ - [\\d.]+$/).describe('Range: `1.2.3 - 2.3.4`'),\n z.literal('*').describe('Any version'),\n z.literal('latest').describe('Latest stable version'),\n]);\n\n/**\n * Compatibility Level\n * Describes the level of compatibility between versions\n */\nexport const CompatibilityLevelSchema = z.enum([\n 'fully-compatible', // 100% compatible, drop-in replacement\n 'backward-compatible', // Backward compatible, new features added\n 'deprecated-compatible', // Compatible but uses deprecated features\n 'breaking-changes', // Breaking changes, migration required\n 'incompatible', // Completely incompatible\n]).describe('Compatibility level between versions');\n\n/**\n * Breaking Change\n * Documents a breaking change in a version\n */\nexport const BreakingChangeSchema = z.object({\n /**\n * Version where the change was introduced\n */\n introducedIn: z.string().describe('Version that introduced this breaking change'),\n \n /**\n * Type of breaking change\n */\n type: z.enum([\n 'api-removed', // API removed\n 'api-renamed', // API renamed\n 'api-signature-changed', // Function signature changed\n 'behavior-changed', // Behavior changed\n 'dependency-changed', // Dependency requirement changed\n 'configuration-changed', // Configuration schema changed\n 'protocol-changed', // Protocol implementation changed\n ]),\n \n /**\n * What was changed\n */\n description: z.string(),\n \n /**\n * Migration guide\n */\n migrationGuide: z.string().optional().describe('How to migrate from old to new'),\n \n /**\n * Deprecated in version\n */\n deprecatedIn: z.string().optional().describe('Version where old API was deprecated'),\n \n /**\n * Will be removed in version\n */\n removedIn: z.string().optional().describe('Version where old API will be removed'),\n \n /**\n * Automated migration available\n */\n automatedMigration: z.boolean().default(false)\n .describe('Whether automated migration tool is available'),\n \n /**\n * Impact severity\n */\n severity: z.enum(['critical', 'major', 'minor']).describe('Impact severity'),\n});\n\n/**\n * Deprecation Notice\n * Information about deprecated features\n */\nexport const DeprecationNoticeSchema = z.object({\n /**\n * Feature or API being deprecated\n */\n feature: z.string().describe('Deprecated feature identifier'),\n \n /**\n * Version when deprecated\n */\n deprecatedIn: z.string(),\n \n /**\n * Planned removal version\n */\n removeIn: z.string().optional(),\n \n /**\n * Reason for deprecation\n */\n reason: z.string(),\n \n /**\n * Recommended alternative\n */\n alternative: z.string().optional().describe('What to use instead'),\n \n /**\n * Migration path\n */\n migrationPath: z.string().optional().describe('How to migrate to alternative'),\n});\n\n/**\n * Compatibility Matrix Entry\n * Maps compatibility between different plugin versions\n */\nexport const CompatibilityMatrixEntrySchema = z.object({\n /**\n * Source version\n */\n from: z.string().describe('Version being upgraded from'),\n \n /**\n * Target version\n */\n to: z.string().describe('Version being upgraded to'),\n \n /**\n * Compatibility level\n */\n compatibility: CompatibilityLevelSchema,\n \n /**\n * Breaking changes list\n */\n breakingChanges: z.array(BreakingChangeSchema).optional(),\n \n /**\n * Migration required\n */\n migrationRequired: z.boolean().default(false),\n \n /**\n * Migration complexity\n */\n migrationComplexity: z.enum(['trivial', 'simple', 'moderate', 'complex', 'major']).optional(),\n \n /**\n * Estimated migration time in hours\n */\n estimatedMigrationTime: z.number().optional(),\n \n /**\n * Migration script available\n */\n migrationScript: z.string().optional().describe('Path to migration script'),\n \n /**\n * Test coverage for migration\n */\n testCoverage: z.number().min(0).max(100).optional()\n .describe('Percentage of migration covered by tests'),\n});\n\n/**\n * Plugin Compatibility Matrix\n * Complete compatibility information for a plugin\n */\nexport const PluginCompatibilityMatrixSchema = z.object({\n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Current version\n */\n currentVersion: z.string(),\n \n /**\n * Compatibility entries\n */\n compatibilityMatrix: z.array(CompatibilityMatrixEntrySchema),\n \n /**\n * Supported versions\n */\n supportedVersions: z.array(z.object({\n version: z.string(),\n supported: z.boolean(),\n endOfLife: z.string().datetime().optional().describe('End of support date'),\n securitySupport: z.boolean().default(false).describe('Still receives security updates'),\n })),\n \n /**\n * Minimum compatible version\n */\n minimumCompatibleVersion: z.string().optional()\n .describe('Oldest version that can be directly upgraded'),\n});\n\n/**\n * Dependency Conflict\n * Represents a conflict in plugin dependencies\n */\nexport const DependencyConflictSchema = z.object({\n /**\n * Type of conflict\n */\n type: z.enum([\n 'version-mismatch', // Different versions required\n 'missing-dependency', // Required dependency not found\n 'circular-dependency', // Circular dependency detected\n 'incompatible-versions', // Incompatible versions required by different plugins\n 'conflicting-interfaces', // Plugins implement conflicting interfaces\n ]),\n \n /**\n * Plugins involved in conflict\n */\n plugins: z.array(z.object({\n pluginId: z.string(),\n version: z.string(),\n requirement: z.string().optional().describe('What this plugin requires'),\n })),\n \n /**\n * Conflict description\n */\n description: z.string(),\n \n /**\n * Possible resolutions\n */\n resolutions: z.array(z.object({\n strategy: z.enum([\n 'upgrade', // Upgrade one or more plugins\n 'downgrade', // Downgrade one or more plugins\n 'replace', // Replace with alternative plugin\n 'disable', // Disable conflicting plugin\n 'manual', // Manual intervention required\n ]),\n description: z.string(),\n automaticResolution: z.boolean().default(false),\n riskLevel: z.enum(['low', 'medium', 'high']),\n })).optional(),\n \n /**\n * Severity of conflict\n */\n severity: z.enum(['critical', 'error', 'warning', 'info']),\n});\n\n/**\n * Dependency Resolution Result\n * Result of dependency resolution process\n */\nexport const DependencyResolutionResultSchema = z.object({\n /**\n * Resolution successful\n */\n success: z.boolean(),\n \n /**\n * Resolved plugin versions\n */\n resolved: z.array(z.object({\n pluginId: z.string(),\n version: z.string(),\n resolvedVersion: z.string(),\n })).optional(),\n \n /**\n * Conflicts found\n */\n conflicts: z.array(DependencyConflictSchema).optional(),\n \n /**\n * Warnings\n */\n warnings: z.array(z.string()).optional(),\n \n /**\n * Installation order (topologically sorted)\n */\n installationOrder: z.array(z.string()).optional()\n .describe('Plugin IDs in order they should be installed'),\n \n /**\n * Dependency graph\n */\n dependencyGraph: z.record(z.string(), z.array(z.string())).optional()\n .describe('Map of plugin ID to its dependencies'),\n});\n\n/**\n * Multi-Version Support Configuration\n * Allows running multiple versions of a plugin simultaneously\n */\nexport const MultiVersionSupportSchema = z.object({\n /**\n * Enable multi-version support\n */\n enabled: z.boolean().default(false),\n \n /**\n * Maximum concurrent versions\n */\n maxConcurrentVersions: z.number().int().min(1).default(2)\n .describe('How many versions can run at the same time'),\n \n /**\n * Version selection strategy\n */\n selectionStrategy: z.enum([\n 'latest', // Always use latest version\n 'stable', // Use latest stable version\n 'compatible', // Use version compatible with dependencies\n 'pinned', // Use pinned version\n 'canary', // Use canary/preview version\n 'custom', // Custom selection logic\n ]).default('latest'),\n \n /**\n * Version routing rules\n */\n routing: z.array(z.object({\n condition: z.string().describe('Routing condition (e.g., tenant, user, feature flag)'),\n version: z.string().describe('Version to use when condition matches'),\n priority: z.number().int().default(100).describe('Rule priority'),\n })).optional(),\n \n /**\n * Gradual rollout configuration\n */\n rollout: z.object({\n enabled: z.boolean().default(false),\n strategy: z.enum(['percentage', 'blue-green', 'canary']),\n percentage: z.number().min(0).max(100).optional()\n .describe('Percentage of traffic to new version'),\n duration: z.number().int().optional()\n .describe('Rollout duration in milliseconds'),\n }).optional(),\n});\n\n/**\n * Plugin Version Metadata\n * Complete version information for a plugin\n */\nexport const PluginVersionMetadataSchema = z.object({\n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Version number\n */\n version: SemanticVersionSchema,\n \n /**\n * Version string (computed)\n */\n versionString: z.string().describe('Full version string (e.g., 1.2.3-beta.1+build.123)'),\n \n /**\n * Release date\n */\n releaseDate: z.string().datetime(),\n \n /**\n * Release notes\n */\n releaseNotes: z.string().optional(),\n \n /**\n * Breaking changes\n */\n breakingChanges: z.array(BreakingChangeSchema).optional(),\n \n /**\n * Deprecations\n */\n deprecations: z.array(DeprecationNoticeSchema).optional(),\n \n /**\n * Compatibility matrix\n */\n compatibilityMatrix: z.array(CompatibilityMatrixEntrySchema).optional(),\n \n /**\n * Security vulnerabilities fixed\n */\n securityFixes: z.array(z.object({\n cve: z.string().optional().describe('CVE identifier'),\n severity: z.enum(['critical', 'high', 'medium', 'low']),\n description: z.string(),\n fixedIn: z.string().describe('Version where vulnerability was fixed'),\n })).optional(),\n \n /**\n * Download statistics\n */\n statistics: z.object({\n downloads: z.number().int().min(0).optional(),\n installations: z.number().int().min(0).optional(),\n ratings: z.number().min(0).max(5).optional(),\n }).optional(),\n \n /**\n * Support status\n */\n support: z.object({\n status: z.enum(['active', 'maintenance', 'deprecated', 'eol']),\n endOfLife: z.string().datetime().optional(),\n securitySupport: z.boolean().default(true),\n }),\n});\n\n// Export types\nexport type SemanticVersion = z.infer<typeof SemanticVersionSchema>;\nexport type VersionConstraint = z.infer<typeof VersionConstraintSchema>;\nexport type CompatibilityLevel = z.infer<typeof CompatibilityLevelSchema>;\nexport type BreakingChange = z.infer<typeof BreakingChangeSchema>;\nexport type DeprecationNotice = z.infer<typeof DeprecationNoticeSchema>;\nexport type CompatibilityMatrixEntry = z.infer<typeof CompatibilityMatrixEntrySchema>;\nexport type PluginCompatibilityMatrix = z.infer<typeof PluginCompatibilityMatrixSchema>;\nexport type DependencyConflict = z.infer<typeof DependencyConflictSchema>;\nexport type DependencyResolutionResult = z.infer<typeof DependencyResolutionResultSchema>;\nexport type MultiVersionSupport = z.infer<typeof MultiVersionSupportSchema>;\nexport type PluginVersionMetadata = z.infer<typeof PluginVersionMetadataSchema>;\n","import { z } from 'zod';\n\n// We use z.any() for services that are interfaces with methods, \n// as Zod cannot easily validate function signatures at runtime.\nexport const PluginContextSchema = z.object({\n ql: z.object({\n object: z.function().returns(z.any()), // Return any to allow method chaining\n query: z.function().returns(z.any()),\n }).passthrough().describe('ObjectQL Engine Interface'),\n\n os: z.object({\n getCurrentUser: z.function().returns(z.any()),\n getConfig: z.function().returns(z.any()),\n }).passthrough().describe('ObjectStack Kernel Interface'),\n\n logger: z.object({\n debug: z.function().returns(z.void()),\n info: z.function().returns(z.void()),\n warn: z.function().returns(z.void()),\n error: z.function().returns(z.void()),\n }).passthrough().describe('Logger Interface'),\n\n storage: z.object({\n get: z.function().returns(z.any()),\n set: z.function().returns(z.promise(z.void())),\n delete: z.function().returns(z.promise(z.void())),\n }).passthrough().describe('Storage Interface'),\n\n i18n: z.object({\n t: z.function().returns(z.string()),\n getLocale: z.function().returns(z.string()),\n }).passthrough().describe('Internationalization Interface'),\n\n metadata: z.record(z.string(), z.any()),\n events: z.record(z.string(), z.any()),\n \n app: z.object({\n router: z.object({\n get: z.function().returns(z.any()),\n post: z.function().returns(z.any()),\n use: z.function().returns(z.any()),\n }).passthrough()\n }).passthrough().describe('App Framework Interface'),\n\n drivers: z.object({\n register: z.function().returns(z.void()),\n }).passthrough().describe('Driver Registry'),\n});\n\nexport type PluginContextData = z.infer<typeof PluginContextSchema>;\nexport type PluginContext = PluginContextData;\n\nexport const PluginLifecycleSchema = z.object({\n onInstall: z.function()\n .args(PluginContextSchema)\n .returns(z.promise(z.void()))\n .optional(),\n \n onEnable: z.function()\n .args(PluginContextSchema)\n .returns(z.promise(z.void()))\n .optional(),\n \n onDisable: z.function()\n .args(PluginContextSchema)\n .returns(z.promise(z.void()))\n .optional(),\n \n onUninstall: z.function()\n .args(PluginContextSchema)\n .returns(z.promise(z.void()))\n .optional(),\n \n onUpgrade: z.function()\n .args(PluginContextSchema, z.string(), z.string())\n .returns(z.promise(z.void()))\n .optional(),\n});\n\nexport type PluginLifecycleHooks = z.infer<typeof PluginLifecycleSchema>;\n\nexport const PluginSchema = PluginLifecycleSchema.extend({\n id: z.string().min(1).optional().describe('Unique Plugin ID (e.g. com.example.crm)'),\n version: z.string().regex(/^\\d+\\.\\d+\\.\\d+$/).optional().describe('Semantic Version'),\n description: z.string().optional(),\n author: z.string().optional(),\n homepage: z.string().url().optional(),\n});\n\nexport type PluginDefinition = z.infer<typeof PluginSchema>;\n\n/**\n * Define an ObjectStack Plugin\n * Helper function for creating type-safe plugin definitions\n */\nexport function definePlugin(config: PluginDefinition): PluginDefinition {\n return config;\n}\n","import { z } from 'zod';\n\n/**\n * Service Registry Protocol\n * \n * Zod schemas for service registry data structures.\n * These schemas align with the IServiceRegistry contract interface.\n * \n * Following ObjectStack \"Zod First\" principle - all data structures\n * must have Zod schemas for runtime validation and JSON Schema generation.\n * \n * Note: IServiceRegistry itself is a runtime interface (methods only),\n * so it correctly remains a TypeScript interface. This file contains\n * schemas for configuration and metadata related to service registry.\n */\n\n// ============================================================================\n// Service Metadata Schemas\n// ============================================================================\n\n/**\n * Service Scope Type Enum\n * Different service scoping strategies\n */\nexport const ServiceScopeType = z.enum([\n 'singleton', // Single instance shared across the application\n 'transient', // New instance created each time\n 'scoped', // Instance per scope (request, session, transaction, etc.)\n]).describe('Service scope type');\n\nexport type ServiceScopeType = z.infer<typeof ServiceScopeType>;\n\n/**\n * Service Metadata Schema\n * Metadata about a registered service\n * \n * @example\n * {\n * \"name\": \"database\",\n * \"scope\": \"singleton\",\n * \"type\": \"IDataEngine\",\n * \"registeredAt\": 1706659200000\n * }\n */\nexport const ServiceMetadataSchema = z.object({\n /**\n * Service name (unique identifier)\n */\n name: z.string().min(1).describe('Unique service name identifier'),\n \n /**\n * Service scope type\n */\n scope: ServiceScopeType.optional().default('singleton')\n .describe('Service scope type'),\n \n /**\n * Service type or interface name (optional)\n */\n type: z.string().optional().describe('Service type or interface name'),\n \n /**\n * Registration timestamp (Unix milliseconds)\n */\n registeredAt: z.number().int().optional()\n .describe('Unix timestamp in milliseconds when service was registered'),\n \n /**\n * Additional metadata\n */\n metadata: z.record(z.string(), z.any()).optional()\n .describe('Additional service-specific metadata'),\n});\n\nexport type ServiceMetadata = z.infer<typeof ServiceMetadataSchema>;\n\n// ============================================================================\n// Service Registry Configuration Schemas\n// ============================================================================\n\n/**\n * Service Registry Configuration Schema\n * Configuration for service registry behavior\n * \n * @example\n * {\n * \"strictMode\": true,\n * \"allowOverwrite\": false,\n * \"enableLogging\": true,\n * \"scopeTypes\": [\"singleton\", \"transient\", \"request\", \"session\"]\n * }\n */\nexport const ServiceRegistryConfigSchema = z.object({\n /**\n * Strict mode: throw errors on invalid operations\n * @default true\n */\n strictMode: z.boolean().optional().default(true)\n .describe('Throw errors on invalid operations (duplicate registration, service not found, etc.)'),\n \n /**\n * Allow overwriting existing services\n * @default false\n */\n allowOverwrite: z.boolean().optional().default(false)\n .describe('Allow overwriting existing service registrations'),\n \n /**\n * Enable logging for service operations\n * @default false\n */\n enableLogging: z.boolean().optional().default(false)\n .describe('Enable logging for service registration and retrieval'),\n \n /**\n * Custom scope types (beyond singleton, transient, scoped)\n * @default ['singleton', 'transient', 'scoped']\n */\n scopeTypes: z.array(z.string()).optional()\n .describe('Supported scope types'),\n \n /**\n * Maximum number of services (prevent memory leaks)\n */\n maxServices: z.number().int().min(1).optional()\n .describe('Maximum number of services that can be registered'),\n});\n\nexport type ServiceRegistryConfig = z.infer<typeof ServiceRegistryConfigSchema>;\nexport type ServiceRegistryConfigInput = z.input<typeof ServiceRegistryConfigSchema>;\n\n// ============================================================================\n// Service Factory Schemas\n// ============================================================================\n\n/**\n * Service Factory Registration Schema\n * Configuration for registering a service factory\n * \n * @example\n * {\n * \"name\": \"logger\",\n * \"scope\": \"singleton\",\n * \"factoryType\": \"sync\"\n * }\n */\nexport const ServiceFactoryRegistrationSchema = z.object({\n /**\n * Service name (unique identifier)\n */\n name: z.string().min(1).describe('Unique service name identifier'),\n \n /**\n * Service scope type\n */\n scope: ServiceScopeType.optional().default('singleton')\n .describe('Service scope type'),\n \n /**\n * Factory type (sync or async)\n */\n factoryType: z.enum(['sync', 'async']).optional().default('sync')\n .describe('Whether factory is synchronous or asynchronous'),\n \n /**\n * Whether this is a singleton (cache factory result)\n */\n singleton: z.boolean().optional().default(true)\n .describe('Whether to cache the factory result (singleton pattern)'),\n});\n\nexport type ServiceFactoryRegistration = z.infer<typeof ServiceFactoryRegistrationSchema>;\n\n// ============================================================================\n// Scoped Service Schemas\n// ============================================================================\n\n/**\n * Scope Configuration Schema\n * Configuration for creating a new scope\n * \n * @example\n * {\n * \"scopeType\": \"request\",\n * \"scopeId\": \"req-12345\",\n * \"metadata\": {\n * \"userId\": \"user-123\",\n * \"requestId\": \"req-12345\"\n * }\n * }\n */\nexport const ScopeConfigSchema = z.object({\n /**\n * Type of scope (request, session, transaction, etc.)\n */\n scopeType: z.string().describe('Type of scope'),\n \n /**\n * Scope identifier (optional, auto-generated if not provided)\n */\n scopeId: z.string().optional().describe('Unique scope identifier'),\n \n /**\n * Scope metadata (context information)\n */\n metadata: z.record(z.string(), z.any()).optional()\n .describe('Scope-specific context metadata'),\n});\n\nexport type ScopeConfig = z.infer<typeof ScopeConfigSchema>;\n\n/**\n * Scope Info Schema\n * Information about an active scope\n * \n * @example\n * {\n * \"scopeId\": \"req-12345\",\n * \"scopeType\": \"request\",\n * \"createdAt\": 1706659200000,\n * \"serviceCount\": 5,\n * \"metadata\": {\n * \"userId\": \"user-123\"\n * }\n * }\n */\nexport const ScopeInfoSchema = z.object({\n /**\n * Scope identifier\n */\n scopeId: z.string().describe('Unique scope identifier'),\n \n /**\n * Type of scope\n */\n scopeType: z.string().describe('Type of scope'),\n \n /**\n * Creation timestamp (Unix milliseconds)\n */\n createdAt: z.number().int().describe('Unix timestamp in milliseconds when scope was created'),\n \n /**\n * Number of services in this scope\n */\n serviceCount: z.number().int().min(0).optional()\n .describe('Number of services registered in this scope'),\n \n /**\n * Scope metadata\n */\n metadata: z.record(z.string(), z.any()).optional()\n .describe('Scope-specific context metadata'),\n});\n\nexport type ScopeInfo = z.infer<typeof ScopeInfoSchema>;\n","import { z } from 'zod';\n\n/**\n * Startup Orchestrator Protocol\n * \n * Zod schemas for plugin startup orchestration data structures.\n * These schemas align with the IStartupOrchestrator contract interface.\n * \n * Following ObjectStack \"Zod First\" principle - all data structures\n * must have Zod schemas for runtime validation and JSON Schema generation.\n */\n\n// ============================================================================\n// Startup Configuration Schemas\n// ============================================================================\n\n/**\n * Startup Options Schema\n * Configuration for plugin startup orchestration\n * \n * @example\n * {\n * \"timeout\": 30000,\n * \"rollbackOnFailure\": true,\n * \"healthCheck\": false,\n * \"parallel\": false\n * }\n */\nexport const StartupOptionsSchema = z.object({\n /**\n * Maximum time (ms) to wait for each plugin to start\n * @default 30000 (30 seconds)\n */\n timeout: z.number().int().min(0).optional().default(30000)\n .describe('Maximum time in milliseconds to wait for each plugin to start'),\n \n /**\n * Whether to rollback (destroy) already-started plugins on failure\n * @default true\n */\n rollbackOnFailure: z.boolean().optional().default(true)\n .describe('Whether to rollback already-started plugins if any plugin fails'),\n \n /**\n * Whether to run health checks after startup\n * @default false\n */\n healthCheck: z.boolean().optional().default(false)\n .describe('Whether to run health checks after plugin startup'),\n \n /**\n * Whether to run plugins in parallel (if dependencies allow)\n * @default false (sequential startup)\n */\n parallel: z.boolean().optional().default(false)\n .describe('Whether to start plugins in parallel when dependencies allow'),\n \n /**\n * Custom context to pass to plugin lifecycle methods\n */\n context: z.any().optional().describe('Custom context object to pass to plugin lifecycle methods'),\n});\n\nexport type StartupOptions = z.infer<typeof StartupOptionsSchema>;\nexport type StartupOptionsInput = z.input<typeof StartupOptionsSchema>;\n\n// ============================================================================\n// Health Status Schemas\n// ============================================================================\n\n/**\n * Health Status Schema\n * Health status for a plugin\n * \n * @example\n * {\n * \"healthy\": true,\n * \"timestamp\": 1706659200000,\n * \"details\": {\n * \"databaseConnected\": true,\n * \"memoryUsage\": 45.2\n * }\n * }\n */\nexport const HealthStatusSchema = z.object({\n /**\n * Whether the plugin is healthy\n */\n healthy: z.boolean().describe('Whether the plugin is healthy'),\n \n /**\n * Health check timestamp (Unix milliseconds)\n */\n timestamp: z.number().int().describe('Unix timestamp in milliseconds when health check was performed'),\n \n /**\n * Optional health details (plugin-specific)\n */\n details: z.record(z.string(), z.any()).optional().describe('Optional plugin-specific health details'),\n \n /**\n * Optional error message if unhealthy\n */\n message: z.string().optional().describe('Error message if plugin is unhealthy'),\n});\n\nexport type HealthStatus = z.infer<typeof HealthStatusSchema>;\n\n// ============================================================================\n// Startup Result Schemas\n// ============================================================================\n\n/**\n * Plugin Startup Result Schema\n * Result of a single plugin startup operation\n * \n * @example\n * {\n * \"plugin\": { \"name\": \"crm-plugin\", \"version\": \"1.0.0\" },\n * \"success\": true,\n * \"duration\": 1250,\n * \"health\": {\n * \"healthy\": true,\n * \"timestamp\": 1706659200000\n * }\n * }\n */\nexport const PluginStartupResultSchema = z.object({\n /**\n * Plugin that was started\n */\n plugin: z.object({\n name: z.string(),\n version: z.string().optional(),\n }).passthrough().describe('Plugin metadata'),\n \n /**\n * Whether startup was successful\n */\n success: z.boolean().describe('Whether the plugin started successfully'),\n \n /**\n * Time taken to start (milliseconds)\n */\n duration: z.number().min(0).describe('Time taken to start the plugin in milliseconds'),\n \n /**\n * Error if startup failed\n */\n error: z.instanceof(Error).optional().describe('Error object if startup failed'),\n \n /**\n * Health status after startup (if healthCheck enabled)\n */\n health: HealthStatusSchema.optional().describe('Health status after startup if health check was enabled'),\n});\n\nexport type PluginStartupResult = z.infer<typeof PluginStartupResultSchema>;\n\n// ============================================================================\n// Startup Orchestration Result Schema\n// ============================================================================\n\n/**\n * Startup Orchestration Result Schema\n * Overall result of orchestrating startup for multiple plugins\n * \n * @example\n * {\n * \"results\": [\n * { \"plugin\": { \"name\": \"plugin1\" }, \"success\": true, \"duration\": 1200 },\n * { \"plugin\": { \"name\": \"plugin2\" }, \"success\": true, \"duration\": 850 }\n * ],\n * \"totalDuration\": 2050,\n * \"allSuccessful\": true\n * }\n */\nexport const StartupOrchestrationResultSchema = z.object({\n /**\n * Individual plugin startup results\n */\n results: z.array(PluginStartupResultSchema).describe('Startup results for each plugin'),\n \n /**\n * Total time taken for all plugins (milliseconds)\n */\n totalDuration: z.number().min(0).describe('Total time taken for all plugins in milliseconds'),\n \n /**\n * Whether all plugins started successfully\n */\n allSuccessful: z.boolean().describe('Whether all plugins started successfully'),\n \n /**\n * Plugins that were rolled back (if rollbackOnFailure was enabled)\n */\n rolledBack: z.array(z.string()).optional().describe('Names of plugins that were rolled back'),\n});\n\nexport type StartupOrchestrationResult = z.infer<typeof StartupOrchestrationResultSchema>;\n"],"mappings":"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","names":["import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","module","import_zod","import_zod","import_zod","import_zod","import_zod"]}
|
|
1
|
+
{"version":3,"sources":["../../src/kernel/index.ts","../../src/kernel/context.zod.ts","../../src/kernel/events.zod.ts","../../src/shared/identifiers.zod.ts","../../src/kernel/feature.zod.ts","../../src/kernel/manifest.zod.ts","../../src/kernel/plugin-capability.zod.ts","../../src/kernel/plugin-loading.zod.ts","../../src/kernel/plugin.zod.ts","../../src/kernel/metadata-loader.zod.ts","../../src/kernel/plugin-lifecycle-advanced.zod.ts","../../src/kernel/plugin-lifecycle-events.zod.ts","../../src/kernel/plugin-security-advanced.zod.ts","../../src/kernel/plugin-structure.zod.ts","../../src/kernel/plugin-validator.zod.ts","../../src/kernel/plugin-versioning.zod.ts","../../src/kernel/service-registry.zod.ts","../../src/kernel/startup-orchestrator.zod.ts"],"sourcesContent":["export * from './context.zod';\nexport * from './events.zod';\nexport * from './feature.zod';\nexport * from './manifest.zod';\nexport * from './metadata-loader.zod';\nexport * from './plugin-capability.zod';\nexport * from './plugin-lifecycle-advanced.zod';\nexport * from './plugin-lifecycle-events.zod';\nexport * from './plugin-loading.zod';\nexport * from './plugin-security-advanced.zod';\nexport * from './plugin-structure.zod';\nexport * from './plugin-validator.zod';\nexport * from './plugin-versioning.zod';\nexport * from './plugin.zod';\nexport * from './service-registry.zod';\nexport * from './startup-orchestrator.zod';\n","import { z } from 'zod';\n\n/**\n * Runtime Mode Enum\n * Defines the operating mode of the kernel\n */\nexport const RuntimeMode = z.enum([\n 'development', // Hot-reload, verbose logging\n 'production', // Optimized, strict security\n 'test', // Mocked interfaces\n 'provisioning' // Setup/Migration mode\n]).describe('Kernel operating mode');\n\nexport type RuntimeMode = z.infer<typeof RuntimeMode>;\n\n/**\n * Kernel Context Schema\n * Defines the static environment information available to the Kernel at boot.\n */\nexport const KernelContextSchema = z.object({\n /**\n * Instance Identity\n */\n instanceId: z.string().uuid().describe('Unique UUID for this running kernel process'),\n \n /**\n * Environment Metadata\n */\n mode: RuntimeMode.default('production'),\n version: z.string().describe('Kernel version'),\n appName: z.string().optional().describe('Host application name'),\n \n /**\n * Paths\n */\n cwd: z.string().describe('Current working directory'),\n workspaceRoot: z.string().optional().describe('Workspace root if different from cwd'),\n \n /**\n * Telemetry\n */\n startTime: z.number().int().describe('Boot timestamp (ms)'),\n \n /**\n * Feature Flags (Global)\n */\n features: z.record(z.string(), z.boolean()).default({}).describe('Global feature toggles')\n});\n\nexport type KernelContext = z.infer<typeof KernelContextSchema>;\n","import { z } from 'zod';\nimport { EventNameSchema } from '../shared/identifiers.zod';\n\n// ==========================================\n// Event Priority\n// ==========================================\n\n/**\n * Event Priority Enum\n * Priority levels for event processing\n * Lower numbers = higher priority\n */\nexport const EventPriority = z.enum([\n 'critical', // 0 - Process immediately, block if necessary\n 'high', // 1 - Process soon, minimal delay\n 'normal', // 2 - Default priority\n 'low', // 3 - Process when resources available\n 'background', // 4 - Process during idle time\n]);\n\nexport type EventPriority = z.infer<typeof EventPriority>;\n\n/**\n * Event Priority Values\n * Maps priority names to numeric values for sorting\n */\nexport const EVENT_PRIORITY_VALUES: Record<EventPriority, number> = {\n critical: 0,\n high: 1,\n normal: 2,\n low: 3,\n background: 4,\n};\n\n// ==========================================\n// Event Metadata\n// ==========================================\n\n/**\n * Event Metadata Schema\n * Metadata associated with every event\n */\nexport const EventMetadataSchema = z.object({\n source: z.string().describe('Event source (e.g., plugin name, system component)'),\n timestamp: z.string().datetime().describe('ISO 8601 datetime when event was created'),\n userId: z.string().optional().describe('User who triggered the event'),\n tenantId: z.string().optional().describe('Tenant identifier for multi-tenant systems'),\n correlationId: z.string().optional().describe('Correlation ID for event tracing'),\n causationId: z.string().optional().describe('ID of the event that caused this event'),\n priority: EventPriority.optional().default('normal').describe('Event priority'),\n});\n\n// ==========================================\n// Event Schema\n// ==========================================\n\n/**\n * Event Type Definition Schema\n * Defines the structure of an event type\n * \n * @example\n * {\n * \"name\": \"order.created\",\n * \"version\": \"1.0.0\",\n * \"schema\": {\n * \"type\": \"object\",\n * \"properties\": {\n * \"orderId\": { \"type\": \"string\" },\n * \"customerId\": { \"type\": \"string\" },\n * \"total\": { \"type\": \"number\" }\n * }\n * }\n * }\n */\nexport const EventTypeDefinitionSchema = z.object({\n name: EventNameSchema.describe('Event type name (lowercase with dots)'),\n version: z.string().default('1.0.0').describe('Event schema version'),\n schema: z.any().optional().describe('JSON Schema for event payload validation'),\n description: z.string().optional().describe('Event type description'),\n deprecated: z.boolean().optional().default(false).describe('Whether this event type is deprecated'),\n tags: z.array(z.string()).optional().describe('Event type tags'),\n});\n\nexport type EventTypeDefinition = z.infer<typeof EventTypeDefinitionSchema>;\n\n/**\n * Event Schema\n * Base schema for all events in the system\n * \n * Event names follow dot notation for namespacing (e.g., 'user.created', 'order.paid').\n * This aligns with industry standards for event-driven architectures and message queues.\n */\nexport const EventSchema = z.object({\n /**\n * Event identifier (for tracking and deduplication)\n */\n id: z.string().optional().describe('Unique event identifier'),\n \n /**\n * Event name\n */\n name: EventNameSchema.describe('Event name (lowercase with dots, e.g., user.created, order.paid)'),\n \n /**\n * Event payload\n */\n payload: z.any().describe('Event payload schema'),\n \n /**\n * Event metadata\n */\n metadata: EventMetadataSchema.describe('Event metadata'),\n});\n\nexport type Event = z.infer<typeof EventSchema>;\n\n// ==========================================\n// Event Handlers\n// ==========================================\n\n/**\n * Event Handler Schema\n * Defines how to handle a specific event\n */\nexport const EventHandlerSchema = z.object({\n /**\n * Handler identifier\n */\n id: z.string().optional().describe('Unique handler identifier'),\n \n /**\n * Event name pattern\n */\n eventName: z.string().describe('Name of event to handle (supports wildcards like user.*)'),\n \n /**\n * Handler function\n */\n handler: z.function()\n .args(EventSchema)\n .returns(z.promise(z.void()))\n .describe('Handler function'),\n \n /**\n * Execution priority\n */\n priority: z.number().int().default(0).describe('Execution priority (lower numbers execute first)'),\n \n /**\n * Async execution\n */\n async: z.boolean().default(true).describe('Execute in background (true) or block (false)'),\n \n /**\n * Retry configuration\n */\n retry: z.object({\n maxRetries: z.number().int().min(0).default(3).describe('Maximum retry attempts'),\n backoffMs: z.number().int().positive().default(1000).describe('Initial backoff delay'),\n backoffMultiplier: z.number().positive().default(2).describe('Backoff multiplier'),\n }).optional().describe('Retry policy for failed handlers'),\n \n /**\n * Timeout\n */\n timeoutMs: z.number().int().positive().optional().describe('Handler timeout in milliseconds'),\n \n /**\n * Filter function\n */\n filter: z.function()\n .args(EventSchema)\n .returns(z.boolean())\n .optional()\n .describe('Optional filter to determine if handler should execute'),\n});\n\nexport type EventHandler = z.infer<typeof EventHandlerSchema>;\n\n/**\n * Event Route Schema\n * Routes events from one pattern to multiple targets with optional transformation\n */\nexport const EventRouteSchema = z.object({\n from: z.string().describe('Source event pattern (supports wildcards, e.g., user.* or *.created)'),\n to: z.array(z.string()).describe('Target event names to route to'),\n transform: z.function().optional().describe('Optional function to transform payload'),\n});\n\nexport type EventRoute = z.infer<typeof EventRouteSchema>;\n\n/**\n * Event Persistence Schema\n * Configuration for persisting events to storage\n */\nexport const EventPersistenceSchema = z.object({\n enabled: z.boolean().default(false).describe('Enable event persistence'),\n retention: z.number().int().positive().describe('Days to retain persisted events'),\n filter: z.function().optional().describe('Optional filter function to select which events to persist'),\n storage: z.enum(['database', 'file', 's3', 'custom']).default('database')\n .describe('Storage backend for persisted events'),\n});\n\nexport type EventPersistence = z.infer<typeof EventPersistenceSchema>;\n\n// ==========================================\n// Event Queue\n// ==========================================\n\n/**\n * Event Queue Configuration Schema\n * Configuration for async event processing queue\n * \n * @example\n * {\n * \"name\": \"event_queue\",\n * \"concurrency\": 10,\n * \"retryPolicy\": {\n * \"maxRetries\": 3,\n * \"backoffStrategy\": \"exponential\"\n * }\n * }\n */\nexport const EventQueueConfigSchema = z.object({\n /**\n * Queue name\n */\n name: z.string().default('events').describe('Event queue name'),\n \n /**\n * Concurrency\n */\n concurrency: z.number().int().min(1).default(10).describe('Max concurrent event handlers'),\n \n /**\n * Retry policy\n */\n retryPolicy: z.object({\n maxRetries: z.number().int().min(0).default(3).describe('Max retries for failed events'),\n backoffStrategy: z.enum(['fixed', 'linear', 'exponential']).default('exponential')\n .describe('Backoff strategy'),\n initialDelayMs: z.number().int().positive().default(1000).describe('Initial retry delay'),\n maxDelayMs: z.number().int().positive().default(60000).describe('Maximum retry delay'),\n }).optional().describe('Default retry policy for events'),\n \n /**\n * Dead letter queue\n */\n deadLetterQueue: z.string().optional().describe('Dead letter queue name for failed events'),\n \n /**\n * Enable priority processing\n */\n priorityEnabled: z.boolean().default(true).describe('Process events based on priority'),\n});\n\nexport type EventQueueConfig = z.infer<typeof EventQueueConfigSchema>;\n\n// ==========================================\n// Event Replay\n// ==========================================\n\n/**\n * Event Replay Configuration Schema\n * Configuration for replaying historical events\n * \n * @example\n * {\n * \"fromTimestamp\": \"2024-01-01T00:00:00Z\",\n * \"toTimestamp\": \"2024-01-31T23:59:59Z\",\n * \"eventTypes\": [\"order.created\", \"order.updated\"],\n * \"speed\": 10\n * }\n */\nexport const EventReplayConfigSchema = z.object({\n /**\n * Start timestamp\n */\n fromTimestamp: z.string().datetime().describe('Start timestamp for replay (ISO 8601)'),\n \n /**\n * End timestamp\n */\n toTimestamp: z.string().datetime().optional().describe('End timestamp for replay (ISO 8601)'),\n \n /**\n * Event types to replay\n */\n eventTypes: z.array(z.string()).optional().describe('Event types to replay (empty = all)'),\n \n /**\n * Event filters\n */\n filters: z.record(z.string(), z.any()).optional().describe('Additional filters for event selection'),\n \n /**\n * Replay speed multiplier\n */\n speed: z.number().positive().default(1).describe('Replay speed multiplier (1 = real-time)'),\n \n /**\n * Target handlers\n */\n targetHandlers: z.array(z.string()).optional().describe('Handler IDs to execute (empty = all)'),\n});\n\nexport type EventReplayConfig = z.infer<typeof EventReplayConfigSchema>;\n\n// ==========================================\n// Event Sourcing\n// ==========================================\n\n/**\n * Event Sourcing Configuration Schema\n * Configuration for event sourcing pattern\n * \n * Event sourcing stores all changes to application state as a sequence of events.\n * The current state can be reconstructed by replaying the events.\n * \n * @example\n * {\n * \"enabled\": true,\n * \"snapshotInterval\": 100,\n * \"retention\": 365\n * }\n */\nexport const EventSourcingConfigSchema = z.object({\n /**\n * Enable event sourcing\n */\n enabled: z.boolean().default(false).describe('Enable event sourcing'),\n \n /**\n * Snapshot interval\n */\n snapshotInterval: z.number().int().positive().default(100)\n .describe('Create snapshot every N events'),\n \n /**\n * Snapshot retention\n */\n snapshotRetention: z.number().int().positive().default(10)\n .describe('Number of snapshots to retain'),\n \n /**\n * Event retention\n */\n retention: z.number().int().positive().default(365)\n .describe('Days to retain events'),\n \n /**\n * Aggregate types\n */\n aggregateTypes: z.array(z.string()).optional()\n .describe('Aggregate types to enable event sourcing for'),\n \n /**\n * Storage configuration\n */\n storage: z.object({\n type: z.enum(['database', 'file', 's3', 'eventstore']).default('database')\n .describe('Storage backend'),\n options: z.record(z.string(), z.any()).optional().describe('Storage-specific options'),\n }).optional().describe('Event store configuration'),\n});\n\nexport type EventSourcingConfig = z.infer<typeof EventSourcingConfigSchema>;\n\n// ==========================================\n// Dead Letter Queue\n// ==========================================\n\n/**\n * Dead Letter Queue Entry Schema\n * Represents a failed event in the dead letter queue\n */\nexport const DeadLetterQueueEntrySchema = z.object({\n /**\n * Entry identifier\n */\n id: z.string().describe('Unique entry identifier'),\n \n /**\n * Original event\n */\n event: EventSchema.describe('Original event'),\n \n /**\n * Failure reason\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 }).describe('Failure details'),\n \n /**\n * Retry count\n */\n retries: z.number().int().min(0).describe('Number of retry attempts'),\n \n /**\n * Timestamps\n */\n firstFailedAt: z.string().datetime().describe('When event first failed'),\n lastFailedAt: z.string().datetime().describe('When event last failed'),\n \n /**\n * Handler that failed\n */\n failedHandler: z.string().optional().describe('Handler ID that failed'),\n});\n\nexport type DeadLetterQueueEntry = z.infer<typeof DeadLetterQueueEntrySchema>;\n\n// ==========================================\n// Event Log\n// ==========================================\n\n/**\n * Event Log Entry Schema\n * Represents a logged event\n */\nexport const EventLogEntrySchema = z.object({\n /**\n * Log entry ID\n */\n id: z.string().describe('Unique log entry identifier'),\n \n /**\n * Event\n */\n event: EventSchema.describe('The event'),\n \n /**\n * Status\n */\n status: z.enum(['pending', 'processing', 'completed', 'failed']).describe('Processing status'),\n \n /**\n * Handlers executed\n */\n handlersExecuted: z.array(z.object({\n handlerId: z.string().describe('Handler identifier'),\n status: z.enum(['success', 'failed', 'timeout']).describe('Handler execution status'),\n durationMs: z.number().int().optional().describe('Execution duration'),\n error: z.string().optional().describe('Error message if failed'),\n })).optional().describe('Handlers that processed this event'),\n \n /**\n * Timestamps\n */\n receivedAt: z.string().datetime().describe('When event was received'),\n processedAt: z.string().datetime().optional().describe('When event was processed'),\n \n /**\n * Total duration\n */\n totalDurationMs: z.number().int().optional().describe('Total processing time'),\n});\n\nexport type EventLogEntry = z.infer<typeof EventLogEntrySchema>;\n\n// ==========================================\n// Webhook Integration\n// ==========================================\n\n/**\n * Event Webhook Configuration Schema\n * Configuration for sending events to webhooks\n * \n * @example\n * {\n * \"eventPattern\": \"order.*\",\n * \"url\": \"https://api.example.com/webhooks/orders\",\n * \"method\": \"POST\",\n * \"headers\": { \"Authorization\": \"Bearer token\" }\n * }\n */\nexport const EventWebhookConfigSchema = z.object({\n /**\n * Webhook identifier\n */\n id: z.string().optional().describe('Unique webhook identifier'),\n \n /**\n * Event pattern to match\n */\n eventPattern: z.string().describe('Event name pattern (supports wildcards)'),\n \n /**\n * Target URL\n */\n url: z.string().url().describe('Webhook endpoint URL'),\n \n /**\n * HTTP method\n */\n method: z.enum(['GET', 'POST', 'PUT', 'PATCH']).default('POST').describe('HTTP method'),\n \n /**\n * Headers\n */\n headers: z.record(z.string(), z.string()).optional().describe('HTTP headers'),\n \n /**\n * Authentication\n */\n authentication: z.object({\n type: z.enum(['none', 'bearer', 'basic', 'api-key']).describe('Auth type'),\n credentials: z.record(z.string(), z.string()).optional().describe('Auth credentials'),\n }).optional().describe('Authentication configuration'),\n \n /**\n * Retry policy\n */\n retryPolicy: z.object({\n maxRetries: z.number().int().min(0).default(3).describe('Max retry attempts'),\n backoffStrategy: z.enum(['fixed', 'linear', 'exponential']).default('exponential'),\n initialDelayMs: z.number().int().positive().default(1000).describe('Initial retry delay'),\n maxDelayMs: z.number().int().positive().default(60000).describe('Max retry delay'),\n }).optional().describe('Retry policy'),\n \n /**\n * Timeout\n */\n timeoutMs: z.number().int().positive().default(30000).describe('Request timeout in milliseconds'),\n \n /**\n * Event transformation\n */\n transform: z.function()\n .args(EventSchema)\n .returns(z.any())\n .optional()\n .describe('Transform event before sending'),\n \n /**\n * Enabled\n */\n enabled: z.boolean().default(true).describe('Whether webhook is enabled'),\n});\n\nexport type EventWebhookConfig = z.infer<typeof EventWebhookConfigSchema>;\n\n// ==========================================\n// Message Queue Integration\n// ==========================================\n\n/**\n * Event Message Queue Configuration Schema\n * Configuration for publishing events to message queues\n * \n * @example\n * {\n * \"provider\": \"kafka\",\n * \"topic\": \"events\",\n * \"eventPattern\": \"*\",\n * \"partitionKey\": \"metadata.tenantId\"\n * }\n */\nexport const EventMessageQueueConfigSchema = z.object({\n /**\n * Provider\n */\n provider: z.enum(['kafka', 'rabbitmq', 'aws-sqs', 'redis-pubsub', 'google-pubsub', 'azure-service-bus'])\n .describe('Message queue provider'),\n \n /**\n * Topic/Queue name\n */\n topic: z.string().describe('Topic or queue name'),\n \n /**\n * Event pattern\n */\n eventPattern: z.string().default('*').describe('Event name pattern to publish (supports wildcards)'),\n \n /**\n * Partition key\n */\n partitionKey: z.string().optional().describe('JSON path for partition key (e.g., \"metadata.tenantId\")'),\n \n /**\n * Message format\n */\n format: z.enum(['json', 'avro', 'protobuf']).default('json').describe('Message serialization format'),\n \n /**\n * Include metadata\n */\n includeMetadata: z.boolean().default(true).describe('Include event metadata in message'),\n \n /**\n * Compression\n */\n compression: z.enum(['none', 'gzip', 'snappy', 'lz4']).default('none').describe('Message compression'),\n \n /**\n * Batch size\n */\n batchSize: z.number().int().min(1).default(1).describe('Batch size for publishing'),\n \n /**\n * Flush interval\n */\n flushIntervalMs: z.number().int().positive().default(1000).describe('Flush interval for batching'),\n});\n\nexport type EventMessageQueueConfig = z.infer<typeof EventMessageQueueConfigSchema>;\n\n// ==========================================\n// Real-time Notifications\n// ==========================================\n\n/**\n * Real-time Notification Configuration Schema\n * Configuration for real-time event notifications via WebSocket/SSE\n * \n * @example\n * {\n * \"enabled\": true,\n * \"protocol\": \"websocket\",\n * \"eventPattern\": \"notification.*\",\n * \"userFilter\": true\n * }\n */\nexport const RealTimeNotificationConfigSchema = z.object({\n /**\n * Enable real-time notifications\n */\n enabled: z.boolean().default(true).describe('Enable real-time notifications'),\n \n /**\n * Protocol\n */\n protocol: z.enum(['websocket', 'sse', 'long-polling']).default('websocket')\n .describe('Real-time protocol'),\n \n /**\n * Event pattern\n */\n eventPattern: z.string().default('*').describe('Event pattern to broadcast'),\n \n /**\n * User-specific filtering\n */\n userFilter: z.boolean().default(true).describe('Filter events by user'),\n \n /**\n * Tenant-specific filtering\n */\n tenantFilter: z.boolean().default(true).describe('Filter events by tenant'),\n \n /**\n * Channels\n */\n channels: z.array(z.object({\n name: z.string().describe('Channel name'),\n eventPattern: z.string().describe('Event pattern for channel'),\n filter: z.function()\n .args(EventSchema)\n .returns(z.boolean())\n .optional()\n .describe('Additional filter function'),\n })).optional().describe('Named channels for event broadcasting'),\n \n /**\n * Rate limiting\n */\n rateLimit: z.object({\n maxEventsPerSecond: z.number().int().positive().describe('Max events per second per client'),\n windowMs: z.number().int().positive().default(1000).describe('Rate limit window'),\n }).optional().describe('Rate limiting configuration'),\n});\n\nexport type RealTimeNotificationConfig = z.infer<typeof RealTimeNotificationConfigSchema>;\n\n// ==========================================\n// Complete Event Bus Configuration\n// ==========================================\n\n/**\n * Event Bus Configuration Schema\n * Complete configuration for the event bus system\n * \n * @example\n * {\n * \"persistence\": { \"enabled\": true, \"retention\": 365 },\n * \"queue\": { \"concurrency\": 20 },\n * \"eventSourcing\": { \"enabled\": true },\n * \"webhooks\": [],\n * \"messageQueue\": { \"provider\": \"kafka\", \"topic\": \"events\" },\n * \"realtime\": { \"enabled\": true, \"protocol\": \"websocket\" }\n * }\n */\nexport const EventBusConfigSchema = z.object({\n /**\n * Event persistence\n */\n persistence: EventPersistenceSchema.optional().describe('Event persistence configuration'),\n \n /**\n * Event queue\n */\n queue: EventQueueConfigSchema.optional().describe('Event queue configuration'),\n \n /**\n * Event sourcing\n */\n eventSourcing: EventSourcingConfigSchema.optional().describe('Event sourcing configuration'),\n \n /**\n * Event replay\n */\n replay: z.object({\n enabled: z.boolean().default(true).describe('Enable event replay capability'),\n }).optional().describe('Event replay configuration'),\n \n /**\n * Webhooks\n */\n webhooks: z.array(EventWebhookConfigSchema).optional().describe('Webhook configurations'),\n \n /**\n * Message queue integration\n */\n messageQueue: EventMessageQueueConfigSchema.optional().describe('Message queue integration'),\n \n /**\n * Real-time notifications\n */\n realtime: RealTimeNotificationConfigSchema.optional().describe('Real-time notification configuration'),\n \n /**\n * Event type definitions\n */\n eventTypes: z.array(EventTypeDefinitionSchema).optional().describe('Event type definitions'),\n \n /**\n * Global handlers\n */\n handlers: z.array(EventHandlerSchema).optional().describe('Global event handlers'),\n});\n\nexport type EventBusConfig = z.infer<typeof EventBusConfigSchema>;\n\n// ==========================================\n// Helper Functions\n// ==========================================\n\n/**\n * Helper to create event bus configuration\n */\nexport function createEventBusConfig<T extends z.input<typeof EventBusConfigSchema>>(config: T): T {\n return config;\n}\n\n/**\n * Helper to create event type definition\n */\nexport function createEventTypeDefinition<T extends z.input<typeof EventTypeDefinitionSchema>>(definition: T): T {\n return definition;\n}\n\n/**\n * Helper to create event webhook configuration\n */\nexport function createEventWebhookConfig<T extends z.input<typeof EventWebhookConfigSchema>>(config: T): T {\n return config;\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';\nimport { SnakeCaseIdentifierSchema } from '../shared/identifiers.zod';\n\n/**\n * Feature Rollout Strategy\n */\nexport const FeatureStrategy = z.enum([\n 'boolean', // Simple On/Off\n 'percentage', // Gradual rollout (0-100%)\n 'user_list', // Specific users\n 'group', // Specific groups/roles\n 'custom' // Custom constraint/script\n]);\n\n/**\n * Feature Flag Protocol\n * \n * Manages feature toggles and gradual rollouts.\n * Used for CI/CD, A/B Testing, and Trunk-Based Development.\n */\nexport const FeatureFlagSchema = z.object({\n name: SnakeCaseIdentifierSchema.describe('Feature key (snake_case)'),\n label: z.string().optional().describe('Display label'),\n description: z.string().optional(),\n \n /** Default state */\n enabled: z.boolean().default(false).describe('Is globally enabled'),\n \n /** Rollout Strategy */\n strategy: FeatureStrategy.default('boolean'),\n \n /** Strategy Configuration */\n conditions: z.object({\n percentage: z.number().min(0).max(100).optional(),\n users: z.array(z.string()).optional(),\n groups: z.array(z.string()).optional(),\n expression: z.string().optional().describe('Custom formula expression')\n }).optional(),\n \n /** Integration */\n environment: z.enum(['dev', 'staging', 'prod', 'all']).default('all')\n .describe('Environment validity'),\n \n /** Expiration */\n expiresAt: z.string().datetime().optional().describe('Feature flag expiration date'),\n});\n\nexport const FeatureFlag = Object.assign(FeatureFlagSchema, {\n create: <T extends z.input<typeof FeatureFlagSchema>>(config: T) => config,\n});\n\nexport type FeatureFlag = z.infer<typeof FeatureFlagSchema>;\n","import { z } from 'zod';\nimport { PluginCapabilityManifestSchema } from './plugin-capability.zod';\nimport { PluginLoadingConfigSchema } from './plugin-loading.zod';\nimport { CORE_PLUGIN_TYPES } from './plugin.zod';\n\n/**\n * Schema for the ObjectStack Manifest.\n * This defines the structure of a package configuration in the ObjectStack ecosystem.\n * All packages (apps, plugins, drivers, modules) must conform to this schema.\n * \n * @example App Package\n * ```yaml\n * id: com.acme.crm\n * version: 1.0.0\n * type: app\n * name: Acme CRM\n * description: Customer Relationship Management system\n * permissions:\n * - system.user.read\n * - system.object.create\n * objects:\n * - \"./src/objects/*.object.yml\"\n * ```\n */\nexport const ManifestSchema = z.object({\n /** \n * Unique package identifier using reverse domain notation.\n * Must be unique across the entire ecosystem.\n * \n * @example \"com.steedos.crm\"\n * @example \"org.apache.superset\"\n */\n id: z.string().describe('Unique package identifier (reverse domain style)'),\n \n /** \n * Package version following semantic versioning (major.minor.patch).\n * \n * @example \"1.0.0\"\n * @example \"2.1.0-beta.1\"\n */\n version: z.string().regex(/^\\d+\\.\\d+\\.\\d+$/).describe('Package version (semantic versioning)'),\n \n /** \n * Type of the package in the ObjectStack ecosystem.\n * - plugin: General-purpose functionality extension (Runtime: standard)\n * - app: Business application package\n * - driver: Connectivity adapter\n * - server: Protocol gateway (Hono, GraphQL)\n * - ui: Frontend package (Static/SPA)\n * - theme: UI Theme\n * - agent: AI Agent\n * - module: Reusable code library/shared module\n * - objectql: Core engine\n * - adapter: Host adapter (Express, Fastify)\n */\n type: z.enum([\n 'plugin', \n ...CORE_PLUGIN_TYPES,\n 'module', \n 'gateway', // Deprecated: use 'server'\n 'adapter'\n ]).describe('Type of package'),\n \n /** \n * Human-readable name of the package.\n * Displayed in the UI for users.\n * \n * @example \"Project Management\"\n */\n name: z.string().describe('Human-readable package name'),\n \n /** \n * Brief description of the package functionality.\n * Displayed in the marketplace and plugin manager.\n */\n description: z.string().optional().describe('Package description'),\n \n /** \n * Array of permission strings that the package requires.\n * These form the \"Scope\" requested by the package at installation.\n * \n * @example [\"system.user.read\", \"system.data.write\"]\n */\n permissions: z.array(z.string()).optional().describe('Array of required permission strings'),\n \n /** \n * Glob patterns specifying ObjectQL schemas files.\n * Matches `*.object.yml` or `*.object.ts` files to load business objects.\n * \n * @example [\"./src/objects/*.object.yml\"]\n */\n objects: z.array(z.string()).optional().describe('Glob patterns for ObjectQL schemas files'),\n\n /**\n * Defines system level DataSources.\n * Matches `*.datasource.yml` files.\n * \n * @example [\"./src/datasources/*.datasource.mongo.yml\"]\n */\n datasources: z.array(z.string()).optional().describe('Glob patterns for Datasource definitions'),\n\n /**\n * Package Dependencies.\n * Map of package IDs to version requirements.\n * \n * @example { \"@steedos/plugin-auth\": \"^2.0.0\" }\n */\n dependencies: z.record(z.string(), z.string()).optional().describe('Package dependencies'),\n\n /**\n * Plugin Configuration Schema.\n * Defines the settings this plugin exposes to the user via UI/ENV.\n * Uses a simplified JSON Schema format.\n * \n * @example\n * {\n * \"title\": \"Stripe Config\",\n * \"properties\": {\n * \"apiKey\": { \"type\": \"string\", \"secret\": true },\n * \"currency\": { \"type\": \"string\", \"default\": \"USD\" }\n * }\n * }\n */\n configuration: z.object({\n title: z.string().optional(),\n properties: z.record(z.string(), z.object({\n type: z.enum(['string', 'number', 'boolean', 'array', 'object']).describe('Data type of the setting'),\n default: z.any().optional().describe('Default value'),\n description: z.string().optional().describe('Tooltip description'),\n required: z.boolean().optional().describe('Is this setting required?'),\n secret: z.boolean().optional().describe('If true, value is encrypted/masked (e.g. API Keys)'),\n enum: z.array(z.string()).optional().describe('Allowed values for select inputs'),\n })).describe('Map of configuration keys to their definitions')\n }).optional().describe('Plugin configuration settings'),\n\n /**\n * Contribution Points (VS Code Style).\n * formalized way to extend the platform capabilities.\n */\n contributes: z.object({\n /**\n * Register new Metadata Kinds (CRDs).\n * Enables the system to parse and validate new file types.\n * Example: Registering a BI plugin to handle *.report.ts\n */\n kinds: z.array(z.object({\n id: z.string().describe('The generic identifier of the kind (e.g., \"sys.bi.report\")'),\n globs: z.array(z.string()).describe('File patterns to watch (e.g., [\"**/*.report.ts\"])'),\n description: z.string().optional().describe('Description of what this kind represents'),\n })).optional().describe('New Metadata Types to recognize'),\n\n /**\n * Register System Hooks.\n * Declares that this plugin listens to specific system events.\n */\n events: z.array(z.string()).optional().describe('Events this plugin listens to'),\n\n /**\n * Register UI Menus.\n */\n menus: z.record(z.string(), z.array(z.object({\n id: z.string(),\n label: z.string(),\n command: z.string().optional(),\n }))).optional().describe('UI Menu contributions'),\n\n /**\n * Register Custom Themes.\n */\n themes: z.array(z.object({\n id: z.string(),\n label: z.string(),\n path: z.string(),\n })).optional().describe('Theme contributions'),\n\n /**\n * Register Translations.\n * Path to translation files (e.g. \"locales/en.json\").\n */\n translations: z.array(z.object({\n locale: z.string(),\n path: z.string(),\n })).optional().describe('Translation resources'),\n\n /**\n * Register Server Actions.\n * Invocable functions exposed to Flows or API.\n */\n actions: z.array(z.object({\n name: z.string().describe('Unique action name'),\n label: z.string().optional(),\n description: z.string().optional(),\n input: z.any().optional().describe('Input validation schema'),\n output: z.any().optional().describe('Output schema'),\n })).optional().describe('Exposed server actions'),\n\n /**\n * Register Storage Drivers.\n * Enables connecting to new types of datasources.\n */\n drivers: z.array(z.object({\n id: z.string().describe('Driver unique identifier (e.g. \"postgres\", \"mongo\")'),\n label: z.string().describe('Human readable name'),\n description: z.string().optional(),\n })).optional().describe('Driver contributions'),\n\n /**\n * Register Custom Field Types.\n * Extends the data model with new widget types.\n */\n fieldTypes: z.array(z.object({\n name: z.string().describe('Unique field type name (e.g. \"vector\")'),\n label: z.string().describe('Display label'),\n description: z.string().optional(),\n })).optional().describe('Field Type contributions'),\n \n /**\n * Register Custom Query Operators/Functions.\n * Extends ObjectQL with new functions (e.g. distance()).\n */\n functions: z.array(z.object({\n name: z.string().describe('Function name (e.g. \"distance\")'),\n description: z.string().optional(),\n args: z.array(z.string()).optional().describe('Argument types'),\n returnType: z.string().optional(),\n })).optional().describe('Query Function contributions'),\n }).optional().describe('Platform contributions'),\n\n /** \n * Initial data seeding configuration.\n * Defines default records to be inserted when the package is installed.\n */\n data: z.array(z.object({\n object: z.string().describe('Target Object Name'),\n records: z.array(z.record(z.string(), z.any())).describe('List of records to insert'),\n mode: z.enum(['upsert', 'insert', 'ignore']).default('upsert').describe('Seeding mode')\n })).optional().describe('Initial seed data'),\n\n /**\n * Plugin Capability Manifest.\n * Declares protocols implemented, interfaces provided, dependencies, and extension points.\n * This enables plugin interoperability and automatic discovery.\n */\n capabilities: PluginCapabilityManifestSchema.optional()\n .describe('Plugin capability declarations for interoperability'),\n\n /** \n * Extension points contributed by this package.\n * Allows packages to extend UI components, add functionality, etc.\n */\n extensions: z.record(z.string(), z.any()).optional().describe('Extension points and contributions'),\n\n /**\n * Plugin Loading Configuration.\n * Configures how the plugin is loaded, initialized, and managed at runtime.\n * Includes strategies for lazy loading, code splitting, caching, and hot reload.\n */\n loading: PluginLoadingConfigSchema.optional()\n .describe('Plugin loading and runtime behavior configuration'),\n});\n\n/**\n * TypeScript type inferred from the ManifestSchema.\n * Use this type for type-safe manifest handling in TypeScript code.\n */\nexport type ObjectStackManifest = z.infer<typeof ManifestSchema>;\n\n","import { z } from 'zod';\n\n/**\n * # Plugin Capability Protocol\n * \n * Defines the standard way plugins declare their capabilities, implementations,\n * and conformance levels to ensure interoperability across vendors.\n * \n * Based on the Protocol-Oriented Architecture pattern similar to:\n * - Kubernetes CRDs (Custom Resource Definitions)\n * - OSGi Service Registry\n * - Eclipse Extension Points\n */\n\n/**\n * Capability Conformance Level\n * Indicates how completely a plugin implements a given protocol.\n */\nexport const CapabilityConformanceLevelSchema = z.enum([\n 'full', // Complete implementation of all protocol features\n 'partial', // Subset implementation with specific features listed\n 'experimental', // Unstable/preview implementation\n 'deprecated', // Still supported but scheduled for removal\n]).describe('Level of protocol conformance');\n\n/**\n * Protocol Version Schema\n * Uses semantic versioning to track protocol evolution.\n */\nexport const ProtocolVersionSchema = z.object({\n major: z.number().int().min(0),\n minor: z.number().int().min(0),\n patch: z.number().int().min(0),\n}).describe('Semantic version of the protocol');\n\n/**\n * Protocol Reference\n * Uniquely identifies a protocol/interface that a plugin can implement.\n * \n * Examples:\n * - com.objectstack.protocol.storage.v1\n * - com.objectstack.protocol.auth.oauth2.v2\n * - com.acme.protocol.payment.stripe.v1\n */\nexport const ProtocolReferenceSchema = z.object({\n /**\n * Protocol identifier using reverse domain notation.\n * Format: {domain}.protocol.{category}.{name}[.{subcategory}].v{major}\n */\n id: z.string()\n .regex(/^([a-z][a-z0-9]*\\.)+protocol\\.[a-z][a-z0-9._]*\\.v\\d+$/)\n .describe('Unique protocol identifier (e.g., com.objectstack.protocol.storage.v1)'),\n \n /**\n * Human-readable protocol name\n */\n label: z.string(),\n \n /**\n * Protocol version\n */\n version: ProtocolVersionSchema,\n \n /**\n * Detailed protocol specification URL or file reference\n */\n specification: z.string().optional().describe('URL or path to protocol specification'),\n \n /**\n * Brief description of what this protocol defines\n */\n description: z.string().optional(),\n});\n\n/**\n * Protocol Feature\n * Represents a specific capability within a protocol.\n */\nexport const ProtocolFeatureSchema = z.object({\n name: z.string().describe('Feature identifier within the protocol'),\n enabled: z.boolean().default(true),\n description: z.string().optional(),\n sinceVersion: z.string().optional().describe('Version when this feature was added'),\n deprecatedSince: z.string().optional().describe('Version when deprecated'),\n});\n\n/**\n * Plugin Capability Declaration\n * Documents what protocols a plugin implements and to what extent.\n */\nexport const PluginCapabilitySchema = z.object({\n /**\n * The protocol being implemented\n */\n protocol: ProtocolReferenceSchema,\n \n /**\n * Conformance level\n */\n conformance: CapabilityConformanceLevelSchema.default('full'),\n \n /**\n * Specific features implemented (required if conformance is 'partial')\n */\n implementedFeatures: z.array(z.string()).optional().describe('List of implemented feature names'),\n \n /**\n * Optional feature flags indicating advanced capabilities\n */\n features: z.array(ProtocolFeatureSchema).optional(),\n \n /**\n * Custom metadata for vendor-specific information\n */\n metadata: z.record(z.string(), z.any()).optional(),\n \n /**\n * Testing/Certification status\n */\n certified: z.boolean().default(false).describe('Has passed official conformance tests'),\n certificationDate: z.string().datetime().optional(),\n});\n\n/**\n * Plugin Interface Declaration\n * Defines the contract for services this plugin provides to other plugins.\n */\nexport const PluginInterfaceSchema = z.object({\n /**\n * Unique interface identifier\n * Format: {plugin-id}.interface.{name}\n */\n id: z.string()\n .regex(/^([a-z][a-z0-9]*\\.)+interface\\.[a-z][a-z0-9._]+$/)\n .describe('Unique interface identifier'),\n \n /**\n * Interface name\n */\n name: z.string(),\n \n /**\n * Description of what this interface provides\n */\n description: z.string().optional(),\n \n /**\n * Interface version\n */\n version: ProtocolVersionSchema,\n \n /**\n * Methods exposed by this interface\n */\n methods: z.array(z.object({\n name: z.string().describe('Method name'),\n description: z.string().optional(),\n parameters: z.array(z.object({\n name: z.string(),\n type: z.string().describe('Type notation (e.g., string, number, User)'),\n required: z.boolean().default(true),\n description: z.string().optional(),\n })).optional(),\n returnType: z.string().optional().describe('Return value type'),\n async: z.boolean().default(false).describe('Whether method returns a Promise'),\n })),\n \n /**\n * Events emitted by this interface\n */\n events: z.array(z.object({\n name: z.string().describe('Event name'),\n description: z.string().optional(),\n payload: z.string().optional().describe('Event payload type'),\n })).optional(),\n \n /**\n * Stability level\n */\n stability: z.enum(['stable', 'beta', 'alpha', 'experimental']).default('stable'),\n});\n\n/**\n * Plugin Dependency Declaration\n * Specifies what other plugins or capabilities this plugin requires.\n */\nexport const PluginDependencySchema = z.object({\n /**\n * Plugin ID using reverse domain notation\n */\n pluginId: z.string()\n .regex(/^([a-z][a-z0-9]*\\.)+[a-z][a-z0-9-]+$/)\n .describe('Required plugin identifier'),\n \n /**\n * Version constraint (supports semver ranges)\n * Examples: \"1.0.0\", \"^1.2.3\", \">=2.0.0 <3.0.0\"\n */\n version: z.string().describe('Semantic version constraint'),\n \n /**\n * Whether this dependency is optional\n */\n optional: z.boolean().default(false),\n \n /**\n * Reason for the dependency\n */\n reason: z.string().optional(),\n \n /**\n * Minimum required capabilities from the dependency\n */\n requiredCapabilities: z.array(z.string()).optional().describe('Protocol IDs the dependency must support'),\n});\n\n/**\n * Extension Point Declaration\n * Defines hooks where other plugins can extend this plugin's functionality.\n */\nexport const ExtensionPointSchema = z.object({\n /**\n * Extension point identifier\n */\n id: z.string()\n .regex(/^([a-z][a-z0-9]*\\.)+extension\\.[a-z][a-z0-9._]+$/)\n .describe('Unique extension point identifier'),\n \n /**\n * Extension point name\n */\n name: z.string(),\n \n /**\n * Description\n */\n description: z.string().optional(),\n \n /**\n * Type of extension point\n */\n type: z.enum([\n 'action', // Plugins can register executable actions\n 'hook', // Plugins can listen to lifecycle events\n 'widget', // Plugins can contribute UI widgets\n 'provider', // Plugins can provide data/services\n 'transformer', // Plugins can transform data\n 'validator', // Plugins can validate data\n 'decorator', // Plugins can enhance/wrap functionality\n ]),\n \n /**\n * Expected interface contract for extensions\n */\n contract: z.object({\n input: z.string().optional().describe('Input type/schema'),\n output: z.string().optional().describe('Output type/schema'),\n signature: z.string().optional().describe('Function signature if applicable'),\n }).optional(),\n \n /**\n * Cardinality\n */\n cardinality: z.enum(['single', 'multiple']).default('multiple')\n .describe('Whether multiple extensions can register to this point'),\n});\n\n/**\n * Complete Plugin Capability Manifest\n * This is included in the main plugin manifest to declare all capabilities.\n */\nexport const PluginCapabilityManifestSchema = z.object({\n /**\n * Protocols this plugin implements\n */\n implements: z.array(PluginCapabilitySchema).optional()\n .describe('List of protocols this plugin conforms to'),\n \n /**\n * Interfaces this plugin exposes to other plugins\n */\n provides: z.array(PluginInterfaceSchema).optional()\n .describe('Services/APIs this plugin offers to others'),\n \n /**\n * Dependencies on other plugins\n */\n requires: z.array(PluginDependencySchema).optional()\n .describe('Required plugins and their capabilities'),\n \n /**\n * Extension points this plugin defines\n */\n extensionPoints: z.array(ExtensionPointSchema).optional()\n .describe('Points where other plugins can extend this plugin'),\n \n /**\n * Extensions this plugin contributes to other plugins\n */\n extensions: z.array(z.object({\n targetPluginId: z.string().describe('Plugin ID being extended'),\n extensionPointId: z.string().describe('Extension point identifier'),\n implementation: z.string().describe('Path to implementation module'),\n priority: z.number().int().default(100).describe('Registration priority (lower = higher priority)'),\n })).optional().describe('Extensions contributed to other plugins'),\n});\n\n// Export types\nexport type CapabilityConformanceLevel = z.infer<typeof CapabilityConformanceLevelSchema>;\nexport type ProtocolVersion = z.infer<typeof ProtocolVersionSchema>;\nexport type ProtocolReference = z.infer<typeof ProtocolReferenceSchema>;\nexport type ProtocolFeature = z.infer<typeof ProtocolFeatureSchema>;\nexport type PluginCapability = z.infer<typeof PluginCapabilitySchema>;\nexport type PluginInterface = z.infer<typeof PluginInterfaceSchema>;\nexport type PluginDependency = z.infer<typeof PluginDependencySchema>;\nexport type ExtensionPoint = z.infer<typeof ExtensionPointSchema>;\nexport type PluginCapabilityManifest = z.infer<typeof PluginCapabilityManifestSchema>;\n","import { z } from 'zod';\n\n/**\n * # Plugin Loading Protocol\n * \n * Defines the enhanced plugin loading mechanism for the microkernel architecture.\n * Inspired by industry best practices from:\n * - Kubernetes CRDs and Operators\n * - OSGi Dynamic Module System\n * - Eclipse Plugin Framework\n * - Webpack Module Federation\n * \n * This protocol enables:\n * - Lazy loading and code splitting\n * - Dynamic imports and parallel initialization\n * - Capability-based discovery\n * - Hot reload in development\n * - Advanced caching strategies\n */\n\n/**\n * Plugin Loading Strategy\n * Determines how and when a plugin is loaded into memory\n */\nexport const PluginLoadingStrategySchema = z.enum([\n 'eager', // Load immediately during bootstrap (critical plugins)\n 'lazy', // Load on first use (feature plugins)\n 'parallel', // Load in parallel with other plugins\n 'deferred', // Load after initial bootstrap complete\n 'on-demand', // Load only when explicitly requested\n]).describe('Plugin loading strategy');\n\n/**\n * Plugin Preloading Configuration\n * Configures preloading behavior for faster activation\n */\nexport const PluginPreloadConfigSchema = z.object({\n /**\n * Enable preloading for this plugin\n */\n enabled: z.boolean().default(false),\n \n /**\n * Preload priority (lower = higher priority)\n */\n priority: z.number().int().min(0).default(100),\n \n /**\n * Resources to preload\n */\n resources: z.array(z.enum([\n 'metadata', // Plugin manifest and metadata\n 'dependencies', // Plugin dependencies\n 'assets', // Static assets (icons, translations)\n 'code', // JavaScript code chunks\n 'services', // Service definitions\n ])).optional(),\n \n /**\n * Conditions for preloading\n */\n conditions: z.object({\n /**\n * Preload only on specific routes\n */\n routes: z.array(z.string()).optional(),\n \n /**\n * Preload only for specific user roles\n */\n roles: z.array(z.string()).optional(),\n \n /**\n * Preload based on device type\n */\n deviceType: z.array(z.enum(['desktop', 'mobile', 'tablet'])).optional(),\n \n /**\n * Network connection quality threshold\n */\n minNetworkSpeed: z.enum(['slow-2g', '2g', '3g', '4g']).optional(),\n }).optional(),\n}).describe('Plugin preloading configuration');\n\n/**\n * Plugin Code Splitting Configuration\n * Configures how plugin code is split for optimal loading\n */\nexport const PluginCodeSplittingSchema = z.object({\n /**\n * Enable code splitting for this plugin\n */\n enabled: z.boolean().default(true),\n \n /**\n * Split strategy\n */\n strategy: z.enum([\n 'route', // Split by UI routes\n 'feature', // Split by feature modules\n 'size', // Split by bundle size threshold\n 'custom', // Custom split points defined by plugin\n ]).default('feature'),\n \n /**\n * Chunk naming strategy\n */\n chunkNaming: z.enum(['hashed', 'named', 'sequential']).default('hashed'),\n \n /**\n * Maximum chunk size in KB\n */\n maxChunkSize: z.number().int().min(10).optional().describe('Max chunk size in KB'),\n \n /**\n * Shared dependencies optimization\n */\n sharedDependencies: z.object({\n enabled: z.boolean().default(true),\n /**\n * Minimum times a module must be shared before extraction\n */\n minChunks: z.number().int().min(1).default(2),\n }).optional(),\n}).describe('Plugin code splitting configuration');\n\n/**\n * Plugin Dynamic Import Configuration\n * Configures dynamic import behavior for runtime module loading\n */\nexport const PluginDynamicImportSchema = z.object({\n /**\n * Enable dynamic imports\n */\n enabled: z.boolean().default(true),\n \n /**\n * Import mode\n */\n mode: z.enum([\n 'async', // Asynchronous import (recommended)\n 'sync', // Synchronous import (blocking)\n 'eager', // Eager evaluation\n 'lazy', // Lazy evaluation\n ]).default('async'),\n \n /**\n * Prefetch strategy\n */\n prefetch: z.boolean().default(false).describe('Prefetch module in idle time'),\n \n /**\n * Preload strategy\n */\n preload: z.boolean().default(false).describe('Preload module in parallel with parent'),\n \n /**\n * Webpack magic comments support\n */\n webpackChunkName: z.string().optional().describe('Custom chunk name for webpack'),\n \n /**\n * Import timeout in milliseconds\n */\n timeout: z.number().int().min(100).default(30000).describe('Dynamic import timeout (ms)'),\n \n /**\n * Retry configuration on import failure\n */\n retry: z.object({\n enabled: z.boolean().default(true),\n maxAttempts: z.number().int().min(1).max(10).default(3),\n backoffMs: z.number().int().min(0).default(1000).describe('Exponential backoff base delay'),\n }).optional(),\n}).describe('Plugin dynamic import configuration');\n\n/**\n * Plugin Initialization Configuration\n * Configures how plugin initialization is executed\n */\nexport const PluginInitializationSchema = z.object({\n /**\n * Initialization mode\n */\n mode: z.enum([\n 'sync', // Synchronous initialization\n 'async', // Asynchronous initialization\n 'parallel', // Parallel with other plugins\n 'sequential', // Must complete before next plugin\n ]).default('async'),\n \n /**\n * Initialization timeout in milliseconds\n */\n timeout: z.number().int().min(100).default(30000),\n \n /**\n * Startup priority (lower = higher priority, earlier initialization)\n */\n priority: z.number().int().min(0).default(100),\n \n /**\n * Whether to continue bootstrap if this plugin fails\n */\n critical: z.boolean().default(false).describe('If true, kernel bootstrap fails if plugin fails'),\n \n /**\n * Retry configuration on initialization failure\n */\n retry: z.object({\n enabled: z.boolean().default(false),\n maxAttempts: z.number().int().min(1).max(5).default(3),\n backoffMs: z.number().int().min(0).default(1000),\n }).optional(),\n \n /**\n * Health check interval for monitoring\n */\n healthCheckInterval: z.number().int().min(0).optional().describe('Health check interval in ms (0 = disabled)'),\n}).describe('Plugin initialization configuration');\n\n/**\n * Plugin Dependency Resolution Configuration\n * Advanced dependency resolution using semantic versioning\n */\nexport const PluginDependencyResolutionSchema = z.object({\n /**\n * Dependency resolution strategy\n */\n strategy: z.enum([\n 'strict', // Exact version match required\n 'compatible', // Semver compatible versions (^)\n 'latest', // Always use latest compatible\n 'pinned', // Lock to specific version\n ]).default('compatible'),\n \n /**\n * Peer dependency handling\n */\n peerDependencies: z.object({\n /**\n * Whether to resolve peer dependencies\n */\n resolve: z.boolean().default(true),\n \n /**\n * Action on missing peer dependency\n */\n onMissing: z.enum(['error', 'warn', 'ignore']).default('warn'),\n \n /**\n * Action on peer version mismatch\n */\n onMismatch: z.enum(['error', 'warn', 'ignore']).default('warn'),\n }).optional(),\n \n /**\n * Optional dependency handling\n */\n optionalDependencies: z.object({\n /**\n * Whether to attempt loading optional dependencies\n */\n load: z.boolean().default(true),\n \n /**\n * Action on optional dependency load failure\n */\n onFailure: z.enum(['warn', 'ignore']).default('warn'),\n }).optional(),\n \n /**\n * Conflict resolution\n */\n conflictResolution: z.enum([\n 'fail', // Fail on any version conflict\n 'latest', // Use latest version\n 'oldest', // Use oldest version\n 'manual', // Require manual resolution\n ]).default('latest'),\n \n /**\n * Circular dependency handling\n */\n circularDependencies: z.enum([\n 'error', // Throw error on circular dependency\n 'warn', // Warn but continue\n 'allow', // Allow circular dependencies\n ]).default('warn'),\n}).describe('Plugin dependency resolution configuration');\n\n/**\n * Plugin Hot Reload Configuration\n * Enables hot module replacement for development\n */\nexport const PluginHotReloadSchema = z.object({\n /**\n * Enable hot reload\n */\n enabled: z.boolean().default(false),\n \n /**\n * Hot reload strategy\n */\n strategy: z.enum([\n 'full', // Full plugin reload (destroy and reinitialize)\n 'partial', // Partial reload (update changed modules only)\n 'state-preserve', // Preserve plugin state during reload\n ]).default('full'),\n \n /**\n * Files to watch for changes\n */\n watchPatterns: z.array(z.string()).optional().describe('Glob patterns for files to watch'),\n \n /**\n * Files to ignore\n */\n ignorePatterns: z.array(z.string()).optional().describe('Glob patterns for files to ignore'),\n \n /**\n * Debounce delay in milliseconds\n */\n debounceMs: z.number().int().min(0).default(300),\n \n /**\n * Whether to preserve state during reload\n */\n preserveState: z.boolean().default(false),\n \n /**\n * State serialization\n */\n stateSerialization: z.object({\n enabled: z.boolean().default(false),\n /**\n * Path to state serialization handler\n */\n handler: z.string().optional(),\n }).optional(),\n \n /**\n * Hooks for hot reload lifecycle\n */\n hooks: z.object({\n beforeReload: z.string().optional().describe('Function to call before reload'),\n afterReload: z.string().optional().describe('Function to call after reload'),\n onError: z.string().optional().describe('Function to call on reload error'),\n }).optional(),\n}).describe('Plugin hot reload configuration');\n\n/**\n * Plugin Caching Configuration\n * Configures caching strategy for faster subsequent loads\n */\nexport const PluginCachingSchema = z.object({\n /**\n * Enable caching\n */\n enabled: z.boolean().default(true),\n \n /**\n * Cache storage type\n */\n storage: z.enum([\n 'memory', // In-memory cache (fastest, not persistent)\n 'disk', // Disk cache (persistent)\n 'indexeddb', // Browser IndexedDB (persistent, browser only)\n 'hybrid', // Memory + Disk hybrid\n ]).default('memory'),\n \n /**\n * Cache key strategy\n */\n keyStrategy: z.enum([\n 'version', // Cache by plugin version\n 'hash', // Cache by content hash\n 'timestamp', // Cache by last modified timestamp\n ]).default('version'),\n \n /**\n * Cache TTL in seconds\n */\n ttl: z.number().int().min(0).optional().describe('Time to live in seconds (0 = infinite)'),\n \n /**\n * Maximum cache size in MB\n */\n maxSize: z.number().int().min(1).optional().describe('Max cache size in MB'),\n \n /**\n * Cache invalidation triggers\n */\n invalidateOn: z.array(z.enum([\n 'version-change',\n 'dependency-change',\n 'manual',\n 'error',\n ])).optional(),\n \n /**\n * Compression\n */\n compression: z.object({\n enabled: z.boolean().default(false),\n algorithm: z.enum(['gzip', 'brotli', 'deflate']).default('gzip'),\n }).optional(),\n}).describe('Plugin caching configuration');\n\n/**\n * Plugin Sandboxing Configuration\n * Security isolation for untrusted plugins\n */\nexport const PluginSandboxingSchema = z.object({\n /**\n * Enable sandboxing\n */\n enabled: z.boolean().default(false),\n \n /**\n * Sandbox isolation level\n */\n isolationLevel: z.enum([\n 'none', // No isolation\n 'process', // Separate process (Node.js worker threads)\n 'vm', // VM context isolation\n 'iframe', // iframe isolation (browser)\n 'web-worker', // Web Worker (browser)\n ]).default('none'),\n \n /**\n * Allowed capabilities\n */\n allowedCapabilities: z.array(z.string()).optional().describe('List of allowed capability IDs'),\n \n /**\n * Resource quotas\n */\n resourceQuotas: z.object({\n /**\n * Maximum memory usage in MB\n */\n maxMemoryMB: z.number().int().min(1).optional(),\n \n /**\n * Maximum CPU time in milliseconds\n */\n maxCpuTimeMs: z.number().int().min(100).optional(),\n \n /**\n * Maximum number of file descriptors\n */\n maxFileDescriptors: z.number().int().min(1).optional(),\n \n /**\n * Maximum network bandwidth in KB/s\n */\n maxNetworkKBps: z.number().int().min(1).optional(),\n }).optional(),\n \n /**\n * Permissions\n */\n permissions: z.object({\n /**\n * Allowed API access\n */\n allowedAPIs: z.array(z.string()).optional(),\n \n /**\n * Allowed file system paths\n */\n allowedPaths: z.array(z.string()).optional(),\n \n /**\n * Allowed network endpoints\n */\n allowedEndpoints: z.array(z.string()).optional(),\n \n /**\n * Allowed environment variables\n */\n allowedEnvVars: z.array(z.string()).optional(),\n }).optional(),\n}).describe('Plugin sandboxing configuration');\n\n/**\n * Plugin Performance Monitoring Configuration\n * Telemetry and performance tracking\n */\nexport const PluginPerformanceMonitoringSchema = z.object({\n /**\n * Enable performance monitoring\n */\n enabled: z.boolean().default(false),\n \n /**\n * Metrics to collect\n */\n metrics: z.array(z.enum([\n 'load-time',\n 'init-time',\n 'memory-usage',\n 'cpu-usage',\n 'api-calls',\n 'error-rate',\n 'cache-hit-rate',\n ])).optional(),\n \n /**\n * Sampling rate (0-1, where 1 = 100%)\n */\n samplingRate: z.number().min(0).max(1).default(1),\n \n /**\n * Reporting interval in seconds\n */\n reportingInterval: z.number().int().min(1).default(60),\n \n /**\n * Performance budget thresholds\n */\n budgets: z.object({\n /**\n * Maximum load time in milliseconds\n */\n maxLoadTimeMs: z.number().int().min(0).optional(),\n \n /**\n * Maximum init time in milliseconds\n */\n maxInitTimeMs: z.number().int().min(0).optional(),\n \n /**\n * Maximum memory usage in MB\n */\n maxMemoryMB: z.number().int().min(0).optional(),\n }).optional(),\n \n /**\n * Action on budget violation\n */\n onBudgetViolation: z.enum(['warn', 'error', 'ignore']).default('warn'),\n}).describe('Plugin performance monitoring configuration');\n\n/**\n * Complete Plugin Loading Configuration\n * Combines all loading-related configurations\n */\nexport const PluginLoadingConfigSchema = z.object({\n /**\n * Loading strategy\n */\n strategy: PluginLoadingStrategySchema.default('lazy'),\n \n /**\n * Preloading configuration\n */\n preload: PluginPreloadConfigSchema.optional(),\n \n /**\n * Code splitting configuration\n */\n codeSplitting: PluginCodeSplittingSchema.optional(),\n \n /**\n * Dynamic import configuration\n */\n dynamicImport: PluginDynamicImportSchema.optional(),\n \n /**\n * Initialization configuration\n */\n initialization: PluginInitializationSchema.optional(),\n \n /**\n * Dependency resolution configuration\n */\n dependencyResolution: PluginDependencyResolutionSchema.optional(),\n \n /**\n * Hot reload configuration (development only)\n */\n hotReload: PluginHotReloadSchema.optional(),\n \n /**\n * Caching configuration\n */\n caching: PluginCachingSchema.optional(),\n \n /**\n * Sandboxing configuration\n */\n sandboxing: PluginSandboxingSchema.optional(),\n \n /**\n * Performance monitoring\n */\n monitoring: PluginPerformanceMonitoringSchema.optional(),\n}).describe('Complete plugin loading configuration');\n\n/**\n * Plugin Loading Event\n * Emitted during plugin loading lifecycle\n */\nexport const PluginLoadingEventSchema = z.object({\n /**\n * Event type\n */\n type: z.enum([\n 'load-started',\n 'load-completed',\n 'load-failed',\n 'init-started',\n 'init-completed',\n 'init-failed',\n 'preload-started',\n 'preload-completed',\n 'cache-hit',\n 'cache-miss',\n 'hot-reload',\n ]),\n \n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Timestamp\n */\n timestamp: z.number().int().min(0),\n \n /**\n * Duration in milliseconds\n */\n durationMs: z.number().int().min(0).optional(),\n \n /**\n * Additional metadata\n */\n metadata: z.record(z.string(), z.any()).optional(),\n \n /**\n * Error if event represents a failure\n */\n error: z.object({\n message: z.string(),\n code: z.string().optional(),\n stack: z.string().optional(),\n }).optional(),\n}).describe('Plugin loading lifecycle event');\n\n/**\n * Plugin Loading State\n * Tracks the current loading state of a plugin\n */\nexport const PluginLoadingStateSchema = z.object({\n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Current state\n */\n state: z.enum([\n 'pending', // Not yet loaded\n 'loading', // Currently loading\n 'loaded', // Code loaded, not initialized\n 'initializing', // Currently initializing\n 'ready', // Fully initialized and ready\n 'failed', // Failed to load or initialize\n 'reloading', // Hot reloading in progress\n ]),\n \n /**\n * Load progress (0-100)\n */\n progress: z.number().min(0).max(100).default(0),\n \n /**\n * Loading start time\n */\n startedAt: z.number().int().min(0).optional(),\n \n /**\n * Loading completion time\n */\n completedAt: z.number().int().min(0).optional(),\n \n /**\n * Last error\n */\n lastError: z.string().optional(),\n \n /**\n * Retry count\n */\n retryCount: z.number().int().min(0).default(0),\n}).describe('Plugin loading state');\n\n// Export types\nexport type PluginLoadingStrategy = z.infer<typeof PluginLoadingStrategySchema>;\nexport type PluginPreloadConfig = z.infer<typeof PluginPreloadConfigSchema>;\nexport type PluginCodeSplitting = z.infer<typeof PluginCodeSplittingSchema>;\nexport type PluginDynamicImport = z.infer<typeof PluginDynamicImportSchema>;\nexport type PluginInitialization = z.infer<typeof PluginInitializationSchema>;\nexport type PluginDependencyResolution = z.infer<typeof PluginDependencyResolutionSchema>;\nexport type PluginHotReload = z.infer<typeof PluginHotReloadSchema>;\nexport type PluginCaching = z.infer<typeof PluginCachingSchema>;\nexport type PluginSandboxing = z.infer<typeof PluginSandboxingSchema>;\nexport type PluginPerformanceMonitoring = z.infer<typeof PluginPerformanceMonitoringSchema>;\nexport type PluginLoadingConfig = z.infer<typeof PluginLoadingConfigSchema>;\nexport type PluginLoadingEvent = z.infer<typeof PluginLoadingEventSchema>;\nexport type PluginLoadingState = z.infer<typeof PluginLoadingStateSchema>;\n","import { z } from 'zod';\n\n// We use z.any() for services that are interfaces with methods, \n// as Zod cannot easily validate function signatures at runtime.\nexport const PluginContextSchema = z.object({\n ql: z.object({\n object: z.function().returns(z.any()), // Return any to allow method chaining\n query: z.function().returns(z.any()),\n }).passthrough().describe('ObjectQL Engine Interface'),\n\n os: z.object({\n getCurrentUser: z.function().returns(z.any()),\n getConfig: z.function().returns(z.any()),\n }).passthrough().describe('ObjectStack Kernel Interface'),\n\n logger: z.object({\n debug: z.function().returns(z.void()),\n info: z.function().returns(z.void()),\n warn: z.function().returns(z.void()),\n error: z.function().returns(z.void()),\n }).passthrough().describe('Logger Interface'),\n\n storage: z.object({\n get: z.function().returns(z.any()),\n set: z.function().returns(z.promise(z.void())),\n delete: z.function().returns(z.promise(z.void())),\n }).passthrough().describe('Storage Interface'),\n\n i18n: z.object({\n t: z.function().returns(z.string()),\n getLocale: z.function().returns(z.string()),\n }).passthrough().describe('Internationalization Interface'),\n\n metadata: z.record(z.string(), z.any()),\n events: z.record(z.string(), z.any()),\n \n app: z.object({\n router: z.object({\n get: z.function().returns(z.any()),\n post: z.function().returns(z.any()),\n use: z.function().returns(z.any()),\n }).passthrough()\n }).passthrough().describe('App Framework Interface'),\n\n drivers: z.object({\n register: z.function().returns(z.void()),\n }).passthrough().describe('Driver Registry'),\n});\n\nexport type PluginContextData = z.infer<typeof PluginContextSchema>;\nexport type PluginContext = PluginContextData;\n\nexport const PluginLifecycleSchema = z.object({\n onInstall: z.function()\n .args(PluginContextSchema)\n .returns(z.promise(z.void()))\n .optional(),\n \n onEnable: z.function()\n .args(PluginContextSchema)\n .returns(z.promise(z.void()))\n .optional(),\n \n onDisable: z.function()\n .args(PluginContextSchema)\n .returns(z.promise(z.void()))\n .optional(),\n \n onUninstall: z.function()\n .args(PluginContextSchema)\n .returns(z.promise(z.void()))\n .optional(),\n \n onUpgrade: z.function()\n .args(PluginContextSchema, z.string(), z.string())\n .returns(z.promise(z.void()))\n .optional(),\n});\n\nexport type PluginLifecycleHooks = z.infer<typeof PluginLifecycleSchema>;\n\n/**\n * Shared Plugin Types\n * These are the specialized plugin types common between Manifest (Package) and Plugin (Runtime).\n */\nexport const CORE_PLUGIN_TYPES = [\n 'ui', // Frontend: Serves static assets/SPA (e.g. Console, Studio)\n 'driver', // Connectivity: Database or Storage adapters (e.g. SQL, S3)\n 'server', // Protocol: HTTP/RPC Servers (e.g. Hono, GraphQL)\n 'app', // Business: Vertical Solution Bundle (Metadata + Logic)\n 'theme', // Appearance: UI Overrides & CSS Variables\n 'agent', // AI: Autonomous Agent & Tool Definitions\n 'objectql' // Core: ObjectQL Engine Data Provider\n] as const;\n\nexport const PluginSchema = PluginLifecycleSchema.extend({\n id: z.string().min(1).optional().describe('Unique Plugin ID (e.g. com.example.crm)'),\n type: z.enum([\n 'standard', // Default: General purpose backend logic (Service, Hook, etc.)\n ...CORE_PLUGIN_TYPES\n ]).default('standard').optional().describe('Plugin Type categorization for runtime behavior'),\n \n staticPath: z.string().optional().describe('Absolute path to static assets (Required for type=\"ui-plugin\")'),\n slug: z.string().regex(/^[a-z0-9-_]+$/).optional().describe('URL path segment (Required for type=\"ui-plugin\")'),\n default: z.boolean().optional().describe('Serve at root path (Only one \"ui-plugin\" can be default)'),\n \n version: z.string().regex(/^\\d+\\.\\d+\\.\\d+$/).optional().describe('Semantic Version'),\n description: z.string().optional(),\n author: z.string().optional(),\n homepage: z.string().url().optional(),\n});\n\nexport type PluginDefinition = z.infer<typeof PluginSchema>;\n\n/**\n * Define an ObjectStack Plugin\n * Helper function for creating type-safe plugin definitions\n */\nexport function definePlugin(config: PluginDefinition): PluginDefinition {\n return config;\n}\n","import { z } from 'zod';\n\n/**\n * # Metadata Loader Protocol\n * \n * Defines the standard interface for loading and saving metadata in ObjectStack.\n * This protocol enables consistent metadata operations across different storage backends\n * (filesystem, HTTP, S3, databases) and serialization formats (JSON, YAML, TypeScript).\n */\n\n/**\n * Metadata Format Enum\n * Supported serialization formats for metadata\n */\nexport const MetadataFormatSchema = z.enum(['json', 'yaml', 'typescript', 'javascript']);\n\n/**\n * Metadata Statistics\n * Information about a metadata item without loading its full content\n */\nexport const MetadataStatsSchema = z.object({\n /**\n * Size of the metadata file in bytes\n */\n size: z.number().int().min(0).describe('File size in bytes'),\n \n /**\n * Last modification timestamp\n */\n modifiedAt: z.date().describe('Last modified date'),\n \n /**\n * ETag for cache validation\n * Used for conditional requests (If-None-Match header)\n */\n etag: z.string().describe('Entity tag for cache validation'),\n \n /**\n * Serialization format\n */\n format: MetadataFormatSchema.describe('Serialization format'),\n \n /**\n * Full file path (if applicable)\n */\n path: z.string().optional().describe('File system path'),\n \n /**\n * Additional metadata provider-specific properties\n */\n metadata: z.record(z.string(), z.any()).optional().describe('Provider-specific metadata'),\n});\n\n/**\n * Metadata Load Options\n */\nexport const MetadataLoadOptionsSchema = z.object({\n /**\n * Glob patterns to match files\n * Example: [\"**\\/*.object.ts\", \"**\\/*.object.json\"]\n */\n patterns: z.array(z.string()).optional().describe('File glob patterns'),\n \n /**\n * If-None-Match header for conditional loading\n * Only load if ETag doesn't match\n */\n ifNoneMatch: z.string().optional().describe('ETag for conditional request'),\n \n /**\n * If-Modified-Since header for conditional loading\n */\n ifModifiedSince: z.date().optional().describe('Only load if modified after this date'),\n \n /**\n * Whether to validate against Zod schema\n */\n validate: z.boolean().default(true).describe('Validate against schema'),\n \n /**\n * Whether to use cache if available\n */\n useCache: z.boolean().default(true).describe('Enable caching'),\n \n /**\n * Filter function (serialized as string)\n * Example: \"(item) => item.name.startsWith('sys_')\"\n */\n filter: z.string().optional().describe('Filter predicate as string'),\n \n /**\n * Maximum number of items to load\n */\n limit: z.number().int().min(1).optional().describe('Maximum items to load'),\n \n /**\n * Recursively search subdirectories\n */\n recursive: z.boolean().default(true).describe('Search subdirectories'),\n});\n\n/**\n * Metadata Save Options\n */\nexport const MetadataSaveOptionsSchema = z.object({\n /**\n * Serialization format\n */\n format: MetadataFormatSchema.default('typescript').describe('Output format'),\n \n /**\n * Prettify output (formatted with indentation)\n */\n prettify: z.boolean().default(true).describe('Format with indentation'),\n \n /**\n * Indentation size (spaces)\n */\n indent: z.number().int().min(0).max(8).default(2).describe('Indentation spaces'),\n \n /**\n * Sort object keys alphabetically\n */\n sortKeys: z.boolean().default(false).describe('Sort object keys'),\n \n /**\n * Include default values in output\n */\n includeDefaults: z.boolean().default(false).describe('Include default values'),\n \n /**\n * Create backup before overwriting\n */\n backup: z.boolean().default(false).describe('Create backup file'),\n \n /**\n * Overwrite if exists\n */\n overwrite: z.boolean().default(true).describe('Overwrite existing file'),\n \n /**\n * Atomic write (write to temp file, then rename)\n */\n atomic: z.boolean().default(true).describe('Use atomic write operation'),\n \n /**\n * Custom file path (overrides default location)\n */\n path: z.string().optional().describe('Custom output path'),\n});\n\n/**\n * Metadata Export Options\n */\nexport const MetadataExportOptionsSchema = z.object({\n /**\n * Output file path\n */\n output: z.string().describe('Output file path'),\n \n /**\n * Export format\n */\n format: MetadataFormatSchema.default('json').describe('Export format'),\n \n /**\n * Filter predicate as string\n */\n filter: z.string().optional().describe('Filter items to export'),\n \n /**\n * Include statistics in export\n */\n includeStats: z.boolean().default(false).describe('Include metadata statistics'),\n \n /**\n * Compress output\n */\n compress: z.boolean().default(false).describe('Compress output (gzip)'),\n \n /**\n * Pretty print output\n */\n prettify: z.boolean().default(true).describe('Pretty print output'),\n});\n\n/**\n * Metadata Import Options\n */\nexport const MetadataImportOptionsSchema = z.object({\n /**\n * Conflict resolution strategy\n */\n conflictResolution: z.enum(['skip', 'overwrite', 'merge', 'fail'])\n .default('merge')\n .describe('How to handle existing items'),\n \n /**\n * Validate items against schema\n */\n validate: z.boolean().default(true).describe('Validate before import'),\n \n /**\n * Dry run (don't actually save)\n */\n dryRun: z.boolean().default(false).describe('Simulate import without saving'),\n \n /**\n * Continue on errors\n */\n continueOnError: z.boolean().default(false).describe('Continue if validation fails'),\n \n /**\n * Transform function (as string)\n * Example: \"(item) => ({ ...item, imported: true })\"\n */\n transform: z.string().optional().describe('Transform items before import'),\n});\n\n/**\n * Metadata Loader Result\n * Result of a metadata load operation\n */\nexport const MetadataLoadResultSchema = z.object({\n /**\n * Loaded data\n */\n data: z.any().nullable().describe('Loaded metadata'),\n \n /**\n * Whether data came from cache (304 Not Modified)\n */\n fromCache: z.boolean().default(false).describe('Loaded from cache'),\n \n /**\n * Not modified (conditional request matched)\n */\n notModified: z.boolean().default(false).describe('Not modified since last request'),\n \n /**\n * ETag of loaded data\n */\n etag: z.string().optional().describe('Entity tag'),\n \n /**\n * Statistics about loaded data\n */\n stats: MetadataStatsSchema.optional().describe('Metadata statistics'),\n \n /**\n * Load time in milliseconds\n */\n loadTime: z.number().min(0).optional().describe('Load duration in ms'),\n});\n\n/**\n * Metadata Save Result\n */\nexport const MetadataSaveResultSchema = z.object({\n /**\n * Whether save was successful\n */\n success: z.boolean().describe('Save successful'),\n \n /**\n * Path where file was saved\n */\n path: z.string().describe('Output path'),\n \n /**\n * Generated ETag\n */\n etag: z.string().optional().describe('Generated entity tag'),\n \n /**\n * File size in bytes\n */\n size: z.number().int().min(0).optional().describe('File size'),\n \n /**\n * Save time in milliseconds\n */\n saveTime: z.number().min(0).optional().describe('Save duration in ms'),\n \n /**\n * Backup path (if created)\n */\n backupPath: z.string().optional().describe('Backup file path'),\n});\n\n/**\n * Metadata Watch Event\n */\nexport const MetadataWatchEventSchema = z.object({\n /**\n * Event type\n */\n type: z.enum(['added', 'changed', 'deleted']).describe('Event type'),\n \n /**\n * Metadata type (e.g., 'object', 'view', 'app')\n */\n metadataType: z.string().describe('Type of metadata'),\n \n /**\n * Item name/identifier\n */\n name: z.string().describe('Item identifier'),\n \n /**\n * Full file path\n */\n path: z.string().describe('File path'),\n \n /**\n * Loaded item data (for added/changed events)\n */\n data: z.any().optional().describe('Item data'),\n \n /**\n * Timestamp\n */\n timestamp: z.date().describe('Event timestamp'),\n});\n\n/**\n * Metadata Collection Info\n * Summary of a metadata collection\n */\nexport const MetadataCollectionInfoSchema = z.object({\n /**\n * Collection type (e.g., 'object', 'view', 'app')\n */\n type: z.string().describe('Collection type'),\n \n /**\n * Total items in collection\n */\n count: z.number().int().min(0).describe('Number of items'),\n \n /**\n * Formats found in collection\n */\n formats: z.array(MetadataFormatSchema).describe('Formats in collection'),\n \n /**\n * Total size in bytes\n */\n totalSize: z.number().int().min(0).optional().describe('Total size in bytes'),\n \n /**\n * Last modified timestamp\n */\n lastModified: z.date().optional().describe('Last modification date'),\n \n /**\n * Collection location (path or URL)\n */\n location: z.string().optional().describe('Collection location'),\n});\n\n/**\n * Metadata Loader Interface Contract\n * Defines the standard methods all metadata loaders must implement\n */\nexport const MetadataLoaderContractSchema = z.object({\n /**\n * Loader name/identifier\n */\n name: z.string().describe('Loader identifier'),\n\n /**\n * Protocol handled by this loader (e.g. 'file', 'http', 's3')\n */\n protocol: z.string().describe('Protocol identifier'),\n\n /**\n * Detailed capabilities\n */\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 }).describe('Loader capabilities'),\n \n /**\n * Supported formats\n */\n supportedFormats: z.array(MetadataFormatSchema).describe('Supported formats'),\n \n /**\n * Whether loader supports watching for changes\n */\n supportsWatch: z.boolean().default(false).describe('Supports file watching'),\n \n /**\n * Whether loader supports saving\n */\n supportsWrite: z.boolean().default(true).describe('Supports write operations'),\n \n /**\n * Whether loader supports caching\n */\n supportsCache: z.boolean().default(true).describe('Supports caching'),\n});\n\n/**\n * Metadata Manager Configuration\n */\nexport const MetadataManagerConfigSchema = z.object({\n /**\n * Root directory for metadata (for filesystem loaders)\n */\n rootDir: z.string().optional().describe('Root directory path'),\n \n /**\n * Enabled serialization formats\n */\n formats: z.array(MetadataFormatSchema).default(['typescript', 'json', 'yaml']).describe('Enabled formats'),\n \n /**\n * Cache configuration\n */\n cache: z.object({\n enabled: z.boolean().default(true).describe('Enable caching'),\n ttl: z.number().int().min(0).default(3600).describe('Cache TTL in seconds'),\n maxSize: z.number().int().min(0).optional().describe('Max cache size in bytes'),\n }).optional().describe('Cache settings'),\n \n /**\n * Watch for file changes\n */\n watch: z.boolean().default(false).describe('Enable file watching'),\n \n /**\n * Watch options\n */\n watchOptions: z.object({\n ignored: z.array(z.string()).optional().describe('Patterns to ignore'),\n persistent: z.boolean().default(true).describe('Keep process running'),\n ignoreInitial: z.boolean().default(true).describe('Ignore initial add events'),\n }).optional().describe('File watcher options'),\n \n /**\n * Validation settings\n */\n validation: z.object({\n strict: z.boolean().default(true).describe('Strict validation'),\n throwOnError: z.boolean().default(true).describe('Throw on validation error'),\n }).optional().describe('Validation settings'),\n \n /**\n * Loader-specific options\n */\n loaderOptions: z.record(z.string(), z.any()).optional().describe('Loader-specific configuration'),\n});\n\n// Export types\nexport type MetadataFormat = z.infer<typeof MetadataFormatSchema>;\nexport type MetadataStats = z.infer<typeof MetadataStatsSchema>;\nexport type MetadataLoadOptions = z.input<typeof MetadataLoadOptionsSchema>;\nexport type MetadataSaveOptions = z.infer<typeof MetadataSaveOptionsSchema>;\nexport type MetadataExportOptions = z.infer<typeof MetadataExportOptionsSchema>;\nexport type MetadataImportOptions = z.infer<typeof MetadataImportOptionsSchema>;\nexport type MetadataLoadResult = z.infer<typeof MetadataLoadResultSchema>;\nexport type MetadataSaveResult = z.infer<typeof MetadataSaveResultSchema>;\nexport type MetadataWatchEvent = z.infer<typeof MetadataWatchEventSchema>;\nexport type MetadataCollectionInfo = z.infer<typeof MetadataCollectionInfoSchema>;\nexport type MetadataLoaderContract = z.infer<typeof MetadataLoaderContractSchema>;\nexport type MetadataManagerConfig = z.infer<typeof MetadataManagerConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * # Advanced Plugin Lifecycle Protocol\n * \n * Defines advanced lifecycle management capabilities including:\n * - Hot reload and live updates\n * - Graceful degradation and fallback mechanisms\n * - Health monitoring and auto-recovery\n * - State preservation during updates\n * \n * This protocol extends the basic plugin lifecycle with enterprise-grade\n * features for production environments.\n */\n\n/**\n * Plugin Health Status\n * Represents the current operational state of a plugin\n */\nexport const PluginHealthStatusSchema = z.enum([\n 'healthy', // Plugin is operating normally\n 'degraded', // Plugin is operational but with reduced functionality\n 'unhealthy', // Plugin has critical issues but still running\n 'failed', // Plugin has failed and is not operational\n 'recovering', // Plugin is in recovery process\n 'unknown', // Health status cannot be determined\n]).describe('Current health status of the plugin');\n\n/**\n * Plugin Health Check Configuration\n * Defines how to check plugin health\n */\nexport const PluginHealthCheckSchema = z.object({\n /**\n * Health check interval in milliseconds\n */\n interval: z.number().int().min(1000).default(30000)\n .describe('How often to perform health checks (default: 30s)'),\n \n /**\n * Timeout for health check in milliseconds\n */\n timeout: z.number().int().min(100).default(5000)\n .describe('Maximum time to wait for health check response'),\n \n /**\n * Number of consecutive failures before marking as unhealthy\n */\n failureThreshold: z.number().int().min(1).default(3)\n .describe('Consecutive failures needed to mark unhealthy'),\n \n /**\n * Number of consecutive successes to recover from unhealthy state\n */\n successThreshold: z.number().int().min(1).default(1)\n .describe('Consecutive successes needed to mark healthy'),\n \n /**\n * Custom health check function name or endpoint\n */\n checkMethod: z.string().optional()\n .describe('Method name to call for health check'),\n \n /**\n * Enable automatic restart on failure\n */\n autoRestart: z.boolean().default(false)\n .describe('Automatically restart plugin on health check failure'),\n \n /**\n * Maximum number of restart attempts\n */\n maxRestartAttempts: z.number().int().min(0).default(3)\n .describe('Maximum restart attempts before giving up'),\n \n /**\n * Backoff strategy for restarts\n */\n restartBackoff: z.enum(['fixed', 'linear', 'exponential']).default('exponential')\n .describe('Backoff strategy for restart delays'),\n});\n\n/**\n * Plugin Health Report\n * Detailed health information from a plugin\n */\nexport const PluginHealthReportSchema = z.object({\n /**\n * Overall health status\n */\n status: PluginHealthStatusSchema,\n \n /**\n * Timestamp of the health check\n */\n timestamp: z.string().datetime(),\n \n /**\n * Human-readable message about health status\n */\n message: z.string().optional(),\n \n /**\n * Detailed metrics\n */\n metrics: z.object({\n uptime: z.number().describe('Plugin uptime in milliseconds'),\n memoryUsage: z.number().optional().describe('Memory usage in bytes'),\n cpuUsage: z.number().optional().describe('CPU usage percentage'),\n activeConnections: z.number().optional().describe('Number of active connections'),\n errorRate: z.number().optional().describe('Error rate (errors per minute)'),\n responseTime: z.number().optional().describe('Average response time in ms'),\n }).partial().optional(),\n \n /**\n * List of checks performed\n */\n checks: z.array(z.object({\n name: z.string().describe('Check name'),\n status: z.enum(['passed', 'failed', 'warning']),\n message: z.string().optional(),\n data: z.record(z.string(), z.any()).optional(),\n })).optional(),\n \n /**\n * Dependencies health\n */\n dependencies: z.array(z.object({\n pluginId: z.string(),\n status: PluginHealthStatusSchema,\n message: z.string().optional(),\n })).optional(),\n});\n\n/**\n * Distributed State Configuration\n * Configuration for distributed state management in cluster environments\n */\nexport const DistributedStateConfigSchema = z.object({\n /**\n * Distributed cache provider\n */\n provider: z.enum(['redis', 'etcd', 'custom'])\n .describe('Distributed state backend provider'),\n \n /**\n * Connection URL or endpoints\n */\n endpoints: z.array(z.string()).optional()\n .describe('Backend connection endpoints'),\n \n /**\n * Key prefix for namespacing\n */\n keyPrefix: z.string().optional()\n .describe('Prefix for all keys (e.g., \"plugin:my-plugin:\")'),\n \n /**\n * Time to live in seconds\n */\n ttl: z.number().int().min(0).optional()\n .describe('State expiration time in seconds'),\n \n /**\n * Authentication configuration\n */\n auth: z.object({\n username: z.string().optional(),\n password: z.string().optional(),\n token: z.string().optional(),\n certificate: z.string().optional(),\n }).optional(),\n \n /**\n * Replication settings\n */\n replication: z.object({\n enabled: z.boolean().default(true),\n minReplicas: z.number().int().min(1).default(1),\n }).optional(),\n \n /**\n * Custom provider configuration\n */\n customConfig: z.record(z.string(), z.any()).optional()\n .describe('Provider-specific configuration'),\n});\n\n/**\n * Hot Reload Configuration\n * Controls how plugins handle live updates\n */\nexport const HotReloadConfigSchema = z.object({\n /**\n * Enable hot reload capability\n */\n enabled: z.boolean().default(false),\n \n /**\n * Watch file patterns for auto-reload\n */\n watchPatterns: z.array(z.string()).optional()\n .describe('Glob patterns to watch for changes'),\n \n /**\n * Debounce delay before reloading (milliseconds)\n */\n debounceDelay: z.number().int().min(0).default(1000)\n .describe('Wait time after change detection before reload'),\n \n /**\n * Preserve plugin state during reload\n */\n preserveState: z.boolean().default(true)\n .describe('Keep plugin state across reloads'),\n \n /**\n * State serialization strategy\n */\n stateStrategy: z.enum(['memory', 'disk', 'distributed', 'none']).default('memory')\n .describe('How to preserve state during reload'),\n \n /**\n * Distributed state configuration (required when stateStrategy is \"distributed\")\n */\n distributedConfig: DistributedStateConfigSchema.optional()\n .describe('Configuration for distributed state management'),\n \n /**\n * Graceful shutdown timeout\n */\n shutdownTimeout: z.number().int().min(0).default(30000)\n .describe('Maximum time to wait for graceful shutdown'),\n \n /**\n * Pre-reload hooks\n */\n beforeReload: z.array(z.string()).optional()\n .describe('Hook names to call before reload'),\n \n /**\n * Post-reload hooks\n */\n afterReload: z.array(z.string()).optional()\n .describe('Hook names to call after reload'),\n});\n\n/**\n * Graceful Degradation Configuration\n * Defines how plugin degrades when dependencies fail\n */\nexport const GracefulDegradationSchema = z.object({\n /**\n * Enable graceful degradation\n */\n enabled: z.boolean().default(true),\n \n /**\n * Fallback mode when dependencies fail\n */\n fallbackMode: z.enum([\n 'minimal', // Provide minimal functionality\n 'cached', // Use cached data\n 'readonly', // Allow read-only operations\n 'offline', // Offline mode with local data\n 'disabled', // Disable plugin functionality\n ]).default('minimal'),\n \n /**\n * Critical dependencies that must be available\n */\n criticalDependencies: z.array(z.string()).optional()\n .describe('Plugin IDs that are required for operation'),\n \n /**\n * Optional dependencies that can fail\n */\n optionalDependencies: z.array(z.string()).optional()\n .describe('Plugin IDs that are nice to have but not required'),\n \n /**\n * Feature flags for degraded mode\n */\n degradedFeatures: z.array(z.object({\n feature: z.string().describe('Feature name'),\n enabled: z.boolean().describe('Whether feature is available in degraded mode'),\n reason: z.string().optional(),\n })).optional(),\n \n /**\n * Automatic recovery attempts\n */\n autoRecovery: z.object({\n enabled: z.boolean().default(true),\n retryInterval: z.number().int().min(1000).default(60000)\n .describe('Interval between recovery attempts (ms)'),\n maxAttempts: z.number().int().min(0).default(5)\n .describe('Maximum recovery attempts before giving up'),\n }).optional(),\n});\n\n/**\n * Plugin Update Strategy\n * Defines how plugin handles version updates\n */\nexport const PluginUpdateStrategySchema = z.object({\n /**\n * Update mode\n */\n mode: z.enum([\n 'manual', // Manual updates only\n 'automatic', // Automatic updates\n 'scheduled', // Scheduled update windows\n 'rolling', // Rolling updates with zero downtime\n ]).default('manual'),\n \n /**\n * Version constraints for automatic updates\n */\n autoUpdateConstraints: z.object({\n major: z.boolean().default(false).describe('Allow major version updates'),\n minor: z.boolean().default(true).describe('Allow minor version updates'),\n patch: z.boolean().default(true).describe('Allow patch version updates'),\n }).optional(),\n \n /**\n * Update schedule (for scheduled mode)\n */\n schedule: z.object({\n /**\n * Cron expression for update window\n */\n cron: z.string().optional(),\n \n /**\n * Timezone for schedule\n */\n timezone: z.string().default('UTC'),\n \n /**\n * Maintenance window duration in minutes\n */\n maintenanceWindow: z.number().int().min(1).default(60),\n }).optional(),\n \n /**\n * Rollback configuration\n */\n rollback: z.object({\n enabled: z.boolean().default(true),\n \n /**\n * Automatic rollback on failure\n */\n automatic: z.boolean().default(true),\n \n /**\n * Keep N previous versions for rollback\n */\n keepVersions: z.number().int().min(1).default(3),\n \n /**\n * Rollback timeout in milliseconds\n */\n timeout: z.number().int().min(1000).default(30000),\n }).optional(),\n \n /**\n * Pre-update validation\n */\n validation: z.object({\n /**\n * Run compatibility checks before update\n */\n checkCompatibility: z.boolean().default(true),\n \n /**\n * Run tests before applying update\n */\n runTests: z.boolean().default(false),\n \n /**\n * Test suite to run\n */\n testSuite: z.string().optional(),\n }).optional(),\n});\n\n/**\n * Plugin State Snapshot\n * Captures plugin state for preservation during updates/reloads\n */\nexport const PluginStateSnapshotSchema = z.object({\n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Version at time of snapshot\n */\n version: z.string(),\n \n /**\n * Snapshot timestamp\n */\n timestamp: z.string().datetime(),\n \n /**\n * Serialized state data\n */\n state: z.record(z.string(), z.any()),\n \n /**\n * State metadata\n */\n metadata: z.object({\n checksum: z.string().optional().describe('State checksum for verification'),\n compressed: z.boolean().default(false),\n encryption: z.string().optional().describe('Encryption algorithm if encrypted'),\n }).optional(),\n});\n\n/**\n * Advanced Plugin Lifecycle Configuration\n * Complete configuration for advanced lifecycle management\n */\nexport const AdvancedPluginLifecycleConfigSchema = z.object({\n /**\n * Health monitoring configuration\n */\n health: PluginHealthCheckSchema.optional(),\n \n /**\n * Hot reload configuration\n */\n hotReload: HotReloadConfigSchema.optional(),\n \n /**\n * Graceful degradation configuration\n */\n degradation: GracefulDegradationSchema.optional(),\n \n /**\n * Update strategy\n */\n updates: PluginUpdateStrategySchema.optional(),\n \n /**\n * Resource limits\n */\n resources: z.object({\n maxMemory: z.number().int().optional().describe('Maximum memory in bytes'),\n maxCpu: z.number().min(0).max(100).optional().describe('Maximum CPU percentage'),\n maxConnections: z.number().int().optional().describe('Maximum concurrent connections'),\n timeout: z.number().int().optional().describe('Operation timeout in milliseconds'),\n }).optional(),\n \n /**\n * Monitoring and observability\n */\n observability: z.object({\n enableMetrics: z.boolean().default(true),\n enableTracing: z.boolean().default(true),\n enableProfiling: z.boolean().default(false),\n metricsInterval: z.number().int().min(1000).default(60000)\n .describe('Metrics collection interval in ms'),\n }).optional(),\n});\n\n// Export types\nexport type PluginHealthStatus = z.infer<typeof PluginHealthStatusSchema>;\nexport type PluginHealthCheck = z.infer<typeof PluginHealthCheckSchema>;\nexport type PluginHealthReport = z.infer<typeof PluginHealthReportSchema>;\nexport type DistributedStateConfig = z.infer<typeof DistributedStateConfigSchema>;\nexport type HotReloadConfig = z.infer<typeof HotReloadConfigSchema>;\nexport type GracefulDegradation = z.infer<typeof GracefulDegradationSchema>;\nexport type PluginUpdateStrategy = z.infer<typeof PluginUpdateStrategySchema>;\nexport type PluginStateSnapshot = z.infer<typeof PluginStateSnapshotSchema>;\nexport type AdvancedPluginLifecycleConfig = z.infer<typeof AdvancedPluginLifecycleConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * Plugin Lifecycle Events Protocol\n * \n * Zod schemas for plugin lifecycle event data structures.\n * These schemas align with the IPluginLifecycleEvents contract interface.\n * \n * Following ObjectStack \"Zod First\" principle - all data structures\n * must have Zod schemas for runtime validation and JSON Schema generation.\n */\n\n// ============================================================================\n// Event Payload Schemas\n// ============================================================================\n\n/**\n * Event Phase Enum\n * Lifecycle phase where an error occurred\n */\nexport const EventPhaseSchema = z.enum(['init', 'start', 'destroy'])\n .describe('Plugin lifecycle phase');\n\nexport type EventPhase = z.infer<typeof EventPhaseSchema>;\n\n/**\n * Plugin Event Base Schema\n * Common fields for all plugin events\n */\nexport const PluginEventBaseSchema = z.object({\n /**\n * Plugin name\n */\n pluginName: z.string().describe('Name of the plugin'),\n \n /**\n * Event timestamp (Unix milliseconds)\n */\n timestamp: z.number().int().describe('Unix timestamp in milliseconds when event occurred'),\n});\n\n/**\n * Plugin Registered Event Schema\n * \n * @example\n * {\n * \"pluginName\": \"crm-plugin\",\n * \"timestamp\": 1706659200000,\n * \"version\": \"1.0.0\"\n * }\n */\nexport const PluginRegisteredEventSchema = PluginEventBaseSchema.extend({\n /**\n * Plugin version (optional)\n */\n version: z.string().optional().describe('Plugin version'),\n});\n\nexport type PluginRegisteredEvent = z.infer<typeof PluginRegisteredEventSchema>;\n\n/**\n * Plugin Lifecycle Phase Event Schema\n * For init, start, destroy phases\n * \n * @example\n * {\n * \"pluginName\": \"crm-plugin\",\n * \"timestamp\": 1706659200000,\n * \"duration\": 1250,\n * \"phase\": \"init\"\n * }\n */\nexport const PluginLifecyclePhaseEventSchema = PluginEventBaseSchema.extend({\n /**\n * Duration of the phase (milliseconds)\n */\n duration: z.number().min(0).optional().describe('Duration of the lifecycle phase in milliseconds'),\n \n /**\n * Lifecycle phase\n */\n phase: EventPhaseSchema.optional().describe('Lifecycle phase'),\n});\n\nexport type PluginLifecyclePhaseEvent = z.infer<typeof PluginLifecyclePhaseEventSchema>;\n\n/**\n * Plugin Error Event Schema\n * When a plugin encounters an error\n * \n * @example\n * {\n * \"pluginName\": \"crm-plugin\",\n * \"timestamp\": 1706659200000,\n * \"error\": Error(\"Connection failed\"),\n * \"phase\": \"start\",\n * \"errorMessage\": \"Connection failed\",\n * \"errorStack\": \"Error: Connection failed\\n at ...\"\n * }\n */\nexport const PluginErrorEventSchema = PluginEventBaseSchema.extend({\n /**\n * Error object\n */\n error: z.instanceof(Error).describe('Error object'),\n \n /**\n * Lifecycle phase where error occurred\n */\n phase: EventPhaseSchema.describe('Lifecycle phase where error occurred'),\n \n /**\n * Error message (for serialization)\n */\n errorMessage: z.string().optional().describe('Error message'),\n \n /**\n * Error stack trace (for debugging)\n */\n errorStack: z.string().optional().describe('Error stack trace'),\n});\n\nexport type PluginErrorEvent = z.infer<typeof PluginErrorEventSchema>;\n\n// ============================================================================\n// Service Event Schemas\n// ============================================================================\n\n/**\n * Service Registered Event Schema\n * \n * @example\n * {\n * \"serviceName\": \"database\",\n * \"timestamp\": 1706659200000,\n * \"serviceType\": \"IDataEngine\"\n * }\n */\nexport const ServiceRegisteredEventSchema = z.object({\n /**\n * Service name\n */\n serviceName: z.string().describe('Name of the registered service'),\n \n /**\n * Event timestamp (Unix milliseconds)\n */\n timestamp: z.number().int().describe('Unix timestamp in milliseconds'),\n \n /**\n * Service type (optional)\n */\n serviceType: z.string().optional().describe('Type or interface name of the service'),\n});\n\nexport type ServiceRegisteredEvent = z.infer<typeof ServiceRegisteredEventSchema>;\n\n/**\n * Service Unregistered Event Schema\n * \n * @example\n * {\n * \"serviceName\": \"database\",\n * \"timestamp\": 1706659200000\n * }\n */\nexport const ServiceUnregisteredEventSchema = z.object({\n /**\n * Service name\n */\n serviceName: z.string().describe('Name of the unregistered service'),\n \n /**\n * Event timestamp (Unix milliseconds)\n */\n timestamp: z.number().int().describe('Unix timestamp in milliseconds'),\n});\n\nexport type ServiceUnregisteredEvent = z.infer<typeof ServiceUnregisteredEventSchema>;\n\n// ============================================================================\n// Hook Event Schemas\n// ============================================================================\n\n/**\n * Hook Registered Event Schema\n * \n * @example\n * {\n * \"hookName\": \"data.beforeInsert\",\n * \"timestamp\": 1706659200000,\n * \"handlerCount\": 3\n * }\n */\nexport const HookRegisteredEventSchema = z.object({\n /**\n * Hook name\n */\n hookName: z.string().describe('Name of the hook'),\n \n /**\n * Event timestamp (Unix milliseconds)\n */\n timestamp: z.number().int().describe('Unix timestamp in milliseconds'),\n \n /**\n * Number of handlers registered for this hook\n */\n handlerCount: z.number().int().min(0).describe('Number of handlers registered for this hook'),\n});\n\nexport type HookRegisteredEvent = z.infer<typeof HookRegisteredEventSchema>;\n\n/**\n * Hook Triggered Event Schema\n * \n * @example\n * {\n * \"hookName\": \"data.beforeInsert\",\n * \"timestamp\": 1706659200000,\n * \"args\": [{ \"object\": \"customer\", \"data\": {...} }],\n * \"handlerCount\": 3\n * }\n */\nexport const HookTriggeredEventSchema = z.object({\n /**\n * Hook name\n */\n hookName: z.string().describe('Name of the hook'),\n \n /**\n * Event timestamp (Unix milliseconds)\n */\n timestamp: z.number().int().describe('Unix timestamp in milliseconds'),\n \n /**\n * Arguments passed to the hook\n */\n args: z.array(z.any()).describe('Arguments passed to the hook handlers'),\n \n /**\n * Number of handlers that will handle this event\n */\n handlerCount: z.number().int().min(0).optional().describe('Number of handlers that will handle this event'),\n});\n\nexport type HookTriggeredEvent = z.infer<typeof HookTriggeredEventSchema>;\n\n// ============================================================================\n// Kernel Event Schemas\n// ============================================================================\n\n/**\n * Kernel Event Base Schema\n * Common fields for kernel events\n */\nexport const KernelEventBaseSchema = z.object({\n /**\n * Event timestamp (Unix milliseconds)\n */\n timestamp: z.number().int().describe('Unix timestamp in milliseconds'),\n});\n\n/**\n * Kernel Ready Event Schema\n * \n * @example\n * {\n * \"timestamp\": 1706659200000,\n * \"duration\": 5400,\n * \"pluginCount\": 12\n * }\n */\nexport const KernelReadyEventSchema = KernelEventBaseSchema.extend({\n /**\n * Total initialization duration (milliseconds)\n */\n duration: z.number().min(0).optional().describe('Total initialization duration in milliseconds'),\n \n /**\n * Number of plugins initialized\n */\n pluginCount: z.number().int().min(0).optional().describe('Number of plugins initialized'),\n});\n\nexport type KernelReadyEvent = z.infer<typeof KernelReadyEventSchema>;\n\n/**\n * Kernel Shutdown Event Schema\n * \n * @example\n * {\n * \"timestamp\": 1706659200000,\n * \"reason\": \"SIGTERM received\"\n * }\n */\nexport const KernelShutdownEventSchema = KernelEventBaseSchema.extend({\n /**\n * Shutdown reason (optional)\n */\n reason: z.string().optional().describe('Reason for kernel shutdown'),\n});\n\nexport type KernelShutdownEvent = z.infer<typeof KernelShutdownEventSchema>;\n\n// ============================================================================\n// Event Type Registry\n// ============================================================================\n\n/**\n * Plugin Lifecycle Event Type Enum\n * All possible plugin lifecycle event types\n */\nexport const PluginLifecycleEventType = z.enum([\n 'kernel:ready',\n 'kernel:shutdown',\n 'kernel:before-init',\n 'kernel:after-init',\n 'plugin:registered',\n 'plugin:before-init',\n 'plugin:init',\n 'plugin:after-init',\n 'plugin:before-start',\n 'plugin:started',\n 'plugin:after-start',\n 'plugin:before-destroy',\n 'plugin:destroyed',\n 'plugin:after-destroy',\n 'plugin:error',\n 'service:registered',\n 'service:unregistered',\n 'hook:registered',\n 'hook:triggered',\n]).describe('Plugin lifecycle event type');\n\nexport type PluginLifecycleEventType = z.infer<typeof PluginLifecycleEventType>;\n","import { z } from 'zod';\n\n/**\n * # Plugin Security and Sandboxing Protocol\n * \n * Defines comprehensive security mechanisms for plugin isolation, permission\n * management, and threat protection in the ObjectStack ecosystem.\n * \n * Features:\n * - Fine-grained permission system\n * - Resource access control\n * - Sandboxing and isolation\n * - Security scanning and verification\n * - Runtime security monitoring\n */\n\n/**\n * Permission Scope\n * Defines the scope of a permission\n */\nexport const PermissionScopeSchema = z.enum([\n 'global', // Applies to entire system\n 'tenant', // Applies to specific tenant\n 'user', // Applies to specific user\n 'resource', // Applies to specific resource\n 'plugin', // Applies within plugin boundaries\n]).describe('Scope of permission application');\n\n/**\n * Permission Action\n * Standard CRUD + extended actions\n */\nexport const PermissionActionSchema = z.enum([\n 'create', // Create new resources\n 'read', // Read existing resources\n 'update', // Update existing resources\n 'delete', // Delete resources\n 'execute', // Execute operations/functions\n 'manage', // Full management rights\n 'configure', // Configuration changes\n 'share', // Share with others\n 'export', // Export data\n 'import', // Import data\n 'admin', // Administrative access\n]).describe('Type of action being permitted');\n\n/**\n * Resource Type\n * Types of resources that can be accessed\n */\nexport const ResourceTypeSchema = z.enum([\n 'data.object', // ObjectQL objects\n 'data.record', // Individual records\n 'data.field', // Specific fields\n 'ui.view', // UI views\n 'ui.dashboard', // Dashboards\n 'ui.report', // Reports\n 'system.config', // System configuration\n 'system.plugin', // Other plugins\n 'system.api', // API endpoints\n 'system.service', // System services\n 'storage.file', // File storage\n 'storage.database', // Database access\n 'network.http', // HTTP requests\n 'network.websocket', // WebSocket connections\n 'process.spawn', // Process spawning\n 'process.env', // Environment variables\n]).describe('Type of resource being accessed');\n\n/**\n * Permission Definition\n * Defines a single permission requirement\n */\nexport const PermissionSchema = z.object({\n /**\n * Permission identifier\n */\n id: z.string().describe('Unique permission identifier'),\n \n /**\n * Resource type\n */\n resource: ResourceTypeSchema,\n \n /**\n * Allowed actions\n */\n actions: z.array(PermissionActionSchema),\n \n /**\n * Permission scope\n */\n scope: PermissionScopeSchema.default('plugin'),\n \n /**\n * Resource filter\n */\n filter: z.object({\n /**\n * Specific resource IDs\n */\n resourceIds: z.array(z.string()).optional(),\n \n /**\n * Filter condition\n */\n condition: z.string().optional().describe('Filter expression (e.g., owner = currentUser)'),\n \n /**\n * Field-level access\n */\n fields: z.array(z.string()).optional().describe('Allowed fields for data resources'),\n }).optional(),\n \n /**\n * Human-readable description\n */\n description: z.string(),\n \n /**\n * Whether this permission is required or optional\n */\n required: z.boolean().default(true),\n \n /**\n * Justification for permission\n */\n justification: z.string().optional().describe('Why this permission is needed'),\n});\n\n/**\n * Permission Set\n * Collection of permissions for a plugin\n */\nexport const PermissionSetSchema = z.object({\n /**\n * All permissions required by plugin\n */\n permissions: z.array(PermissionSchema),\n \n /**\n * Permission groups for easier management\n */\n groups: z.array(z.object({\n name: z.string().describe('Group name'),\n description: z.string(),\n permissions: z.array(z.string()).describe('Permission IDs in this group'),\n })).optional(),\n \n /**\n * Default grant strategy\n */\n defaultGrant: z.enum([\n 'prompt', // Always prompt user\n 'allow', // Allow by default\n 'deny', // Deny by default\n 'inherit', // Inherit from parent\n ]).default('prompt'),\n});\n\n/**\n * Runtime Configuration\n * Defines the execution environment for plugin isolation\n */\nexport const RuntimeConfigSchema = z.object({\n /**\n * Runtime engine type\n */\n engine: z.enum([\n 'v8-isolate', // V8 isolate-based isolation (lightweight, fast)\n 'wasm', // WebAssembly-based isolation (secure, portable)\n 'container', // Container-based isolation (Docker, podman)\n 'process', // Process-based isolation (traditional)\n ]).default('v8-isolate')\n .describe('Execution environment engine'),\n \n /**\n * Engine-specific configuration\n */\n engineConfig: z.object({\n /**\n * WASM-specific settings (when engine is \"wasm\")\n */\n wasm: z.object({\n /**\n * Maximum memory pages (64KB per page)\n */\n maxMemoryPages: z.number().int().min(1).max(65536).optional()\n .describe('Maximum WASM memory pages (64KB each)'),\n \n /**\n * Instruction execution limit\n */\n instructionLimit: z.number().int().min(1).optional()\n .describe('Maximum instructions before timeout'),\n \n /**\n * Enable SIMD instructions\n */\n enableSimd: z.boolean().default(false)\n .describe('Enable WebAssembly SIMD support'),\n \n /**\n * Enable threads\n */\n enableThreads: z.boolean().default(false)\n .describe('Enable WebAssembly threads'),\n \n /**\n * Enable bulk memory operations\n */\n enableBulkMemory: z.boolean().default(true)\n .describe('Enable bulk memory operations'),\n }).optional(),\n \n /**\n * Container-specific settings (when engine is \"container\")\n */\n container: z.object({\n /**\n * Container image\n */\n image: z.string().optional()\n .describe('Container image to use'),\n \n /**\n * Container runtime\n */\n runtime: z.enum(['docker', 'podman', 'containerd']).default('docker'),\n \n /**\n * Resource limits\n */\n resources: z.object({\n cpuLimit: z.string().optional().describe('CPU limit (e.g., \"0.5\", \"2\")'),\n memoryLimit: z.string().optional().describe('Memory limit (e.g., \"512m\", \"1g\")'),\n }).optional(),\n \n /**\n * Network mode\n */\n networkMode: z.enum(['none', 'bridge', 'host']).default('bridge'),\n }).optional(),\n \n /**\n * V8 Isolate-specific settings (when engine is \"v8-isolate\")\n */\n v8Isolate: z.object({\n /**\n * Heap size limit in MB\n */\n heapSizeMb: z.number().int().min(1).optional(),\n \n /**\n * Enable snapshot\n */\n enableSnapshot: z.boolean().default(true),\n }).optional(),\n }).optional(),\n \n /**\n * General resource limits (applies to all engines)\n */\n resourceLimits: z.object({\n /**\n * Maximum memory in bytes\n */\n maxMemory: z.number().int().optional()\n .describe('Maximum memory allocation'),\n \n /**\n * Maximum CPU percentage\n */\n maxCpu: z.number().min(0).max(100).optional()\n .describe('Maximum CPU usage percentage'),\n \n /**\n * Execution timeout in milliseconds\n */\n timeout: z.number().int().min(0).optional()\n .describe('Maximum execution time'),\n }).optional(),\n});\n\n/**\n * Sandbox Configuration\n * Defines how plugin is isolated\n */\nexport const SandboxConfigSchema = z.object({\n /**\n * Enable sandboxing\n */\n enabled: z.boolean().default(true),\n \n /**\n * Sandboxing level\n */\n level: z.enum([\n 'none', // No sandboxing\n 'minimal', // Basic isolation\n 'standard', // Standard sandboxing\n 'strict', // Strict isolation\n 'paranoid', // Maximum isolation\n ]).default('standard'),\n \n /**\n * Runtime environment configuration\n */\n runtime: RuntimeConfigSchema.optional()\n .describe('Execution environment and isolation settings'),\n \n /**\n * File system access\n */\n filesystem: z.object({\n mode: z.enum(['none', 'readonly', 'restricted', 'full']).default('restricted'),\n allowedPaths: z.array(z.string()).optional().describe('Whitelisted paths'),\n deniedPaths: z.array(z.string()).optional().describe('Blacklisted paths'),\n maxFileSize: z.number().int().optional().describe('Maximum file size in bytes'),\n }).optional(),\n \n /**\n * Network access\n */\n network: z.object({\n mode: z.enum(['none', 'local', 'restricted', 'full']).default('restricted'),\n allowedHosts: z.array(z.string()).optional().describe('Whitelisted hosts'),\n deniedHosts: z.array(z.string()).optional().describe('Blacklisted hosts'),\n allowedPorts: z.array(z.number()).optional().describe('Allowed port numbers'),\n maxConnections: z.number().int().optional(),\n }).optional(),\n \n /**\n * Process execution\n */\n process: z.object({\n allowSpawn: z.boolean().default(false).describe('Allow spawning child processes'),\n allowedCommands: z.array(z.string()).optional().describe('Whitelisted commands'),\n timeout: z.number().int().optional().describe('Process timeout in ms'),\n }).optional(),\n \n /**\n * Memory limits\n */\n memory: z.object({\n maxHeap: z.number().int().optional().describe('Maximum heap size in bytes'),\n maxStack: z.number().int().optional().describe('Maximum stack size in bytes'),\n }).optional(),\n \n /**\n * CPU limits\n */\n cpu: z.object({\n maxCpuPercent: z.number().min(0).max(100).optional(),\n maxThreads: z.number().int().optional(),\n }).optional(),\n \n /**\n * Environment variables\n */\n environment: z.object({\n mode: z.enum(['none', 'readonly', 'restricted', 'full']).default('readonly'),\n allowedVars: z.array(z.string()).optional(),\n deniedVars: z.array(z.string()).optional(),\n }).optional(),\n});\n\n/**\n * Security Vulnerability\n * Represents a known security vulnerability\n */\nexport const SecurityVulnerabilitySchema = z.object({\n /**\n * CVE identifier\n */\n cve: z.string().optional(),\n \n /**\n * Vulnerability identifier\n */\n id: z.string(),\n \n /**\n * Severity level\n */\n severity: z.enum(['critical', 'high', 'medium', 'low', 'info']),\n \n /**\n * Category (e.g., SAST, DAST, Dependency)\n */\n category: z.string().optional(),\n\n /**\n * Title\n */\n title: z.string(),\n \n /**\n * Location of the vulnerability\n */\n location: z.string().optional(),\n\n /**\n * Remediation steps\n */\n remediation: z.string().optional(),\n\n /**\n * Description\n */\n description: z.string(),\n \n /**\n * Affected versions\n */\n affectedVersions: z.array(z.string()),\n \n /**\n * Fixed in versions\n */\n fixedIn: z.array(z.string()).optional(),\n \n /**\n * CVSS score\n */\n cvssScore: z.number().min(0).max(10).optional(),\n \n /**\n * Exploit availability\n */\n exploitAvailable: z.boolean().default(false),\n \n /**\n * Patch available\n */\n patchAvailable: z.boolean().default(false),\n \n /**\n * Workaround\n */\n workaround: z.string().optional(),\n \n /**\n * References\n */\n references: z.array(z.string()).optional(),\n \n /**\n * Discovered date\n */\n discoveredDate: z.string().datetime().optional(),\n \n /**\n * Published date\n */\n publishedDate: z.string().datetime().optional(),\n});\n\n/**\n * Security Scan Result\n * Result of security scanning\n */\nexport const SecurityScanResultSchema = z.object({\n /**\n * Scan timestamp\n */\n timestamp: z.string().datetime(),\n \n /**\n * Scanner information\n */\n scanner: z.object({\n name: z.string(),\n version: z.string(),\n }),\n \n /**\n * Overall status\n */\n status: z.enum(['passed', 'failed', 'warning']),\n \n /**\n * Vulnerabilities found\n */\n vulnerabilities: z.array(SecurityVulnerabilitySchema).optional(),\n \n /**\n * Code quality issues\n */\n codeIssues: z.array(z.object({\n severity: z.enum(['error', 'warning', 'info']),\n type: z.string().describe('Issue type (e.g., sql-injection, xss)'),\n file: z.string(),\n line: z.number().int().optional(),\n message: z.string(),\n suggestion: z.string().optional(),\n })).optional(),\n \n /**\n * Dependency vulnerabilities\n */\n dependencyVulnerabilities: z.array(z.object({\n package: z.string(),\n version: z.string(),\n vulnerability: SecurityVulnerabilitySchema,\n })).optional(),\n \n /**\n * License compliance\n */\n licenseCompliance: z.object({\n status: z.enum(['compliant', 'non-compliant', 'unknown']),\n issues: z.array(z.object({\n package: z.string(),\n license: z.string(),\n reason: z.string(),\n })).optional(),\n }).optional(),\n \n /**\n * Summary statistics\n */\n summary: z.object({\n totalVulnerabilities: z.number().int(),\n criticalCount: z.number().int(),\n highCount: z.number().int(),\n mediumCount: z.number().int(),\n lowCount: z.number().int(),\n infoCount: z.number().int(),\n }),\n});\n\n/**\n * Security Policy\n * Defines security policies for plugin\n */\nexport const SecurityPolicySchema = z.object({\n /**\n * Content Security Policy\n */\n csp: z.object({\n directives: z.record(z.string(), z.array(z.string())).optional(),\n reportOnly: z.boolean().default(false),\n }).optional(),\n \n /**\n * CORS policy\n */\n cors: z.object({\n allowedOrigins: z.array(z.string()),\n allowedMethods: z.array(z.string()),\n allowedHeaders: z.array(z.string()),\n allowCredentials: z.boolean().default(false),\n maxAge: z.number().int().optional(),\n }).optional(),\n \n /**\n * Rate limiting\n */\n rateLimit: z.object({\n enabled: z.boolean().default(true),\n maxRequests: z.number().int(),\n windowMs: z.number().int().describe('Time window in milliseconds'),\n strategy: z.enum(['fixed', 'sliding', 'token-bucket']).default('sliding'),\n }).optional(),\n \n /**\n * Authentication requirements\n */\n authentication: z.object({\n required: z.boolean().default(true),\n methods: z.array(z.enum(['jwt', 'oauth2', 'api-key', 'session', 'certificate'])),\n tokenExpiration: z.number().int().optional().describe('Token expiration in seconds'),\n }).optional(),\n \n /**\n * Encryption requirements\n */\n encryption: z.object({\n dataAtRest: z.boolean().default(false).describe('Encrypt data at rest'),\n dataInTransit: z.boolean().default(true).describe('Enforce HTTPS/TLS'),\n algorithm: z.string().optional().describe('Encryption algorithm'),\n minKeyLength: z.number().int().optional().describe('Minimum key length in bits'),\n }).optional(),\n \n /**\n * Audit logging\n */\n auditLog: z.object({\n enabled: z.boolean().default(true),\n events: z.array(z.string()).optional().describe('Events to log'),\n retention: z.number().int().optional().describe('Log retention in days'),\n }).optional(),\n});\n\n/**\n * Plugin Trust Level\n * Indicates trust level of plugin\n */\nexport const PluginTrustLevelSchema = z.enum([\n 'verified', // Official/verified plugin\n 'trusted', // Trusted third-party\n 'community', // Community plugin\n 'untrusted', // Unverified plugin\n 'blocked', // Blocked/malicious\n]).describe('Trust level of the plugin');\n\n/**\n * Plugin Security Manifest\n * Complete security information for plugin\n */\nexport const PluginSecurityManifestSchema = z.object({\n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Trust level\n */\n trustLevel: PluginTrustLevelSchema,\n \n /**\n * Required permissions\n */\n permissions: PermissionSetSchema,\n \n /**\n * Sandbox configuration\n */\n sandbox: SandboxConfigSchema,\n \n /**\n * Security policy\n */\n policy: SecurityPolicySchema.optional(),\n \n /**\n * Security scan results\n */\n scanResults: z.array(SecurityScanResultSchema).optional(),\n \n /**\n * Known vulnerabilities\n */\n vulnerabilities: z.array(SecurityVulnerabilitySchema).optional(),\n \n /**\n * Code signing\n */\n codeSigning: z.object({\n signed: z.boolean(),\n signature: z.string().optional(),\n certificate: z.string().optional(),\n algorithm: z.string().optional(),\n timestamp: z.string().datetime().optional(),\n }).optional(),\n \n /**\n * Security certifications\n */\n certifications: z.array(z.object({\n name: z.string().describe('Certification name (e.g., SOC 2, ISO 27001)'),\n issuer: z.string(),\n issuedDate: z.string().datetime(),\n expiryDate: z.string().datetime().optional(),\n certificateUrl: z.string().url().optional(),\n })).optional(),\n \n /**\n * Security contact\n */\n securityContact: z.object({\n email: z.string().email().optional(),\n url: z.string().url().optional(),\n pgpKey: z.string().optional(),\n }).optional(),\n \n /**\n * Vulnerability disclosure policy\n */\n vulnerabilityDisclosure: z.object({\n policyUrl: z.string().url().optional(),\n responseTime: z.number().int().optional().describe('Expected response time in hours'),\n bugBounty: z.boolean().default(false),\n }).optional(),\n});\n\n// Export types\nexport type PermissionScope = z.infer<typeof PermissionScopeSchema>;\nexport type PermissionAction = z.infer<typeof PermissionActionSchema>;\nexport type ResourceType = z.infer<typeof ResourceTypeSchema>;\nexport type Permission = z.infer<typeof PermissionSchema>;\nexport type PermissionSet = z.infer<typeof PermissionSetSchema>;\nexport type RuntimeConfig = z.infer<typeof RuntimeConfigSchema>;\nexport type SandboxConfig = z.infer<typeof SandboxConfigSchema>;\nexport type SecurityVulnerability = z.infer<typeof SecurityVulnerabilitySchema>;\nexport type SecurityScanResult = z.infer<typeof SecurityScanResultSchema>;\nexport type SecurityPolicy = z.infer<typeof SecurityPolicySchema>;\nexport type PluginTrustLevel = z.infer<typeof PluginTrustLevelSchema>;\nexport type PluginSecurityManifest = z.infer<typeof PluginSecurityManifestSchema>;\n","import { z } from 'zod';\n\n/**\n * ObjectStack Plugin Structure Standards (OPS)\n * \n * Formal Zod definitions for the Plugin Directory Structure and File Naming conventions.\n * This can be used by the CLI or IDE extensions to lint project structure.\n * \n * @see PLUGIN_STANDARDS.md\n */\n\n// REGEX: snake_case identifiers\nconst SNAKE_CASE_REGEX = /^[a-z][a-z0-9_]*$/;\n\n// REGEX: Standard File Suffixes\nconst OPS_FILE_SUFFIX_REGEX = /\\.(object|field|trigger|function|view|page|dashboard|flow|app|router|service)\\.ts$/;\n\n/**\n * Validates a single file path against OPS Naming Conventions.\n * \n * @example Valid Paths\n * - \"src/crm/lead.object.ts\"\n * - \"src/finance/invoice_payment.trigger.ts\"\n * - \"src/index.ts\"\n * \n * @example Invalid Paths\n * - \"src/CRM/LeadObject.ts\" (PascalCase)\n * - \"src/utils/helper.js\" (Wrong extension)\n */\nexport const OpsFilePathSchema = z.string().superRefine((path, ctx) => {\n // 1. Must be in src/\n if (!path.startsWith('src/')) {\n // Non-source files (package.json, config) are ignored by this specific validator\n // or handled separately.\n return; \n }\n\n const parts = path.split('/');\n \n // 2. Validate Domain Directory (src/[domain])\n if (parts.length > 2) {\n const domainDir = parts[1];\n if (!SNAKE_CASE_REGEX.test(domainDir)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Domain directory '${domainDir}' must be lowercase snake_case`\n });\n }\n }\n\n // 3. Validate Filename suffix\n const filename = parts[parts.length - 1];\n \n // Skip index.ts and utility files if they don't match the specific resource pattern\n // But strict OPS encourages explicit suffixes for resources.\n if (filename === 'index.ts' || filename === 'main.ts') return;\n\n if (!SNAKE_CASE_REGEX.test(filename.split('.')[0])) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Filename '${filename}' base name must be lowercase snake_case`\n });\n }\n\n if (!OPS_FILE_SUFFIX_REGEX.test(filename)) {\n // We allow other files, but we warn or mark them as non-standard resources\n // For strict mode:\n // ctx.addIssue({\n // code: z.ZodIssueCode.custom,\n // message: `Filename '${filename}' does not end with a valid semantic suffix (.object.ts, .view.ts, etc.)`\n // });\n }\n});\n\n/**\n * Schema for a \"Scanned Module\" structure.\n * Represents the contents of a domain folder.\n */\nexport const OpsDomainModuleSchema = z.object({\n name: z.string().regex(SNAKE_CASE_REGEX),\n files: z.array(z.string()),\n}).superRefine((module, ctx) => {\n // Rule: Must have an index.ts\n if (!module.files.includes('index.ts')) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Module '${module.name}' is missing an 'index.ts' entry point.`\n });\n }\n});\n\n/**\n * Schema for a full Plugin Project Layout\n */\nexport const OpsPluginStructureSchema = z.object({\n root: z.string(),\n files: z.array(z.string()).describe('List of all file paths relative to root'),\n}).superRefine((project, ctx) => {\n // Check for configuration file\n if (!project.files.includes('objectstack.config.ts')) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Missing 'objectstack.config.ts' configuration file.\"\n });\n }\n \n // Validate each source file individually\n project.files.filter(f => f.startsWith('src/')).forEach(file => {\n const result = OpsFilePathSchema.safeParse(file);\n if (!result.success) {\n result.error.issues.forEach(issue => {\n ctx.addIssue({ ...issue, path: [file] });\n })\n }\n });\n});\n","import { z } from 'zod';\n\n/**\n * Plugin Validator Protocol\n * \n * Zod schemas for plugin validation data structures.\n * These schemas align with the IPluginValidator contract interface.\n * \n * Following ObjectStack \"Zod First\" principle - all data structures\n * must have Zod schemas for runtime validation and JSON Schema generation.\n */\n\n// ============================================================================\n// Validation Result Schemas\n// ============================================================================\n\n/**\n * Validation Error Schema\n * Represents a single validation error\n * \n * @example\n * {\n * \"field\": \"version\",\n * \"message\": \"Invalid semver format\",\n * \"code\": \"INVALID_VERSION\"\n * }\n */\nexport const ValidationErrorSchema = z.object({\n /**\n * Field that failed validation\n */\n field: z.string().describe('Field name that failed validation'),\n \n /**\n * Human-readable error message\n */\n message: z.string().describe('Human-readable error message'),\n \n /**\n * Machine-readable error code (optional)\n */\n code: z.string().optional().describe('Machine-readable error code'),\n});\n\nexport type ValidationError = z.infer<typeof ValidationErrorSchema>;\n\n/**\n * Validation Warning Schema\n * Represents a non-fatal validation warning\n * \n * @example\n * {\n * \"field\": \"description\",\n * \"message\": \"Description is empty\",\n * \"code\": \"MISSING_DESCRIPTION\"\n * }\n */\nexport const ValidationWarningSchema = z.object({\n /**\n * Field with warning\n */\n field: z.string().describe('Field name with warning'),\n \n /**\n * Human-readable warning message\n */\n message: z.string().describe('Human-readable warning message'),\n \n /**\n * Machine-readable warning code (optional)\n */\n code: z.string().optional().describe('Machine-readable warning code'),\n});\n\nexport type ValidationWarning = z.infer<typeof ValidationWarningSchema>;\n\n/**\n * Validation Result Schema\n * Result of plugin validation operation\n * \n * @example\n * {\n * \"valid\": false,\n * \"errors\": [{\n * \"field\": \"name\",\n * \"message\": \"Plugin name is required\",\n * \"code\": \"REQUIRED_FIELD\"\n * }],\n * \"warnings\": [{\n * \"field\": \"description\",\n * \"message\": \"Description is recommended\",\n * \"code\": \"MISSING_DESCRIPTION\"\n * }]\n * }\n */\nexport const ValidationResultSchema = z.object({\n /**\n * Whether validation passed\n */\n valid: z.boolean().describe('Whether the plugin passed validation'),\n \n /**\n * Validation errors (if any)\n */\n errors: z.array(ValidationErrorSchema).optional().describe('Validation errors'),\n \n /**\n * Validation warnings (non-fatal issues)\n */\n warnings: z.array(ValidationWarningSchema).optional().describe('Validation warnings'),\n});\n\nexport type ValidationResult = z.infer<typeof ValidationResultSchema>;\n\n// ============================================================================\n// Plugin Metadata Schema\n// ============================================================================\n\n/**\n * Plugin Schema\n * Metadata structure for a plugin\n * \n * This aligns with and extends the existing PluginSchema from plugin.zod.ts\n * \n * @example\n * {\n * \"name\": \"crm-plugin\",\n * \"version\": \"1.0.0\",\n * \"dependencies\": [\"core-plugin\"]\n * }\n */\nexport const PluginMetadataSchema = z.object({\n /**\n * Unique plugin identifier (snake_case)\n */\n name: z.string().min(1).describe('Unique plugin identifier'),\n \n /**\n * Plugin version (semver)\n */\n version: z.string().regex(/^\\d+\\.\\d+\\.\\d+$/).optional().describe('Semantic version (e.g., 1.0.0)'),\n \n /**\n * Plugin dependencies (array of plugin names)\n */\n dependencies: z.array(z.string()).optional().describe('Array of plugin names this plugin depends on'),\n \n /**\n * Plugin signature for cryptographic verification (optional)\n */\n signature: z.string().optional().describe('Cryptographic signature for plugin verification'),\n \n /**\n * Additional plugin metadata\n */\n}).passthrough().describe('Plugin metadata for validation');\n\nexport type PluginMetadata = z.infer<typeof PluginMetadataSchema>;\n","import { z } from 'zod';\n\n/**\n * # Plugin Versioning and Compatibility Protocol\n * \n * Defines comprehensive versioning, compatibility checking, and dependency\n * resolution mechanisms for the plugin ecosystem.\n * \n * Based on semantic versioning (SemVer) with extensions for:\n * - Compatibility matrices\n * - Breaking change detection\n * - Migration paths\n * - Multi-version support\n */\n\n/**\n * Semantic Version Schema\n * Standard SemVer format with optional pre-release and build metadata\n */\nexport const SemanticVersionSchema = z.object({\n major: z.number().int().min(0).describe('Major version (breaking changes)'),\n minor: z.number().int().min(0).describe('Minor version (backward compatible features)'),\n patch: z.number().int().min(0).describe('Patch version (backward compatible fixes)'),\n preRelease: z.string().optional().describe('Pre-release identifier (alpha, beta, rc.1)'),\n build: z.string().optional().describe('Build metadata'),\n}).describe('Semantic version number');\n\n/**\n * Version Constraint Schema\n * Defines version requirements using SemVer ranges\n */\nexport const VersionConstraintSchema = z.union([\n z.string().regex(/^[\\d.]+$/).describe('Exact version: `1.2.3`'),\n z.string().regex(/^\\^[\\d.]+$/).describe('Compatible with: `^1.2.3` (`>=1.2.3 <2.0.0`)'),\n z.string().regex(/^~[\\d.]+$/).describe('Approximately: `~1.2.3` (`>=1.2.3 <1.3.0`)'),\n z.string().regex(/^>=[\\d.]+$/).describe('Greater than or equal: `>=1.2.3`'),\n z.string().regex(/^>[\\d.]+$/).describe('Greater than: `>1.2.3`'),\n z.string().regex(/^<=[\\d.]+$/).describe('Less than or equal: `<=1.2.3`'),\n z.string().regex(/^<[\\d.]+$/).describe('Less than: `<1.2.3`'),\n z.string().regex(/^[\\d.]+ - [\\d.]+$/).describe('Range: `1.2.3 - 2.3.4`'),\n z.literal('*').describe('Any version'),\n z.literal('latest').describe('Latest stable version'),\n]);\n\n/**\n * Compatibility Level\n * Describes the level of compatibility between versions\n */\nexport const CompatibilityLevelSchema = z.enum([\n 'fully-compatible', // 100% compatible, drop-in replacement\n 'backward-compatible', // Backward compatible, new features added\n 'deprecated-compatible', // Compatible but uses deprecated features\n 'breaking-changes', // Breaking changes, migration required\n 'incompatible', // Completely incompatible\n]).describe('Compatibility level between versions');\n\n/**\n * Breaking Change\n * Documents a breaking change in a version\n */\nexport const BreakingChangeSchema = z.object({\n /**\n * Version where the change was introduced\n */\n introducedIn: z.string().describe('Version that introduced this breaking change'),\n \n /**\n * Type of breaking change\n */\n type: z.enum([\n 'api-removed', // API removed\n 'api-renamed', // API renamed\n 'api-signature-changed', // Function signature changed\n 'behavior-changed', // Behavior changed\n 'dependency-changed', // Dependency requirement changed\n 'configuration-changed', // Configuration schema changed\n 'protocol-changed', // Protocol implementation changed\n ]),\n \n /**\n * What was changed\n */\n description: z.string(),\n \n /**\n * Migration guide\n */\n migrationGuide: z.string().optional().describe('How to migrate from old to new'),\n \n /**\n * Deprecated in version\n */\n deprecatedIn: z.string().optional().describe('Version where old API was deprecated'),\n \n /**\n * Will be removed in version\n */\n removedIn: z.string().optional().describe('Version where old API will be removed'),\n \n /**\n * Automated migration available\n */\n automatedMigration: z.boolean().default(false)\n .describe('Whether automated migration tool is available'),\n \n /**\n * Impact severity\n */\n severity: z.enum(['critical', 'major', 'minor']).describe('Impact severity'),\n});\n\n/**\n * Deprecation Notice\n * Information about deprecated features\n */\nexport const DeprecationNoticeSchema = z.object({\n /**\n * Feature or API being deprecated\n */\n feature: z.string().describe('Deprecated feature identifier'),\n \n /**\n * Version when deprecated\n */\n deprecatedIn: z.string(),\n \n /**\n * Planned removal version\n */\n removeIn: z.string().optional(),\n \n /**\n * Reason for deprecation\n */\n reason: z.string(),\n \n /**\n * Recommended alternative\n */\n alternative: z.string().optional().describe('What to use instead'),\n \n /**\n * Migration path\n */\n migrationPath: z.string().optional().describe('How to migrate to alternative'),\n});\n\n/**\n * Compatibility Matrix Entry\n * Maps compatibility between different plugin versions\n */\nexport const CompatibilityMatrixEntrySchema = z.object({\n /**\n * Source version\n */\n from: z.string().describe('Version being upgraded from'),\n \n /**\n * Target version\n */\n to: z.string().describe('Version being upgraded to'),\n \n /**\n * Compatibility level\n */\n compatibility: CompatibilityLevelSchema,\n \n /**\n * Breaking changes list\n */\n breakingChanges: z.array(BreakingChangeSchema).optional(),\n \n /**\n * Migration required\n */\n migrationRequired: z.boolean().default(false),\n \n /**\n * Migration complexity\n */\n migrationComplexity: z.enum(['trivial', 'simple', 'moderate', 'complex', 'major']).optional(),\n \n /**\n * Estimated migration time in hours\n */\n estimatedMigrationTime: z.number().optional(),\n \n /**\n * Migration script available\n */\n migrationScript: z.string().optional().describe('Path to migration script'),\n \n /**\n * Test coverage for migration\n */\n testCoverage: z.number().min(0).max(100).optional()\n .describe('Percentage of migration covered by tests'),\n});\n\n/**\n * Plugin Compatibility Matrix\n * Complete compatibility information for a plugin\n */\nexport const PluginCompatibilityMatrixSchema = z.object({\n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Current version\n */\n currentVersion: z.string(),\n \n /**\n * Compatibility entries\n */\n compatibilityMatrix: z.array(CompatibilityMatrixEntrySchema),\n \n /**\n * Supported versions\n */\n supportedVersions: z.array(z.object({\n version: z.string(),\n supported: z.boolean(),\n endOfLife: z.string().datetime().optional().describe('End of support date'),\n securitySupport: z.boolean().default(false).describe('Still receives security updates'),\n })),\n \n /**\n * Minimum compatible version\n */\n minimumCompatibleVersion: z.string().optional()\n .describe('Oldest version that can be directly upgraded'),\n});\n\n/**\n * Dependency Conflict\n * Represents a conflict in plugin dependencies\n */\nexport const DependencyConflictSchema = z.object({\n /**\n * Type of conflict\n */\n type: z.enum([\n 'version-mismatch', // Different versions required\n 'missing-dependency', // Required dependency not found\n 'circular-dependency', // Circular dependency detected\n 'incompatible-versions', // Incompatible versions required by different plugins\n 'conflicting-interfaces', // Plugins implement conflicting interfaces\n ]),\n \n /**\n * Plugins involved in conflict\n */\n plugins: z.array(z.object({\n pluginId: z.string(),\n version: z.string(),\n requirement: z.string().optional().describe('What this plugin requires'),\n })),\n \n /**\n * Conflict description\n */\n description: z.string(),\n \n /**\n * Possible resolutions\n */\n resolutions: z.array(z.object({\n strategy: z.enum([\n 'upgrade', // Upgrade one or more plugins\n 'downgrade', // Downgrade one or more plugins\n 'replace', // Replace with alternative plugin\n 'disable', // Disable conflicting plugin\n 'manual', // Manual intervention required\n ]),\n description: z.string(),\n automaticResolution: z.boolean().default(false),\n riskLevel: z.enum(['low', 'medium', 'high']),\n })).optional(),\n \n /**\n * Severity of conflict\n */\n severity: z.enum(['critical', 'error', 'warning', 'info']),\n});\n\n/**\n * Dependency Resolution Result\n * Result of dependency resolution process\n */\nexport const DependencyResolutionResultSchema = z.object({\n /**\n * Resolution successful\n */\n success: z.boolean(),\n \n /**\n * Resolved plugin versions\n */\n resolved: z.array(z.object({\n pluginId: z.string(),\n version: z.string(),\n resolvedVersion: z.string(),\n })).optional(),\n \n /**\n * Conflicts found\n */\n conflicts: z.array(DependencyConflictSchema).optional(),\n \n /**\n * Warnings\n */\n warnings: z.array(z.string()).optional(),\n \n /**\n * Installation order (topologically sorted)\n */\n installationOrder: z.array(z.string()).optional()\n .describe('Plugin IDs in order they should be installed'),\n \n /**\n * Dependency graph\n */\n dependencyGraph: z.record(z.string(), z.array(z.string())).optional()\n .describe('Map of plugin ID to its dependencies'),\n});\n\n/**\n * Multi-Version Support Configuration\n * Allows running multiple versions of a plugin simultaneously\n */\nexport const MultiVersionSupportSchema = z.object({\n /**\n * Enable multi-version support\n */\n enabled: z.boolean().default(false),\n \n /**\n * Maximum concurrent versions\n */\n maxConcurrentVersions: z.number().int().min(1).default(2)\n .describe('How many versions can run at the same time'),\n \n /**\n * Version selection strategy\n */\n selectionStrategy: z.enum([\n 'latest', // Always use latest version\n 'stable', // Use latest stable version\n 'compatible', // Use version compatible with dependencies\n 'pinned', // Use pinned version\n 'canary', // Use canary/preview version\n 'custom', // Custom selection logic\n ]).default('latest'),\n \n /**\n * Version routing rules\n */\n routing: z.array(z.object({\n condition: z.string().describe('Routing condition (e.g., tenant, user, feature flag)'),\n version: z.string().describe('Version to use when condition matches'),\n priority: z.number().int().default(100).describe('Rule priority'),\n })).optional(),\n \n /**\n * Gradual rollout configuration\n */\n rollout: z.object({\n enabled: z.boolean().default(false),\n strategy: z.enum(['percentage', 'blue-green', 'canary']),\n percentage: z.number().min(0).max(100).optional()\n .describe('Percentage of traffic to new version'),\n duration: z.number().int().optional()\n .describe('Rollout duration in milliseconds'),\n }).optional(),\n});\n\n/**\n * Plugin Version Metadata\n * Complete version information for a plugin\n */\nexport const PluginVersionMetadataSchema = z.object({\n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Version number\n */\n version: SemanticVersionSchema,\n \n /**\n * Version string (computed)\n */\n versionString: z.string().describe('Full version string (e.g., 1.2.3-beta.1+build.123)'),\n \n /**\n * Release date\n */\n releaseDate: z.string().datetime(),\n \n /**\n * Release notes\n */\n releaseNotes: z.string().optional(),\n \n /**\n * Breaking changes\n */\n breakingChanges: z.array(BreakingChangeSchema).optional(),\n \n /**\n * Deprecations\n */\n deprecations: z.array(DeprecationNoticeSchema).optional(),\n \n /**\n * Compatibility matrix\n */\n compatibilityMatrix: z.array(CompatibilityMatrixEntrySchema).optional(),\n \n /**\n * Security vulnerabilities fixed\n */\n securityFixes: z.array(z.object({\n cve: z.string().optional().describe('CVE identifier'),\n severity: z.enum(['critical', 'high', 'medium', 'low']),\n description: z.string(),\n fixedIn: z.string().describe('Version where vulnerability was fixed'),\n })).optional(),\n \n /**\n * Download statistics\n */\n statistics: z.object({\n downloads: z.number().int().min(0).optional(),\n installations: z.number().int().min(0).optional(),\n ratings: z.number().min(0).max(5).optional(),\n }).optional(),\n \n /**\n * Support status\n */\n support: z.object({\n status: z.enum(['active', 'maintenance', 'deprecated', 'eol']),\n endOfLife: z.string().datetime().optional(),\n securitySupport: z.boolean().default(true),\n }),\n});\n\n// Export types\nexport type SemanticVersion = z.infer<typeof SemanticVersionSchema>;\nexport type VersionConstraint = z.infer<typeof VersionConstraintSchema>;\nexport type CompatibilityLevel = z.infer<typeof CompatibilityLevelSchema>;\nexport type BreakingChange = z.infer<typeof BreakingChangeSchema>;\nexport type DeprecationNotice = z.infer<typeof DeprecationNoticeSchema>;\nexport type CompatibilityMatrixEntry = z.infer<typeof CompatibilityMatrixEntrySchema>;\nexport type PluginCompatibilityMatrix = z.infer<typeof PluginCompatibilityMatrixSchema>;\nexport type DependencyConflict = z.infer<typeof DependencyConflictSchema>;\nexport type DependencyResolutionResult = z.infer<typeof DependencyResolutionResultSchema>;\nexport type MultiVersionSupport = z.infer<typeof MultiVersionSupportSchema>;\nexport type PluginVersionMetadata = z.infer<typeof PluginVersionMetadataSchema>;\n","import { z } from 'zod';\n\n/**\n * Service Registry Protocol\n * \n * Zod schemas for service registry data structures.\n * These schemas align with the IServiceRegistry contract interface.\n * \n * Following ObjectStack \"Zod First\" principle - all data structures\n * must have Zod schemas for runtime validation and JSON Schema generation.\n * \n * Note: IServiceRegistry itself is a runtime interface (methods only),\n * so it correctly remains a TypeScript interface. This file contains\n * schemas for configuration and metadata related to service registry.\n */\n\n// ============================================================================\n// Service Metadata Schemas\n// ============================================================================\n\n/**\n * Service Scope Type Enum\n * Different service scoping strategies\n */\nexport const ServiceScopeType = z.enum([\n 'singleton', // Single instance shared across the application\n 'transient', // New instance created each time\n 'scoped', // Instance per scope (request, session, transaction, etc.)\n]).describe('Service scope type');\n\nexport type ServiceScopeType = z.infer<typeof ServiceScopeType>;\n\n/**\n * Service Metadata Schema\n * Metadata about a registered service\n * \n * @example\n * {\n * \"name\": \"database\",\n * \"scope\": \"singleton\",\n * \"type\": \"IDataEngine\",\n * \"registeredAt\": 1706659200000\n * }\n */\nexport const ServiceMetadataSchema = z.object({\n /**\n * Service name (unique identifier)\n */\n name: z.string().min(1).describe('Unique service name identifier'),\n \n /**\n * Service scope type\n */\n scope: ServiceScopeType.optional().default('singleton')\n .describe('Service scope type'),\n \n /**\n * Service type or interface name (optional)\n */\n type: z.string().optional().describe('Service type or interface name'),\n \n /**\n * Registration timestamp (Unix milliseconds)\n */\n registeredAt: z.number().int().optional()\n .describe('Unix timestamp in milliseconds when service was registered'),\n \n /**\n * Additional metadata\n */\n metadata: z.record(z.string(), z.any()).optional()\n .describe('Additional service-specific metadata'),\n});\n\nexport type ServiceMetadata = z.infer<typeof ServiceMetadataSchema>;\n\n// ============================================================================\n// Service Registry Configuration Schemas\n// ============================================================================\n\n/**\n * Service Registry Configuration Schema\n * Configuration for service registry behavior\n * \n * @example\n * {\n * \"strictMode\": true,\n * \"allowOverwrite\": false,\n * \"enableLogging\": true,\n * \"scopeTypes\": [\"singleton\", \"transient\", \"request\", \"session\"]\n * }\n */\nexport const ServiceRegistryConfigSchema = z.object({\n /**\n * Strict mode: throw errors on invalid operations\n * @default true\n */\n strictMode: z.boolean().optional().default(true)\n .describe('Throw errors on invalid operations (duplicate registration, service not found, etc.)'),\n \n /**\n * Allow overwriting existing services\n * @default false\n */\n allowOverwrite: z.boolean().optional().default(false)\n .describe('Allow overwriting existing service registrations'),\n \n /**\n * Enable logging for service operations\n * @default false\n */\n enableLogging: z.boolean().optional().default(false)\n .describe('Enable logging for service registration and retrieval'),\n \n /**\n * Custom scope types (beyond singleton, transient, scoped)\n * @default ['singleton', 'transient', 'scoped']\n */\n scopeTypes: z.array(z.string()).optional()\n .describe('Supported scope types'),\n \n /**\n * Maximum number of services (prevent memory leaks)\n */\n maxServices: z.number().int().min(1).optional()\n .describe('Maximum number of services that can be registered'),\n});\n\nexport type ServiceRegistryConfig = z.infer<typeof ServiceRegistryConfigSchema>;\nexport type ServiceRegistryConfigInput = z.input<typeof ServiceRegistryConfigSchema>;\n\n// ============================================================================\n// Service Factory Schemas\n// ============================================================================\n\n/**\n * Service Factory Registration Schema\n * Configuration for registering a service factory\n * \n * @example\n * {\n * \"name\": \"logger\",\n * \"scope\": \"singleton\",\n * \"factoryType\": \"sync\"\n * }\n */\nexport const ServiceFactoryRegistrationSchema = z.object({\n /**\n * Service name (unique identifier)\n */\n name: z.string().min(1).describe('Unique service name identifier'),\n \n /**\n * Service scope type\n */\n scope: ServiceScopeType.optional().default('singleton')\n .describe('Service scope type'),\n \n /**\n * Factory type (sync or async)\n */\n factoryType: z.enum(['sync', 'async']).optional().default('sync')\n .describe('Whether factory is synchronous or asynchronous'),\n \n /**\n * Whether this is a singleton (cache factory result)\n */\n singleton: z.boolean().optional().default(true)\n .describe('Whether to cache the factory result (singleton pattern)'),\n});\n\nexport type ServiceFactoryRegistration = z.infer<typeof ServiceFactoryRegistrationSchema>;\n\n// ============================================================================\n// Scoped Service Schemas\n// ============================================================================\n\n/**\n * Scope Configuration Schema\n * Configuration for creating a new scope\n * \n * @example\n * {\n * \"scopeType\": \"request\",\n * \"scopeId\": \"req-12345\",\n * \"metadata\": {\n * \"userId\": \"user-123\",\n * \"requestId\": \"req-12345\"\n * }\n * }\n */\nexport const ScopeConfigSchema = z.object({\n /**\n * Type of scope (request, session, transaction, etc.)\n */\n scopeType: z.string().describe('Type of scope'),\n \n /**\n * Scope identifier (optional, auto-generated if not provided)\n */\n scopeId: z.string().optional().describe('Unique scope identifier'),\n \n /**\n * Scope metadata (context information)\n */\n metadata: z.record(z.string(), z.any()).optional()\n .describe('Scope-specific context metadata'),\n});\n\nexport type ScopeConfig = z.infer<typeof ScopeConfigSchema>;\n\n/**\n * Scope Info Schema\n * Information about an active scope\n * \n * @example\n * {\n * \"scopeId\": \"req-12345\",\n * \"scopeType\": \"request\",\n * \"createdAt\": 1706659200000,\n * \"serviceCount\": 5,\n * \"metadata\": {\n * \"userId\": \"user-123\"\n * }\n * }\n */\nexport const ScopeInfoSchema = z.object({\n /**\n * Scope identifier\n */\n scopeId: z.string().describe('Unique scope identifier'),\n \n /**\n * Type of scope\n */\n scopeType: z.string().describe('Type of scope'),\n \n /**\n * Creation timestamp (Unix milliseconds)\n */\n createdAt: z.number().int().describe('Unix timestamp in milliseconds when scope was created'),\n \n /**\n * Number of services in this scope\n */\n serviceCount: z.number().int().min(0).optional()\n .describe('Number of services registered in this scope'),\n \n /**\n * Scope metadata\n */\n metadata: z.record(z.string(), z.any()).optional()\n .describe('Scope-specific context metadata'),\n});\n\nexport type ScopeInfo = z.infer<typeof ScopeInfoSchema>;\n","import { z } from 'zod';\n\n/**\n * Startup Orchestrator Protocol\n * \n * Zod schemas for plugin startup orchestration data structures.\n * These schemas align with the IStartupOrchestrator contract interface.\n * \n * Following ObjectStack \"Zod First\" principle - all data structures\n * must have Zod schemas for runtime validation and JSON Schema generation.\n */\n\n// ============================================================================\n// Startup Configuration Schemas\n// ============================================================================\n\n/**\n * Startup Options Schema\n * Configuration for plugin startup orchestration\n * \n * @example\n * {\n * \"timeout\": 30000,\n * \"rollbackOnFailure\": true,\n * \"healthCheck\": false,\n * \"parallel\": false\n * }\n */\nexport const StartupOptionsSchema = z.object({\n /**\n * Maximum time (ms) to wait for each plugin to start\n * @default 30000 (30 seconds)\n */\n timeout: z.number().int().min(0).optional().default(30000)\n .describe('Maximum time in milliseconds to wait for each plugin to start'),\n \n /**\n * Whether to rollback (destroy) already-started plugins on failure\n * @default true\n */\n rollbackOnFailure: z.boolean().optional().default(true)\n .describe('Whether to rollback already-started plugins if any plugin fails'),\n \n /**\n * Whether to run health checks after startup\n * @default false\n */\n healthCheck: z.boolean().optional().default(false)\n .describe('Whether to run health checks after plugin startup'),\n \n /**\n * Whether to run plugins in parallel (if dependencies allow)\n * @default false (sequential startup)\n */\n parallel: z.boolean().optional().default(false)\n .describe('Whether to start plugins in parallel when dependencies allow'),\n \n /**\n * Custom context to pass to plugin lifecycle methods\n */\n context: z.any().optional().describe('Custom context object to pass to plugin lifecycle methods'),\n});\n\nexport type StartupOptions = z.infer<typeof StartupOptionsSchema>;\nexport type StartupOptionsInput = z.input<typeof StartupOptionsSchema>;\n\n// ============================================================================\n// Health Status Schemas\n// ============================================================================\n\n/**\n * Health Status Schema\n * Health status for a plugin\n * \n * @example\n * {\n * \"healthy\": true,\n * \"timestamp\": 1706659200000,\n * \"details\": {\n * \"databaseConnected\": true,\n * \"memoryUsage\": 45.2\n * }\n * }\n */\nexport const HealthStatusSchema = z.object({\n /**\n * Whether the plugin is healthy\n */\n healthy: z.boolean().describe('Whether the plugin is healthy'),\n \n /**\n * Health check timestamp (Unix milliseconds)\n */\n timestamp: z.number().int().describe('Unix timestamp in milliseconds when health check was performed'),\n \n /**\n * Optional health details (plugin-specific)\n */\n details: z.record(z.string(), z.any()).optional().describe('Optional plugin-specific health details'),\n \n /**\n * Optional error message if unhealthy\n */\n message: z.string().optional().describe('Error message if plugin is unhealthy'),\n});\n\nexport type HealthStatus = z.infer<typeof HealthStatusSchema>;\n\n// ============================================================================\n// Startup Result Schemas\n// ============================================================================\n\n/**\n * Plugin Startup Result Schema\n * Result of a single plugin startup operation\n * \n * @example\n * {\n * \"plugin\": { \"name\": \"crm-plugin\", \"version\": \"1.0.0\" },\n * \"success\": true,\n * \"duration\": 1250,\n * \"health\": {\n * \"healthy\": true,\n * \"timestamp\": 1706659200000\n * }\n * }\n */\nexport const PluginStartupResultSchema = z.object({\n /**\n * Plugin that was started\n */\n plugin: z.object({\n name: z.string(),\n version: z.string().optional(),\n }).passthrough().describe('Plugin metadata'),\n \n /**\n * Whether startup was successful\n */\n success: z.boolean().describe('Whether the plugin started successfully'),\n \n /**\n * Time taken to start (milliseconds)\n */\n duration: z.number().min(0).describe('Time taken to start the plugin in milliseconds'),\n \n /**\n * Error if startup failed\n */\n error: z.instanceof(Error).optional().describe('Error object if startup failed'),\n \n /**\n * Health status after startup (if healthCheck enabled)\n */\n health: HealthStatusSchema.optional().describe('Health status after startup if health check was enabled'),\n});\n\nexport type PluginStartupResult = z.infer<typeof PluginStartupResultSchema>;\n\n// ============================================================================\n// Startup Orchestration Result Schema\n// ============================================================================\n\n/**\n * Startup Orchestration Result Schema\n * Overall result of orchestrating startup for multiple plugins\n * \n * @example\n * {\n * \"results\": [\n * { \"plugin\": { \"name\": \"plugin1\" }, \"success\": true, \"duration\": 1200 },\n * { \"plugin\": { \"name\": \"plugin2\" }, \"success\": true, \"duration\": 850 }\n * ],\n * \"totalDuration\": 2050,\n * \"allSuccessful\": true\n * }\n */\nexport const StartupOrchestrationResultSchema = z.object({\n /**\n * Individual plugin startup results\n */\n results: z.array(PluginStartupResultSchema).describe('Startup results for each plugin'),\n \n /**\n * Total time taken for all plugins (milliseconds)\n */\n totalDuration: z.number().min(0).describe('Total time taken for all plugins in milliseconds'),\n \n /**\n * Whether all plugins started successfully\n */\n allSuccessful: z.boolean().describe('Whether all plugins started successfully'),\n \n /**\n * Plugins that were rolled back (if rollbackOnFailure was enabled)\n */\n rolledBack: z.array(z.string()).optional().describe('Names of plugins that were rolled back'),\n});\n\nexport type StartupOrchestrationResult = z.infer<typeof StartupOrchestrationResultSchema>;\n"],"mappings":"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","names":["import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","module","import_zod","import_zod","import_zod","import_zod"]}
|