@objectstack/spec 1.0.6 → 1.0.8

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.
Files changed (43) hide show
  1. package/dist/ai/index.d.mts +1 -1
  2. package/dist/ai/index.d.ts +1 -1
  3. package/dist/api/index.d.mts +1 -1
  4. package/dist/api/index.d.ts +1 -1
  5. package/dist/api/index.js +1869 -1780
  6. package/dist/api/index.js.map +1 -1
  7. package/dist/api/index.mjs +1869 -1780
  8. package/dist/api/index.mjs.map +1 -1
  9. package/dist/automation/index.d.mts +1 -1
  10. package/dist/automation/index.d.ts +1 -1
  11. package/dist/hub/index.d.mts +1 -1
  12. package/dist/hub/index.d.ts +1 -1
  13. package/dist/hub/index.js +796 -707
  14. package/dist/hub/index.js.map +1 -1
  15. package/dist/hub/index.mjs +796 -707
  16. package/dist/hub/index.mjs.map +1 -1
  17. package/dist/{index-CQ2ZwxNr.d.ts → index-CyognKSZ.d.ts} +146 -146
  18. package/dist/{index-BqQd0BcZ.d.mts → index-DE_lJ11p.d.mts} +146 -146
  19. package/dist/{index-C34qbBQr.d.mts → index-DLcySG7U.d.mts} +262 -241
  20. package/dist/{index-C34qbBQr.d.ts → index-DLcySG7U.d.ts} +262 -241
  21. package/dist/{index-D8XFyX0x.d.mts → index-Os7lItRe.d.mts} +108 -108
  22. package/dist/{index-D8XFyX0x.d.ts → index-Os7lItRe.d.ts} +108 -108
  23. package/dist/{index-CsF8m5Wj.d.mts → index-l6WIlmOD.d.mts} +39 -39
  24. package/dist/{index-CsF8m5Wj.d.ts → index-l6WIlmOD.d.ts} +39 -39
  25. package/dist/index.d.mts +158 -158
  26. package/dist/index.d.ts +158 -158
  27. package/dist/index.js +703 -668
  28. package/dist/index.js.map +1 -1
  29. package/dist/index.mjs +703 -668
  30. package/dist/index.mjs.map +1 -1
  31. package/dist/kernel/index.d.mts +1 -1
  32. package/dist/kernel/index.d.ts +1 -1
  33. package/dist/kernel/index.js +705 -669
  34. package/dist/kernel/index.js.map +1 -1
  35. package/dist/kernel/index.mjs +704 -669
  36. package/dist/kernel/index.mjs.map +1 -1
  37. package/json-schema/api/CompileManifestResponse.json +6 -2
  38. package/json-schema/hub/ComposerResponse.json +6 -2
  39. package/json-schema/kernel/Manifest.json +6 -2
  40. package/json-schema/kernel/Plugin.json +28 -0
  41. package/package.json +1 -1
  42. package/dist/{index-iGrpxfqq.d.mts → index-D12rNohm.d.mts} +1 -1
  43. package/dist/{index-iGrpxfqq.d.ts → index-D12rNohm.d.ts} +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hub/index.ts","../../src/hub/composer.zod.ts","../../src/kernel/manifest.zod.ts","../../src/kernel/plugin-capability.zod.ts","../../src/kernel/plugin-loading.zod.ts","../../src/hub/marketplace.zod.ts","../../src/hub/plugin-registry.zod.ts","../../src/hub/registry-config.zod.ts","../../src/hub/space.zod.ts","../../src/hub/tenant.zod.ts","../../src/hub/license.zod.ts","../../src/hub/hub-federation.zod.ts","../../src/hub/plugin-security.zod.ts"],"sourcesContent":["// Export Hub Components\nexport * from './composer.zod';\nexport * from './marketplace.zod';\nexport * from './plugin-registry.zod';\nexport * from './registry-config.zod';\nexport * from './space.zod';\nexport * from './tenant.zod';\nexport * from './license.zod';\n\n// Export Enhanced Hub Protocols\nexport * from './hub-federation.zod';\nexport * from './plugin-security.zod';\n","import { z } from 'zod';\nimport { ManifestSchema } from '../kernel/manifest.zod';\n\n/**\n * # Cloud Composer Protocol\n * \n * Defines the interface for the ObjectStack Composer Service.\n * The Composer is responsible for \"compiling\" a Tenant's configuration (BOM)\n * into a single executable System Manifest.\n */\n\n/**\n * Dependency Requirement\n * Specifies a plugin and its version constraints.\n */\nexport const DependencyRequirementSchema = z.object({\n id: z.string().describe('Plugin ID (e.g. \"com.example.crm\")'),\n version: z.string().default('latest').describe('SemVer range or \"latest\"'),\n \n /**\n * Configuration Overrides\n * Tenant-specific settings that override plugin defaults.\n * Example: { \"currency\": \"USD\", \"apiKey\": \"...\" }\n */\n configuration: z.record(z.string(), z.any()).optional().describe('Configuration overrides'),\n \n /**\n * Feature Flags\n * Enable/Disable specific features within the plugin.\n */\n features: z.record(z.string(), z.boolean()).optional().describe('Feature toggles'),\n});\n\n/**\n * Bill of Materials (BOM)\n * The \"Shopping List\" for a specific tenant.\n * Represents the high-level intent of what the tenant wants to install.\n */\nexport const BillOfMaterialsSchema = z.object({\n tenantId: z.string().describe('Target Tenant ID'),\n \n /**\n * List of installed plugins/apps.\n * implementation order matters (later plugins override earlier ones by default).\n */\n dependencies: z.array(DependencyRequirementSchema).describe('Installed packages'),\n \n /**\n * Environment Variables injection.\n * Maps abstract keys to secure vault references or concrete values.\n */\n environment: z.record(z.string(), z.string()).optional(),\n \n /**\n * Global Resolution Strategy\n * How to handle conflicts when multiple plugins define the same resource.\n */\n resolutionStrategy: z.enum(['strict', 'override', 'merge']).default('override')\n .describe('Conflict resolution strategy (strict=fail, override=last-wins, merge=deep-merge)'),\n});\n\n/**\n * Conflict Report\n * Detailed information about collision during composition.\n */\nexport const ConflictReportSchema = z.object({\n resourceType: z.enum(['object', 'field', 'api', 'ui']).describe('Type of colliding resource'),\n resourceId: z.string().describe('ID of the resource'),\n sources: z.array(z.string()).describe('List of plugin IDs defining this resource'),\n resolution: z.string().describe('How it was resolved (e.g. \"com.example.erp won\")'),\n severity: z.enum(['info', 'warning', 'error']).describe('Severity of the conflict'),\n});\n\n/**\n * Composer Request\n * The RPC payload sent to the Composer Service.\n */\nexport const ComposerRequestSchema = z.object({\n bom: BillOfMaterialsSchema,\n \n /**\n * Target Runtime Version\n * Ensure generated manifest is compatible with the specific runtime version.\n */\n runtimeVersion: z.string().optional(),\n \n /**\n * Dry Run\n * If true, generates report but does not persist the manifest.\n */\n dryRun: z.boolean().default(false),\n});\n\n/**\n * Composer Response\n * The result of the compilation process.\n */\nexport const ComposerResponseSchema = z.object({\n success: z.boolean(),\n \n /**\n * The Holy Grail: The Executable System Manifest.\n * This is what the Runtime loads to boot.\n */\n manifest: ManifestSchema.optional().describe('The compiled System Manifest'),\n\n /**\n * Manifest URL\n * Presigned URL to download the manifest if stored externally (e.g. Vercel KV/S3).\n */\n manifestUrl: z.string().url().optional().describe('Presigned download URL'),\n \n /**\n * Compilation Metadata\n */\n buildId: z.string(),\n timestamp: z.string().datetime(),\n duration: z.number().describe('Compilation time in ms'),\n \n /**\n * Analysis\n */\n conflicts: z.array(ConflictReportSchema).optional(),\n errors: z.array(z.string()).optional(),\n});\n\nexport type BillOfMaterials = z.infer<typeof BillOfMaterialsSchema>;\nexport type ComposerRequest = z.infer<typeof ComposerRequestSchema>;\nexport type ComposerResponse = z.infer<typeof ComposerResponseSchema>;\nexport type ComposerConfig = ComposerRequest; // Alias for configuration context\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';\nimport { PluginVendorSchema } from './plugin-registry.zod';\n\n/**\n * # Marketplace Protocol\n * \n * Defines the schema for the ObjectStack Plugin Marketplace.\n * This is the catalog of available extensions sourced from NPM or private registries.\n */\n\nexport const PluginAuthorSchema = PluginVendorSchema;\n\n/**\n * Plugin Pricing Model Schema\n */\nexport const PluginPricingSchema = z.object({\n type: z.enum(['free', 'one_time', 'recurring']),\n currency: z.string().default('USD'),\n amount: z.number().min(0),\n interval: z.enum(['month', 'year']).optional().describe('Required if type is recurring'),\n trialDays: z.number().int().optional(),\n});\n\n/**\n * Plugin Version Schema\n * Specific release version details\n */\nexport const PluginVersionSchema = z.object({\n version: z.string().describe('SemVer string (e.g. 1.0.0)'),\n publishedAt: z.string().datetime().describe('Publication date'),\n downloadUrl: z.string().url().describe('Archive download URL'),\n checksum: z.string().optional().describe('Integrity checksum (shasum)'),\n engine: z.object({\n node: z.string().optional(),\n objectstack: z.string().describe('Required ObjectStack kernel version range'),\n }).optional().describe('Engine compatibility'),\n dependencies: z.record(z.string(), z.string()).optional().describe('Runtime plugin dependencies'),\n changeLog: z.string().optional().describe('Release notes'),\n});\n\n/**\n * Plugin Registry Entry Schema\n * Represents a listing in the Marketplace.\n */\nexport const MarketplacePluginSchema = z.object({\n /**\n * Package Identifier\n * Usually the NPM package name (e.g. \"@steedos/plugin-crm\")\n */\n id: z.string(),\n \n /**\n * Version History\n * Registry of all available versions\n */\n versions: z.record(z.string(), PluginVersionSchema).optional().describe('Map of versions (1.0.0) -> Details'),\n\n /**\n * Display Name\n */\n label: z.string(),\n \n /**\n * Short Description\n */\n description: z.string().optional(),\n \n /**\n * Detailed README / Documentation content\n */\n readme: z.string().optional(),\n \n /**\n * Latest Version\n */\n version: z.string(),\n \n /**\n * Vendor / Publisher\n */\n vendor: PluginVendorSchema.optional(),\n \n /**\n * Categorization\n */\n tags: z.array(z.string()).optional(),\n category: z.enum([\n 'app', \n 'integration', \n 'theme', \n 'utility', \n 'driver',\n 'analytics',\n 'security',\n 'automation',\n 'ai',\n 'data'\n ]).optional(),\n \n /**\n * Assets\n */\n icon: z.string().url().optional(),\n screenshots: z.array(z.string().url()).optional(),\n \n /**\n * Links\n */\n homepage: z.string().url().optional(),\n repository: z.string().url().optional(),\n bugs: z.string().url().optional(),\n \n /**\n * Statistics\n */\n downloads: z.number().int().optional(),\n rating: z.number().min(0).max(5).optional(),\n\n /**\n * Commercial Information\n */\n pricing: PluginPricingSchema.optional(),\n\n verified: z.boolean().default(false).describe('Is verified maintaned by ObjectStack'),\n});\n\nexport type PluginAuthor = z.infer<typeof PluginAuthorSchema>;\nexport type MarketplacePlugin = z.infer<typeof MarketplacePluginSchema>;\nexport type MarketplaceListing = MarketplacePlugin; // Alias for backwards compatibility\n","import { z } from 'zod';\nimport { PluginCapabilityManifestSchema } from '../kernel/plugin-capability.zod';\n\n/**\n * # Plugin Registry Protocol\n * \n * Defines the schema for the plugin discovery and registry system.\n * This enables plugins from different vendors to be discovered, validated,\n * and composed together in the ObjectStack ecosystem.\n */\n\n/**\n * Plugin Vendor Information\n */\nexport const PluginVendorSchema = z.object({\n /**\n * Vendor identifier (reverse domain notation)\n * Example: \"com.acme\", \"org.apache\", \"com.objectstack\"\n */\n id: z.string()\n .regex(/^[a-z][a-z0-9]*(\\.[a-z][a-z0-9]*)+$/)\n .describe('Vendor identifier (reverse domain)'),\n \n /**\n * Vendor display name\n */\n name: z.string(),\n \n /**\n * Vendor website\n */\n website: z.string().url().optional(),\n \n /**\n * Contact email\n */\n email: z.string().email().optional(),\n \n /**\n * Verification status\n */\n verified: z.boolean().default(false).describe('Whether vendor is verified by ObjectStack'),\n \n /**\n * Trust level\n */\n trustLevel: z.enum(['official', 'verified', 'community', 'unverified']).default('unverified'),\n});\n\n/**\n * Plugin Quality Metrics\n */\nexport const PluginQualityMetricsSchema = z.object({\n /**\n * Test coverage percentage\n */\n testCoverage: z.number().min(0).max(100).optional(),\n \n /**\n * Documentation score (0-100)\n */\n documentationScore: z.number().min(0).max(100).optional(),\n \n /**\n * Code quality score (0-100)\n */\n codeQuality: z.number().min(0).max(100).optional(),\n \n /**\n * Security scan status\n */\n securityScan: z.object({\n lastScanDate: z.string().datetime().optional(),\n vulnerabilities: z.object({\n critical: z.number().int().min(0).default(0),\n high: z.number().int().min(0).default(0),\n medium: z.number().int().min(0).default(0),\n low: z.number().int().min(0).default(0),\n }).optional(),\n passed: z.boolean().default(false),\n }).optional(),\n \n /**\n * Conformance test results\n */\n conformanceTests: z.array(z.object({\n protocolId: z.string().describe('Protocol being tested'),\n passed: z.boolean(),\n totalTests: z.number().int().min(0),\n passedTests: z.number().int().min(0),\n lastRunDate: z.string().datetime().optional(),\n })).optional(),\n});\n\n/**\n * Plugin Usage Statistics\n */\nexport const PluginStatisticsSchema = z.object({\n /**\n * Total downloads\n */\n downloads: z.number().int().min(0).default(0),\n \n /**\n * Downloads in the last 30 days\n */\n downloadsLastMonth: z.number().int().min(0).default(0),\n \n /**\n * Number of active installations\n */\n activeInstallations: z.number().int().min(0).default(0),\n \n /**\n * User ratings\n */\n ratings: z.object({\n average: z.number().min(0).max(5).default(0),\n count: z.number().int().min(0).default(0),\n distribution: z.object({\n '5': z.number().int().min(0).default(0),\n '4': z.number().int().min(0).default(0),\n '3': z.number().int().min(0).default(0),\n '2': z.number().int().min(0).default(0),\n '1': z.number().int().min(0).default(0),\n }).optional(),\n }).optional(),\n \n /**\n * GitHub stars (if open source)\n */\n stars: z.number().int().min(0).optional(),\n \n /**\n * Number of dependent plugins\n */\n dependents: z.number().int().min(0).default(0),\n});\n\n/**\n * Plugin Registry Entry\n * Complete metadata for a plugin in the registry.\n */\nexport const PluginRegistryEntrySchema = z.object({\n /**\n * Plugin identifier (must match manifest.id)\n */\n id: z.string()\n .regex(/^([a-z][a-z0-9]*\\.)+[a-z][a-z0-9-]+$/)\n .describe('Plugin identifier (reverse domain notation)'),\n \n /**\n * Current version\n */\n version: z.string().regex(/^\\d+\\.\\d+\\.\\d+$/),\n \n /**\n * Plugin display name\n */\n name: z.string(),\n \n /**\n * Short description\n */\n description: z.string().optional(),\n \n /**\n * Detailed documentation/README\n */\n readme: z.string().optional(),\n \n /**\n * Plugin type/category\n */\n category: z.enum([\n 'data', // Data management, storage, databases\n 'integration', // External service integrations\n 'ui', // UI components and themes\n 'analytics', // Analytics and reporting\n 'security', // Security, auth, compliance\n 'automation', // Workflows and automation\n 'ai', // AI/ML capabilities\n 'utility', // General utilities\n 'driver', // Database/storage drivers\n 'gateway', // API gateways\n 'adapter', // Runtime adapters\n ]).optional(),\n \n /**\n * Tags for categorization\n */\n tags: z.array(z.string()).optional(),\n \n /**\n * Vendor information\n */\n vendor: PluginVendorSchema,\n \n /**\n * Capability manifest (what the plugin implements/provides)\n */\n capabilities: PluginCapabilityManifestSchema.optional(),\n \n /**\n * Compatibility information\n */\n compatibility: z.object({\n /**\n * Minimum ObjectStack version required\n */\n minObjectStackVersion: z.string().optional(),\n \n /**\n * Maximum ObjectStack version supported\n */\n maxObjectStackVersion: z.string().optional(),\n \n /**\n * Node.js version requirement\n */\n nodeVersion: z.string().optional(),\n \n /**\n * Supported platforms\n */\n platforms: z.array(z.enum(['linux', 'darwin', 'win32', 'browser'])).optional(),\n }).optional(),\n \n /**\n * Links and resources\n */\n links: z.object({\n homepage: z.string().url().optional(),\n repository: z.string().url().optional(),\n documentation: z.string().url().optional(),\n bugs: z.string().url().optional(),\n changelog: z.string().url().optional(),\n }).optional(),\n \n /**\n * Media assets\n */\n media: z.object({\n icon: z.string().url().optional(),\n logo: z.string().url().optional(),\n screenshots: z.array(z.string().url()).optional(),\n video: z.string().url().optional(),\n }).optional(),\n \n /**\n * Quality metrics\n */\n quality: PluginQualityMetricsSchema.optional(),\n \n /**\n * Usage statistics\n */\n statistics: PluginStatisticsSchema.optional(),\n \n /**\n * License information\n */\n license: z.string().optional().describe('SPDX license identifier'),\n \n /**\n * Pricing (if commercial)\n */\n pricing: z.object({\n model: z.enum(['free', 'freemium', 'paid', 'enterprise']),\n price: z.number().min(0).optional(),\n currency: z.string().default('USD').optional(),\n billingPeriod: z.enum(['one-time', 'monthly', 'yearly']).optional(),\n }).optional(),\n \n /**\n * Publication dates\n */\n publishedAt: z.string().datetime().optional(),\n updatedAt: z.string().datetime().optional(),\n \n /**\n * Deprecation status\n */\n deprecated: z.boolean().default(false),\n deprecationMessage: z.string().optional(),\n replacedBy: z.string().optional().describe('Plugin ID that replaces this one'),\n \n /**\n * Feature flags\n */\n flags: z.object({\n experimental: z.boolean().default(false),\n beta: z.boolean().default(false),\n featured: z.boolean().default(false),\n verified: z.boolean().default(false),\n }).optional(),\n});\n\n/**\n * Plugin Search Filters\n */\nexport const PluginSearchFiltersSchema = z.object({\n /**\n * Search query\n */\n query: z.string().optional(),\n \n /**\n * Filter by category\n */\n category: z.array(z.string()).optional(),\n \n /**\n * Filter by tags\n */\n tags: z.array(z.string()).optional(),\n \n /**\n * Filter by vendor trust level\n */\n trustLevel: z.array(z.enum(['official', 'verified', 'community', 'unverified'])).optional(),\n \n /**\n * Filter by protocols implemented\n */\n implementsProtocols: z.array(z.string()).optional(),\n \n /**\n * Filter by pricing model\n */\n pricingModel: z.array(z.enum(['free', 'freemium', 'paid', 'enterprise'])).optional(),\n \n /**\n * Minimum rating\n */\n minRating: z.number().min(0).max(5).optional(),\n \n /**\n * Sort options\n */\n sortBy: z.enum([\n 'relevance',\n 'downloads',\n 'rating',\n 'updated',\n 'name',\n ]).optional(),\n \n /**\n * Sort order\n */\n sortOrder: z.enum(['asc', 'desc']).default('desc').optional(),\n \n /**\n * Pagination\n */\n page: z.number().int().min(1).default(1).optional(),\n limit: z.number().int().min(1).max(100).default(20).optional(),\n});\n\n/**\n * Plugin Installation Configuration\n */\nexport const PluginInstallConfigSchema = z.object({\n /**\n * Plugin identifier to install\n */\n pluginId: z.string(),\n \n /**\n * Version to install (supports semver ranges)\n */\n version: z.string().optional().describe('Defaults to latest'),\n \n /**\n * Plugin-specific configuration values\n */\n config: z.record(z.string(), z.any()).optional(),\n \n /**\n * Whether to auto-update\n */\n autoUpdate: z.boolean().default(false).optional(),\n \n /**\n * Installation options\n */\n options: z.object({\n /**\n * Skip dependency installation\n */\n skipDependencies: z.boolean().default(false).optional(),\n \n /**\n * Force reinstall\n */\n force: z.boolean().default(false).optional(),\n \n /**\n * Installation target\n */\n target: z.enum(['system', 'space', 'user']).default('space').optional(),\n }).optional(),\n});\n\n// Export types\nexport type PluginVendor = z.infer<typeof PluginVendorSchema>;\nexport type PluginQualityMetrics = z.infer<typeof PluginQualityMetricsSchema>;\nexport type PluginStatistics = z.infer<typeof PluginStatisticsSchema>;\nexport type PluginRegistryEntry = z.infer<typeof PluginRegistryEntrySchema>;\nexport type PluginSearchFilters = z.infer<typeof PluginSearchFiltersSchema>;\nexport type PluginInstallConfig = z.infer<typeof PluginInstallConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * # Registry Configuration Protocol\n * \n * Defines the configuration for the ObjectStack Registry Service.\n * Includes federation, synchronization, and storage settings.\n */\n\n/**\n * Registry Sync Policy\n * Defines how registries synchronize with upstreams\n */\nexport const RegistrySyncPolicySchema = z.enum([\n 'manual', // Manual synchronization only\n 'auto', // Automatic synchronization\n 'proxy', // Proxy requests to upstream without caching\n]).describe('Registry synchronization strategy');\n\n/**\n * Registry Upstream Configuration\n * Configuration for upstream registry connection\n */\nexport const RegistryUpstreamSchema = z.object({\n /**\n * Upstream registry URL\n */\n url: z.string().url()\n .describe('Upstream registry endpoint'),\n \n /**\n * Synchronization policy\n */\n syncPolicy: RegistrySyncPolicySchema.default('auto'),\n \n /**\n * Sync interval in seconds (for auto sync)\n */\n syncInterval: z.number().int().min(60).optional()\n .describe('Auto-sync interval in seconds'),\n \n /**\n * Authentication credentials\n */\n auth: z.object({\n type: z.enum(['none', 'basic', 'bearer', 'api-key', 'oauth2']).default('none'),\n username: z.string().optional(),\n password: z.string().optional(),\n token: z.string().optional(),\n apiKey: z.string().optional(),\n }).optional(),\n \n /**\n * TLS/SSL configuration\n */\n tls: z.object({\n enabled: z.boolean().default(true),\n verifyCertificate: z.boolean().default(true),\n certificate: z.string().optional(),\n privateKey: z.string().optional(),\n }).optional(),\n \n /**\n * Timeout settings\n */\n timeout: z.number().int().min(1000).default(30000)\n .describe('Request timeout in milliseconds'),\n \n /**\n * Retry configuration\n */\n retry: z.object({\n maxAttempts: z.number().int().min(0).default(3),\n backoff: z.enum(['fixed', 'linear', 'exponential']).default('exponential'),\n }).optional(),\n});\n\n/**\n * Registry Configuration\n * Complete registry configuration supporting federation\n */\nexport const RegistryConfigSchema = z.object({\n /**\n * Registry type\n */\n type: z.enum([\n 'public', // Public marketplace (e.g., plugins.objectstack.com)\n 'private', // Private enterprise registry\n 'hybrid', // Hybrid with upstream federation\n ]).describe('Registry deployment type'),\n \n /**\n * Upstream registries (for hybrid/private registries)\n */\n upstream: z.array(RegistryUpstreamSchema).optional()\n .describe('Upstream registries to sync from or proxy to'),\n \n /**\n * Scopes managed by this registry\n */\n scope: z.array(z.string()).optional()\n .describe('npm-style scopes managed by this registry (e.g., @my-corp, @enterprise)'),\n \n /**\n * Default scope for new plugins\n */\n defaultScope: z.string().optional()\n .describe('Default scope prefix for new plugins'),\n \n /**\n * Registry storage configuration\n */\n storage: z.object({\n /**\n * Storage backend type\n */\n backend: z.enum(['local', 's3', 'gcs', 'azure-blob', 'oss']).default('local'),\n \n /**\n * Storage path or bucket name\n */\n path: z.string().optional(),\n \n /**\n * Credentials\n */\n credentials: z.record(z.string(), z.any()).optional(),\n }).optional(),\n \n /**\n * Registry visibility\n */\n visibility: z.enum(['public', 'private', 'internal']).default('private')\n .describe('Who can access this registry'),\n \n /**\n * Access control\n */\n accessControl: z.object({\n /**\n * Require authentication for read\n */\n requireAuthForRead: z.boolean().default(false),\n \n /**\n * Require authentication for write\n */\n requireAuthForWrite: z.boolean().default(true),\n \n /**\n * Allowed users/teams\n */\n allowedPrincipals: z.array(z.string()).optional(),\n }).optional(),\n \n /**\n * Caching configuration\n */\n cache: z.object({\n enabled: z.boolean().default(true),\n ttl: z.number().int().min(0).default(3600)\n .describe('Cache TTL in seconds'),\n maxSize: z.number().int().optional()\n .describe('Maximum cache size in bytes'),\n }).optional(),\n \n /**\n * Mirroring configuration (for high availability)\n */\n mirrors: z.array(z.object({\n url: z.string().url(),\n priority: z.number().int().min(1).default(1),\n })).optional()\n .describe('Mirror registries for redundancy'),\n});\n\nexport type RegistrySyncPolicy = z.infer<typeof RegistrySyncPolicySchema>;\nexport type RegistryUpstream = z.infer<typeof RegistryUpstreamSchema>;\nexport type RegistryConfig = z.infer<typeof RegistryConfigSchema>;\n","import { z } from 'zod';\nimport { BillOfMaterialsSchema } from './composer.zod';\nimport { TenantIsolationLevel, TenantQuotaSchema } from './tenant.zod';\n\n/**\n * # Space Protocol\n * \n * Defines the SaaS-side representation of a Space (formerly Project).\n * A Space is a logical container for business apps, data, and logic.\n * Corresponds to an entry in the Hub's database.\n */\n\n/**\n * Subscription Status Enum\n */\nexport const SubscriptionStatus = z.enum([\n 'active',\n 'past_due',\n 'canceled',\n 'trialing',\n 'incomplete'\n]);\n\n/**\n * Space Subscription Info\n */\nexport const SpaceSubscriptionSchema = z.object({\n planId: z.string().describe('Reference to Plan Code'),\n status: SubscriptionStatus,\n currentPeriodEnd: z.string().datetime().optional(),\n stripeCustomerId: z.string().optional(),\n stripeSubscriptionId: z.string().optional(),\n \n /**\n * Purchased Add-ons from Marketplace\n */\n addons: z.array(z.object({\n pluginId: z.string().describe('Marketplace Plugin ID (NPM package name)'),\n quantity: z.number().default(1),\n status: SubscriptionStatus.default('active'),\n })).optional(),\n\n /**\n * Quota Usage Snapshot\n * Cached usage metrics for quick display/validation.\n */\n usage: z.record(z.string(), z.number()).optional(),\n});\n\n/**\n * Deployment Target\n * Vercel or Container configuration.\n */\nexport const DeploymentTargetSchema = z.object({\n provider: z.enum(['vercel', 'docker', 'kubernetes']),\n region: z.string().optional(),\n url: z.string().url().optional().describe('Public Access URL'),\n env: z.record(z.string(), z.string()).optional().describe('Runtime Environment Variables'),\n});\n\n/**\n * Hub Space Schema\n */\nexport const HubSpaceSchema = z.object({\n id: z.string().uuid(),\n \n /**\n * Display Name\n */\n name: z.string(),\n slug: z.string().describe('URL friendly identifier'),\n \n /**\n * Owner (User or Org ID in Hub)\n */\n ownerId: z.string(),\n\n /**\n * The Runtime Instance Definition\n * Defines the technical execution environment.\n */\n runtime: z.object({\n isolation: TenantIsolationLevel.describe('Data isolation strategy'),\n quotas: TenantQuotaSchema.optional().describe('Resource quotas'),\n }).optional().describe('Runtime instance configuration'),\n \n /**\n * The Desired State (Bill of Materials)\n * This is what the user configures in the UI.\n */\n bom: BillOfMaterialsSchema,\n \n /**\n * The Current Actual State (Last Successful Build)\n */\n lastBuild: z.object({\n id: z.string(),\n timestamp: z.string().datetime(),\n manifestUrl: z.string().url().optional(),\n status: z.enum(['pending', 'success', 'failed']),\n }).optional(),\n \n /**\n * Commercial / Billing Info\n */\n subscription: SpaceSubscriptionSchema.optional(),\n \n /**\n * Infrastructure Settings\n */\n deployment: DeploymentTargetSchema.optional(),\n \n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport type SubscriptionStatus = z.infer<typeof SubscriptionStatus>;\nexport type SpaceSubscription = z.infer<typeof SpaceSubscriptionSchema>;\nexport type DeploymentTarget = z.infer<typeof DeploymentTargetSchema>;\nexport type HubSpace = z.infer<typeof HubSpaceSchema>;\nexport type Space = HubSpace; // Alias for backwards compatibility\n","import { z } from 'zod';\n\n/**\n * Tenant Schema (Multi-Tenant Architecture)\n * \n * Defines the tenant/tenancy model for ObjectStack SaaS deployments.\n * Supports different levels of data isolation to meet varying security,\n * performance, and compliance requirements.\n * \n * Isolation Levels:\n * - shared_schema: All tenants share the same database and schema (row-level isolation)\n * - isolated_schema: Tenants have separate schemas within a shared database\n * - isolated_db: Each tenant has a completely separate database\n */\n\n/**\n * Tenant Isolation Level Enum\n * Defines how tenant data is separated in the system\n */\nexport const TenantIsolationLevel = z.enum([\n 'shared_schema', // Shared DB, shared schema, row-level isolation (most economical)\n 'isolated_schema', // Shared DB, separate schema per tenant (balanced)\n 'isolated_db', // Separate database per tenant (maximum isolation)\n]);\n\nexport type TenantIsolationLevel = z.infer<typeof TenantIsolationLevel>;\n\n/**\n * Tenant Quota Schema\n * Defines resource limits and usage quotas for a tenant\n */\nexport const TenantQuotaSchema = z.object({\n /**\n * Maximum number of users allowed for this tenant\n */\n maxUsers: z.number().int().positive().optional().describe('Maximum number of users'),\n \n /**\n * Maximum storage space in bytes\n */\n maxStorage: z.number().int().positive().optional().describe('Maximum storage in bytes'),\n \n /**\n * API rate limit (requests per minute)\n */\n apiRateLimit: z.number().int().positive().optional().describe('API requests per minute'),\n});\n\nexport type TenantQuota = z.infer<typeof TenantQuotaSchema>;\n\n/**\n * Tenant Schema\n * \n * @deprecated This schema is maintained for backward compatibility only.\n * New implementations should use HubSpaceSchema which embeds tenant concepts.\n * \n * **Migration Guide:**\n * ```typescript\n * // Old approach (deprecated):\n * const tenant: Tenant = {\n * id: 'tenant_123',\n * name: 'My Tenant',\n * isolationLevel: 'shared_schema',\n * quotas: { maxUsers: 100 }\n * };\n * \n * // New approach (recommended):\n * const space: HubSpace = {\n * id: '...uuid...',\n * name: 'My Tenant',\n * slug: 'my-tenant',\n * ownerId: 'user_id',\n * runtime: {\n * isolation: 'shared_schema',\n * quotas: { maxUsers: 100 }\n * },\n * bom: { ... }\n * };\n * ```\n * \n * See HubSpaceSchema in space.zod.ts for the recommended approach.\n */\nexport const TenantSchema = z.object({\n /**\n * Unique tenant identifier\n */\n id: z.string().describe('Unique tenant identifier'),\n \n /**\n * Tenant display name\n */\n name: z.string().describe('Tenant display name'),\n \n /**\n * Data isolation level\n */\n isolationLevel: TenantIsolationLevel,\n \n /**\n * Custom configuration values\n */\n customizations: z.record(z.string(), z.any()).optional().describe('Custom configuration values'),\n \n /**\n * Resource quotas\n */\n quotas: TenantQuotaSchema.optional(),\n});\n\nexport type Tenant = z.infer<typeof TenantSchema>;\n\n/**\n * Tenant Isolation Strategy Documentation\n * \n * Comprehensive documentation of three isolation strategies for multi-tenant systems.\n * Each strategy has different trade-offs in terms of security, cost, complexity, and compliance.\n */\n\n/**\n * Row-Level Isolation Strategy (shared_schema)\n * \n * Recommended for: Most SaaS applications, cost-sensitive deployments\n * \n * IMPLEMENTATION:\n * - All tenants share the same database and schema\n * - Each table includes a tenant_id column\n * - PostgreSQL Row-Level Security (RLS) enforces isolation\n * - Queries automatically filter by tenant_id via RLS policies\n * \n * ADVANTAGES:\n * ✅ Simple backup and restore (single database)\n * ✅ Cost-effective (shared resources, minimal overhead)\n * ✅ Easy tenant migration (update tenant_id)\n * ✅ Efficient resource utilization (connection pooling)\n * ✅ Simple schema migrations (single schema to update)\n * ✅ Lower operational complexity\n * \n * DISADVANTAGES:\n * ❌ RLS misconfiguration can lead to data leakage\n * ❌ Performance impact from RLS policy evaluation\n * ❌ Noisy neighbor problem (one tenant can affect others)\n * ❌ Cannot easily isolate tenant to different hardware\n * ❌ Compliance challenges for regulated industries\n * \n * SECURITY CONSIDERATIONS:\n * - Requires careful RLS policy configuration\n * - Must validate tenant_id in all queries\n * - Need comprehensive testing of RLS policies\n * - Audit all database access patterns\n * - Implement application-level validation as defense-in-depth\n * \n * EXAMPLE RLS POLICY (PostgreSQL):\n * ```sql\n * -- Example: Apply RLS policy to a table (e.g., \"app_data\")\n * CREATE POLICY tenant_isolation ON app_data\n * USING (tenant_id = current_setting('app.current_tenant')::text);\n * \n * ALTER TABLE app_data ENABLE ROW LEVEL SECURITY;\n * ```\n */\nexport const RowLevelIsolationStrategySchema = z.object({\n strategy: z.literal('shared_schema').describe('Row-level isolation strategy'),\n \n /**\n * Database configuration for row-level isolation\n */\n database: z.object({\n /**\n * Whether to enable Row-Level Security (RLS)\n */\n enableRLS: z.boolean().default(true).describe('Enable PostgreSQL Row-Level Security'),\n \n /**\n * Tenant context setting method\n */\n contextMethod: z.enum([\n 'session_variable', // SET app.current_tenant = 'tenant_123'\n 'search_path', // SET search_path = tenant_123, public\n 'application_name', // SET application_name = 'tenant_123'\n ]).default('session_variable').describe('How to set tenant context'),\n \n /**\n * Session variable name for tenant context\n */\n contextVariable: z.string().default('app.current_tenant').describe('Session variable name'),\n \n /**\n * Whether to validate tenant_id at application level\n */\n applicationValidation: z.boolean().default(true).describe('Application-level tenant validation'),\n }).optional().describe('Database configuration'),\n \n /**\n * Performance optimization settings\n */\n performance: z.object({\n /**\n * Whether to use partial indexes for tenant_id\n */\n usePartialIndexes: z.boolean().default(true).describe('Use partial indexes per tenant'),\n \n /**\n * Whether to use table partitioning\n */\n usePartitioning: z.boolean().default(false).describe('Use table partitioning by tenant_id'),\n \n /**\n * Connection pool size per tenant\n */\n poolSizePerTenant: z.number().int().positive().optional().describe('Connection pool size per tenant'),\n }).optional().describe('Performance settings'),\n});\n\nexport type RowLevelIsolationStrategy = z.infer<typeof RowLevelIsolationStrategySchema>;\n\n/**\n * Schema-Level Isolation Strategy (isolated_schema)\n * \n * Recommended for: Enterprise SaaS, B2B platforms with compliance needs\n * \n * IMPLEMENTATION:\n * - All tenants share the same database server\n * - Each tenant has a separate database schema\n * - Schema name typically: tenant_<tenant_id>\n * - Application switches schema using SET search_path\n * \n * ADVANTAGES:\n * ✅ Better isolation than row-level (schema boundaries)\n * ✅ Easier to debug (separate schemas)\n * ✅ Can grant different database permissions per schema\n * ✅ Reduced risk of data leakage\n * ✅ Performance isolation (indexes, statistics per schema)\n * ✅ Simplified queries (no tenant_id filtering needed)\n * \n * DISADVANTAGES:\n * ❌ More complex backups (must backup all schemas)\n * ❌ Higher migration costs (schema changes across all tenants)\n * ❌ Schema proliferation (PostgreSQL has limits)\n * ❌ Connection overhead (switching schemas)\n * ❌ More complex monitoring and maintenance\n * \n * SECURITY CONSIDERATIONS:\n * - Ensure proper schema permissions (GRANT USAGE ON SCHEMA)\n * - Validate schema name to prevent SQL injection\n * - Implement connection-level schema switching\n * - Audit schema access patterns\n * - Prevent cross-schema queries in application\n * \n * EXAMPLE IMPLEMENTATION (PostgreSQL):\n * ```sql\n * -- Create tenant schema\n * CREATE SCHEMA tenant_123;\n * \n * -- Grant access\n * GRANT USAGE ON SCHEMA tenant_123 TO app_user;\n * \n * -- Switch to tenant schema\n * SET search_path TO tenant_123, public;\n * ```\n */\nexport const SchemaLevelIsolationStrategySchema = z.object({\n strategy: z.literal('isolated_schema').describe('Schema-level isolation strategy'),\n \n /**\n * Schema configuration\n */\n schema: z.object({\n /**\n * Schema naming pattern\n * Use {tenant_id} as placeholder (must contain only alphanumeric and underscores)\n * The tenant_id will be sanitized before substitution to prevent SQL injection\n */\n namingPattern: z.string().default('tenant_{tenant_id}').describe('Schema naming pattern'),\n \n /**\n * Whether to include public schema in search_path\n */\n includePublicSchema: z.boolean().default(true).describe('Include public schema'),\n \n /**\n * Default schema for shared resources\n */\n sharedSchema: z.string().default('public').describe('Schema for shared resources'),\n \n /**\n * Whether to automatically create schema on tenant creation\n */\n autoCreateSchema: z.boolean().default(true).describe('Auto-create schema'),\n }).optional().describe('Schema configuration'),\n \n /**\n * Migration configuration\n */\n migrations: z.object({\n /**\n * Migration strategy\n */\n strategy: z.enum([\n 'parallel', // Run migrations on all schemas in parallel\n 'sequential', // Run migrations one schema at a time\n 'on_demand', // Run migrations when tenant accesses system\n ]).default('parallel').describe('Migration strategy'),\n \n /**\n * Maximum concurrent migrations\n */\n maxConcurrent: z.number().int().positive().default(10).describe('Max concurrent migrations'),\n \n /**\n * Whether to rollback on first failure\n */\n rollbackOnError: z.boolean().default(true).describe('Rollback on error'),\n }).optional().describe('Migration configuration'),\n \n /**\n * Performance optimization settings\n */\n performance: z.object({\n /**\n * Whether to use connection pooling per schema\n */\n poolPerSchema: z.boolean().default(false).describe('Separate pool per schema'),\n \n /**\n * Schema cache TTL in seconds\n */\n schemaCacheTTL: z.number().int().positive().default(3600).describe('Schema cache TTL'),\n }).optional().describe('Performance settings'),\n});\n\nexport type SchemaLevelIsolationStrategy = z.infer<typeof SchemaLevelIsolationStrategySchema>;\n\n/**\n * Database-Level Isolation Strategy (isolated_db)\n * \n * Recommended for: Regulated industries (healthcare, finance), strict compliance requirements\n * \n * IMPLEMENTATION:\n * - Each tenant has a completely separate database\n * - Database name typically: tenant_<tenant_id>\n * - Requires separate connection pool per tenant\n * - Complete physical and logical isolation\n * \n * ADVANTAGES:\n * ✅ Perfect data isolation (strongest security)\n * ✅ Meets strict regulatory requirements (HIPAA, SOX, PCI-DSS)\n * ✅ Complete performance isolation (no noisy neighbors)\n * ✅ Can place databases on different hardware\n * ✅ Easy to backup/restore individual tenant\n * ✅ Simplified compliance auditing per tenant\n * ✅ Can apply different encryption keys per database\n * \n * DISADVANTAGES:\n * ❌ Most expensive option (resource overhead)\n * ❌ Complex database server management (many databases)\n * ❌ Connection pool limits (max connections per server)\n * ❌ Difficult cross-tenant analytics\n * ❌ Higher operational complexity\n * ❌ Schema migrations take longer (many databases)\n * \n * SECURITY CONSIDERATIONS:\n * - Each database can have separate credentials\n * - Enables per-tenant encryption at rest\n * - Simplifies compliance and audit trails\n * - Prevents any cross-tenant data access\n * - Supports tenant-specific backup schedules\n * \n * EXAMPLE IMPLEMENTATION (PostgreSQL):\n * ```sql\n * -- Create tenant database\n * CREATE DATABASE tenant_123\n * WITH OWNER = tenant_123_user\n * ENCODING = 'UTF8'\n * LC_COLLATE = 'en_US.UTF-8'\n * LC_CTYPE = 'en_US.UTF-8';\n * \n * -- Connect to tenant database\n * \\c tenant_123\n * ```\n */\nexport const DatabaseLevelIsolationStrategySchema = z.object({\n strategy: z.literal('isolated_db').describe('Database-level isolation strategy'),\n \n /**\n * Database configuration\n */\n database: z.object({\n /**\n * Database naming pattern\n * Use {tenant_id} as placeholder (must contain only alphanumeric and underscores)\n * The tenant_id will be sanitized before substitution to prevent SQL injection\n */\n namingPattern: z.string().default('tenant_{tenant_id}').describe('Database naming pattern'),\n \n /**\n * Database server/cluster assignment strategy\n */\n serverStrategy: z.enum([\n 'shared', // All tenant databases on same server\n 'sharded', // Tenant databases distributed across servers\n 'dedicated', // Each tenant gets dedicated server (enterprise)\n ]).default('shared').describe('Server assignment strategy'),\n \n /**\n * Whether to use separate credentials per tenant\n */\n separateCredentials: z.boolean().default(true).describe('Separate credentials per tenant'),\n \n /**\n * Whether to automatically create database on tenant creation\n */\n autoCreateDatabase: z.boolean().default(true).describe('Auto-create database'),\n }).optional().describe('Database configuration'),\n \n /**\n * Connection pooling configuration\n */\n connectionPool: z.object({\n /**\n * Pool size per tenant database\n */\n poolSize: z.number().int().positive().default(10).describe('Connection pool size'),\n \n /**\n * Maximum number of tenant pools to keep active\n */\n maxActivePools: z.number().int().positive().default(100).describe('Max active pools'),\n \n /**\n * Idle pool timeout in seconds\n */\n idleTimeout: z.number().int().positive().default(300).describe('Idle pool timeout'),\n \n /**\n * Whether to use connection pooler (PgBouncer, etc.)\n */\n usePooler: z.boolean().default(true).describe('Use connection pooler'),\n }).optional().describe('Connection pool configuration'),\n \n /**\n * Backup and restore configuration\n */\n backup: z.object({\n /**\n * Backup strategy per tenant\n */\n strategy: z.enum([\n 'individual', // Separate backup per tenant\n 'consolidated', // Combined backup with all tenants\n 'on_demand', // Backup only when requested\n ]).default('individual').describe('Backup strategy'),\n \n /**\n * Backup frequency in hours\n */\n frequencyHours: z.number().int().positive().default(24).describe('Backup frequency'),\n \n /**\n * Retention period in days\n */\n retentionDays: z.number().int().positive().default(30).describe('Backup retention days'),\n }).optional().describe('Backup configuration'),\n \n /**\n * Encryption configuration\n */\n encryption: z.object({\n /**\n * Whether to use per-tenant encryption keys\n */\n perTenantKeys: z.boolean().default(false).describe('Per-tenant encryption keys'),\n \n /**\n * Encryption algorithm\n */\n algorithm: z.string().default('AES-256-GCM').describe('Encryption algorithm'),\n \n /**\n * Key management service\n */\n keyManagement: z.enum(['aws_kms', 'azure_key_vault', 'gcp_kms', 'hashicorp_vault', 'custom']).optional().describe('Key management service'),\n }).optional().describe('Encryption configuration'),\n});\n\nexport type DatabaseLevelIsolationStrategy = z.infer<typeof DatabaseLevelIsolationStrategySchema>;\n\n/**\n * Tenant Isolation Configuration Schema\n * \n * Complete configuration for tenant isolation strategy.\n * Supports all three isolation levels with detailed configuration options.\n */\nexport const TenantIsolationConfigSchema = z.discriminatedUnion('strategy', [\n RowLevelIsolationStrategySchema,\n SchemaLevelIsolationStrategySchema,\n DatabaseLevelIsolationStrategySchema,\n]);\n\nexport type TenantIsolationConfig = z.infer<typeof TenantIsolationConfigSchema>;\n\n/**\n * Tenant Security Policy Schema\n * Defines security policies and compliance requirements for tenants\n */\nexport const TenantSecurityPolicySchema = z.object({\n /**\n * Encryption requirements\n */\n encryption: z.object({\n /**\n * Require encryption at rest\n */\n atRest: z.boolean().default(true).describe('Require encryption at rest'),\n \n /**\n * Require encryption in transit\n */\n inTransit: z.boolean().default(true).describe('Require encryption in transit'),\n \n /**\n * Require field-level encryption for sensitive data\n */\n fieldLevel: z.boolean().default(false).describe('Require field-level encryption'),\n }).optional().describe('Encryption requirements'),\n \n /**\n * Access control requirements\n */\n accessControl: z.object({\n /**\n * Require multi-factor authentication\n */\n requireMFA: z.boolean().default(false).describe('Require MFA'),\n \n /**\n * Require SSO/SAML authentication\n */\n requireSSO: z.boolean().default(false).describe('Require SSO'),\n \n /**\n * IP whitelist\n */\n ipWhitelist: z.array(z.string()).optional().describe('Allowed IP addresses'),\n \n /**\n * Session timeout in seconds\n */\n sessionTimeout: z.number().int().positive().default(3600).describe('Session timeout'),\n }).optional().describe('Access control requirements'),\n \n /**\n * Audit and compliance requirements\n */\n compliance: z.object({\n /**\n * Compliance standards to enforce\n */\n standards: z.array(z.enum([\n 'sox',\n 'hipaa',\n 'gdpr',\n 'pci_dss',\n 'iso_27001',\n 'fedramp',\n ])).optional().describe('Compliance standards'),\n \n /**\n * Require audit logging for all operations\n */\n requireAuditLog: z.boolean().default(true).describe('Require audit logging'),\n \n /**\n * Audit log retention period in days\n */\n auditRetentionDays: z.number().int().positive().default(365).describe('Audit retention days'),\n \n /**\n * Data residency requirements\n */\n dataResidency: z.object({\n /**\n * Required geographic region\n */\n region: z.string().optional().describe('Required region (e.g., US, EU, APAC)'),\n \n /**\n * Prohibited regions\n */\n excludeRegions: z.array(z.string()).optional().describe('Prohibited regions'),\n }).optional().describe('Data residency requirements'),\n }).optional().describe('Compliance requirements'),\n});\n\nexport type TenantSecurityPolicy = z.infer<typeof TenantSecurityPolicySchema>;\n","import { z } from 'zod';\n\n/**\n * Metric Type Classification\n */\nexport const MetricType = z.enum([\n 'boolean', // Feature Flag (Enabled/Disabled)\n 'counter', // Usage Count (e.g. API Calls, Records Created) - Accumulates\n 'gauge', // Current Level (e.g. Storage Used, Users Active) - Point in time\n]);\n\n/**\n * Feature/Limit Definition Schema\n * Defines a controllable capability of the system.\n */\nexport const FeatureSchema = z.object({\n code: z.string().regex(/^[a-z_][a-z0-9_.]*$/).describe('Feature code (e.g. core.api_access)'),\n label: z.string(),\n description: z.string().optional(),\n \n type: MetricType.default('boolean'),\n \n /** For counters/gauges */\n unit: z.enum(['count', 'bytes', 'seconds', 'percent']).optional(),\n \n /** Dependencies (e.g. 'audit_log' requires 'enterprise_tier') */\n requires: z.array(z.string()).optional(),\n});\n\n/**\n * Subscription Plan Schema\n * Defines a tier of service (e.g. \"Free\", \"Pro\", \"Enterprise\").\n */\nexport const PlanSchema = z.object({\n code: z.string().describe('Plan code (e.g. pro_v1)'),\n label: z.string(),\n active: z.boolean().default(true),\n \n /** Feature Entitlements */\n features: z.array(z.string()).describe('List of enabled boolean features'),\n \n /** Limit Quotas */\n limits: z.record(z.string(), z.number()).describe('Map of metric codes to limit values (e.g. { storage_gb: 10 })'),\n \n /** Pricing (Optional Metadata) */\n currency: z.string().default('USD').optional(),\n priceMonthly: z.number().optional(),\n priceYearly: z.number().optional(),\n});\n\n/**\n * License Schema\n * The actual entitlement object assigned to a Space.\n * Often signed as a JWT.\n */\nexport const LicenseSchema = z.object({\n /** Identity */\n spaceId: z.string().describe('Target Space ID'),\n planCode: z.string(),\n \n /** Validity */\n issuedAt: z.string().datetime(),\n expiresAt: z.string().datetime().optional(), // Null = Perpetual\n \n /** Status */\n status: z.enum(['active', 'expired', 'suspended', 'trial']),\n \n /** Overrides (Specific to this space, exceeding the plan) */\n customFeatures: z.array(z.string()).optional(),\n customLimits: z.record(z.string(), z.number()).optional(),\n \n /** Authorized Add-ons */\n plugins: z.array(z.string()).optional().describe('List of enabled plugin package IDs'),\n\n /** Signature */\n signature: z.string().optional().describe('Cryptographic signature of the license'),\n});\n\nexport type Feature = z.infer<typeof FeatureSchema>;\nexport type Plan = z.infer<typeof PlanSchema>;\nexport type License = z.infer<typeof LicenseSchema>;\n","import { z } from 'zod';\n\n/**\n * # Hub Federation Protocol\n * \n * Enables distributed ObjectStack Hub deployments across multiple regions,\n * data centers, or cloud providers. Supports:\n * - Multi-region plugin distribution\n * - Federated identity and tenant management\n * - Cross-region data replication\n * - Global load balancing\n * - Disaster recovery\n * \n * Use cases:\n * - Global SaaS deployments with regional data residency\n * - Multi-cloud resilience\n * - Edge computing with central management\n * - Hybrid cloud deployments\n */\n\n// ============================================================================\n// Region & Deployment Topology\n// ============================================================================\n\n/**\n * Geographic Region\n */\nexport const RegionSchema = z.object({\n /**\n * Region identifier (e.g., us-east-1, eu-west-1, ap-southeast-1)\n */\n id: z.string().regex(/^[a-z]{2}-[a-z]+-\\d+$/).describe('Region identifier'),\n \n /**\n * Display name\n */\n name: z.string().describe('Human-readable region name'),\n \n /**\n * Geographic location\n */\n location: z.object({\n continent: z.enum(['NA', 'SA', 'EU', 'AF', 'AS', 'OC', 'AN']),\n country: z.string().regex(/^[A-Z]{2}$/).describe('ISO 3166-1 alpha-2 country code'),\n city: z.string().optional(),\n latitude: z.number().min(-90).max(90).optional(),\n longitude: z.number().min(-180).max(180).optional(),\n }),\n \n /**\n * Cloud provider and region mapping\n */\n provider: z.object({\n name: z.enum(['aws', 'azure', 'gcp', 'cloudflare', 'vercel', 'self-hosted']),\n region: z.string().describe('Provider-specific region identifier'),\n }).optional(),\n \n /**\n * Region capabilities\n */\n capabilities: z.object({\n databases: z.array(z.enum(['postgres', 'mysql', 'mongodb', 'redis'])).default([]),\n storage: z.array(z.enum(['s3', 'azure-blob', 'gcs'])).default([]),\n compute: z.array(z.enum(['containers', 'serverless', 'vm'])).default([]),\n cdn: z.boolean().default(false),\n }).optional(),\n \n /**\n * Compliance and certifications\n */\n compliance: z.array(z.enum(['gdpr', 'hipaa', 'soc2', 'iso27001', 'pci-dss'])).default([]),\n \n /**\n * Region status\n */\n status: z.enum(['active', 'read-only', 'maintenance', 'deprecated']).default('active'),\n \n /**\n * Resource limits for this region\n */\n limits: z.object({\n maxSpaces: z.number().int().positive().optional(),\n maxTenants: z.number().int().positive().optional(),\n maxStorage: z.number().int().positive().optional().describe('Bytes'),\n }).optional(),\n});\n\nexport type Region = z.infer<typeof RegionSchema>;\n\n/**\n * Hub Instance\n * Represents a single Hub deployment in a region\n */\nexport const HubInstanceSchema = z.object({\n /**\n * Instance identifier\n */\n id: z.string().uuid(),\n \n /**\n * Region where this hub is deployed\n */\n regionId: z.string(),\n \n /**\n * Hub role in federation\n */\n role: z.enum([\n 'primary', // Primary/master hub\n 'secondary', // Read-replica hub\n 'edge', // Edge location for caching\n ]),\n \n /**\n * Endpoint URLs\n */\n endpoints: z.object({\n api: z.string().url().describe('Public API endpoint'),\n admin: z.string().url().optional().describe('Admin console'),\n grpc: z.string().optional().describe('gRPC endpoint for inter-hub communication'),\n }),\n \n /**\n * Replication configuration\n */\n replication: z.object({\n /**\n * Source hub for replication (if this is a secondary)\n */\n primaryHubId: z.string().uuid().optional(),\n \n /**\n * Replication lag tolerance in seconds\n */\n lagTolerance: z.number().int().positive().default(5),\n \n /**\n * Replication mode\n */\n mode: z.enum(['sync', 'async', 'semi-sync']).default('async'),\n }).optional(),\n \n /**\n * Health status\n */\n health: z.object({\n status: z.enum(['healthy', 'degraded', 'unhealthy']),\n lastCheck: z.string().datetime(),\n uptime: z.number().describe('Seconds'),\n }).optional(),\n \n /**\n * Version\n */\n version: z.string(),\n \n /**\n * Metadata\n */\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport type HubInstance = z.infer<typeof HubInstanceSchema>;\n\n// ============================================================================\n// Federation Topology\n// ============================================================================\n\n/**\n * Federation Topology\n * Defines the global hub network architecture\n */\nexport const FederationTopologySchema = z.object({\n /**\n * Federation identifier\n */\n id: z.string().uuid(),\n \n /**\n * Federation name\n */\n name: z.string(),\n \n /**\n * Regions in this federation\n */\n regions: z.array(RegionSchema),\n \n /**\n * Hub instances\n */\n hubs: z.array(HubInstanceSchema),\n \n /**\n * Routing strategy\n */\n routing: z.object({\n /**\n * How to route tenant requests\n */\n strategy: z.enum([\n 'geo-proximity', // Route to nearest region\n 'data-residency', // Route based on tenant data location\n 'least-loaded', // Route to least busy hub\n 'custom', // Custom routing logic\n ]).default('geo-proximity'),\n \n /**\n * Failover behavior\n */\n failover: z.object({\n enabled: z.boolean().default(true),\n maxRetries: z.number().int().min(0).default(3),\n timeout: z.number().int().positive().default(5000).describe('Milliseconds'),\n }),\n }),\n \n /**\n * Data synchronization settings\n */\n synchronization: z.object({\n /**\n * What data to sync across regions\n */\n scope: z.object({\n /**\n * Sync plugin registry\n */\n plugins: z.boolean().default(true),\n \n /**\n * Sync tenant metadata (not data)\n */\n tenants: z.boolean().default(true),\n \n /**\n * Sync spaces metadata\n */\n spaces: z.boolean().default(false),\n \n /**\n * Sync licenses\n */\n licenses: z.boolean().default(true),\n }),\n \n /**\n * Sync frequency\n */\n frequency: z.enum(['realtime', 'hourly', 'daily']).default('realtime'),\n \n /**\n * Conflict resolution\n */\n conflictResolution: z.enum(['last-write-wins', 'primary-wins', 'manual']).default('last-write-wins'),\n }),\n});\n\nexport type FederationTopology = z.infer<typeof FederationTopologySchema>;\n\n// ============================================================================\n// Tenant Placement\n// ============================================================================\n\n/**\n * Tenant Placement Policy\n * Determines where a tenant's data and runtime reside\n */\nexport const TenantPlacementPolicySchema = z.object({\n /**\n * Tenant identifier\n */\n tenantId: z.string(),\n \n /**\n * Primary region (where tenant data lives)\n */\n primaryRegion: z.string(),\n \n /**\n * Replica regions (for disaster recovery)\n */\n replicaRegions: z.array(z.string()).default([]),\n \n /**\n * Data residency constraints\n */\n dataResidency: z.object({\n /**\n * Allowed regions for data storage\n */\n allowedRegions: z.array(z.string()).optional(),\n \n /**\n * Prohibited regions\n */\n prohibitedRegions: z.array(z.string()).default([]),\n \n /**\n * Continent restriction\n */\n continent: z.enum(['NA', 'SA', 'EU', 'AF', 'AS', 'OC', 'AN']).optional(),\n }).optional(),\n \n /**\n * Failover policy\n */\n failover: z.object({\n /**\n * Enable automatic failover\n */\n enabled: z.boolean().default(true),\n \n /**\n * Preferred failover order (region IDs)\n */\n preferredOrder: z.array(z.string()).default([]),\n \n /**\n * Maximum acceptable latency for failover target (ms)\n */\n maxLatency: z.number().int().positive().default(100),\n }).optional(),\n \n /**\n * Latency requirements\n */\n latency: z.object({\n /**\n * Maximum acceptable latency for primary region (ms)\n */\n maxPrimaryLatency: z.number().int().positive().default(50),\n \n /**\n * Maximum acceptable latency for replicas (ms)\n */\n maxReplicaLatency: z.number().int().positive().default(200),\n }).optional(),\n});\n\nexport type TenantPlacementPolicy = z.infer<typeof TenantPlacementPolicySchema>;\n\n// ============================================================================\n// Cross-Region Operations\n// ============================================================================\n\n/**\n * Cross-Region Replication Job\n */\nexport const ReplicationJobSchema = z.object({\n /**\n * Job identifier\n */\n id: z.string().uuid(),\n \n /**\n * Job type\n */\n type: z.enum([\n 'initial-sync', // First-time full sync\n 'incremental', // Delta sync\n 'conflict-resolution', // Resolve conflicts\n ]),\n \n /**\n * Source hub\n */\n sourceHubId: z.string().uuid(),\n \n /**\n * Target hub(s)\n */\n targetHubIds: z.array(z.string().uuid()),\n \n /**\n * Resource scope\n */\n scope: z.object({\n /**\n * Resource type\n */\n resourceType: z.enum(['plugin', 'tenant', 'space', 'license', 'all']),\n \n /**\n * Specific resource IDs (empty = all)\n */\n resourceIds: z.array(z.string()).default([]),\n }),\n \n /**\n * Job status\n */\n status: z.enum(['pending', 'running', 'completed', 'failed', 'cancelled']),\n \n /**\n * Progress\n */\n progress: z.object({\n total: z.number().int().min(0),\n completed: z.number().int().min(0),\n failed: z.number().int().min(0),\n }).optional(),\n \n /**\n * Timestamps\n */\n createdAt: z.string().datetime(),\n startedAt: z.string().datetime().optional(),\n completedAt: z.string().datetime().optional(),\n \n /**\n * Errors\n */\n errors: z.array(z.object({\n timestamp: z.string().datetime(),\n resourceId: z.string(),\n error: z.string(),\n })).default([]),\n});\n\nexport type ReplicationJob = z.infer<typeof ReplicationJobSchema>;\n\n/**\n * Global Registry Entry\n * Tracks where a resource exists across regions\n */\nexport const GlobalRegistryEntrySchema = z.object({\n /**\n * Resource identifier\n */\n resourceId: z.string(),\n \n /**\n * Resource type\n */\n resourceType: z.enum(['plugin', 'tenant', 'space', 'license']),\n \n /**\n * Regions where this resource exists\n */\n locations: z.array(z.object({\n regionId: z.string(),\n hubId: z.string().uuid(),\n isPrimary: z.boolean().default(false),\n lastSyncedAt: z.string().datetime().optional(),\n version: z.string().optional(),\n })),\n \n /**\n * Global version vector clock (for conflict detection)\n */\n versionVector: z.record(z.string(), z.number().int()).optional(),\n});\n\nexport type GlobalRegistryEntry = z.infer<typeof GlobalRegistryEntrySchema>;\n\n// ============================================================================\n// Edge Computing\n// ============================================================================\n\n/**\n * Edge Location\n * Represents a CDN/edge cache location\n */\nexport const EdgeLocationSchema = z.object({\n /**\n * Location identifier\n */\n id: z.string(),\n \n /**\n * Parent region\n */\n regionId: z.string(),\n \n /**\n * Location details\n */\n location: RegionSchema.shape.location,\n \n /**\n * Caching configuration\n */\n cache: z.object({\n /**\n * What to cache at edge\n */\n resources: z.array(z.enum(['plugins', 'static-assets', 'api-responses'])).default([]),\n \n /**\n * TTL in seconds\n */\n ttl: z.number().int().positive().default(3600),\n \n /**\n * Cache size limit (bytes)\n */\n maxSize: z.number().int().positive().optional(),\n }),\n \n /**\n * Status\n */\n status: z.enum(['active', 'inactive']).default('active'),\n});\n\nexport type EdgeLocation = z.infer<typeof EdgeLocationSchema>;\n\n// ============================================================================\n// Export All\n// ============================================================================\n\nexport const HubFederationProtocol = {\n Region: RegionSchema,\n HubInstance: HubInstanceSchema,\n FederationTopology: FederationTopologySchema,\n TenantPlacementPolicy: TenantPlacementPolicySchema,\n ReplicationJob: ReplicationJobSchema,\n GlobalRegistryEntry: GlobalRegistryEntrySchema,\n EdgeLocation: EdgeLocationSchema,\n} as const;\n","import { z } from 'zod';\n\n/**\n * # Plugin Security & Dependency Resolution Protocol\n * \n * Provides comprehensive security scanning, vulnerability management,\n * and dependency resolution for the ObjectStack plugin ecosystem.\n * \n * Features:\n * - CVE/vulnerability scanning\n * - Dependency graph resolution\n * - Semantic version conflict detection\n * - Supply chain security\n * - Plugin sandboxing policies\n * - Trust and verification workflows\n */\n\n// ============================================================================\n// Security Scanning\n// ============================================================================\n\n/**\n * Vulnerability Severity\n */\nexport const VulnerabilitySeverity = z.enum([\n 'critical',\n 'high',\n 'medium',\n 'low',\n 'info',\n]);\n\nexport type VulnerabilitySeverity = z.infer<typeof VulnerabilitySeverity>;\n\n/**\n * Security Vulnerability\n */\nexport const SecurityVulnerabilitySchema = z.object({\n /**\n * CVE identifier (if applicable)\n */\n cve: z.string().regex(/^CVE-\\d{4}-\\d+$/).optional().describe('CVE identifier'),\n \n /**\n * Vulnerability identifier (GHSA, SNYK, etc.)\n */\n id: z.string().describe('Vulnerability ID'),\n \n /**\n * Title\n */\n title: z.string(),\n \n /**\n * Description\n */\n description: z.string(),\n \n /**\n * Severity\n */\n severity: VulnerabilitySeverity,\n \n /**\n * CVSS score (0-10)\n */\n cvss: z.number().min(0).max(10).optional(),\n \n /**\n * Affected package\n */\n package: z.object({\n name: z.string(),\n version: z.string(),\n ecosystem: z.string().optional(),\n }),\n \n /**\n * Vulnerable version range\n */\n vulnerableVersions: z.string().describe('Semver range of vulnerable versions'),\n \n /**\n * Patched versions\n */\n patchedVersions: z.string().optional().describe('Semver range of patched versions'),\n \n /**\n * References\n */\n references: z.array(z.object({\n type: z.enum(['advisory', 'article', 'report', 'web']),\n url: z.string().url(),\n })).default([]),\n \n /**\n * CWE (Common Weakness Enumeration)\n */\n cwe: z.array(z.string()).default([]),\n \n /**\n * Published date\n */\n publishedAt: z.string().datetime().optional(),\n \n /**\n * Mitigation advice\n */\n mitigation: z.string().optional(),\n});\n\nexport type SecurityVulnerability = z.infer<typeof SecurityVulnerabilitySchema>;\n\n/**\n * Security Scan Result\n */\nexport const SecurityScanResultSchema = z.object({\n /**\n * Scan identifier\n */\n scanId: z.string().uuid(),\n \n /**\n * Plugin being scanned\n */\n plugin: z.object({\n id: z.string(),\n version: z.string(),\n }),\n \n /**\n * Scan timestamp\n */\n scannedAt: z.string().datetime(),\n \n /**\n * Scanner information\n */\n scanner: z.object({\n name: z.string().describe('Scanner name (e.g., snyk, osv, trivy)'),\n version: z.string(),\n }),\n \n /**\n * Scan status\n */\n status: z.enum(['passed', 'failed', 'warning']),\n \n /**\n * Vulnerabilities found\n */\n vulnerabilities: z.array(SecurityVulnerabilitySchema),\n \n /**\n * Vulnerability summary\n */\n summary: z.object({\n critical: z.number().int().min(0).default(0),\n high: z.number().int().min(0).default(0),\n medium: z.number().int().min(0).default(0),\n low: z.number().int().min(0).default(0),\n info: z.number().int().min(0).default(0),\n total: z.number().int().min(0).default(0),\n }),\n \n /**\n * License compliance issues\n */\n licenseIssues: z.array(z.object({\n package: z.string(),\n license: z.string(),\n reason: z.string(),\n severity: z.enum(['error', 'warning', 'info']),\n })).default([]),\n \n /**\n * Code quality issues\n */\n codeQuality: z.object({\n score: z.number().min(0).max(100).optional(),\n issues: z.array(z.object({\n type: z.enum(['security', 'quality', 'style']),\n severity: z.enum(['error', 'warning', 'info']),\n message: z.string(),\n file: z.string().optional(),\n line: z.number().int().optional(),\n })).default([]),\n }).optional(),\n \n /**\n * Next scan scheduled\n */\n nextScanAt: z.string().datetime().optional(),\n});\n\nexport type SecurityScanResult = z.infer<typeof SecurityScanResultSchema>;\n\n/**\n * Security Policy\n */\nexport const SecurityPolicySchema = z.object({\n /**\n * Policy identifier\n */\n id: z.string(),\n \n /**\n * Policy name\n */\n name: z.string(),\n \n /**\n * Automatic scanning\n */\n autoScan: z.object({\n enabled: z.boolean().default(true),\n frequency: z.enum(['on-publish', 'daily', 'weekly', 'monthly']).default('daily'),\n }),\n \n /**\n * Vulnerability thresholds\n */\n thresholds: z.object({\n /**\n * Block plugin if critical vulnerabilities exceed this\n */\n maxCritical: z.number().int().min(0).default(0),\n \n /**\n * Block plugin if high vulnerabilities exceed this\n */\n maxHigh: z.number().int().min(0).default(0),\n \n /**\n * Warn if medium vulnerabilities exceed this\n */\n maxMedium: z.number().int().min(0).default(5),\n }),\n \n /**\n * Allowed licenses\n */\n allowedLicenses: z.array(z.string()).default([\n 'MIT',\n 'Apache-2.0',\n 'BSD-3-Clause',\n 'BSD-2-Clause',\n 'ISC',\n ]),\n \n /**\n * Prohibited licenses\n */\n prohibitedLicenses: z.array(z.string()).default([\n 'GPL-3.0',\n 'AGPL-3.0',\n ]),\n \n /**\n * Code signing requirements\n */\n codeSigning: z.object({\n required: z.boolean().default(false),\n allowedSigners: z.array(z.string()).default([]),\n }).optional(),\n \n /**\n * Sandbox restrictions\n */\n sandbox: z.object({\n /**\n * Restrict network access\n */\n networkAccess: z.enum(['none', 'localhost', 'allowlist', 'all']).default('all'),\n \n /**\n * Allowed network destinations (if allowlist)\n */\n allowedDestinations: z.array(z.string()).default([]),\n \n /**\n * File system access\n */\n filesystemAccess: z.enum(['none', 'read-only', 'temp-only', 'full']).default('full'),\n \n /**\n * Maximum memory (MB)\n */\n maxMemoryMB: z.number().int().positive().optional(),\n \n /**\n * Maximum CPU time (seconds)\n */\n maxCPUSeconds: z.number().int().positive().optional(),\n }).optional(),\n});\n\nexport type SecurityPolicy = z.infer<typeof SecurityPolicySchema>;\n\n// ============================================================================\n// Dependency Resolution\n// ============================================================================\n\n/**\n * Package Dependency\n */\nexport const PackageDependencySchema = z.object({\n /**\n * Package name/ID\n */\n name: z.string(),\n \n /**\n * Version constraint (semver range)\n */\n versionConstraint: z.string().describe('Semver range (e.g., `^1.0.0`, `>=2.0.0 <3.0.0`)'),\n \n /**\n * Dependency type\n */\n type: z.enum(['required', 'optional', 'peer', 'dev']).default('required'),\n \n /**\n * Resolved version (filled during resolution)\n */\n resolvedVersion: z.string().optional(),\n});\n\nexport type PackageDependency = z.infer<typeof PackageDependencySchema>;\n\n/**\n * Dependency Graph Node\n */\nexport const DependencyGraphNodeSchema = z.object({\n /**\n * Package identifier\n */\n id: z.string(),\n \n /**\n * Package version\n */\n version: z.string(),\n \n /**\n * Dependencies of this package\n */\n dependencies: z.array(PackageDependencySchema).default([]),\n \n /**\n * Depth in dependency tree\n */\n depth: z.number().int().min(0),\n \n /**\n * Whether this is a direct dependency\n */\n isDirect: z.boolean(),\n \n /**\n * Package metadata\n */\n metadata: z.object({\n name: z.string(),\n description: z.string().optional(),\n license: z.string().optional(),\n homepage: z.string().url().optional(),\n }).optional(),\n});\n\nexport type DependencyGraphNode = z.infer<typeof DependencyGraphNodeSchema>;\n\n/**\n * Dependency Graph\n */\nexport const DependencyGraphSchema = z.object({\n /**\n * Root package\n */\n root: z.object({\n id: z.string(),\n version: z.string(),\n }),\n \n /**\n * All nodes in the graph\n */\n nodes: z.array(DependencyGraphNodeSchema),\n \n /**\n * Edges (dependency relationships)\n */\n edges: z.array(z.object({\n from: z.string().describe('Package ID'),\n to: z.string().describe('Package ID'),\n constraint: z.string().describe('Version constraint'),\n })),\n \n /**\n * Resolution statistics\n */\n stats: z.object({\n totalDependencies: z.number().int().min(0),\n directDependencies: z.number().int().min(0),\n maxDepth: z.number().int().min(0),\n }),\n});\n\nexport type DependencyGraph = z.infer<typeof DependencyGraphSchema>;\n\n/**\n * Dependency Conflict\n */\nexport const DependencyConflictSchema = z.object({\n /**\n * Package with conflict\n */\n package: z.string(),\n \n /**\n * Conflicting versions\n */\n conflicts: z.array(z.object({\n version: z.string(),\n requestedBy: z.array(z.string()).describe('Packages that require this version'),\n constraint: z.string(),\n })),\n \n /**\n * Suggested resolution\n */\n resolution: z.object({\n strategy: z.enum(['pick-highest', 'pick-lowest', 'manual']),\n version: z.string().optional(),\n reason: z.string().optional(),\n }).optional(),\n \n /**\n * Severity\n */\n severity: z.enum(['error', 'warning', 'info']),\n});\n\nexport type DependencyConflict = z.infer<typeof DependencyConflictSchema>;\n\n/**\n * Dependency Resolution Result\n */\nexport const DependencyResolutionResultSchema = z.object({\n /**\n * Resolution status\n */\n status: z.enum(['success', 'conflict', 'error']),\n \n /**\n * Resolved dependency graph\n */\n graph: DependencyGraphSchema.optional(),\n \n /**\n * Conflicts detected\n */\n conflicts: z.array(DependencyConflictSchema).default([]),\n \n /**\n * Errors encountered\n */\n errors: z.array(z.object({\n package: z.string(),\n error: z.string(),\n })).default([]),\n \n /**\n * Installation order (topological sort)\n */\n installOrder: z.array(z.string()).default([]),\n \n /**\n * Resolution time (ms)\n */\n resolvedIn: z.number().int().min(0).optional(),\n});\n\nexport type DependencyResolutionResult = z.infer<typeof DependencyResolutionResultSchema>;\n\n// ============================================================================\n// Supply Chain Security\n// ============================================================================\n\n/**\n * SBOM (Software Bill of Materials) Entry\n */\nexport const SBOMEntrySchema = z.object({\n /**\n * Component name\n */\n name: z.string(),\n \n /**\n * Component version\n */\n version: z.string(),\n \n /**\n * Package URL (purl)\n */\n purl: z.string().optional().describe('Package URL identifier'),\n \n /**\n * License\n */\n license: z.string().optional(),\n \n /**\n * Hashes\n */\n hashes: z.object({\n sha256: z.string().optional(),\n sha512: z.string().optional(),\n }).optional(),\n \n /**\n * Supplier\n */\n supplier: z.object({\n name: z.string(),\n url: z.string().url().optional(),\n }).optional(),\n \n /**\n * External references\n */\n externalRefs: z.array(z.object({\n type: z.enum(['website', 'repository', 'documentation', 'issue-tracker']),\n url: z.string().url(),\n })).default([]),\n});\n\nexport type SBOMEntry = z.infer<typeof SBOMEntrySchema>;\n\n/**\n * Software Bill of Materials (SBOM)\n */\nexport const SBOMSchema = z.object({\n /**\n * SBOM format\n */\n format: z.enum(['spdx', 'cyclonedx']).default('cyclonedx'),\n \n /**\n * SBOM version\n */\n version: z.string(),\n \n /**\n * Plugin metadata\n */\n plugin: z.object({\n id: z.string(),\n version: z.string(),\n name: z.string(),\n }),\n \n /**\n * Components (dependencies)\n */\n components: z.array(SBOMEntrySchema),\n \n /**\n * Generation timestamp\n */\n generatedAt: z.string().datetime(),\n \n /**\n * Generator tool\n */\n generator: z.object({\n name: z.string(),\n version: z.string(),\n }).optional(),\n});\n\nexport type SBOM = z.infer<typeof SBOMSchema>;\n\n/**\n * Plugin Provenance\n * Verifiable chain of custody for plugin artifacts\n */\nexport const PluginProvenanceSchema = z.object({\n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Plugin version\n */\n version: z.string(),\n \n /**\n * Build information\n */\n build: z.object({\n /**\n * Build timestamp\n */\n timestamp: z.string().datetime(),\n \n /**\n * Build environment\n */\n environment: z.object({\n os: z.string(),\n arch: z.string(),\n nodeVersion: z.string(),\n }).optional(),\n \n /**\n * Source repository\n */\n source: z.object({\n repository: z.string().url(),\n commit: z.string().regex(/^[a-f0-9]{40}$/),\n branch: z.string().optional(),\n tag: z.string().optional(),\n }).optional(),\n \n /**\n * Builder identity\n */\n builder: z.object({\n name: z.string(),\n email: z.string().email().optional(),\n }).optional(),\n }),\n \n /**\n * Artifact hashes\n */\n artifacts: z.array(z.object({\n filename: z.string(),\n sha256: z.string(),\n size: z.number().int().positive(),\n })),\n \n /**\n * Signatures\n */\n signatures: z.array(z.object({\n algorithm: z.enum(['rsa', 'ecdsa', 'ed25519']),\n publicKey: z.string(),\n signature: z.string(),\n signedBy: z.string(),\n timestamp: z.string().datetime(),\n })).default([]),\n \n /**\n * Attestations\n */\n attestations: z.array(z.object({\n type: z.enum(['code-review', 'security-scan', 'test-results', 'ci-build']),\n status: z.enum(['passed', 'failed']),\n url: z.string().url().optional(),\n timestamp: z.string().datetime(),\n })).default([]),\n});\n\nexport type PluginProvenance = z.infer<typeof PluginProvenanceSchema>;\n\n// ============================================================================\n// Trust & Verification\n// ============================================================================\n\n/**\n * Plugin Trust Score\n */\nexport const PluginTrustScoreSchema = z.object({\n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Overall trust score (0-100)\n */\n score: z.number().min(0).max(100),\n \n /**\n * Score components\n */\n components: z.object({\n /**\n * Vendor reputation (0-100)\n */\n vendorReputation: z.number().min(0).max(100),\n \n /**\n * Security scan results (0-100)\n */\n securityScore: z.number().min(0).max(100),\n \n /**\n * Code quality (0-100)\n */\n codeQuality: z.number().min(0).max(100),\n \n /**\n * Community engagement (0-100)\n */\n communityScore: z.number().min(0).max(100),\n \n /**\n * Update frequency (0-100)\n */\n maintenanceScore: z.number().min(0).max(100),\n }),\n \n /**\n * Trust level\n */\n level: z.enum(['verified', 'trusted', 'neutral', 'untrusted', 'blocked']),\n \n /**\n * Verification badges\n */\n badges: z.array(z.enum([\n 'official', // Official ObjectStack plugin\n 'verified-vendor', // Verified vendor\n 'security-scanned', // Passed security scan\n 'code-signed', // Digitally signed\n 'open-source', // Open source\n 'popular', // High downloads\n ])).default([]),\n \n /**\n * Last updated\n */\n updatedAt: z.string().datetime(),\n});\n\nexport type PluginTrustScore = z.infer<typeof PluginTrustScoreSchema>;\n\n// ============================================================================\n// Export All\n// ============================================================================\n\nexport const PluginSecurityProtocol = {\n VulnerabilitySeverity,\n SecurityVulnerability: SecurityVulnerabilitySchema,\n SecurityScanResult: SecurityScanResultSchema,\n SecurityPolicy: SecurityPolicySchema,\n PackageDependency: PackageDependencySchema,\n DependencyGraphNode: DependencyGraphNodeSchema,\n DependencyGraph: DependencyGraphSchema,\n DependencyConflict: DependencyConflictSchema,\n DependencyResolutionResult: DependencyResolutionResultSchema,\n SBOMEntry: SBOMEntrySchema,\n SBOM: SBOMSchema,\n PluginProvenance: PluginProvenanceSchema,\n PluginTrustScore: PluginTrustScoreSchema,\n} as const;\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"]}
1
+ {"version":3,"sources":["../../src/hub/index.ts","../../src/hub/composer.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/hub/marketplace.zod.ts","../../src/hub/plugin-registry.zod.ts","../../src/hub/registry-config.zod.ts","../../src/hub/space.zod.ts","../../src/hub/tenant.zod.ts","../../src/hub/license.zod.ts","../../src/hub/hub-federation.zod.ts","../../src/hub/plugin-security.zod.ts"],"sourcesContent":["// Export Hub Components\nexport * from './composer.zod';\nexport * from './marketplace.zod';\nexport * from './plugin-registry.zod';\nexport * from './registry-config.zod';\nexport * from './space.zod';\nexport * from './tenant.zod';\nexport * from './license.zod';\n\n// Export Enhanced Hub Protocols\nexport * from './hub-federation.zod';\nexport * from './plugin-security.zod';\n","import { z } from 'zod';\nimport { ManifestSchema } from '../kernel/manifest.zod';\n\n/**\n * # Cloud Composer Protocol\n * \n * Defines the interface for the ObjectStack Composer Service.\n * The Composer is responsible for \"compiling\" a Tenant's configuration (BOM)\n * into a single executable System Manifest.\n */\n\n/**\n * Dependency Requirement\n * Specifies a plugin and its version constraints.\n */\nexport const DependencyRequirementSchema = z.object({\n id: z.string().describe('Plugin ID (e.g. \"com.example.crm\")'),\n version: z.string().default('latest').describe('SemVer range or \"latest\"'),\n \n /**\n * Configuration Overrides\n * Tenant-specific settings that override plugin defaults.\n * Example: { \"currency\": \"USD\", \"apiKey\": \"...\" }\n */\n configuration: z.record(z.string(), z.any()).optional().describe('Configuration overrides'),\n \n /**\n * Feature Flags\n * Enable/Disable specific features within the plugin.\n */\n features: z.record(z.string(), z.boolean()).optional().describe('Feature toggles'),\n});\n\n/**\n * Bill of Materials (BOM)\n * The \"Shopping List\" for a specific tenant.\n * Represents the high-level intent of what the tenant wants to install.\n */\nexport const BillOfMaterialsSchema = z.object({\n tenantId: z.string().describe('Target Tenant ID'),\n \n /**\n * List of installed plugins/apps.\n * implementation order matters (later plugins override earlier ones by default).\n */\n dependencies: z.array(DependencyRequirementSchema).describe('Installed packages'),\n \n /**\n * Environment Variables injection.\n * Maps abstract keys to secure vault references or concrete values.\n */\n environment: z.record(z.string(), z.string()).optional(),\n \n /**\n * Global Resolution Strategy\n * How to handle conflicts when multiple plugins define the same resource.\n */\n resolutionStrategy: z.enum(['strict', 'override', 'merge']).default('override')\n .describe('Conflict resolution strategy (strict=fail, override=last-wins, merge=deep-merge)'),\n});\n\n/**\n * Conflict Report\n * Detailed information about collision during composition.\n */\nexport const ConflictReportSchema = z.object({\n resourceType: z.enum(['object', 'field', 'api', 'ui']).describe('Type of colliding resource'),\n resourceId: z.string().describe('ID of the resource'),\n sources: z.array(z.string()).describe('List of plugin IDs defining this resource'),\n resolution: z.string().describe('How it was resolved (e.g. \"com.example.erp won\")'),\n severity: z.enum(['info', 'warning', 'error']).describe('Severity of the conflict'),\n});\n\n/**\n * Composer Request\n * The RPC payload sent to the Composer Service.\n */\nexport const ComposerRequestSchema = z.object({\n bom: BillOfMaterialsSchema,\n \n /**\n * Target Runtime Version\n * Ensure generated manifest is compatible with the specific runtime version.\n */\n runtimeVersion: z.string().optional(),\n \n /**\n * Dry Run\n * If true, generates report but does not persist the manifest.\n */\n dryRun: z.boolean().default(false),\n});\n\n/**\n * Composer Response\n * The result of the compilation process.\n */\nexport const ComposerResponseSchema = z.object({\n success: z.boolean(),\n \n /**\n * The Holy Grail: The Executable System Manifest.\n * This is what the Runtime loads to boot.\n */\n manifest: ManifestSchema.optional().describe('The compiled System Manifest'),\n\n /**\n * Manifest URL\n * Presigned URL to download the manifest if stored externally (e.g. Vercel KV/S3).\n */\n manifestUrl: z.string().url().optional().describe('Presigned download URL'),\n \n /**\n * Compilation Metadata\n */\n buildId: z.string(),\n timestamp: z.string().datetime(),\n duration: z.number().describe('Compilation time in ms'),\n \n /**\n * Analysis\n */\n conflicts: z.array(ConflictReportSchema).optional(),\n errors: z.array(z.string()).optional(),\n});\n\nexport type BillOfMaterials = z.infer<typeof BillOfMaterialsSchema>;\nexport type ComposerRequest = z.infer<typeof ComposerRequestSchema>;\nexport type ComposerResponse = z.infer<typeof ComposerResponseSchema>;\nexport type ComposerConfig = ComposerRequest; // Alias for configuration context\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';\nimport { PluginVendorSchema } from './plugin-registry.zod';\n\n/**\n * # Marketplace Protocol\n * \n * Defines the schema for the ObjectStack Plugin Marketplace.\n * This is the catalog of available extensions sourced from NPM or private registries.\n */\n\nexport const PluginAuthorSchema = PluginVendorSchema;\n\n/**\n * Plugin Pricing Model Schema\n */\nexport const PluginPricingSchema = z.object({\n type: z.enum(['free', 'one_time', 'recurring']),\n currency: z.string().default('USD'),\n amount: z.number().min(0),\n interval: z.enum(['month', 'year']).optional().describe('Required if type is recurring'),\n trialDays: z.number().int().optional(),\n});\n\n/**\n * Plugin Version Schema\n * Specific release version details\n */\nexport const PluginVersionSchema = z.object({\n version: z.string().describe('SemVer string (e.g. 1.0.0)'),\n publishedAt: z.string().datetime().describe('Publication date'),\n downloadUrl: z.string().url().describe('Archive download URL'),\n checksum: z.string().optional().describe('Integrity checksum (shasum)'),\n engine: z.object({\n node: z.string().optional(),\n objectstack: z.string().describe('Required ObjectStack kernel version range'),\n }).optional().describe('Engine compatibility'),\n dependencies: z.record(z.string(), z.string()).optional().describe('Runtime plugin dependencies'),\n changeLog: z.string().optional().describe('Release notes'),\n});\n\n/**\n * Plugin Registry Entry Schema\n * Represents a listing in the Marketplace.\n */\nexport const MarketplacePluginSchema = z.object({\n /**\n * Package Identifier\n * Usually the NPM package name (e.g. \"@steedos/plugin-crm\")\n */\n id: z.string(),\n \n /**\n * Version History\n * Registry of all available versions\n */\n versions: z.record(z.string(), PluginVersionSchema).optional().describe('Map of versions (1.0.0) -> Details'),\n\n /**\n * Display Name\n */\n label: z.string(),\n \n /**\n * Short Description\n */\n description: z.string().optional(),\n \n /**\n * Detailed README / Documentation content\n */\n readme: z.string().optional(),\n \n /**\n * Latest Version\n */\n version: z.string(),\n \n /**\n * Vendor / Publisher\n */\n vendor: PluginVendorSchema.optional(),\n \n /**\n * Categorization\n */\n tags: z.array(z.string()).optional(),\n category: z.enum([\n 'app', \n 'integration', \n 'theme', \n 'utility', \n 'driver',\n 'analytics',\n 'security',\n 'automation',\n 'ai',\n 'data'\n ]).optional(),\n \n /**\n * Assets\n */\n icon: z.string().url().optional(),\n screenshots: z.array(z.string().url()).optional(),\n \n /**\n * Links\n */\n homepage: z.string().url().optional(),\n repository: z.string().url().optional(),\n bugs: z.string().url().optional(),\n \n /**\n * Statistics\n */\n downloads: z.number().int().optional(),\n rating: z.number().min(0).max(5).optional(),\n\n /**\n * Commercial Information\n */\n pricing: PluginPricingSchema.optional(),\n\n verified: z.boolean().default(false).describe('Is verified maintaned by ObjectStack'),\n});\n\nexport type PluginAuthor = z.infer<typeof PluginAuthorSchema>;\nexport type MarketplacePlugin = z.infer<typeof MarketplacePluginSchema>;\nexport type MarketplaceListing = MarketplacePlugin; // Alias for backwards compatibility\n","import { z } from 'zod';\nimport { PluginCapabilityManifestSchema } from '../kernel/plugin-capability.zod';\n\n/**\n * # Plugin Registry Protocol\n * \n * Defines the schema for the plugin discovery and registry system.\n * This enables plugins from different vendors to be discovered, validated,\n * and composed together in the ObjectStack ecosystem.\n */\n\n/**\n * Plugin Vendor Information\n */\nexport const PluginVendorSchema = z.object({\n /**\n * Vendor identifier (reverse domain notation)\n * Example: \"com.acme\", \"org.apache\", \"com.objectstack\"\n */\n id: z.string()\n .regex(/^[a-z][a-z0-9]*(\\.[a-z][a-z0-9]*)+$/)\n .describe('Vendor identifier (reverse domain)'),\n \n /**\n * Vendor display name\n */\n name: z.string(),\n \n /**\n * Vendor website\n */\n website: z.string().url().optional(),\n \n /**\n * Contact email\n */\n email: z.string().email().optional(),\n \n /**\n * Verification status\n */\n verified: z.boolean().default(false).describe('Whether vendor is verified by ObjectStack'),\n \n /**\n * Trust level\n */\n trustLevel: z.enum(['official', 'verified', 'community', 'unverified']).default('unverified'),\n});\n\n/**\n * Plugin Quality Metrics\n */\nexport const PluginQualityMetricsSchema = z.object({\n /**\n * Test coverage percentage\n */\n testCoverage: z.number().min(0).max(100).optional(),\n \n /**\n * Documentation score (0-100)\n */\n documentationScore: z.number().min(0).max(100).optional(),\n \n /**\n * Code quality score (0-100)\n */\n codeQuality: z.number().min(0).max(100).optional(),\n \n /**\n * Security scan status\n */\n securityScan: z.object({\n lastScanDate: z.string().datetime().optional(),\n vulnerabilities: z.object({\n critical: z.number().int().min(0).default(0),\n high: z.number().int().min(0).default(0),\n medium: z.number().int().min(0).default(0),\n low: z.number().int().min(0).default(0),\n }).optional(),\n passed: z.boolean().default(false),\n }).optional(),\n \n /**\n * Conformance test results\n */\n conformanceTests: z.array(z.object({\n protocolId: z.string().describe('Protocol being tested'),\n passed: z.boolean(),\n totalTests: z.number().int().min(0),\n passedTests: z.number().int().min(0),\n lastRunDate: z.string().datetime().optional(),\n })).optional(),\n});\n\n/**\n * Plugin Usage Statistics\n */\nexport const PluginStatisticsSchema = z.object({\n /**\n * Total downloads\n */\n downloads: z.number().int().min(0).default(0),\n \n /**\n * Downloads in the last 30 days\n */\n downloadsLastMonth: z.number().int().min(0).default(0),\n \n /**\n * Number of active installations\n */\n activeInstallations: z.number().int().min(0).default(0),\n \n /**\n * User ratings\n */\n ratings: z.object({\n average: z.number().min(0).max(5).default(0),\n count: z.number().int().min(0).default(0),\n distribution: z.object({\n '5': z.number().int().min(0).default(0),\n '4': z.number().int().min(0).default(0),\n '3': z.number().int().min(0).default(0),\n '2': z.number().int().min(0).default(0),\n '1': z.number().int().min(0).default(0),\n }).optional(),\n }).optional(),\n \n /**\n * GitHub stars (if open source)\n */\n stars: z.number().int().min(0).optional(),\n \n /**\n * Number of dependent plugins\n */\n dependents: z.number().int().min(0).default(0),\n});\n\n/**\n * Plugin Registry Entry\n * Complete metadata for a plugin in the registry.\n */\nexport const PluginRegistryEntrySchema = z.object({\n /**\n * Plugin identifier (must match manifest.id)\n */\n id: z.string()\n .regex(/^([a-z][a-z0-9]*\\.)+[a-z][a-z0-9-]+$/)\n .describe('Plugin identifier (reverse domain notation)'),\n \n /**\n * Current version\n */\n version: z.string().regex(/^\\d+\\.\\d+\\.\\d+$/),\n \n /**\n * Plugin display name\n */\n name: z.string(),\n \n /**\n * Short description\n */\n description: z.string().optional(),\n \n /**\n * Detailed documentation/README\n */\n readme: z.string().optional(),\n \n /**\n * Plugin type/category\n */\n category: z.enum([\n 'data', // Data management, storage, databases\n 'integration', // External service integrations\n 'ui', // UI components and themes\n 'analytics', // Analytics and reporting\n 'security', // Security, auth, compliance\n 'automation', // Workflows and automation\n 'ai', // AI/ML capabilities\n 'utility', // General utilities\n 'driver', // Database/storage drivers\n 'gateway', // API gateways\n 'adapter', // Runtime adapters\n ]).optional(),\n \n /**\n * Tags for categorization\n */\n tags: z.array(z.string()).optional(),\n \n /**\n * Vendor information\n */\n vendor: PluginVendorSchema,\n \n /**\n * Capability manifest (what the plugin implements/provides)\n */\n capabilities: PluginCapabilityManifestSchema.optional(),\n \n /**\n * Compatibility information\n */\n compatibility: z.object({\n /**\n * Minimum ObjectStack version required\n */\n minObjectStackVersion: z.string().optional(),\n \n /**\n * Maximum ObjectStack version supported\n */\n maxObjectStackVersion: z.string().optional(),\n \n /**\n * Node.js version requirement\n */\n nodeVersion: z.string().optional(),\n \n /**\n * Supported platforms\n */\n platforms: z.array(z.enum(['linux', 'darwin', 'win32', 'browser'])).optional(),\n }).optional(),\n \n /**\n * Links and resources\n */\n links: z.object({\n homepage: z.string().url().optional(),\n repository: z.string().url().optional(),\n documentation: z.string().url().optional(),\n bugs: z.string().url().optional(),\n changelog: z.string().url().optional(),\n }).optional(),\n \n /**\n * Media assets\n */\n media: z.object({\n icon: z.string().url().optional(),\n logo: z.string().url().optional(),\n screenshots: z.array(z.string().url()).optional(),\n video: z.string().url().optional(),\n }).optional(),\n \n /**\n * Quality metrics\n */\n quality: PluginQualityMetricsSchema.optional(),\n \n /**\n * Usage statistics\n */\n statistics: PluginStatisticsSchema.optional(),\n \n /**\n * License information\n */\n license: z.string().optional().describe('SPDX license identifier'),\n \n /**\n * Pricing (if commercial)\n */\n pricing: z.object({\n model: z.enum(['free', 'freemium', 'paid', 'enterprise']),\n price: z.number().min(0).optional(),\n currency: z.string().default('USD').optional(),\n billingPeriod: z.enum(['one-time', 'monthly', 'yearly']).optional(),\n }).optional(),\n \n /**\n * Publication dates\n */\n publishedAt: z.string().datetime().optional(),\n updatedAt: z.string().datetime().optional(),\n \n /**\n * Deprecation status\n */\n deprecated: z.boolean().default(false),\n deprecationMessage: z.string().optional(),\n replacedBy: z.string().optional().describe('Plugin ID that replaces this one'),\n \n /**\n * Feature flags\n */\n flags: z.object({\n experimental: z.boolean().default(false),\n beta: z.boolean().default(false),\n featured: z.boolean().default(false),\n verified: z.boolean().default(false),\n }).optional(),\n});\n\n/**\n * Plugin Search Filters\n */\nexport const PluginSearchFiltersSchema = z.object({\n /**\n * Search query\n */\n query: z.string().optional(),\n \n /**\n * Filter by category\n */\n category: z.array(z.string()).optional(),\n \n /**\n * Filter by tags\n */\n tags: z.array(z.string()).optional(),\n \n /**\n * Filter by vendor trust level\n */\n trustLevel: z.array(z.enum(['official', 'verified', 'community', 'unverified'])).optional(),\n \n /**\n * Filter by protocols implemented\n */\n implementsProtocols: z.array(z.string()).optional(),\n \n /**\n * Filter by pricing model\n */\n pricingModel: z.array(z.enum(['free', 'freemium', 'paid', 'enterprise'])).optional(),\n \n /**\n * Minimum rating\n */\n minRating: z.number().min(0).max(5).optional(),\n \n /**\n * Sort options\n */\n sortBy: z.enum([\n 'relevance',\n 'downloads',\n 'rating',\n 'updated',\n 'name',\n ]).optional(),\n \n /**\n * Sort order\n */\n sortOrder: z.enum(['asc', 'desc']).default('desc').optional(),\n \n /**\n * Pagination\n */\n page: z.number().int().min(1).default(1).optional(),\n limit: z.number().int().min(1).max(100).default(20).optional(),\n});\n\n/**\n * Plugin Installation Configuration\n */\nexport const PluginInstallConfigSchema = z.object({\n /**\n * Plugin identifier to install\n */\n pluginId: z.string(),\n \n /**\n * Version to install (supports semver ranges)\n */\n version: z.string().optional().describe('Defaults to latest'),\n \n /**\n * Plugin-specific configuration values\n */\n config: z.record(z.string(), z.any()).optional(),\n \n /**\n * Whether to auto-update\n */\n autoUpdate: z.boolean().default(false).optional(),\n \n /**\n * Installation options\n */\n options: z.object({\n /**\n * Skip dependency installation\n */\n skipDependencies: z.boolean().default(false).optional(),\n \n /**\n * Force reinstall\n */\n force: z.boolean().default(false).optional(),\n \n /**\n * Installation target\n */\n target: z.enum(['system', 'space', 'user']).default('space').optional(),\n }).optional(),\n});\n\n// Export types\nexport type PluginVendor = z.infer<typeof PluginVendorSchema>;\nexport type PluginQualityMetrics = z.infer<typeof PluginQualityMetricsSchema>;\nexport type PluginStatistics = z.infer<typeof PluginStatisticsSchema>;\nexport type PluginRegistryEntry = z.infer<typeof PluginRegistryEntrySchema>;\nexport type PluginSearchFilters = z.infer<typeof PluginSearchFiltersSchema>;\nexport type PluginInstallConfig = z.infer<typeof PluginInstallConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * # Registry Configuration Protocol\n * \n * Defines the configuration for the ObjectStack Registry Service.\n * Includes federation, synchronization, and storage settings.\n */\n\n/**\n * Registry Sync Policy\n * Defines how registries synchronize with upstreams\n */\nexport const RegistrySyncPolicySchema = z.enum([\n 'manual', // Manual synchronization only\n 'auto', // Automatic synchronization\n 'proxy', // Proxy requests to upstream without caching\n]).describe('Registry synchronization strategy');\n\n/**\n * Registry Upstream Configuration\n * Configuration for upstream registry connection\n */\nexport const RegistryUpstreamSchema = z.object({\n /**\n * Upstream registry URL\n */\n url: z.string().url()\n .describe('Upstream registry endpoint'),\n \n /**\n * Synchronization policy\n */\n syncPolicy: RegistrySyncPolicySchema.default('auto'),\n \n /**\n * Sync interval in seconds (for auto sync)\n */\n syncInterval: z.number().int().min(60).optional()\n .describe('Auto-sync interval in seconds'),\n \n /**\n * Authentication credentials\n */\n auth: z.object({\n type: z.enum(['none', 'basic', 'bearer', 'api-key', 'oauth2']).default('none'),\n username: z.string().optional(),\n password: z.string().optional(),\n token: z.string().optional(),\n apiKey: z.string().optional(),\n }).optional(),\n \n /**\n * TLS/SSL configuration\n */\n tls: z.object({\n enabled: z.boolean().default(true),\n verifyCertificate: z.boolean().default(true),\n certificate: z.string().optional(),\n privateKey: z.string().optional(),\n }).optional(),\n \n /**\n * Timeout settings\n */\n timeout: z.number().int().min(1000).default(30000)\n .describe('Request timeout in milliseconds'),\n \n /**\n * Retry configuration\n */\n retry: z.object({\n maxAttempts: z.number().int().min(0).default(3),\n backoff: z.enum(['fixed', 'linear', 'exponential']).default('exponential'),\n }).optional(),\n});\n\n/**\n * Registry Configuration\n * Complete registry configuration supporting federation\n */\nexport const RegistryConfigSchema = z.object({\n /**\n * Registry type\n */\n type: z.enum([\n 'public', // Public marketplace (e.g., plugins.objectstack.com)\n 'private', // Private enterprise registry\n 'hybrid', // Hybrid with upstream federation\n ]).describe('Registry deployment type'),\n \n /**\n * Upstream registries (for hybrid/private registries)\n */\n upstream: z.array(RegistryUpstreamSchema).optional()\n .describe('Upstream registries to sync from or proxy to'),\n \n /**\n * Scopes managed by this registry\n */\n scope: z.array(z.string()).optional()\n .describe('npm-style scopes managed by this registry (e.g., @my-corp, @enterprise)'),\n \n /**\n * Default scope for new plugins\n */\n defaultScope: z.string().optional()\n .describe('Default scope prefix for new plugins'),\n \n /**\n * Registry storage configuration\n */\n storage: z.object({\n /**\n * Storage backend type\n */\n backend: z.enum(['local', 's3', 'gcs', 'azure-blob', 'oss']).default('local'),\n \n /**\n * Storage path or bucket name\n */\n path: z.string().optional(),\n \n /**\n * Credentials\n */\n credentials: z.record(z.string(), z.any()).optional(),\n }).optional(),\n \n /**\n * Registry visibility\n */\n visibility: z.enum(['public', 'private', 'internal']).default('private')\n .describe('Who can access this registry'),\n \n /**\n * Access control\n */\n accessControl: z.object({\n /**\n * Require authentication for read\n */\n requireAuthForRead: z.boolean().default(false),\n \n /**\n * Require authentication for write\n */\n requireAuthForWrite: z.boolean().default(true),\n \n /**\n * Allowed users/teams\n */\n allowedPrincipals: z.array(z.string()).optional(),\n }).optional(),\n \n /**\n * Caching configuration\n */\n cache: z.object({\n enabled: z.boolean().default(true),\n ttl: z.number().int().min(0).default(3600)\n .describe('Cache TTL in seconds'),\n maxSize: z.number().int().optional()\n .describe('Maximum cache size in bytes'),\n }).optional(),\n \n /**\n * Mirroring configuration (for high availability)\n */\n mirrors: z.array(z.object({\n url: z.string().url(),\n priority: z.number().int().min(1).default(1),\n })).optional()\n .describe('Mirror registries for redundancy'),\n});\n\nexport type RegistrySyncPolicy = z.infer<typeof RegistrySyncPolicySchema>;\nexport type RegistryUpstream = z.infer<typeof RegistryUpstreamSchema>;\nexport type RegistryConfig = z.infer<typeof RegistryConfigSchema>;\n","import { z } from 'zod';\nimport { BillOfMaterialsSchema } from './composer.zod';\nimport { TenantIsolationLevel, TenantQuotaSchema } from './tenant.zod';\n\n/**\n * # Space Protocol\n * \n * Defines the SaaS-side representation of a Space (formerly Project).\n * A Space is a logical container for business apps, data, and logic.\n * Corresponds to an entry in the Hub's database.\n */\n\n/**\n * Subscription Status Enum\n */\nexport const SubscriptionStatus = z.enum([\n 'active',\n 'past_due',\n 'canceled',\n 'trialing',\n 'incomplete'\n]);\n\n/**\n * Space Subscription Info\n */\nexport const SpaceSubscriptionSchema = z.object({\n planId: z.string().describe('Reference to Plan Code'),\n status: SubscriptionStatus,\n currentPeriodEnd: z.string().datetime().optional(),\n stripeCustomerId: z.string().optional(),\n stripeSubscriptionId: z.string().optional(),\n \n /**\n * Purchased Add-ons from Marketplace\n */\n addons: z.array(z.object({\n pluginId: z.string().describe('Marketplace Plugin ID (NPM package name)'),\n quantity: z.number().default(1),\n status: SubscriptionStatus.default('active'),\n })).optional(),\n\n /**\n * Quota Usage Snapshot\n * Cached usage metrics for quick display/validation.\n */\n usage: z.record(z.string(), z.number()).optional(),\n});\n\n/**\n * Deployment Target\n * Vercel or Container configuration.\n */\nexport const DeploymentTargetSchema = z.object({\n provider: z.enum(['vercel', 'docker', 'kubernetes']),\n region: z.string().optional(),\n url: z.string().url().optional().describe('Public Access URL'),\n env: z.record(z.string(), z.string()).optional().describe('Runtime Environment Variables'),\n});\n\n/**\n * Hub Space Schema\n */\nexport const HubSpaceSchema = z.object({\n id: z.string().uuid(),\n \n /**\n * Display Name\n */\n name: z.string(),\n slug: z.string().describe('URL friendly identifier'),\n \n /**\n * Owner (User or Org ID in Hub)\n */\n ownerId: z.string(),\n\n /**\n * The Runtime Instance Definition\n * Defines the technical execution environment.\n */\n runtime: z.object({\n isolation: TenantIsolationLevel.describe('Data isolation strategy'),\n quotas: TenantQuotaSchema.optional().describe('Resource quotas'),\n }).optional().describe('Runtime instance configuration'),\n \n /**\n * The Desired State (Bill of Materials)\n * This is what the user configures in the UI.\n */\n bom: BillOfMaterialsSchema,\n \n /**\n * The Current Actual State (Last Successful Build)\n */\n lastBuild: z.object({\n id: z.string(),\n timestamp: z.string().datetime(),\n manifestUrl: z.string().url().optional(),\n status: z.enum(['pending', 'success', 'failed']),\n }).optional(),\n \n /**\n * Commercial / Billing Info\n */\n subscription: SpaceSubscriptionSchema.optional(),\n \n /**\n * Infrastructure Settings\n */\n deployment: DeploymentTargetSchema.optional(),\n \n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport type SubscriptionStatus = z.infer<typeof SubscriptionStatus>;\nexport type SpaceSubscription = z.infer<typeof SpaceSubscriptionSchema>;\nexport type DeploymentTarget = z.infer<typeof DeploymentTargetSchema>;\nexport type HubSpace = z.infer<typeof HubSpaceSchema>;\nexport type Space = HubSpace; // Alias for backwards compatibility\n","import { z } from 'zod';\n\n/**\n * Tenant Schema (Multi-Tenant Architecture)\n * \n * Defines the tenant/tenancy model for ObjectStack SaaS deployments.\n * Supports different levels of data isolation to meet varying security,\n * performance, and compliance requirements.\n * \n * Isolation Levels:\n * - shared_schema: All tenants share the same database and schema (row-level isolation)\n * - isolated_schema: Tenants have separate schemas within a shared database\n * - isolated_db: Each tenant has a completely separate database\n */\n\n/**\n * Tenant Isolation Level Enum\n * Defines how tenant data is separated in the system\n */\nexport const TenantIsolationLevel = z.enum([\n 'shared_schema', // Shared DB, shared schema, row-level isolation (most economical)\n 'isolated_schema', // Shared DB, separate schema per tenant (balanced)\n 'isolated_db', // Separate database per tenant (maximum isolation)\n]);\n\nexport type TenantIsolationLevel = z.infer<typeof TenantIsolationLevel>;\n\n/**\n * Tenant Quota Schema\n * Defines resource limits and usage quotas for a tenant\n */\nexport const TenantQuotaSchema = z.object({\n /**\n * Maximum number of users allowed for this tenant\n */\n maxUsers: z.number().int().positive().optional().describe('Maximum number of users'),\n \n /**\n * Maximum storage space in bytes\n */\n maxStorage: z.number().int().positive().optional().describe('Maximum storage in bytes'),\n \n /**\n * API rate limit (requests per minute)\n */\n apiRateLimit: z.number().int().positive().optional().describe('API requests per minute'),\n});\n\nexport type TenantQuota = z.infer<typeof TenantQuotaSchema>;\n\n/**\n * Tenant Schema\n * \n * @deprecated This schema is maintained for backward compatibility only.\n * New implementations should use HubSpaceSchema which embeds tenant concepts.\n * \n * **Migration Guide:**\n * ```typescript\n * // Old approach (deprecated):\n * const tenant: Tenant = {\n * id: 'tenant_123',\n * name: 'My Tenant',\n * isolationLevel: 'shared_schema',\n * quotas: { maxUsers: 100 }\n * };\n * \n * // New approach (recommended):\n * const space: HubSpace = {\n * id: '...uuid...',\n * name: 'My Tenant',\n * slug: 'my-tenant',\n * ownerId: 'user_id',\n * runtime: {\n * isolation: 'shared_schema',\n * quotas: { maxUsers: 100 }\n * },\n * bom: { ... }\n * };\n * ```\n * \n * See HubSpaceSchema in space.zod.ts for the recommended approach.\n */\nexport const TenantSchema = z.object({\n /**\n * Unique tenant identifier\n */\n id: z.string().describe('Unique tenant identifier'),\n \n /**\n * Tenant display name\n */\n name: z.string().describe('Tenant display name'),\n \n /**\n * Data isolation level\n */\n isolationLevel: TenantIsolationLevel,\n \n /**\n * Custom configuration values\n */\n customizations: z.record(z.string(), z.any()).optional().describe('Custom configuration values'),\n \n /**\n * Resource quotas\n */\n quotas: TenantQuotaSchema.optional(),\n});\n\nexport type Tenant = z.infer<typeof TenantSchema>;\n\n/**\n * Tenant Isolation Strategy Documentation\n * \n * Comprehensive documentation of three isolation strategies for multi-tenant systems.\n * Each strategy has different trade-offs in terms of security, cost, complexity, and compliance.\n */\n\n/**\n * Row-Level Isolation Strategy (shared_schema)\n * \n * Recommended for: Most SaaS applications, cost-sensitive deployments\n * \n * IMPLEMENTATION:\n * - All tenants share the same database and schema\n * - Each table includes a tenant_id column\n * - PostgreSQL Row-Level Security (RLS) enforces isolation\n * - Queries automatically filter by tenant_id via RLS policies\n * \n * ADVANTAGES:\n * ✅ Simple backup and restore (single database)\n * ✅ Cost-effective (shared resources, minimal overhead)\n * ✅ Easy tenant migration (update tenant_id)\n * ✅ Efficient resource utilization (connection pooling)\n * ✅ Simple schema migrations (single schema to update)\n * ✅ Lower operational complexity\n * \n * DISADVANTAGES:\n * ❌ RLS misconfiguration can lead to data leakage\n * ❌ Performance impact from RLS policy evaluation\n * ❌ Noisy neighbor problem (one tenant can affect others)\n * ❌ Cannot easily isolate tenant to different hardware\n * ❌ Compliance challenges for regulated industries\n * \n * SECURITY CONSIDERATIONS:\n * - Requires careful RLS policy configuration\n * - Must validate tenant_id in all queries\n * - Need comprehensive testing of RLS policies\n * - Audit all database access patterns\n * - Implement application-level validation as defense-in-depth\n * \n * EXAMPLE RLS POLICY (PostgreSQL):\n * ```sql\n * -- Example: Apply RLS policy to a table (e.g., \"app_data\")\n * CREATE POLICY tenant_isolation ON app_data\n * USING (tenant_id = current_setting('app.current_tenant')::text);\n * \n * ALTER TABLE app_data ENABLE ROW LEVEL SECURITY;\n * ```\n */\nexport const RowLevelIsolationStrategySchema = z.object({\n strategy: z.literal('shared_schema').describe('Row-level isolation strategy'),\n \n /**\n * Database configuration for row-level isolation\n */\n database: z.object({\n /**\n * Whether to enable Row-Level Security (RLS)\n */\n enableRLS: z.boolean().default(true).describe('Enable PostgreSQL Row-Level Security'),\n \n /**\n * Tenant context setting method\n */\n contextMethod: z.enum([\n 'session_variable', // SET app.current_tenant = 'tenant_123'\n 'search_path', // SET search_path = tenant_123, public\n 'application_name', // SET application_name = 'tenant_123'\n ]).default('session_variable').describe('How to set tenant context'),\n \n /**\n * Session variable name for tenant context\n */\n contextVariable: z.string().default('app.current_tenant').describe('Session variable name'),\n \n /**\n * Whether to validate tenant_id at application level\n */\n applicationValidation: z.boolean().default(true).describe('Application-level tenant validation'),\n }).optional().describe('Database configuration'),\n \n /**\n * Performance optimization settings\n */\n performance: z.object({\n /**\n * Whether to use partial indexes for tenant_id\n */\n usePartialIndexes: z.boolean().default(true).describe('Use partial indexes per tenant'),\n \n /**\n * Whether to use table partitioning\n */\n usePartitioning: z.boolean().default(false).describe('Use table partitioning by tenant_id'),\n \n /**\n * Connection pool size per tenant\n */\n poolSizePerTenant: z.number().int().positive().optional().describe('Connection pool size per tenant'),\n }).optional().describe('Performance settings'),\n});\n\nexport type RowLevelIsolationStrategy = z.infer<typeof RowLevelIsolationStrategySchema>;\n\n/**\n * Schema-Level Isolation Strategy (isolated_schema)\n * \n * Recommended for: Enterprise SaaS, B2B platforms with compliance needs\n * \n * IMPLEMENTATION:\n * - All tenants share the same database server\n * - Each tenant has a separate database schema\n * - Schema name typically: tenant_<tenant_id>\n * - Application switches schema using SET search_path\n * \n * ADVANTAGES:\n * ✅ Better isolation than row-level (schema boundaries)\n * ✅ Easier to debug (separate schemas)\n * ✅ Can grant different database permissions per schema\n * ✅ Reduced risk of data leakage\n * ✅ Performance isolation (indexes, statistics per schema)\n * ✅ Simplified queries (no tenant_id filtering needed)\n * \n * DISADVANTAGES:\n * ❌ More complex backups (must backup all schemas)\n * ❌ Higher migration costs (schema changes across all tenants)\n * ❌ Schema proliferation (PostgreSQL has limits)\n * ❌ Connection overhead (switching schemas)\n * ❌ More complex monitoring and maintenance\n * \n * SECURITY CONSIDERATIONS:\n * - Ensure proper schema permissions (GRANT USAGE ON SCHEMA)\n * - Validate schema name to prevent SQL injection\n * - Implement connection-level schema switching\n * - Audit schema access patterns\n * - Prevent cross-schema queries in application\n * \n * EXAMPLE IMPLEMENTATION (PostgreSQL):\n * ```sql\n * -- Create tenant schema\n * CREATE SCHEMA tenant_123;\n * \n * -- Grant access\n * GRANT USAGE ON SCHEMA tenant_123 TO app_user;\n * \n * -- Switch to tenant schema\n * SET search_path TO tenant_123, public;\n * ```\n */\nexport const SchemaLevelIsolationStrategySchema = z.object({\n strategy: z.literal('isolated_schema').describe('Schema-level isolation strategy'),\n \n /**\n * Schema configuration\n */\n schema: z.object({\n /**\n * Schema naming pattern\n * Use {tenant_id} as placeholder (must contain only alphanumeric and underscores)\n * The tenant_id will be sanitized before substitution to prevent SQL injection\n */\n namingPattern: z.string().default('tenant_{tenant_id}').describe('Schema naming pattern'),\n \n /**\n * Whether to include public schema in search_path\n */\n includePublicSchema: z.boolean().default(true).describe('Include public schema'),\n \n /**\n * Default schema for shared resources\n */\n sharedSchema: z.string().default('public').describe('Schema for shared resources'),\n \n /**\n * Whether to automatically create schema on tenant creation\n */\n autoCreateSchema: z.boolean().default(true).describe('Auto-create schema'),\n }).optional().describe('Schema configuration'),\n \n /**\n * Migration configuration\n */\n migrations: z.object({\n /**\n * Migration strategy\n */\n strategy: z.enum([\n 'parallel', // Run migrations on all schemas in parallel\n 'sequential', // Run migrations one schema at a time\n 'on_demand', // Run migrations when tenant accesses system\n ]).default('parallel').describe('Migration strategy'),\n \n /**\n * Maximum concurrent migrations\n */\n maxConcurrent: z.number().int().positive().default(10).describe('Max concurrent migrations'),\n \n /**\n * Whether to rollback on first failure\n */\n rollbackOnError: z.boolean().default(true).describe('Rollback on error'),\n }).optional().describe('Migration configuration'),\n \n /**\n * Performance optimization settings\n */\n performance: z.object({\n /**\n * Whether to use connection pooling per schema\n */\n poolPerSchema: z.boolean().default(false).describe('Separate pool per schema'),\n \n /**\n * Schema cache TTL in seconds\n */\n schemaCacheTTL: z.number().int().positive().default(3600).describe('Schema cache TTL'),\n }).optional().describe('Performance settings'),\n});\n\nexport type SchemaLevelIsolationStrategy = z.infer<typeof SchemaLevelIsolationStrategySchema>;\n\n/**\n * Database-Level Isolation Strategy (isolated_db)\n * \n * Recommended for: Regulated industries (healthcare, finance), strict compliance requirements\n * \n * IMPLEMENTATION:\n * - Each tenant has a completely separate database\n * - Database name typically: tenant_<tenant_id>\n * - Requires separate connection pool per tenant\n * - Complete physical and logical isolation\n * \n * ADVANTAGES:\n * ✅ Perfect data isolation (strongest security)\n * ✅ Meets strict regulatory requirements (HIPAA, SOX, PCI-DSS)\n * ✅ Complete performance isolation (no noisy neighbors)\n * ✅ Can place databases on different hardware\n * ✅ Easy to backup/restore individual tenant\n * ✅ Simplified compliance auditing per tenant\n * ✅ Can apply different encryption keys per database\n * \n * DISADVANTAGES:\n * ❌ Most expensive option (resource overhead)\n * ❌ Complex database server management (many databases)\n * ❌ Connection pool limits (max connections per server)\n * ❌ Difficult cross-tenant analytics\n * ❌ Higher operational complexity\n * ❌ Schema migrations take longer (many databases)\n * \n * SECURITY CONSIDERATIONS:\n * - Each database can have separate credentials\n * - Enables per-tenant encryption at rest\n * - Simplifies compliance and audit trails\n * - Prevents any cross-tenant data access\n * - Supports tenant-specific backup schedules\n * \n * EXAMPLE IMPLEMENTATION (PostgreSQL):\n * ```sql\n * -- Create tenant database\n * CREATE DATABASE tenant_123\n * WITH OWNER = tenant_123_user\n * ENCODING = 'UTF8'\n * LC_COLLATE = 'en_US.UTF-8'\n * LC_CTYPE = 'en_US.UTF-8';\n * \n * -- Connect to tenant database\n * \\c tenant_123\n * ```\n */\nexport const DatabaseLevelIsolationStrategySchema = z.object({\n strategy: z.literal('isolated_db').describe('Database-level isolation strategy'),\n \n /**\n * Database configuration\n */\n database: z.object({\n /**\n * Database naming pattern\n * Use {tenant_id} as placeholder (must contain only alphanumeric and underscores)\n * The tenant_id will be sanitized before substitution to prevent SQL injection\n */\n namingPattern: z.string().default('tenant_{tenant_id}').describe('Database naming pattern'),\n \n /**\n * Database server/cluster assignment strategy\n */\n serverStrategy: z.enum([\n 'shared', // All tenant databases on same server\n 'sharded', // Tenant databases distributed across servers\n 'dedicated', // Each tenant gets dedicated server (enterprise)\n ]).default('shared').describe('Server assignment strategy'),\n \n /**\n * Whether to use separate credentials per tenant\n */\n separateCredentials: z.boolean().default(true).describe('Separate credentials per tenant'),\n \n /**\n * Whether to automatically create database on tenant creation\n */\n autoCreateDatabase: z.boolean().default(true).describe('Auto-create database'),\n }).optional().describe('Database configuration'),\n \n /**\n * Connection pooling configuration\n */\n connectionPool: z.object({\n /**\n * Pool size per tenant database\n */\n poolSize: z.number().int().positive().default(10).describe('Connection pool size'),\n \n /**\n * Maximum number of tenant pools to keep active\n */\n maxActivePools: z.number().int().positive().default(100).describe('Max active pools'),\n \n /**\n * Idle pool timeout in seconds\n */\n idleTimeout: z.number().int().positive().default(300).describe('Idle pool timeout'),\n \n /**\n * Whether to use connection pooler (PgBouncer, etc.)\n */\n usePooler: z.boolean().default(true).describe('Use connection pooler'),\n }).optional().describe('Connection pool configuration'),\n \n /**\n * Backup and restore configuration\n */\n backup: z.object({\n /**\n * Backup strategy per tenant\n */\n strategy: z.enum([\n 'individual', // Separate backup per tenant\n 'consolidated', // Combined backup with all tenants\n 'on_demand', // Backup only when requested\n ]).default('individual').describe('Backup strategy'),\n \n /**\n * Backup frequency in hours\n */\n frequencyHours: z.number().int().positive().default(24).describe('Backup frequency'),\n \n /**\n * Retention period in days\n */\n retentionDays: z.number().int().positive().default(30).describe('Backup retention days'),\n }).optional().describe('Backup configuration'),\n \n /**\n * Encryption configuration\n */\n encryption: z.object({\n /**\n * Whether to use per-tenant encryption keys\n */\n perTenantKeys: z.boolean().default(false).describe('Per-tenant encryption keys'),\n \n /**\n * Encryption algorithm\n */\n algorithm: z.string().default('AES-256-GCM').describe('Encryption algorithm'),\n \n /**\n * Key management service\n */\n keyManagement: z.enum(['aws_kms', 'azure_key_vault', 'gcp_kms', 'hashicorp_vault', 'custom']).optional().describe('Key management service'),\n }).optional().describe('Encryption configuration'),\n});\n\nexport type DatabaseLevelIsolationStrategy = z.infer<typeof DatabaseLevelIsolationStrategySchema>;\n\n/**\n * Tenant Isolation Configuration Schema\n * \n * Complete configuration for tenant isolation strategy.\n * Supports all three isolation levels with detailed configuration options.\n */\nexport const TenantIsolationConfigSchema = z.discriminatedUnion('strategy', [\n RowLevelIsolationStrategySchema,\n SchemaLevelIsolationStrategySchema,\n DatabaseLevelIsolationStrategySchema,\n]);\n\nexport type TenantIsolationConfig = z.infer<typeof TenantIsolationConfigSchema>;\n\n/**\n * Tenant Security Policy Schema\n * Defines security policies and compliance requirements for tenants\n */\nexport const TenantSecurityPolicySchema = z.object({\n /**\n * Encryption requirements\n */\n encryption: z.object({\n /**\n * Require encryption at rest\n */\n atRest: z.boolean().default(true).describe('Require encryption at rest'),\n \n /**\n * Require encryption in transit\n */\n inTransit: z.boolean().default(true).describe('Require encryption in transit'),\n \n /**\n * Require field-level encryption for sensitive data\n */\n fieldLevel: z.boolean().default(false).describe('Require field-level encryption'),\n }).optional().describe('Encryption requirements'),\n \n /**\n * Access control requirements\n */\n accessControl: z.object({\n /**\n * Require multi-factor authentication\n */\n requireMFA: z.boolean().default(false).describe('Require MFA'),\n \n /**\n * Require SSO/SAML authentication\n */\n requireSSO: z.boolean().default(false).describe('Require SSO'),\n \n /**\n * IP whitelist\n */\n ipWhitelist: z.array(z.string()).optional().describe('Allowed IP addresses'),\n \n /**\n * Session timeout in seconds\n */\n sessionTimeout: z.number().int().positive().default(3600).describe('Session timeout'),\n }).optional().describe('Access control requirements'),\n \n /**\n * Audit and compliance requirements\n */\n compliance: z.object({\n /**\n * Compliance standards to enforce\n */\n standards: z.array(z.enum([\n 'sox',\n 'hipaa',\n 'gdpr',\n 'pci_dss',\n 'iso_27001',\n 'fedramp',\n ])).optional().describe('Compliance standards'),\n \n /**\n * Require audit logging for all operations\n */\n requireAuditLog: z.boolean().default(true).describe('Require audit logging'),\n \n /**\n * Audit log retention period in days\n */\n auditRetentionDays: z.number().int().positive().default(365).describe('Audit retention days'),\n \n /**\n * Data residency requirements\n */\n dataResidency: z.object({\n /**\n * Required geographic region\n */\n region: z.string().optional().describe('Required region (e.g., US, EU, APAC)'),\n \n /**\n * Prohibited regions\n */\n excludeRegions: z.array(z.string()).optional().describe('Prohibited regions'),\n }).optional().describe('Data residency requirements'),\n }).optional().describe('Compliance requirements'),\n});\n\nexport type TenantSecurityPolicy = z.infer<typeof TenantSecurityPolicySchema>;\n","import { z } from 'zod';\n\n/**\n * Metric Type Classification\n */\nexport const MetricType = z.enum([\n 'boolean', // Feature Flag (Enabled/Disabled)\n 'counter', // Usage Count (e.g. API Calls, Records Created) - Accumulates\n 'gauge', // Current Level (e.g. Storage Used, Users Active) - Point in time\n]);\n\n/**\n * Feature/Limit Definition Schema\n * Defines a controllable capability of the system.\n */\nexport const FeatureSchema = z.object({\n code: z.string().regex(/^[a-z_][a-z0-9_.]*$/).describe('Feature code (e.g. core.api_access)'),\n label: z.string(),\n description: z.string().optional(),\n \n type: MetricType.default('boolean'),\n \n /** For counters/gauges */\n unit: z.enum(['count', 'bytes', 'seconds', 'percent']).optional(),\n \n /** Dependencies (e.g. 'audit_log' requires 'enterprise_tier') */\n requires: z.array(z.string()).optional(),\n});\n\n/**\n * Subscription Plan Schema\n * Defines a tier of service (e.g. \"Free\", \"Pro\", \"Enterprise\").\n */\nexport const PlanSchema = z.object({\n code: z.string().describe('Plan code (e.g. pro_v1)'),\n label: z.string(),\n active: z.boolean().default(true),\n \n /** Feature Entitlements */\n features: z.array(z.string()).describe('List of enabled boolean features'),\n \n /** Limit Quotas */\n limits: z.record(z.string(), z.number()).describe('Map of metric codes to limit values (e.g. { storage_gb: 10 })'),\n \n /** Pricing (Optional Metadata) */\n currency: z.string().default('USD').optional(),\n priceMonthly: z.number().optional(),\n priceYearly: z.number().optional(),\n});\n\n/**\n * License Schema\n * The actual entitlement object assigned to a Space.\n * Often signed as a JWT.\n */\nexport const LicenseSchema = z.object({\n /** Identity */\n spaceId: z.string().describe('Target Space ID'),\n planCode: z.string(),\n \n /** Validity */\n issuedAt: z.string().datetime(),\n expiresAt: z.string().datetime().optional(), // Null = Perpetual\n \n /** Status */\n status: z.enum(['active', 'expired', 'suspended', 'trial']),\n \n /** Overrides (Specific to this space, exceeding the plan) */\n customFeatures: z.array(z.string()).optional(),\n customLimits: z.record(z.string(), z.number()).optional(),\n \n /** Authorized Add-ons */\n plugins: z.array(z.string()).optional().describe('List of enabled plugin package IDs'),\n\n /** Signature */\n signature: z.string().optional().describe('Cryptographic signature of the license'),\n});\n\nexport type Feature = z.infer<typeof FeatureSchema>;\nexport type Plan = z.infer<typeof PlanSchema>;\nexport type License = z.infer<typeof LicenseSchema>;\n","import { z } from 'zod';\n\n/**\n * # Hub Federation Protocol\n * \n * Enables distributed ObjectStack Hub deployments across multiple regions,\n * data centers, or cloud providers. Supports:\n * - Multi-region plugin distribution\n * - Federated identity and tenant management\n * - Cross-region data replication\n * - Global load balancing\n * - Disaster recovery\n * \n * Use cases:\n * - Global SaaS deployments with regional data residency\n * - Multi-cloud resilience\n * - Edge computing with central management\n * - Hybrid cloud deployments\n */\n\n// ============================================================================\n// Region & Deployment Topology\n// ============================================================================\n\n/**\n * Geographic Region\n */\nexport const RegionSchema = z.object({\n /**\n * Region identifier (e.g., us-east-1, eu-west-1, ap-southeast-1)\n */\n id: z.string().regex(/^[a-z]{2}-[a-z]+-\\d+$/).describe('Region identifier'),\n \n /**\n * Display name\n */\n name: z.string().describe('Human-readable region name'),\n \n /**\n * Geographic location\n */\n location: z.object({\n continent: z.enum(['NA', 'SA', 'EU', 'AF', 'AS', 'OC', 'AN']),\n country: z.string().regex(/^[A-Z]{2}$/).describe('ISO 3166-1 alpha-2 country code'),\n city: z.string().optional(),\n latitude: z.number().min(-90).max(90).optional(),\n longitude: z.number().min(-180).max(180).optional(),\n }),\n \n /**\n * Cloud provider and region mapping\n */\n provider: z.object({\n name: z.enum(['aws', 'azure', 'gcp', 'cloudflare', 'vercel', 'self-hosted']),\n region: z.string().describe('Provider-specific region identifier'),\n }).optional(),\n \n /**\n * Region capabilities\n */\n capabilities: z.object({\n databases: z.array(z.enum(['postgres', 'mysql', 'mongodb', 'redis'])).default([]),\n storage: z.array(z.enum(['s3', 'azure-blob', 'gcs'])).default([]),\n compute: z.array(z.enum(['containers', 'serverless', 'vm'])).default([]),\n cdn: z.boolean().default(false),\n }).optional(),\n \n /**\n * Compliance and certifications\n */\n compliance: z.array(z.enum(['gdpr', 'hipaa', 'soc2', 'iso27001', 'pci-dss'])).default([]),\n \n /**\n * Region status\n */\n status: z.enum(['active', 'read-only', 'maintenance', 'deprecated']).default('active'),\n \n /**\n * Resource limits for this region\n */\n limits: z.object({\n maxSpaces: z.number().int().positive().optional(),\n maxTenants: z.number().int().positive().optional(),\n maxStorage: z.number().int().positive().optional().describe('Bytes'),\n }).optional(),\n});\n\nexport type Region = z.infer<typeof RegionSchema>;\n\n/**\n * Hub Instance\n * Represents a single Hub deployment in a region\n */\nexport const HubInstanceSchema = z.object({\n /**\n * Instance identifier\n */\n id: z.string().uuid(),\n \n /**\n * Region where this hub is deployed\n */\n regionId: z.string(),\n \n /**\n * Hub role in federation\n */\n role: z.enum([\n 'primary', // Primary/master hub\n 'secondary', // Read-replica hub\n 'edge', // Edge location for caching\n ]),\n \n /**\n * Endpoint URLs\n */\n endpoints: z.object({\n api: z.string().url().describe('Public API endpoint'),\n admin: z.string().url().optional().describe('Admin console'),\n grpc: z.string().optional().describe('gRPC endpoint for inter-hub communication'),\n }),\n \n /**\n * Replication configuration\n */\n replication: z.object({\n /**\n * Source hub for replication (if this is a secondary)\n */\n primaryHubId: z.string().uuid().optional(),\n \n /**\n * Replication lag tolerance in seconds\n */\n lagTolerance: z.number().int().positive().default(5),\n \n /**\n * Replication mode\n */\n mode: z.enum(['sync', 'async', 'semi-sync']).default('async'),\n }).optional(),\n \n /**\n * Health status\n */\n health: z.object({\n status: z.enum(['healthy', 'degraded', 'unhealthy']),\n lastCheck: z.string().datetime(),\n uptime: z.number().describe('Seconds'),\n }).optional(),\n \n /**\n * Version\n */\n version: z.string(),\n \n /**\n * Metadata\n */\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport type HubInstance = z.infer<typeof HubInstanceSchema>;\n\n// ============================================================================\n// Federation Topology\n// ============================================================================\n\n/**\n * Federation Topology\n * Defines the global hub network architecture\n */\nexport const FederationTopologySchema = z.object({\n /**\n * Federation identifier\n */\n id: z.string().uuid(),\n \n /**\n * Federation name\n */\n name: z.string(),\n \n /**\n * Regions in this federation\n */\n regions: z.array(RegionSchema),\n \n /**\n * Hub instances\n */\n hubs: z.array(HubInstanceSchema),\n \n /**\n * Routing strategy\n */\n routing: z.object({\n /**\n * How to route tenant requests\n */\n strategy: z.enum([\n 'geo-proximity', // Route to nearest region\n 'data-residency', // Route based on tenant data location\n 'least-loaded', // Route to least busy hub\n 'custom', // Custom routing logic\n ]).default('geo-proximity'),\n \n /**\n * Failover behavior\n */\n failover: z.object({\n enabled: z.boolean().default(true),\n maxRetries: z.number().int().min(0).default(3),\n timeout: z.number().int().positive().default(5000).describe('Milliseconds'),\n }),\n }),\n \n /**\n * Data synchronization settings\n */\n synchronization: z.object({\n /**\n * What data to sync across regions\n */\n scope: z.object({\n /**\n * Sync plugin registry\n */\n plugins: z.boolean().default(true),\n \n /**\n * Sync tenant metadata (not data)\n */\n tenants: z.boolean().default(true),\n \n /**\n * Sync spaces metadata\n */\n spaces: z.boolean().default(false),\n \n /**\n * Sync licenses\n */\n licenses: z.boolean().default(true),\n }),\n \n /**\n * Sync frequency\n */\n frequency: z.enum(['realtime', 'hourly', 'daily']).default('realtime'),\n \n /**\n * Conflict resolution\n */\n conflictResolution: z.enum(['last-write-wins', 'primary-wins', 'manual']).default('last-write-wins'),\n }),\n});\n\nexport type FederationTopology = z.infer<typeof FederationTopologySchema>;\n\n// ============================================================================\n// Tenant Placement\n// ============================================================================\n\n/**\n * Tenant Placement Policy\n * Determines where a tenant's data and runtime reside\n */\nexport const TenantPlacementPolicySchema = z.object({\n /**\n * Tenant identifier\n */\n tenantId: z.string(),\n \n /**\n * Primary region (where tenant data lives)\n */\n primaryRegion: z.string(),\n \n /**\n * Replica regions (for disaster recovery)\n */\n replicaRegions: z.array(z.string()).default([]),\n \n /**\n * Data residency constraints\n */\n dataResidency: z.object({\n /**\n * Allowed regions for data storage\n */\n allowedRegions: z.array(z.string()).optional(),\n \n /**\n * Prohibited regions\n */\n prohibitedRegions: z.array(z.string()).default([]),\n \n /**\n * Continent restriction\n */\n continent: z.enum(['NA', 'SA', 'EU', 'AF', 'AS', 'OC', 'AN']).optional(),\n }).optional(),\n \n /**\n * Failover policy\n */\n failover: z.object({\n /**\n * Enable automatic failover\n */\n enabled: z.boolean().default(true),\n \n /**\n * Preferred failover order (region IDs)\n */\n preferredOrder: z.array(z.string()).default([]),\n \n /**\n * Maximum acceptable latency for failover target (ms)\n */\n maxLatency: z.number().int().positive().default(100),\n }).optional(),\n \n /**\n * Latency requirements\n */\n latency: z.object({\n /**\n * Maximum acceptable latency for primary region (ms)\n */\n maxPrimaryLatency: z.number().int().positive().default(50),\n \n /**\n * Maximum acceptable latency for replicas (ms)\n */\n maxReplicaLatency: z.number().int().positive().default(200),\n }).optional(),\n});\n\nexport type TenantPlacementPolicy = z.infer<typeof TenantPlacementPolicySchema>;\n\n// ============================================================================\n// Cross-Region Operations\n// ============================================================================\n\n/**\n * Cross-Region Replication Job\n */\nexport const ReplicationJobSchema = z.object({\n /**\n * Job identifier\n */\n id: z.string().uuid(),\n \n /**\n * Job type\n */\n type: z.enum([\n 'initial-sync', // First-time full sync\n 'incremental', // Delta sync\n 'conflict-resolution', // Resolve conflicts\n ]),\n \n /**\n * Source hub\n */\n sourceHubId: z.string().uuid(),\n \n /**\n * Target hub(s)\n */\n targetHubIds: z.array(z.string().uuid()),\n \n /**\n * Resource scope\n */\n scope: z.object({\n /**\n * Resource type\n */\n resourceType: z.enum(['plugin', 'tenant', 'space', 'license', 'all']),\n \n /**\n * Specific resource IDs (empty = all)\n */\n resourceIds: z.array(z.string()).default([]),\n }),\n \n /**\n * Job status\n */\n status: z.enum(['pending', 'running', 'completed', 'failed', 'cancelled']),\n \n /**\n * Progress\n */\n progress: z.object({\n total: z.number().int().min(0),\n completed: z.number().int().min(0),\n failed: z.number().int().min(0),\n }).optional(),\n \n /**\n * Timestamps\n */\n createdAt: z.string().datetime(),\n startedAt: z.string().datetime().optional(),\n completedAt: z.string().datetime().optional(),\n \n /**\n * Errors\n */\n errors: z.array(z.object({\n timestamp: z.string().datetime(),\n resourceId: z.string(),\n error: z.string(),\n })).default([]),\n});\n\nexport type ReplicationJob = z.infer<typeof ReplicationJobSchema>;\n\n/**\n * Global Registry Entry\n * Tracks where a resource exists across regions\n */\nexport const GlobalRegistryEntrySchema = z.object({\n /**\n * Resource identifier\n */\n resourceId: z.string(),\n \n /**\n * Resource type\n */\n resourceType: z.enum(['plugin', 'tenant', 'space', 'license']),\n \n /**\n * Regions where this resource exists\n */\n locations: z.array(z.object({\n regionId: z.string(),\n hubId: z.string().uuid(),\n isPrimary: z.boolean().default(false),\n lastSyncedAt: z.string().datetime().optional(),\n version: z.string().optional(),\n })),\n \n /**\n * Global version vector clock (for conflict detection)\n */\n versionVector: z.record(z.string(), z.number().int()).optional(),\n});\n\nexport type GlobalRegistryEntry = z.infer<typeof GlobalRegistryEntrySchema>;\n\n// ============================================================================\n// Edge Computing\n// ============================================================================\n\n/**\n * Edge Location\n * Represents a CDN/edge cache location\n */\nexport const EdgeLocationSchema = z.object({\n /**\n * Location identifier\n */\n id: z.string(),\n \n /**\n * Parent region\n */\n regionId: z.string(),\n \n /**\n * Location details\n */\n location: RegionSchema.shape.location,\n \n /**\n * Caching configuration\n */\n cache: z.object({\n /**\n * What to cache at edge\n */\n resources: z.array(z.enum(['plugins', 'static-assets', 'api-responses'])).default([]),\n \n /**\n * TTL in seconds\n */\n ttl: z.number().int().positive().default(3600),\n \n /**\n * Cache size limit (bytes)\n */\n maxSize: z.number().int().positive().optional(),\n }),\n \n /**\n * Status\n */\n status: z.enum(['active', 'inactive']).default('active'),\n});\n\nexport type EdgeLocation = z.infer<typeof EdgeLocationSchema>;\n\n// ============================================================================\n// Export All\n// ============================================================================\n\nexport const HubFederationProtocol = {\n Region: RegionSchema,\n HubInstance: HubInstanceSchema,\n FederationTopology: FederationTopologySchema,\n TenantPlacementPolicy: TenantPlacementPolicySchema,\n ReplicationJob: ReplicationJobSchema,\n GlobalRegistryEntry: GlobalRegistryEntrySchema,\n EdgeLocation: EdgeLocationSchema,\n} as const;\n","import { z } from 'zod';\n\n/**\n * # Plugin Security & Dependency Resolution Protocol\n * \n * Provides comprehensive security scanning, vulnerability management,\n * and dependency resolution for the ObjectStack plugin ecosystem.\n * \n * Features:\n * - CVE/vulnerability scanning\n * - Dependency graph resolution\n * - Semantic version conflict detection\n * - Supply chain security\n * - Plugin sandboxing policies\n * - Trust and verification workflows\n */\n\n// ============================================================================\n// Security Scanning\n// ============================================================================\n\n/**\n * Vulnerability Severity\n */\nexport const VulnerabilitySeverity = z.enum([\n 'critical',\n 'high',\n 'medium',\n 'low',\n 'info',\n]);\n\nexport type VulnerabilitySeverity = z.infer<typeof VulnerabilitySeverity>;\n\n/**\n * Security Vulnerability\n */\nexport const SecurityVulnerabilitySchema = z.object({\n /**\n * CVE identifier (if applicable)\n */\n cve: z.string().regex(/^CVE-\\d{4}-\\d+$/).optional().describe('CVE identifier'),\n \n /**\n * Vulnerability identifier (GHSA, SNYK, etc.)\n */\n id: z.string().describe('Vulnerability ID'),\n \n /**\n * Title\n */\n title: z.string(),\n \n /**\n * Description\n */\n description: z.string(),\n \n /**\n * Severity\n */\n severity: VulnerabilitySeverity,\n \n /**\n * CVSS score (0-10)\n */\n cvss: z.number().min(0).max(10).optional(),\n \n /**\n * Affected package\n */\n package: z.object({\n name: z.string(),\n version: z.string(),\n ecosystem: z.string().optional(),\n }),\n \n /**\n * Vulnerable version range\n */\n vulnerableVersions: z.string().describe('Semver range of vulnerable versions'),\n \n /**\n * Patched versions\n */\n patchedVersions: z.string().optional().describe('Semver range of patched versions'),\n \n /**\n * References\n */\n references: z.array(z.object({\n type: z.enum(['advisory', 'article', 'report', 'web']),\n url: z.string().url(),\n })).default([]),\n \n /**\n * CWE (Common Weakness Enumeration)\n */\n cwe: z.array(z.string()).default([]),\n \n /**\n * Published date\n */\n publishedAt: z.string().datetime().optional(),\n \n /**\n * Mitigation advice\n */\n mitigation: z.string().optional(),\n});\n\nexport type SecurityVulnerability = z.infer<typeof SecurityVulnerabilitySchema>;\n\n/**\n * Security Scan Result\n */\nexport const SecurityScanResultSchema = z.object({\n /**\n * Scan identifier\n */\n scanId: z.string().uuid(),\n \n /**\n * Plugin being scanned\n */\n plugin: z.object({\n id: z.string(),\n version: z.string(),\n }),\n \n /**\n * Scan timestamp\n */\n scannedAt: z.string().datetime(),\n \n /**\n * Scanner information\n */\n scanner: z.object({\n name: z.string().describe('Scanner name (e.g., snyk, osv, trivy)'),\n version: z.string(),\n }),\n \n /**\n * Scan status\n */\n status: z.enum(['passed', 'failed', 'warning']),\n \n /**\n * Vulnerabilities found\n */\n vulnerabilities: z.array(SecurityVulnerabilitySchema),\n \n /**\n * Vulnerability summary\n */\n summary: z.object({\n critical: z.number().int().min(0).default(0),\n high: z.number().int().min(0).default(0),\n medium: z.number().int().min(0).default(0),\n low: z.number().int().min(0).default(0),\n info: z.number().int().min(0).default(0),\n total: z.number().int().min(0).default(0),\n }),\n \n /**\n * License compliance issues\n */\n licenseIssues: z.array(z.object({\n package: z.string(),\n license: z.string(),\n reason: z.string(),\n severity: z.enum(['error', 'warning', 'info']),\n })).default([]),\n \n /**\n * Code quality issues\n */\n codeQuality: z.object({\n score: z.number().min(0).max(100).optional(),\n issues: z.array(z.object({\n type: z.enum(['security', 'quality', 'style']),\n severity: z.enum(['error', 'warning', 'info']),\n message: z.string(),\n file: z.string().optional(),\n line: z.number().int().optional(),\n })).default([]),\n }).optional(),\n \n /**\n * Next scan scheduled\n */\n nextScanAt: z.string().datetime().optional(),\n});\n\nexport type SecurityScanResult = z.infer<typeof SecurityScanResultSchema>;\n\n/**\n * Security Policy\n */\nexport const SecurityPolicySchema = z.object({\n /**\n * Policy identifier\n */\n id: z.string(),\n \n /**\n * Policy name\n */\n name: z.string(),\n \n /**\n * Automatic scanning\n */\n autoScan: z.object({\n enabled: z.boolean().default(true),\n frequency: z.enum(['on-publish', 'daily', 'weekly', 'monthly']).default('daily'),\n }),\n \n /**\n * Vulnerability thresholds\n */\n thresholds: z.object({\n /**\n * Block plugin if critical vulnerabilities exceed this\n */\n maxCritical: z.number().int().min(0).default(0),\n \n /**\n * Block plugin if high vulnerabilities exceed this\n */\n maxHigh: z.number().int().min(0).default(0),\n \n /**\n * Warn if medium vulnerabilities exceed this\n */\n maxMedium: z.number().int().min(0).default(5),\n }),\n \n /**\n * Allowed licenses\n */\n allowedLicenses: z.array(z.string()).default([\n 'MIT',\n 'Apache-2.0',\n 'BSD-3-Clause',\n 'BSD-2-Clause',\n 'ISC',\n ]),\n \n /**\n * Prohibited licenses\n */\n prohibitedLicenses: z.array(z.string()).default([\n 'GPL-3.0',\n 'AGPL-3.0',\n ]),\n \n /**\n * Code signing requirements\n */\n codeSigning: z.object({\n required: z.boolean().default(false),\n allowedSigners: z.array(z.string()).default([]),\n }).optional(),\n \n /**\n * Sandbox restrictions\n */\n sandbox: z.object({\n /**\n * Restrict network access\n */\n networkAccess: z.enum(['none', 'localhost', 'allowlist', 'all']).default('all'),\n \n /**\n * Allowed network destinations (if allowlist)\n */\n allowedDestinations: z.array(z.string()).default([]),\n \n /**\n * File system access\n */\n filesystemAccess: z.enum(['none', 'read-only', 'temp-only', 'full']).default('full'),\n \n /**\n * Maximum memory (MB)\n */\n maxMemoryMB: z.number().int().positive().optional(),\n \n /**\n * Maximum CPU time (seconds)\n */\n maxCPUSeconds: z.number().int().positive().optional(),\n }).optional(),\n});\n\nexport type SecurityPolicy = z.infer<typeof SecurityPolicySchema>;\n\n// ============================================================================\n// Dependency Resolution\n// ============================================================================\n\n/**\n * Package Dependency\n */\nexport const PackageDependencySchema = z.object({\n /**\n * Package name/ID\n */\n name: z.string(),\n \n /**\n * Version constraint (semver range)\n */\n versionConstraint: z.string().describe('Semver range (e.g., `^1.0.0`, `>=2.0.0 <3.0.0`)'),\n \n /**\n * Dependency type\n */\n type: z.enum(['required', 'optional', 'peer', 'dev']).default('required'),\n \n /**\n * Resolved version (filled during resolution)\n */\n resolvedVersion: z.string().optional(),\n});\n\nexport type PackageDependency = z.infer<typeof PackageDependencySchema>;\n\n/**\n * Dependency Graph Node\n */\nexport const DependencyGraphNodeSchema = z.object({\n /**\n * Package identifier\n */\n id: z.string(),\n \n /**\n * Package version\n */\n version: z.string(),\n \n /**\n * Dependencies of this package\n */\n dependencies: z.array(PackageDependencySchema).default([]),\n \n /**\n * Depth in dependency tree\n */\n depth: z.number().int().min(0),\n \n /**\n * Whether this is a direct dependency\n */\n isDirect: z.boolean(),\n \n /**\n * Package metadata\n */\n metadata: z.object({\n name: z.string(),\n description: z.string().optional(),\n license: z.string().optional(),\n homepage: z.string().url().optional(),\n }).optional(),\n});\n\nexport type DependencyGraphNode = z.infer<typeof DependencyGraphNodeSchema>;\n\n/**\n * Dependency Graph\n */\nexport const DependencyGraphSchema = z.object({\n /**\n * Root package\n */\n root: z.object({\n id: z.string(),\n version: z.string(),\n }),\n \n /**\n * All nodes in the graph\n */\n nodes: z.array(DependencyGraphNodeSchema),\n \n /**\n * Edges (dependency relationships)\n */\n edges: z.array(z.object({\n from: z.string().describe('Package ID'),\n to: z.string().describe('Package ID'),\n constraint: z.string().describe('Version constraint'),\n })),\n \n /**\n * Resolution statistics\n */\n stats: z.object({\n totalDependencies: z.number().int().min(0),\n directDependencies: z.number().int().min(0),\n maxDepth: z.number().int().min(0),\n }),\n});\n\nexport type DependencyGraph = z.infer<typeof DependencyGraphSchema>;\n\n/**\n * Dependency Conflict\n */\nexport const DependencyConflictSchema = z.object({\n /**\n * Package with conflict\n */\n package: z.string(),\n \n /**\n * Conflicting versions\n */\n conflicts: z.array(z.object({\n version: z.string(),\n requestedBy: z.array(z.string()).describe('Packages that require this version'),\n constraint: z.string(),\n })),\n \n /**\n * Suggested resolution\n */\n resolution: z.object({\n strategy: z.enum(['pick-highest', 'pick-lowest', 'manual']),\n version: z.string().optional(),\n reason: z.string().optional(),\n }).optional(),\n \n /**\n * Severity\n */\n severity: z.enum(['error', 'warning', 'info']),\n});\n\nexport type DependencyConflict = z.infer<typeof DependencyConflictSchema>;\n\n/**\n * Dependency Resolution Result\n */\nexport const DependencyResolutionResultSchema = z.object({\n /**\n * Resolution status\n */\n status: z.enum(['success', 'conflict', 'error']),\n \n /**\n * Resolved dependency graph\n */\n graph: DependencyGraphSchema.optional(),\n \n /**\n * Conflicts detected\n */\n conflicts: z.array(DependencyConflictSchema).default([]),\n \n /**\n * Errors encountered\n */\n errors: z.array(z.object({\n package: z.string(),\n error: z.string(),\n })).default([]),\n \n /**\n * Installation order (topological sort)\n */\n installOrder: z.array(z.string()).default([]),\n \n /**\n * Resolution time (ms)\n */\n resolvedIn: z.number().int().min(0).optional(),\n});\n\nexport type DependencyResolutionResult = z.infer<typeof DependencyResolutionResultSchema>;\n\n// ============================================================================\n// Supply Chain Security\n// ============================================================================\n\n/**\n * SBOM (Software Bill of Materials) Entry\n */\nexport const SBOMEntrySchema = z.object({\n /**\n * Component name\n */\n name: z.string(),\n \n /**\n * Component version\n */\n version: z.string(),\n \n /**\n * Package URL (purl)\n */\n purl: z.string().optional().describe('Package URL identifier'),\n \n /**\n * License\n */\n license: z.string().optional(),\n \n /**\n * Hashes\n */\n hashes: z.object({\n sha256: z.string().optional(),\n sha512: z.string().optional(),\n }).optional(),\n \n /**\n * Supplier\n */\n supplier: z.object({\n name: z.string(),\n url: z.string().url().optional(),\n }).optional(),\n \n /**\n * External references\n */\n externalRefs: z.array(z.object({\n type: z.enum(['website', 'repository', 'documentation', 'issue-tracker']),\n url: z.string().url(),\n })).default([]),\n});\n\nexport type SBOMEntry = z.infer<typeof SBOMEntrySchema>;\n\n/**\n * Software Bill of Materials (SBOM)\n */\nexport const SBOMSchema = z.object({\n /**\n * SBOM format\n */\n format: z.enum(['spdx', 'cyclonedx']).default('cyclonedx'),\n \n /**\n * SBOM version\n */\n version: z.string(),\n \n /**\n * Plugin metadata\n */\n plugin: z.object({\n id: z.string(),\n version: z.string(),\n name: z.string(),\n }),\n \n /**\n * Components (dependencies)\n */\n components: z.array(SBOMEntrySchema),\n \n /**\n * Generation timestamp\n */\n generatedAt: z.string().datetime(),\n \n /**\n * Generator tool\n */\n generator: z.object({\n name: z.string(),\n version: z.string(),\n }).optional(),\n});\n\nexport type SBOM = z.infer<typeof SBOMSchema>;\n\n/**\n * Plugin Provenance\n * Verifiable chain of custody for plugin artifacts\n */\nexport const PluginProvenanceSchema = z.object({\n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Plugin version\n */\n version: z.string(),\n \n /**\n * Build information\n */\n build: z.object({\n /**\n * Build timestamp\n */\n timestamp: z.string().datetime(),\n \n /**\n * Build environment\n */\n environment: z.object({\n os: z.string(),\n arch: z.string(),\n nodeVersion: z.string(),\n }).optional(),\n \n /**\n * Source repository\n */\n source: z.object({\n repository: z.string().url(),\n commit: z.string().regex(/^[a-f0-9]{40}$/),\n branch: z.string().optional(),\n tag: z.string().optional(),\n }).optional(),\n \n /**\n * Builder identity\n */\n builder: z.object({\n name: z.string(),\n email: z.string().email().optional(),\n }).optional(),\n }),\n \n /**\n * Artifact hashes\n */\n artifacts: z.array(z.object({\n filename: z.string(),\n sha256: z.string(),\n size: z.number().int().positive(),\n })),\n \n /**\n * Signatures\n */\n signatures: z.array(z.object({\n algorithm: z.enum(['rsa', 'ecdsa', 'ed25519']),\n publicKey: z.string(),\n signature: z.string(),\n signedBy: z.string(),\n timestamp: z.string().datetime(),\n })).default([]),\n \n /**\n * Attestations\n */\n attestations: z.array(z.object({\n type: z.enum(['code-review', 'security-scan', 'test-results', 'ci-build']),\n status: z.enum(['passed', 'failed']),\n url: z.string().url().optional(),\n timestamp: z.string().datetime(),\n })).default([]),\n});\n\nexport type PluginProvenance = z.infer<typeof PluginProvenanceSchema>;\n\n// ============================================================================\n// Trust & Verification\n// ============================================================================\n\n/**\n * Plugin Trust Score\n */\nexport const PluginTrustScoreSchema = z.object({\n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Overall trust score (0-100)\n */\n score: z.number().min(0).max(100),\n \n /**\n * Score components\n */\n components: z.object({\n /**\n * Vendor reputation (0-100)\n */\n vendorReputation: z.number().min(0).max(100),\n \n /**\n * Security scan results (0-100)\n */\n securityScore: z.number().min(0).max(100),\n \n /**\n * Code quality (0-100)\n */\n codeQuality: z.number().min(0).max(100),\n \n /**\n * Community engagement (0-100)\n */\n communityScore: z.number().min(0).max(100),\n \n /**\n * Update frequency (0-100)\n */\n maintenanceScore: z.number().min(0).max(100),\n }),\n \n /**\n * Trust level\n */\n level: z.enum(['verified', 'trusted', 'neutral', 'untrusted', 'blocked']),\n \n /**\n * Verification badges\n */\n badges: z.array(z.enum([\n 'official', // Official ObjectStack plugin\n 'verified-vendor', // Verified vendor\n 'security-scanned', // Passed security scan\n 'code-signed', // Digitally signed\n 'open-source', // Open source\n 'popular', // High downloads\n ])).default([]),\n \n /**\n * Last updated\n */\n updatedAt: z.string().datetime(),\n});\n\nexport type PluginTrustScore = z.infer<typeof PluginTrustScoreSchema>;\n\n// ============================================================================\n// Export All\n// ============================================================================\n\nexport const PluginSecurityProtocol = {\n VulnerabilitySeverity,\n SecurityVulnerability: SecurityVulnerabilitySchema,\n SecurityScanResult: SecurityScanResultSchema,\n SecurityPolicy: SecurityPolicySchema,\n PackageDependency: PackageDependencySchema,\n DependencyGraphNode: DependencyGraphNodeSchema,\n DependencyGraph: DependencyGraphSchema,\n DependencyConflict: DependencyConflictSchema,\n DependencyResolutionResult: DependencyResolutionResultSchema,\n SBOMEntry: SBOMEntrySchema,\n SBOM: SBOMSchema,\n PluginProvenance: PluginProvenanceSchema,\n PluginTrustScore: PluginTrustScoreSchema,\n} as const;\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"]}