@objectstack/spec 3.0.9 → 3.0.11

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 (1831) hide show
  1. package/dist/ai/index.d.mts +2 -2
  2. package/dist/ai/index.d.ts +2 -2
  3. package/dist/api/index.d.mts +6 -6
  4. package/dist/api/index.d.ts +6 -6
  5. package/dist/api/index.js +93 -13
  6. package/dist/api/index.js.map +1 -1
  7. package/dist/api/index.mjs +93 -14
  8. package/dist/api/index.mjs.map +1 -1
  9. package/dist/app-install.zod-BEVR4Rrw.d.mts +387 -0
  10. package/dist/app-install.zod-BEVR4Rrw.d.ts +387 -0
  11. package/dist/automation/index.d.mts +1 -1
  12. package/dist/automation/index.d.ts +1 -1
  13. package/dist/cloud/index.d.mts +1 -1
  14. package/dist/cloud/index.d.ts +1 -1
  15. package/dist/contracts/index.d.mts +8 -7
  16. package/dist/contracts/index.d.ts +8 -7
  17. package/dist/data/index.d.mts +5 -5
  18. package/dist/data/index.d.ts +5 -5
  19. package/dist/data/index.js +255 -0
  20. package/dist/data/index.js.map +1 -1
  21. package/dist/data/index.mjs +247 -1
  22. package/dist/data/index.mjs.map +1 -1
  23. package/dist/{field.zod-BHxpAwVr.d.ts → field.zod-CMm9uHBm.d.ts} +3 -3
  24. package/dist/{field.zod-mxBoNxg8.d.mts → field.zod-K9xdi_Bk.d.mts} +3 -3
  25. package/dist/{filter.zod-CtZ3VJ3e.d.mts → filter.zod-BAmN6a5B.d.mts} +53 -1
  26. package/dist/{filter.zod-CtZ3VJ3e.d.ts → filter.zod-BAmN6a5B.d.ts} +53 -1
  27. package/dist/{http.zod-zoVvPkD-.d.mts → http.zod-D7ZTstT3.d.mts} +33 -1
  28. package/dist/{http.zod-zoVvPkD-.d.ts → http.zod-D7ZTstT3.d.ts} +33 -1
  29. package/dist/{index-AqIVxuzT.d.mts → index-B_XH6aFD.d.mts} +26 -26
  30. package/dist/{index-CdgkfP4m.d.ts → index-BjQsCsO9.d.ts} +6 -2
  31. package/dist/{index-ClaAfDgl.d.mts → index-CCSUF3WR.d.mts} +6 -2
  32. package/dist/{index-D0K6e9cT.d.ts → index-CIiQ-UuT.d.mts} +153 -213
  33. package/dist/{index-DXGnzTsY.d.mts → index-CJIWgRtH.d.mts} +488 -7
  34. package/dist/{index-DTc_NZfW.d.ts → index-CNiPVzsx.d.ts} +26 -26
  35. package/dist/{index-zkXIOLcm.d.ts → index-CVsfQ7rS.d.ts} +970 -110
  36. package/dist/{index-DsbZHCgH.d.ts → index-DEvrB28l.d.ts} +1016 -22
  37. package/dist/{index-CsTJO_xM.d.mts → index-DRLcnyOy.d.ts} +333 -90
  38. package/dist/{index-KZbFyT_N.d.ts → index-DZ7LmKj0.d.ts} +488 -7
  39. package/dist/{index-Bkf-4Hgd.d.mts → index-D_XkwA3D.d.ts} +153 -213
  40. package/dist/{index-CEqhxDGw.d.ts → index-DrCY7GGk.d.ts} +73 -17
  41. package/dist/{index-DIgqySbe.d.mts → index-Duacv2Tg.d.mts} +1016 -22
  42. package/dist/{index-BPPEvklW.d.mts → index-Dyec30Bw.d.mts} +970 -110
  43. package/dist/{index-D7IVfhww.d.mts → index-c0nqlX_G.d.mts} +73 -17
  44. package/dist/{index-SXEQtWmF.d.ts → index-iPNdbMFV.d.mts} +333 -90
  45. package/dist/index.d.mts +335 -72
  46. package/dist/index.d.ts +335 -72
  47. package/dist/index.js +1560 -110
  48. package/dist/index.js.map +1 -1
  49. package/dist/index.mjs +1560 -110
  50. package/dist/index.mjs.map +1 -1
  51. package/dist/kernel/index.d.mts +2 -2
  52. package/dist/kernel/index.d.ts +2 -2
  53. package/dist/kernel/index.js +429 -0
  54. package/dist/kernel/index.js.map +1 -1
  55. package/dist/kernel/index.mjs +429 -1
  56. package/dist/kernel/index.mjs.map +1 -1
  57. package/dist/qa/index.d.mts +1 -1
  58. package/dist/qa/index.d.ts +1 -1
  59. package/dist/shared/index.d.mts +2 -2
  60. package/dist/shared/index.d.ts +2 -2
  61. package/dist/shared/index.js +10 -0
  62. package/dist/shared/index.js.map +1 -1
  63. package/dist/shared/index.mjs +9 -1
  64. package/dist/shared/index.mjs.map +1 -1
  65. package/dist/{subscription.zod-CJ4JWmNt.d.ts → subscription.zod-D1ut7JDL.d.ts} +248 -3
  66. package/dist/{subscription.zod-D5j365Fg.d.mts → subscription.zod-Dy8wi1B9.d.mts} +248 -3
  67. package/dist/system/index.d.mts +3 -2
  68. package/dist/system/index.d.ts +3 -2
  69. package/dist/system/index.js +1142 -73
  70. package/dist/system/index.js.map +1 -1
  71. package/dist/system/index.mjs +1096 -74
  72. package/dist/system/index.mjs.map +1 -1
  73. package/dist/ui/index.d.mts +3 -2
  74. package/dist/ui/index.d.ts +3 -2
  75. package/dist/ui/index.js +127 -24
  76. package/dist/ui/index.js.map +1 -1
  77. package/dist/ui/index.mjs +124 -25
  78. package/dist/ui/index.mjs.map +1 -1
  79. package/json-schema/ai/AICodeReviewResult.json +2 -2
  80. package/json-schema/ai/AIKnowledge.json +2 -2
  81. package/json-schema/ai/AIModelConfig.json +2 -2
  82. package/json-schema/ai/AIOperationCost.json +2 -2
  83. package/json-schema/ai/AIOpsAgentConfig.json +2 -2
  84. package/json-schema/ai/AIOrchestration.json +2 -2
  85. package/json-schema/ai/AIOrchestrationExecutionResult.json +2 -2
  86. package/json-schema/ai/AIOrchestrationTrigger.json +2 -2
  87. package/json-schema/ai/AITask.json +2 -2
  88. package/json-schema/ai/AITaskType.json +2 -2
  89. package/json-schema/ai/AITool.json +2 -2
  90. package/json-schema/ai/Agent.json +2 -2
  91. package/json-schema/ai/AgentAction.json +2 -2
  92. package/json-schema/ai/AgentActionResult.json +2 -2
  93. package/json-schema/ai/AgentActionSequence.json +2 -2
  94. package/json-schema/ai/AgentActionSequenceResult.json +2 -2
  95. package/json-schema/ai/AgentCommunicationProtocol.json +2 -2
  96. package/json-schema/ai/AgentGroupMember.json +2 -2
  97. package/json-schema/ai/AgentGroupRole.json +2 -2
  98. package/json-schema/ai/AnomalyDetectionConfig.json +2 -2
  99. package/json-schema/ai/AutoScalingPolicy.json +2 -2
  100. package/json-schema/ai/BatchAIOrchestrationExecution.json +2 -2
  101. package/json-schema/ai/BillingPeriod.json +2 -2
  102. package/json-schema/ai/BudgetLimit.json +2 -2
  103. package/json-schema/ai/BudgetStatus.json +2 -2
  104. package/json-schema/ai/BudgetType.json +2 -2
  105. package/json-schema/ai/CICDPipelineConfig.json +2 -2
  106. package/json-schema/ai/ChunkingStrategy.json +2 -2
  107. package/json-schema/ai/CodeContent.json +2 -2
  108. package/json-schema/ai/CodeGenerationConfig.json +2 -2
  109. package/json-schema/ai/CodeGenerationRequest.json +2 -2
  110. package/json-schema/ai/CodeGenerationTarget.json +2 -2
  111. package/json-schema/ai/ComponentActionParams.json +2 -2
  112. package/json-schema/ai/ComponentActionType.json +2 -2
  113. package/json-schema/ai/ComponentAgentAction.json +2 -2
  114. package/json-schema/ai/ConversationAnalytics.json +2 -2
  115. package/json-schema/ai/ConversationContext.json +2 -2
  116. package/json-schema/ai/ConversationMessage.json +2 -2
  117. package/json-schema/ai/ConversationSession.json +2 -2
  118. package/json-schema/ai/ConversationSummary.json +2 -2
  119. package/json-schema/ai/CostAlert.json +2 -2
  120. package/json-schema/ai/CostAlertType.json +2 -2
  121. package/json-schema/ai/CostAnalytics.json +2 -2
  122. package/json-schema/ai/CostBreakdownDimension.json +2 -2
  123. package/json-schema/ai/CostBreakdownEntry.json +2 -2
  124. package/json-schema/ai/CostEntry.json +2 -2
  125. package/json-schema/ai/CostMetricType.json +2 -2
  126. package/json-schema/ai/CostOptimizationRecommendation.json +2 -2
  127. package/json-schema/ai/CostQueryFilters.json +2 -2
  128. package/json-schema/ai/CostReport.json +2 -2
  129. package/json-schema/ai/DataActionParams.json +2 -2
  130. package/json-schema/ai/DataActionType.json +2 -2
  131. package/json-schema/ai/DataAgentAction.json +2 -2
  132. package/json-schema/ai/DeploymentStrategy.json +2 -2
  133. package/json-schema/ai/DevOpsAgent.json +2 -2
  134. package/json-schema/ai/DevOpsTool.json +2 -2
  135. package/json-schema/ai/DevelopmentConfig.json +2 -2
  136. package/json-schema/ai/DocumentChunk.json +2 -2
  137. package/json-schema/ai/DocumentLoaderConfig.json +2 -2
  138. package/json-schema/ai/DocumentMetadata.json +2 -2
  139. package/json-schema/ai/EmbeddingModel.json +2 -2
  140. package/json-schema/ai/Entity.json +2 -2
  141. package/json-schema/ai/EvaluationMetrics.json +2 -2
  142. package/json-schema/ai/FeedbackLoop.json +2 -2
  143. package/json-schema/ai/FieldSynonymConfig.json +2 -2
  144. package/json-schema/ai/FileContent.json +2 -2
  145. package/json-schema/ai/FilterExpression.json +2 -2
  146. package/json-schema/ai/FilterGroup.json +2 -2
  147. package/json-schema/ai/FormActionParams.json +2 -2
  148. package/json-schema/ai/FormActionType.json +2 -2
  149. package/json-schema/ai/FormAgentAction.json +2 -2
  150. package/json-schema/ai/FunctionCall.json +2 -2
  151. package/json-schema/ai/GeneratedCode.json +2 -2
  152. package/json-schema/ai/GitHubIntegration.json +2 -2
  153. package/json-schema/ai/Hyperparameters.json +2 -2
  154. package/json-schema/ai/ImageContent.json +2 -2
  155. package/json-schema/ai/IntegrationConfig.json +2 -2
  156. package/json-schema/ai/IntentActionMapping.json +2 -2
  157. package/json-schema/ai/Issue.json +2 -2
  158. package/json-schema/ai/MCPCapability.json +2 -2
  159. package/json-schema/ai/MCPClientConfig.json +2 -2
  160. package/json-schema/ai/MCPPrompt.json +2 -2
  161. package/json-schema/ai/MCPPromptArgument.json +2 -2
  162. package/json-schema/ai/MCPPromptMessage.json +2 -2
  163. package/json-schema/ai/MCPPromptRequest.json +2 -2
  164. package/json-schema/ai/MCPPromptResponse.json +2 -2
  165. package/json-schema/ai/MCPResource.json +2 -2
  166. package/json-schema/ai/MCPResourceRequest.json +2 -2
  167. package/json-schema/ai/MCPResourceResponse.json +2 -2
  168. package/json-schema/ai/MCPResourceTemplate.json +2 -2
  169. package/json-schema/ai/MCPResourceType.json +2 -2
  170. package/json-schema/ai/MCPRootEntry.json +2 -2
  171. package/json-schema/ai/MCPRootsConfig.json +2 -2
  172. package/json-schema/ai/MCPSamplingConfig.json +2 -2
  173. package/json-schema/ai/MCPServerConfig.json +2 -2
  174. package/json-schema/ai/MCPServerInfo.json +2 -2
  175. package/json-schema/ai/MCPStreamingConfig.json +2 -2
  176. package/json-schema/ai/MCPTool.json +2 -2
  177. package/json-schema/ai/MCPToolApproval.json +2 -2
  178. package/json-schema/ai/MCPToolCallRequest.json +2 -2
  179. package/json-schema/ai/MCPToolCallResponse.json +2 -2
  180. package/json-schema/ai/MCPToolParameter.json +2 -2
  181. package/json-schema/ai/MCPTransportConfig.json +2 -2
  182. package/json-schema/ai/MCPTransportType.json +2 -2
  183. package/json-schema/ai/MessageContent.json +2 -2
  184. package/json-schema/ai/MessageContentType.json +2 -2
  185. package/json-schema/ai/MessagePruningEvent.json +2 -2
  186. package/json-schema/ai/MessageRole.json +2 -2
  187. package/json-schema/ai/MetadataFilter.json +2 -2
  188. package/json-schema/ai/MetadataSource.json +2 -2
  189. package/json-schema/ai/ModelCapability.json +2 -2
  190. package/json-schema/ai/ModelConfig.json +2 -2
  191. package/json-schema/ai/ModelDrift.json +2 -2
  192. package/json-schema/ai/ModelFeature.json +2 -2
  193. package/json-schema/ai/ModelLimits.json +2 -2
  194. package/json-schema/ai/ModelPricing.json +2 -2
  195. package/json-schema/ai/ModelProvider.json +2 -2
  196. package/json-schema/ai/ModelRegistry.json +2 -2
  197. package/json-schema/ai/ModelRegistryEntry.json +2 -2
  198. package/json-schema/ai/ModelSelectionCriteria.json +2 -2
  199. package/json-schema/ai/MonitoringConfig.json +2 -2
  200. package/json-schema/ai/MultiAgentGroup.json +2 -2
  201. package/json-schema/ai/NLQAnalytics.json +2 -2
  202. package/json-schema/ai/NLQFieldMapping.json +2 -2
  203. package/json-schema/ai/NLQModelConfig.json +2 -2
  204. package/json-schema/ai/NLQParseResult.json +2 -2
  205. package/json-schema/ai/NLQRequest.json +2 -2
  206. package/json-schema/ai/NLQResponse.json +2 -2
  207. package/json-schema/ai/NLQTrainingExample.json +2 -2
  208. package/json-schema/ai/NavigationActionParams.json +2 -2
  209. package/json-schema/ai/NavigationActionType.json +2 -2
  210. package/json-schema/ai/NavigationAgentAction.json +2 -2
  211. package/json-schema/ai/PerformanceOptimization.json +2 -2
  212. package/json-schema/ai/PipelineStage.json +2 -2
  213. package/json-schema/ai/PluginCompositionRequest.json +2 -2
  214. package/json-schema/ai/PluginCompositionResult.json +2 -2
  215. package/json-schema/ai/PluginRecommendation.json +2 -2
  216. package/json-schema/ai/PluginRecommendationRequest.json +2 -2
  217. package/json-schema/ai/PluginScaffoldingTemplate.json +2 -2
  218. package/json-schema/ai/PostProcessingAction.json +2 -2
  219. package/json-schema/ai/PredictionRequest.json +2 -2
  220. package/json-schema/ai/PredictionResult.json +2 -2
  221. package/json-schema/ai/PredictiveModel.json +2 -2
  222. package/json-schema/ai/PredictiveModelType.json +2 -2
  223. package/json-schema/ai/PromptTemplate.json +2 -2
  224. package/json-schema/ai/PromptVariable.json +2 -2
  225. package/json-schema/ai/QueryContext.json +2 -2
  226. package/json-schema/ai/QueryIntent.json +2 -2
  227. package/json-schema/ai/QueryTemplate.json +2 -2
  228. package/json-schema/ai/RAGPipelineConfig.json +2 -2
  229. package/json-schema/ai/RAGPipelineStatus.json +2 -2
  230. package/json-schema/ai/RAGQueryRequest.json +2 -2
  231. package/json-schema/ai/RAGQueryResponse.json +2 -2
  232. package/json-schema/ai/RerankingConfig.json +2 -2
  233. package/json-schema/ai/Resolution.json +2 -2
  234. package/json-schema/ai/RetrievalStrategy.json +2 -2
  235. package/json-schema/ai/RootCauseAnalysisRequest.json +2 -2
  236. package/json-schema/ai/RootCauseAnalysisResult.json +2 -2
  237. package/json-schema/ai/SelfHealingAction.json +2 -2
  238. package/json-schema/ai/SelfHealingConfig.json +2 -2
  239. package/json-schema/ai/StructuredOutputConfig.json +2 -2
  240. package/json-schema/ai/StructuredOutputFormat.json +2 -2
  241. package/json-schema/ai/TestingConfig.json +2 -2
  242. package/json-schema/ai/TextContent.json +2 -2
  243. package/json-schema/ai/Timeframe.json +2 -2
  244. package/json-schema/ai/TokenBudgetConfig.json +2 -2
  245. package/json-schema/ai/TokenBudgetStrategy.json +2 -2
  246. package/json-schema/ai/TokenUsage.json +2 -2
  247. package/json-schema/ai/TokenUsageStats.json +2 -2
  248. package/json-schema/ai/ToolCall.json +2 -2
  249. package/json-schema/ai/TrainingConfig.json +2 -2
  250. package/json-schema/ai/TransformPipelineStep.json +2 -2
  251. package/json-schema/ai/TypedAgentAction.json +2 -2
  252. package/json-schema/ai/UIActionType.json +2 -2
  253. package/json-schema/ai/VectorStoreConfig.json +2 -2
  254. package/json-schema/ai/VectorStoreProvider.json +2 -2
  255. package/json-schema/ai/VercelIntegration.json +2 -2
  256. package/json-schema/ai/VersionManagement.json +2 -2
  257. package/json-schema/ai/ViewActionParams.json +2 -2
  258. package/json-schema/ai/ViewActionType.json +2 -2
  259. package/json-schema/ai/ViewAgentAction.json +2 -2
  260. package/json-schema/ai/WorkflowActionParams.json +2 -2
  261. package/json-schema/ai/WorkflowActionType.json +2 -2
  262. package/json-schema/ai/WorkflowAgentAction.json +2 -2
  263. package/json-schema/ai/WorkflowFieldCondition.json +2 -2
  264. package/json-schema/ai/WorkflowSchedule.json +2 -2
  265. package/json-schema/api/AckMessage.json +2 -2
  266. package/json-schema/api/AddReactionRequest.json +2 -2
  267. package/json-schema/api/AddReactionResponse.json +2 -2
  268. package/json-schema/api/AiChatRequest.json +2 -2
  269. package/json-schema/api/AiChatResponse.json +2 -2
  270. package/json-schema/api/AiInsightsRequest.json +2 -2
  271. package/json-schema/api/AiInsightsResponse.json +2 -2
  272. package/json-schema/api/AiNlqRequest.json +2 -2
  273. package/json-schema/api/AiNlqResponse.json +2 -2
  274. package/json-schema/api/AiSuggestRequest.json +2 -2
  275. package/json-schema/api/AiSuggestResponse.json +2 -2
  276. package/json-schema/api/AnalyticsEndpoint.json +2 -2
  277. package/json-schema/api/AnalyticsMetadataResponse.json +2 -2
  278. package/json-schema/api/AnalyticsQueryRequest.json +2 -2
  279. package/json-schema/api/AnalyticsResultResponse.json +2 -2
  280. package/json-schema/api/AnalyticsSqlResponse.json +2 -2
  281. package/json-schema/api/ApiChangelogEntry.json +2 -2
  282. package/json-schema/api/ApiDiscoveryQuery.json +2 -2
  283. package/json-schema/api/ApiDiscoveryResponse.json +2 -2
  284. package/json-schema/api/ApiDocumentationConfig.json +2 -2
  285. package/json-schema/api/ApiEndpoint.json +2 -2
  286. package/json-schema/api/ApiEndpointRegistration.json +2 -2
  287. package/json-schema/api/ApiError.json +2 -2
  288. package/json-schema/api/ApiMapping.json +2 -2
  289. package/json-schema/api/ApiMetadata.json +2 -2
  290. package/json-schema/api/ApiParameter.json +2 -2
  291. package/json-schema/api/ApiProtocolType.json +2 -2
  292. package/json-schema/api/ApiRegistry.json +2 -2
  293. package/json-schema/api/ApiRegistryEntry.json +2 -2
  294. package/json-schema/api/ApiResponse.json +2 -2
  295. package/json-schema/api/ApiRoutes.json +2 -2
  296. package/json-schema/api/ApiTestCollection.json +2 -2
  297. package/json-schema/api/ApiTestRequest.json +2 -2
  298. package/json-schema/api/ApiTestingUiConfig.json +2 -2
  299. package/json-schema/api/ApiTestingUiType.json +2 -2
  300. package/json-schema/api/AppDefinitionResponse.json +2 -2
  301. package/json-schema/api/AuthEndpoint.json +2 -2
  302. package/json-schema/api/AuthProvider.json +2 -2
  303. package/json-schema/api/AutomationApiErrorCode.json +2 -2
  304. package/json-schema/api/AutomationFlowPathParams.json +2 -2
  305. package/json-schema/api/AutomationRunPathParams.json +2 -2
  306. package/json-schema/api/AutomationTriggerRequest.json +2 -2
  307. package/json-schema/api/AutomationTriggerResponse.json +2 -2
  308. package/json-schema/api/BasePresence.json +2 -2
  309. package/json-schema/api/BaseResponse.json +2 -2
  310. package/json-schema/api/BatchConfig.json +2 -2
  311. package/json-schema/api/BatchDataRequest.json +2 -2
  312. package/json-schema/api/BatchDataResponse.json +2 -2
  313. package/json-schema/api/BatchEndpointsConfig.json +2 -2
  314. package/json-schema/api/BatchLoadingStrategy.json +2 -2
  315. package/json-schema/api/BatchOperationResult.json +2 -2
  316. package/json-schema/api/BatchOperationType.json +2 -2
  317. package/json-schema/api/BatchOptions.json +2 -2
  318. package/json-schema/api/BatchRecord.json +2 -2
  319. package/json-schema/api/BatchUpdateRequest.json +2 -2
  320. package/json-schema/api/BatchUpdateResponse.json +2 -2
  321. package/json-schema/api/BulkRequest.json +2 -2
  322. package/json-schema/api/BulkResponse.json +2 -2
  323. package/json-schema/api/CacheControl.json +2 -2
  324. package/json-schema/api/CacheDirective.json +2 -2
  325. package/json-schema/api/CacheInvalidationRequest.json +2 -2
  326. package/json-schema/api/CacheInvalidationResponse.json +2 -2
  327. package/json-schema/api/CacheInvalidationTarget.json +2 -2
  328. package/json-schema/api/Callback.json +2 -2
  329. package/json-schema/api/ChangelogEntry.json +2 -2
  330. package/json-schema/api/CheckPermissionRequest.json +2 -2
  331. package/json-schema/api/CheckPermissionResponse.json +2 -2
  332. package/json-schema/api/CodeGenerationTemplate.json +2 -2
  333. package/json-schema/api/CompleteChunkedUploadRequest.json +2 -2
  334. package/json-schema/api/CompleteChunkedUploadResponse.json +2 -2
  335. package/json-schema/api/CompleteUploadRequest.json +2 -2
  336. package/json-schema/api/ConceptListResponse.json +2 -2
  337. package/json-schema/api/ConflictResolutionStrategy.json +2 -2
  338. package/json-schema/api/CreateDataRequest.json +2 -2
  339. package/json-schema/api/CreateDataResponse.json +2 -2
  340. package/json-schema/api/CreateExportJobRequest.json +2 -2
  341. package/json-schema/api/CreateExportJobResponse.json +2 -2
  342. package/json-schema/api/CreateFeedItemRequest.json +2 -2
  343. package/json-schema/api/CreateFeedItemResponse.json +2 -2
  344. package/json-schema/api/CreateFlowRequest.json +2 -2
  345. package/json-schema/api/CreateFlowResponse.json +2 -2
  346. package/json-schema/api/CreateManyDataRequest.json +2 -2
  347. package/json-schema/api/CreateManyDataResponse.json +2 -2
  348. package/json-schema/api/CreateRequest.json +2 -2
  349. package/json-schema/api/CrudEndpointPattern.json +2 -2
  350. package/json-schema/api/CrudEndpointsConfig.json +2 -2
  351. package/json-schema/api/CrudOperation.json +2 -2
  352. package/json-schema/api/CursorMessage.json +2 -2
  353. package/json-schema/api/CursorPosition.json +2 -2
  354. package/json-schema/api/DataLoaderConfig.json +2 -2
  355. package/json-schema/api/DeduplicationStrategy.json +2 -2
  356. package/json-schema/api/DeleteDataRequest.json +2 -2
  357. package/json-schema/api/DeleteDataResponse.json +2 -2
  358. package/json-schema/api/DeleteFeedItemRequest.json +2 -2
  359. package/json-schema/api/DeleteFeedItemResponse.json +2 -2
  360. package/json-schema/api/DeleteFlowRequest.json +2 -2
  361. package/json-schema/api/DeleteFlowResponse.json +2 -2
  362. package/json-schema/api/DeleteManyDataRequest.json +2 -2
  363. package/json-schema/api/DeleteManyDataResponse.json +2 -2
  364. package/json-schema/api/DeleteManyRequest.json +2 -2
  365. package/json-schema/api/DeleteResponse.json +2 -2
  366. package/json-schema/api/DeleteViewRequest.json +2 -2
  367. package/json-schema/api/DeleteViewResponse.json +2 -2
  368. package/json-schema/api/DisablePackageRequest.json +2 -2
  369. package/json-schema/api/DisablePackageResponse.json +2 -2
  370. package/json-schema/api/Discovery.json +2 -2
  371. package/json-schema/api/DispatcherConfig.json +2 -2
  372. package/json-schema/api/DispatcherRoute.json +2 -2
  373. package/json-schema/api/DocumentState.json +2 -2
  374. package/json-schema/api/ETag.json +2 -2
  375. package/json-schema/api/EditMessage.json +2 -2
  376. package/json-schema/api/EditOperation.json +2 -2
  377. package/json-schema/api/EditOperationType.json +2 -2
  378. package/json-schema/api/EnablePackageRequest.json +2 -2
  379. package/json-schema/api/EnablePackageResponse.json +2 -2
  380. package/json-schema/api/EndpointRegistry.json +2 -2
  381. package/json-schema/api/EnhancedApiError.json +2 -2
  382. package/json-schema/api/ErrorCategory.json +2 -2
  383. package/json-schema/api/ErrorHandlingConfig.json +2 -2
  384. package/json-schema/api/ErrorMessage.json +2 -2
  385. package/json-schema/api/ErrorResponse.json +2 -2
  386. package/json-schema/api/EventFilter.json +2 -2
  387. package/json-schema/api/EventFilterCondition.json +2 -2
  388. package/json-schema/api/EventMessage.json +2 -2
  389. package/json-schema/api/EventPattern.json +2 -2
  390. package/json-schema/api/EventSubscription.json +2 -2
  391. package/json-schema/api/ExportFormat.json +2 -2
  392. package/json-schema/api/ExportImportTemplate.json +2 -2
  393. package/json-schema/api/ExportJobProgress.json +2 -2
  394. package/json-schema/api/ExportJobStatus.json +2 -2
  395. package/json-schema/api/ExportJobSummary.json +2 -2
  396. package/json-schema/api/ExportRequest.json +2 -2
  397. package/json-schema/api/FederationEntity.json +2 -2
  398. package/json-schema/api/FederationEntityKey.json +2 -2
  399. package/json-schema/api/FederationExternalField.json +2 -2
  400. package/json-schema/api/FederationGateway.json +2 -2
  401. package/json-schema/api/FederationProvides.json +2 -2
  402. package/json-schema/api/FederationRequires.json +2 -2
  403. package/json-schema/api/FeedApiErrorCode.json +2 -2
  404. package/json-schema/api/FeedItemPathParams.json +2 -2
  405. package/json-schema/api/FeedListFilterType.json +2 -2
  406. package/json-schema/api/FeedPathParams.json +2 -2
  407. package/json-schema/api/FeedUnsubscribeRequest.json +2 -2
  408. package/json-schema/api/FieldError.json +2 -2
  409. package/json-schema/api/FieldMappingEntry.json +2 -2
  410. package/json-schema/api/FileTypeValidation.json +2 -2
  411. package/json-schema/api/FileUploadResponse.json +2 -2
  412. package/json-schema/api/FilterOperator.json +2 -2
  413. package/json-schema/api/FindDataRequest.json +2 -2
  414. package/json-schema/api/FindDataResponse.json +2 -2
  415. package/json-schema/api/FlowSummary.json +2 -2
  416. package/json-schema/api/GeneratedApiDocumentation.json +2 -2
  417. package/json-schema/api/GeneratedEndpoint.json +2 -2
  418. package/json-schema/api/GetAnalyticsMetaRequest.json +2 -2
  419. package/json-schema/api/GetChangelogRequest.json +2 -2
  420. package/json-schema/api/GetChangelogResponse.json +2 -2
  421. package/json-schema/api/GetDataRequest.json +16 -2
  422. package/json-schema/api/GetDataResponse.json +2 -2
  423. package/json-schema/api/GetDiscoveryRequest.json +2 -2
  424. package/json-schema/api/GetDiscoveryResponse.json +2 -2
  425. package/json-schema/api/GetEffectivePermissionsRequest.json +2 -2
  426. package/json-schema/api/GetEffectivePermissionsResponse.json +2 -2
  427. package/json-schema/api/GetExportJobDownloadRequest.json +2 -2
  428. package/json-schema/api/GetExportJobDownloadResponse.json +2 -2
  429. package/json-schema/api/GetFeedRequest.json +2 -2
  430. package/json-schema/api/GetFeedResponse.json +2 -2
  431. package/json-schema/api/GetFieldLabelsRequest.json +2 -2
  432. package/json-schema/api/GetFieldLabelsResponse.json +2 -2
  433. package/json-schema/api/GetFlowRequest.json +2 -2
  434. package/json-schema/api/GetFlowResponse.json +2 -2
  435. package/json-schema/api/GetInstalledPackageRequest.json +2 -2
  436. package/json-schema/api/GetInstalledPackageResponse.json +2 -2
  437. package/json-schema/api/GetLocalesRequest.json +2 -2
  438. package/json-schema/api/GetLocalesResponse.json +2 -2
  439. package/json-schema/api/GetMetaItemCachedRequest.json +2 -2
  440. package/json-schema/api/GetMetaItemCachedResponse.json +2 -2
  441. package/json-schema/api/GetMetaItemRequest.json +2 -2
  442. package/json-schema/api/GetMetaItemResponse.json +2 -2
  443. package/json-schema/api/GetMetaItemsRequest.json +2 -2
  444. package/json-schema/api/GetMetaItemsResponse.json +2 -2
  445. package/json-schema/api/GetMetaTypesRequest.json +2 -2
  446. package/json-schema/api/GetMetaTypesResponse.json +2 -2
  447. package/json-schema/api/GetNotificationPreferencesRequest.json +2 -2
  448. package/json-schema/api/GetNotificationPreferencesResponse.json +2 -2
  449. package/json-schema/api/GetObjectPermissionsRequest.json +2 -2
  450. package/json-schema/api/GetObjectPermissionsResponse.json +2 -2
  451. package/json-schema/api/GetPackageRequest.json +2 -2
  452. package/json-schema/api/GetPackageResponse.json +2 -2
  453. package/json-schema/api/GetPresenceRequest.json +2 -2
  454. package/json-schema/api/GetPresenceResponse.json +2 -2
  455. package/json-schema/api/GetPresignedUrlRequest.json +2 -2
  456. package/json-schema/api/GetRunRequest.json +2 -2
  457. package/json-schema/api/GetRunResponse.json +2 -2
  458. package/json-schema/api/GetTranslationsRequest.json +2 -2
  459. package/json-schema/api/GetTranslationsResponse.json +2 -2
  460. package/json-schema/api/GetUiViewRequest.json +2 -2
  461. package/json-schema/api/GetViewRequest.json +2 -2
  462. package/json-schema/api/GetWorkflowConfigRequest.json +2 -2
  463. package/json-schema/api/GetWorkflowConfigResponse.json +2 -2
  464. package/json-schema/api/GetWorkflowStateRequest.json +2 -2
  465. package/json-schema/api/GetWorkflowStateResponse.json +2 -2
  466. package/json-schema/api/GraphQLConfig.json +2 -2
  467. package/json-schema/api/GraphQLDataLoaderConfig.json +2 -2
  468. package/json-schema/api/GraphQLDirectiveConfig.json +2 -2
  469. package/json-schema/api/GraphQLDirectiveLocation.json +2 -2
  470. package/json-schema/api/GraphQLMutationConfig.json +2 -2
  471. package/json-schema/api/GraphQLPersistedQuery.json +2 -2
  472. package/json-schema/api/GraphQLQueryAdapter.json +2 -2
  473. package/json-schema/api/GraphQLQueryComplexity.json +2 -2
  474. package/json-schema/api/GraphQLQueryConfig.json +2 -2
  475. package/json-schema/api/GraphQLQueryDepthLimit.json +2 -2
  476. package/json-schema/api/GraphQLRateLimit.json +2 -2
  477. package/json-schema/api/GraphQLResolverConfig.json +2 -2
  478. package/json-schema/api/GraphQLScalarType.json +2 -2
  479. package/json-schema/api/GraphQLSubscriptionConfig.json +2 -2
  480. package/json-schema/api/GraphQLTypeConfig.json +2 -2
  481. package/json-schema/api/HttpFindQueryParams.json +53 -0
  482. package/json-schema/api/HttpMethod.json +2 -2
  483. package/json-schema/api/HttpStatusCode.json +2 -2
  484. package/json-schema/api/IdRequest.json +2 -2
  485. package/json-schema/api/ImportValidationConfig.json +2 -2
  486. package/json-schema/api/ImportValidationMode.json +2 -2
  487. package/json-schema/api/ImportValidationResult.json +2 -2
  488. package/json-schema/api/InitiateChunkedUploadRequest.json +2 -2
  489. package/json-schema/api/InitiateChunkedUploadResponse.json +2 -2
  490. package/json-schema/api/InstallPackageRequest.json +2 -2
  491. package/json-schema/api/InstallPackageResponse.json +2 -2
  492. package/json-schema/api/ListExportJobsRequest.json +2 -2
  493. package/json-schema/api/ListExportJobsResponse.json +2 -2
  494. package/json-schema/api/ListFlowsRequest.json +2 -2
  495. package/json-schema/api/ListFlowsResponse.json +2 -2
  496. package/json-schema/api/ListInstalledPackagesRequest.json +2 -2
  497. package/json-schema/api/ListInstalledPackagesResponse.json +2 -2
  498. package/json-schema/api/ListNotificationsRequest.json +2 -2
  499. package/json-schema/api/ListNotificationsResponse.json +2 -2
  500. package/json-schema/api/ListPackagesRequest.json +2 -2
  501. package/json-schema/api/ListPackagesResponse.json +2 -2
  502. package/json-schema/api/ListRecordResponse.json +2 -2
  503. package/json-schema/api/ListRunsRequest.json +2 -2
  504. package/json-schema/api/ListRunsResponse.json +2 -2
  505. package/json-schema/api/ListViewsRequest.json +2 -2
  506. package/json-schema/api/LoginRequest.json +2 -2
  507. package/json-schema/api/LoginType.json +2 -2
  508. package/json-schema/api/MarkAllNotificationsReadRequest.json +2 -2
  509. package/json-schema/api/MarkAllNotificationsReadResponse.json +2 -2
  510. package/json-schema/api/MarkNotificationsReadRequest.json +2 -2
  511. package/json-schema/api/MarkNotificationsReadResponse.json +2 -2
  512. package/json-schema/api/MetadataBulkRegisterRequest.json +2 -2
  513. package/json-schema/api/MetadataBulkResponse.json +2 -2
  514. package/json-schema/api/MetadataBulkUnregisterRequest.json +2 -2
  515. package/json-schema/api/MetadataCacheRequest.json +2 -2
  516. package/json-schema/api/MetadataCacheResponse.json +2 -2
  517. package/json-schema/api/MetadataDeleteResponse.json +2 -2
  518. package/json-schema/api/MetadataDependenciesResponse.json +2 -2
  519. package/json-schema/api/MetadataDependentsResponse.json +2 -2
  520. package/json-schema/api/MetadataEffectiveResponse.json +2 -2
  521. package/json-schema/api/MetadataEndpointsConfig.json +2 -2
  522. package/json-schema/api/MetadataExistsResponse.json +2 -2
  523. package/json-schema/api/MetadataExportRequest.json +2 -2
  524. package/json-schema/api/MetadataExportResponse.json +2 -2
  525. package/json-schema/api/MetadataImportRequest.json +2 -2
  526. package/json-schema/api/MetadataImportResponse.json +2 -2
  527. package/json-schema/api/MetadataItemResponse.json +2 -2
  528. package/json-schema/api/MetadataListResponse.json +2 -2
  529. package/json-schema/api/MetadataNamesResponse.json +2 -2
  530. package/json-schema/api/MetadataOverlayResponse.json +2 -2
  531. package/json-schema/api/MetadataOverlaySaveRequest.json +2 -2
  532. package/json-schema/api/MetadataQueryRequest.json +2 -2
  533. package/json-schema/api/MetadataQueryResponse.json +2 -2
  534. package/json-schema/api/MetadataRegisterRequest.json +2 -2
  535. package/json-schema/api/MetadataTypeInfoResponse.json +2 -2
  536. package/json-schema/api/MetadataTypesResponse.json +2 -2
  537. package/json-schema/api/MetadataValidateRequest.json +2 -2
  538. package/json-schema/api/MetadataValidateResponse.json +2 -2
  539. package/json-schema/api/ModificationResult.json +2 -2
  540. package/json-schema/api/Notification.json +2 -2
  541. package/json-schema/api/NotificationPreferences.json +2 -2
  542. package/json-schema/api/ODataConfig.json +2 -2
  543. package/json-schema/api/ODataError.json +2 -2
  544. package/json-schema/api/ODataFilterFunction.json +2 -2
  545. package/json-schema/api/ODataFilterOperator.json +2 -2
  546. package/json-schema/api/ODataMetadata.json +2 -2
  547. package/json-schema/api/ODataQuery.json +2 -2
  548. package/json-schema/api/ODataQueryAdapter.json +2 -2
  549. package/json-schema/api/ODataResponse.json +2 -2
  550. package/json-schema/api/ObjectDefinitionResponse.json +2 -2
  551. package/json-schema/api/ObjectQLReference.json +2 -2
  552. package/json-schema/api/OpenApi31Extensions.json +2 -2
  553. package/json-schema/api/OpenApiGenerationConfig.json +2 -2
  554. package/json-schema/api/OpenApiSecurityScheme.json +2 -2
  555. package/json-schema/api/OpenApiServer.json +2 -2
  556. package/json-schema/api/OpenApiSpec.json +2 -2
  557. package/json-schema/api/OperatorMapping.json +2 -2
  558. package/json-schema/api/PackageApiErrorCode.json +2 -2
  559. package/json-schema/api/PackageInstallRequest.json +2 -2
  560. package/json-schema/api/PackageInstallResponse.json +2 -2
  561. package/json-schema/api/PackagePathParams.json +2 -2
  562. package/json-schema/api/PackageRollbackRequest.json +2 -2
  563. package/json-schema/api/PackageRollbackResponse.json +2 -2
  564. package/json-schema/api/PackageUpgradeRequest.json +2 -2
  565. package/json-schema/api/PackageUpgradeResponse.json +2 -2
  566. package/json-schema/api/PinFeedItemRequest.json +2 -2
  567. package/json-schema/api/PinFeedItemResponse.json +2 -2
  568. package/json-schema/api/PingMessage.json +2 -2
  569. package/json-schema/api/PongMessage.json +2 -2
  570. package/json-schema/api/PresenceMessage.json +2 -2
  571. package/json-schema/api/PresenceState.json +2 -2
  572. package/json-schema/api/PresenceStatus.json +2 -2
  573. package/json-schema/api/PresenceUpdate.json +2 -2
  574. package/json-schema/api/PresignedUrlResponse.json +2 -2
  575. package/json-schema/api/QueryAdapterConfig.json +2 -2
  576. package/json-schema/api/QueryAdapterTarget.json +2 -2
  577. package/json-schema/api/QueryOptimizationConfig.json +2 -2
  578. package/json-schema/api/RealtimeConfig.json +2 -2
  579. package/json-schema/api/RealtimeConnectRequest.json +2 -2
  580. package/json-schema/api/RealtimeConnectResponse.json +2 -2
  581. package/json-schema/api/RealtimeDisconnectRequest.json +2 -2
  582. package/json-schema/api/RealtimeDisconnectResponse.json +2 -2
  583. package/json-schema/api/RealtimeEvent.json +2 -2
  584. package/json-schema/api/RealtimeEventType.json +2 -2
  585. package/json-schema/api/RealtimePresence.json +2 -2
  586. package/json-schema/api/RealtimeRecordAction.json +2 -2
  587. package/json-schema/api/RealtimeSubscribeRequest.json +2 -2
  588. package/json-schema/api/RealtimeSubscribeResponse.json +2 -2
  589. package/json-schema/api/RealtimeUnsubscribeRequest.json +2 -2
  590. package/json-schema/api/RealtimeUnsubscribeResponse.json +2 -2
  591. package/json-schema/api/RecordData.json +2 -2
  592. package/json-schema/api/RefreshTokenRequest.json +2 -2
  593. package/json-schema/api/RegisterDeviceRequest.json +2 -2
  594. package/json-schema/api/RegisterDeviceResponse.json +2 -2
  595. package/json-schema/api/RegisterRequest.json +2 -2
  596. package/json-schema/api/RemoveReactionRequest.json +2 -2
  597. package/json-schema/api/RemoveReactionResponse.json +2 -2
  598. package/json-schema/api/RequestValidationConfig.json +2 -2
  599. package/json-schema/api/ResolveDependenciesRequest.json +2 -2
  600. package/json-schema/api/ResolveDependenciesResponse.json +2 -2
  601. package/json-schema/api/ResponseEnvelopeConfig.json +2 -2
  602. package/json-schema/api/RestApiConfig.json +2 -2
  603. package/json-schema/api/RestApiEndpoint.json +2 -2
  604. package/json-schema/api/RestApiPluginConfig.json +2 -2
  605. package/json-schema/api/RestApiRouteCategory.json +2 -2
  606. package/json-schema/api/RestApiRouteRegistration.json +2 -2
  607. package/json-schema/api/RestQueryAdapter.json +2 -2
  608. package/json-schema/api/RestServerConfig.json +2 -2
  609. package/json-schema/api/RetryStrategy.json +2 -2
  610. package/json-schema/api/RouteCategory.json +2 -2
  611. package/json-schema/api/RouteDefinition.json +2 -2
  612. package/json-schema/api/RouteGenerationConfig.json +2 -2
  613. package/json-schema/api/RouterConfig.json +2 -2
  614. package/json-schema/api/SaveMetaItemRequest.json +2 -2
  615. package/json-schema/api/SaveMetaItemResponse.json +2 -2
  616. package/json-schema/api/ScheduleExportRequest.json +2 -2
  617. package/json-schema/api/ScheduleExportResponse.json +2 -2
  618. package/json-schema/api/ScheduledExport.json +2 -2
  619. package/json-schema/api/SchemaDefinition.json +2 -2
  620. package/json-schema/api/SearchFeedRequest.json +2 -2
  621. package/json-schema/api/SearchFeedResponse.json +2 -2
  622. package/json-schema/api/ServiceInfo.json +2 -2
  623. package/json-schema/api/Session.json +2 -2
  624. package/json-schema/api/SessionResponse.json +2 -2
  625. package/json-schema/api/SessionUser.json +2 -2
  626. package/json-schema/api/SetPresenceRequest.json +2 -2
  627. package/json-schema/api/SetPresenceResponse.json +2 -2
  628. package/json-schema/api/SimpleCursorPosition.json +2 -2
  629. package/json-schema/api/SimplePresenceState.json +2 -2
  630. package/json-schema/api/SingleRecordResponse.json +2 -2
  631. package/json-schema/api/StandardErrorCode.json +2 -2
  632. package/json-schema/api/StarFeedItemRequest.json +2 -2
  633. package/json-schema/api/StarFeedItemResponse.json +2 -2
  634. package/json-schema/api/SubgraphConfig.json +2 -2
  635. package/json-schema/api/SubscribeMessage.json +2 -2
  636. package/json-schema/api/SubscribeRequest.json +2 -2
  637. package/json-schema/api/SubscribeResponse.json +2 -2
  638. package/json-schema/api/Subscription.json +2 -2
  639. package/json-schema/api/SubscriptionEvent.json +2 -2
  640. package/json-schema/api/ToggleFlowRequest.json +2 -2
  641. package/json-schema/api/ToggleFlowResponse.json +2 -2
  642. package/json-schema/api/TransportProtocol.json +2 -2
  643. package/json-schema/api/TriggerFlowRequest.json +2 -2
  644. package/json-schema/api/TriggerFlowResponse.json +2 -2
  645. package/json-schema/api/UninstallPackageApiRequest.json +2 -2
  646. package/json-schema/api/UninstallPackageApiResponse.json +2 -2
  647. package/json-schema/api/UninstallPackageRequest.json +2 -2
  648. package/json-schema/api/UninstallPackageResponse.json +2 -2
  649. package/json-schema/api/UnpinFeedItemRequest.json +2 -2
  650. package/json-schema/api/UnpinFeedItemResponse.json +2 -2
  651. package/json-schema/api/UnregisterDeviceRequest.json +2 -2
  652. package/json-schema/api/UnregisterDeviceResponse.json +2 -2
  653. package/json-schema/api/UnstarFeedItemRequest.json +2 -2
  654. package/json-schema/api/UnstarFeedItemResponse.json +2 -2
  655. package/json-schema/api/UnsubscribeMessage.json +2 -2
  656. package/json-schema/api/UnsubscribeRequest.json +2 -2
  657. package/json-schema/api/UnsubscribeResponse.json +2 -2
  658. package/json-schema/api/UpdateDataRequest.json +2 -2
  659. package/json-schema/api/UpdateDataResponse.json +2 -2
  660. package/json-schema/api/UpdateFeedItemRequest.json +2 -2
  661. package/json-schema/api/UpdateFeedItemResponse.json +2 -2
  662. package/json-schema/api/UpdateFlowRequest.json +2 -2
  663. package/json-schema/api/UpdateFlowResponse.json +2 -2
  664. package/json-schema/api/UpdateManyDataRequest.json +2 -2
  665. package/json-schema/api/UpdateManyDataResponse.json +2 -2
  666. package/json-schema/api/UpdateManyRequest.json +2 -2
  667. package/json-schema/api/UpdateNotificationPreferencesRequest.json +2 -2
  668. package/json-schema/api/UpdateNotificationPreferencesResponse.json +2 -2
  669. package/json-schema/api/UpdateRequest.json +2 -2
  670. package/json-schema/api/UploadArtifactRequest.json +2 -2
  671. package/json-schema/api/UploadArtifactResponse.json +2 -2
  672. package/json-schema/api/UploadChunkRequest.json +2 -2
  673. package/json-schema/api/UploadChunkResponse.json +2 -2
  674. package/json-schema/api/UploadProgress.json +2 -2
  675. package/json-schema/api/UserProfileResponse.json +2 -2
  676. package/json-schema/api/ValidationMode.json +2 -2
  677. package/json-schema/api/VersionDefinition.json +2 -2
  678. package/json-schema/api/VersionNegotiationResponse.json +2 -2
  679. package/json-schema/api/VersionStatus.json +2 -2
  680. package/json-schema/api/VersioningConfig.json +2 -2
  681. package/json-schema/api/VersioningStrategy.json +2 -2
  682. package/json-schema/api/WebSocketConfig.json +2 -2
  683. package/json-schema/api/WebSocketEvent.json +2 -2
  684. package/json-schema/api/WebSocketMessage.json +2 -2
  685. package/json-schema/api/WebSocketMessageType.json +2 -2
  686. package/json-schema/api/WebSocketPresenceStatus.json +2 -2
  687. package/json-schema/api/WebSocketServerConfig.json +2 -2
  688. package/json-schema/api/WebhookConfig.json +2 -2
  689. package/json-schema/api/WebhookEvent.json +2 -2
  690. package/json-schema/api/WellKnownCapabilities.json +2 -2
  691. package/json-schema/api/WorkflowApproveRequest.json +2 -2
  692. package/json-schema/api/WorkflowApproveResponse.json +2 -2
  693. package/json-schema/api/WorkflowRejectRequest.json +2 -2
  694. package/json-schema/api/WorkflowRejectResponse.json +2 -2
  695. package/json-schema/api/WorkflowState.json +2 -2
  696. package/json-schema/api/WorkflowTransitionRequest.json +2 -2
  697. package/json-schema/api/WorkflowTransitionResponse.json +2 -2
  698. package/json-schema/automation/ActionRef.json +2 -2
  699. package/json-schema/automation/ApprovalAction.json +2 -2
  700. package/json-schema/automation/ApprovalActionType.json +2 -2
  701. package/json-schema/automation/ApprovalProcess.json +2 -2
  702. package/json-schema/automation/ApprovalStep.json +2 -2
  703. package/json-schema/automation/ApproverType.json +2 -2
  704. package/json-schema/automation/AuthField.json +2 -2
  705. package/json-schema/automation/Authentication.json +2 -2
  706. package/json-schema/automation/AuthenticationType.json +2 -2
  707. package/json-schema/automation/BpmnDiagnostic.json +2 -2
  708. package/json-schema/automation/BpmnElementMapping.json +2 -2
  709. package/json-schema/automation/BpmnExportOptions.json +2 -2
  710. package/json-schema/automation/BpmnImportOptions.json +2 -2
  711. package/json-schema/automation/BpmnInteropResult.json +2 -2
  712. package/json-schema/automation/BpmnUnmappedStrategy.json +2 -2
  713. package/json-schema/automation/BpmnVersion.json +2 -2
  714. package/json-schema/automation/Checkpoint.json +2 -2
  715. package/json-schema/automation/ConcurrencyPolicy.json +2 -2
  716. package/json-schema/automation/ConflictResolution.json +2 -2
  717. package/json-schema/automation/Connector.json +2 -2
  718. package/json-schema/automation/ConnectorActionRef.json +2 -2
  719. package/json-schema/automation/ConnectorCategory.json +2 -2
  720. package/json-schema/automation/ConnectorInstance.json +2 -2
  721. package/json-schema/automation/ConnectorOperation.json +2 -2
  722. package/json-schema/automation/ConnectorTrigger.json +2 -2
  723. package/json-schema/automation/CustomScriptAction.json +2 -2
  724. package/json-schema/automation/DataDestinationConfig.json +2 -2
  725. package/json-schema/automation/DataSourceConfig.json +2 -2
  726. package/json-schema/automation/DataSyncConfig.json +2 -2
  727. package/json-schema/automation/ETLDestination.json +2 -2
  728. package/json-schema/automation/ETLEndpointType.json +2 -2
  729. package/json-schema/automation/ETLPipeline.json +2 -2
  730. package/json-schema/automation/ETLPipelineRun.json +2 -2
  731. package/json-schema/automation/ETLRunStatus.json +2 -2
  732. package/json-schema/automation/ETLSource.json +2 -2
  733. package/json-schema/automation/ETLSyncMode.json +2 -2
  734. package/json-schema/automation/ETLTransformation.json +2 -2
  735. package/json-schema/automation/ETLTransformationType.json +2 -2
  736. package/json-schema/automation/EmailAlertAction.json +2 -2
  737. package/json-schema/automation/Event.json +2 -2
  738. package/json-schema/automation/ExecutionError.json +2 -2
  739. package/json-schema/automation/ExecutionErrorSeverity.json +2 -2
  740. package/json-schema/automation/ExecutionLog.json +2 -2
  741. package/json-schema/automation/ExecutionStatus.json +2 -2
  742. package/json-schema/automation/ExecutionStepLog.json +2 -2
  743. package/json-schema/automation/FieldUpdateAction.json +2 -2
  744. package/json-schema/automation/Flow.json +2 -2
  745. package/json-schema/automation/FlowEdge.json +2 -2
  746. package/json-schema/automation/FlowNode.json +2 -2
  747. package/json-schema/automation/FlowNodeAction.json +2 -2
  748. package/json-schema/automation/FlowVariable.json +2 -2
  749. package/json-schema/automation/FlowVersionHistory.json +2 -2
  750. package/json-schema/automation/GuardRef.json +2 -2
  751. package/json-schema/automation/HttpCallAction.json +2 -2
  752. package/json-schema/automation/NodeExecutorDescriptor.json +2 -2
  753. package/json-schema/automation/OAuth2Config.json +2 -2
  754. package/json-schema/automation/OperationParameter.json +2 -2
  755. package/json-schema/automation/OperationType.json +2 -2
  756. package/json-schema/automation/PushNotificationAction.json +2 -2
  757. package/json-schema/automation/ScheduleState.json +2 -2
  758. package/json-schema/automation/StateMachine.json +2 -2
  759. package/json-schema/automation/StateNode.json +2 -2
  760. package/json-schema/automation/SyncDirection.json +2 -2
  761. package/json-schema/automation/SyncExecutionResult.json +2 -2
  762. package/json-schema/automation/SyncExecutionStatus.json +2 -2
  763. package/json-schema/automation/SyncMode.json +2 -2
  764. package/json-schema/automation/TaskCreationAction.json +2 -2
  765. package/json-schema/automation/TimeTrigger.json +2 -2
  766. package/json-schema/automation/Transition.json +2 -2
  767. package/json-schema/automation/WaitEventType.json +2 -2
  768. package/json-schema/automation/WaitExecutorConfig.json +2 -2
  769. package/json-schema/automation/WaitResumePayload.json +2 -2
  770. package/json-schema/automation/WaitTimeoutBehavior.json +2 -2
  771. package/json-schema/automation/Webhook.json +2 -2
  772. package/json-schema/automation/WebhookReceiver.json +2 -2
  773. package/json-schema/automation/WebhookTriggerType.json +2 -2
  774. package/json-schema/automation/WorkflowAction.json +2 -2
  775. package/json-schema/automation/WorkflowRule.json +2 -2
  776. package/json-schema/automation/WorkflowTriggerType.json +2 -2
  777. package/json-schema/cloud/AnalyticsTimeRange.json +2 -2
  778. package/json-schema/cloud/AppDiscoveryRequest.json +2 -2
  779. package/json-schema/cloud/AppDiscoveryResponse.json +2 -2
  780. package/json-schema/cloud/AppSubscription.json +2 -2
  781. package/json-schema/cloud/ArtifactDownloadResponse.json +2 -2
  782. package/json-schema/cloud/ArtifactReference.json +2 -2
  783. package/json-schema/cloud/CreateListingRequest.json +2 -2
  784. package/json-schema/cloud/CuratedCollection.json +2 -2
  785. package/json-schema/cloud/FeaturedListing.json +2 -2
  786. package/json-schema/cloud/InstalledAppSummary.json +2 -2
  787. package/json-schema/cloud/ListInstalledAppsRequest.json +2 -2
  788. package/json-schema/cloud/ListInstalledAppsResponse.json +2 -2
  789. package/json-schema/cloud/ListReviewsRequest.json +2 -2
  790. package/json-schema/cloud/ListReviewsResponse.json +2 -2
  791. package/json-schema/cloud/ListingActionRequest.json +2 -2
  792. package/json-schema/cloud/ListingStatus.json +2 -2
  793. package/json-schema/cloud/MarketplaceCategory.json +2 -2
  794. package/json-schema/cloud/MarketplaceHealthMetrics.json +2 -2
  795. package/json-schema/cloud/MarketplaceInstallRequest.json +2 -2
  796. package/json-schema/cloud/MarketplaceInstallResponse.json +2 -2
  797. package/json-schema/cloud/MarketplaceListing.json +2 -2
  798. package/json-schema/cloud/MarketplaceSearchRequest.json +2 -2
  799. package/json-schema/cloud/MarketplaceSearchResponse.json +2 -2
  800. package/json-schema/cloud/PackageSubmission.json +2 -2
  801. package/json-schema/cloud/PolicyAction.json +2 -2
  802. package/json-schema/cloud/PolicyViolationType.json +2 -2
  803. package/json-schema/cloud/PricingModel.json +2 -2
  804. package/json-schema/cloud/Publisher.json +2 -2
  805. package/json-schema/cloud/PublisherProfile.json +2 -2
  806. package/json-schema/cloud/PublisherVerification.json +2 -2
  807. package/json-schema/cloud/PublishingAnalyticsRequest.json +2 -2
  808. package/json-schema/cloud/PublishingAnalyticsResponse.json +2 -2
  809. package/json-schema/cloud/RecommendationReason.json +2 -2
  810. package/json-schema/cloud/RecommendedApp.json +2 -2
  811. package/json-schema/cloud/RejectionReason.json +2 -2
  812. package/json-schema/cloud/ReleaseChannel.json +2 -2
  813. package/json-schema/cloud/ReviewCriterion.json +2 -2
  814. package/json-schema/cloud/ReviewDecision.json +2 -2
  815. package/json-schema/cloud/ReviewModerationStatus.json +2 -2
  816. package/json-schema/cloud/SubmissionReview.json +2 -2
  817. package/json-schema/cloud/SubmitReviewRequest.json +2 -2
  818. package/json-schema/cloud/SubscriptionStatus.json +2 -2
  819. package/json-schema/cloud/TimeSeriesPoint.json +2 -2
  820. package/json-schema/cloud/TrendingListing.json +2 -2
  821. package/json-schema/cloud/UpdateListingRequest.json +2 -2
  822. package/json-schema/cloud/UserReview.json +2 -2
  823. package/json-schema/cloud/VersionRelease.json +2 -2
  824. package/json-schema/data/Address.json +2 -2
  825. package/json-schema/data/AggregationFunction.json +2 -2
  826. package/json-schema/data/AggregationMetricType.json +2 -2
  827. package/json-schema/data/AggregationNode.json +2 -2
  828. package/json-schema/data/AggregationPipeline.json +2 -2
  829. package/json-schema/data/AggregationStage.json +2 -2
  830. package/json-schema/data/AnalyticsQuery.json +2 -2
  831. package/json-schema/data/ApiMethod.json +2 -2
  832. package/json-schema/data/AsyncValidation.json +2 -2
  833. package/json-schema/data/BaseEngineOptions.json +2 -2
  834. package/json-schema/data/CDCConfig.json +2 -2
  835. package/json-schema/data/ComputedFieldCache.json +2 -2
  836. package/json-schema/data/ConditionalValidation.json +2 -2
  837. package/json-schema/data/ConsistencyLevel.json +2 -2
  838. package/json-schema/data/CrossFieldValidation.json +2 -2
  839. package/json-schema/data/Cube.json +2 -2
  840. package/json-schema/data/CubeJoin.json +2 -2
  841. package/json-schema/data/CurrencyConfig.json +2 -2
  842. package/json-schema/data/CurrencyValue.json +2 -2
  843. package/json-schema/data/CustomValidator.json +2 -2
  844. package/json-schema/data/DataEngineAggregateOptions.json +2 -2
  845. package/json-schema/data/DataEngineAggregateRequest.json +2 -2
  846. package/json-schema/data/DataEngineBatchRequest.json +2 -2
  847. package/json-schema/data/DataEngineCountOptions.json +2 -2
  848. package/json-schema/data/DataEngineCountRequest.json +2 -2
  849. package/json-schema/data/DataEngineDeleteOptions.json +2 -2
  850. package/json-schema/data/DataEngineDeleteRequest.json +2 -2
  851. package/json-schema/data/DataEngineExecuteRequest.json +2 -2
  852. package/json-schema/data/DataEngineFilter.json +2 -2
  853. package/json-schema/data/DataEngineFindOneRequest.json +2 -2
  854. package/json-schema/data/DataEngineFindRequest.json +2 -2
  855. package/json-schema/data/DataEngineInsertOptions.json +2 -2
  856. package/json-schema/data/DataEngineInsertRequest.json +2 -2
  857. package/json-schema/data/DataEngineQueryOptions.json +2 -2
  858. package/json-schema/data/DataEngineRequest.json +2 -2
  859. package/json-schema/data/DataEngineSort.json +2 -2
  860. package/json-schema/data/DataEngineUpdateOptions.json +2 -2
  861. package/json-schema/data/DataEngineUpdateRequest.json +2 -2
  862. package/json-schema/data/DataEngineVectorFindRequest.json +2 -2
  863. package/json-schema/data/DataQualityRules.json +2 -2
  864. package/json-schema/data/DataTypeMapping.json +2 -2
  865. package/json-schema/data/Dataset.json +2 -2
  866. package/json-schema/data/DatasetMode.json +2 -2
  867. package/json-schema/data/Datasource.json +2 -2
  868. package/json-schema/data/DatasourceCapabilities.json +2 -2
  869. package/json-schema/data/Dimension.json +2 -2
  870. package/json-schema/data/DimensionType.json +2 -2
  871. package/json-schema/data/Document.json +2 -2
  872. package/json-schema/data/DocumentTemplate.json +2 -2
  873. package/json-schema/data/DocumentValidationSchema.json +2 -2
  874. package/json-schema/data/DocumentVersion.json +2 -2
  875. package/json-schema/data/DriverCapabilities.json +2 -2
  876. package/json-schema/data/DriverConfig.json +2 -2
  877. package/json-schema/data/DriverDefinition.json +2 -2
  878. package/json-schema/data/DriverOptions.json +2 -2
  879. package/json-schema/data/DriverType.json +2 -2
  880. package/json-schema/data/ESignatureConfig.json +2 -2
  881. package/json-schema/data/EqualityOperator.json +2 -2
  882. package/json-schema/data/ExternalDataSource.json +2 -2
  883. package/json-schema/data/ExternalFieldMapping.json +2 -2
  884. package/json-schema/data/ExternalLookup.json +2 -2
  885. package/json-schema/data/FeedActor.json +2 -2
  886. package/json-schema/data/FeedFilterMode.json +2 -2
  887. package/json-schema/data/FeedItem.json +2 -2
  888. package/json-schema/data/FeedItemType.json +2 -2
  889. package/json-schema/data/FeedVisibility.json +2 -2
  890. package/json-schema/data/Field.json +2 -2
  891. package/json-schema/data/FieldChangeEntry.json +2 -2
  892. package/json-schema/data/FieldMapping.json +2 -2
  893. package/json-schema/data/FieldNode.json +2 -2
  894. package/json-schema/data/FieldReference.json +2 -2
  895. package/json-schema/data/FieldType.json +2 -2
  896. package/json-schema/data/FileAttachmentConfig.json +2 -2
  897. package/json-schema/data/FilterCondition.json +2 -2
  898. package/json-schema/data/FormatValidation.json +2 -2
  899. package/json-schema/data/FullTextSearch.json +2 -2
  900. package/json-schema/data/HookContext.json +2 -2
  901. package/json-schema/data/HookEvent.json +2 -2
  902. package/json-schema/data/Index.json +2 -2
  903. package/json-schema/data/JSONValidation.json +2 -2
  904. package/json-schema/data/JoinNode.json +2 -2
  905. package/json-schema/data/JoinStrategy.json +2 -2
  906. package/json-schema/data/JoinType.json +2 -2
  907. package/json-schema/data/LocationCoordinates.json +2 -2
  908. package/json-schema/data/Mapping.json +2 -2
  909. package/json-schema/data/Mention.json +2 -2
  910. package/json-schema/data/Metric.json +2 -2
  911. package/json-schema/data/NoSQLDataTypeMapping.json +2 -2
  912. package/json-schema/data/NoSQLDatabaseType.json +2 -2
  913. package/json-schema/data/NoSQLDriverConfig.json +2 -2
  914. package/json-schema/data/NoSQLIndex.json +2 -2
  915. package/json-schema/data/NoSQLIndexType.json +2 -2
  916. package/json-schema/data/NoSQLOperationType.json +2 -2
  917. package/json-schema/data/NoSQLQueryOptions.json +2 -2
  918. package/json-schema/data/NoSQLTransactionOptions.json +2 -2
  919. package/json-schema/data/NotificationChannel.json +2 -2
  920. package/json-schema/data/Object.json +2 -2
  921. package/json-schema/data/ObjectCapabilities.json +2 -2
  922. package/json-schema/data/ObjectExtension.json +2 -2
  923. package/json-schema/data/ObjectOwnershipEnum.json +2 -2
  924. package/json-schema/data/PartitioningConfig.json +2 -2
  925. package/json-schema/data/PoolConfig.json +2 -2
  926. package/json-schema/data/Query.json +2 -2
  927. package/json-schema/data/QueryFilter.json +2 -2
  928. package/json-schema/data/Reaction.json +2 -2
  929. package/json-schema/data/RecordSubscription.json +2 -2
  930. package/json-schema/data/ReplicationConfig.json +2 -2
  931. package/json-schema/data/SQLDialect.json +2 -2
  932. package/json-schema/data/SQLDriverConfig.json +2 -2
  933. package/json-schema/data/SSLConfig.json +2 -2
  934. package/json-schema/data/ScriptValidation.json +2 -2
  935. package/json-schema/data/SearchConfig.json +2 -2
  936. package/json-schema/data/SelectOption.json +2 -2
  937. package/json-schema/data/SetOperator.json +2 -2
  938. package/json-schema/data/ShardingConfig.json +2 -2
  939. package/json-schema/data/SoftDeleteConfig.json +2 -2
  940. package/json-schema/data/SortNode.json +2 -2
  941. package/json-schema/data/SpecialOperator.json +2 -2
  942. package/json-schema/data/StateMachineValidation.json +2 -2
  943. package/json-schema/data/StringOperator.json +2 -2
  944. package/json-schema/data/SubscriptionEventType.json +2 -2
  945. package/json-schema/data/TenancyConfig.json +2 -2
  946. package/json-schema/data/TenantDatabaseLifecycle.json +96 -0
  947. package/json-schema/data/TenantResolverStrategy.json +14 -0
  948. package/json-schema/data/TimeUpdateInterval.json +2 -2
  949. package/json-schema/data/TransformType.json +2 -2
  950. package/json-schema/data/TursoGroup.json +38 -0
  951. package/json-schema/data/TursoMultiTenantConfig.json +187 -0
  952. package/json-schema/data/UniquenessValidation.json +2 -2
  953. package/json-schema/data/ValidationRule.json +2 -2
  954. package/json-schema/data/VectorConfig.json +2 -2
  955. package/json-schema/data/VersioningConfig.json +2 -2
  956. package/json-schema/data/WindowFunction.json +2 -2
  957. package/json-schema/data/WindowFunctionNode.json +2 -2
  958. package/json-schema/data/WindowSpec.json +2 -2
  959. package/json-schema/identity/Account.json +2 -2
  960. package/json-schema/identity/ApiKey.json +2 -2
  961. package/json-schema/identity/Invitation.json +2 -2
  962. package/json-schema/identity/InvitationStatus.json +2 -2
  963. package/json-schema/identity/Member.json +2 -2
  964. package/json-schema/identity/Organization.json +2 -2
  965. package/json-schema/identity/Role.json +2 -2
  966. package/json-schema/identity/SCIMAddress.json +2 -2
  967. package/json-schema/identity/SCIMBulkOperation.json +2 -2
  968. package/json-schema/identity/SCIMBulkRequest.json +2 -2
  969. package/json-schema/identity/SCIMBulkResponse.json +2 -2
  970. package/json-schema/identity/SCIMBulkResponseOperation.json +2 -2
  971. package/json-schema/identity/SCIMEmail.json +2 -2
  972. package/json-schema/identity/SCIMEnterpriseUser.json +2 -2
  973. package/json-schema/identity/SCIMError.json +2 -2
  974. package/json-schema/identity/SCIMGroup.json +2 -2
  975. package/json-schema/identity/SCIMGroupReference.json +2 -2
  976. package/json-schema/identity/SCIMListResponse.json +2 -2
  977. package/json-schema/identity/SCIMMemberReference.json +2 -2
  978. package/json-schema/identity/SCIMMeta.json +2 -2
  979. package/json-schema/identity/SCIMName.json +2 -2
  980. package/json-schema/identity/SCIMPatchOperation.json +2 -2
  981. package/json-schema/identity/SCIMPatchRequest.json +2 -2
  982. package/json-schema/identity/SCIMPhoneNumber.json +2 -2
  983. package/json-schema/identity/SCIMUser.json +2 -2
  984. package/json-schema/identity/Session.json +2 -2
  985. package/json-schema/identity/User.json +2 -2
  986. package/json-schema/identity/VerificationToken.json +2 -2
  987. package/json-schema/integration/AckMode.json +2 -2
  988. package/json-schema/integration/ApiVersionConfig.json +2 -2
  989. package/json-schema/integration/BuildConfig.json +2 -2
  990. package/json-schema/integration/CdcConfig.json +2 -2
  991. package/json-schema/integration/CircuitBreakerConfig.json +2 -2
  992. package/json-schema/integration/ConflictResolution.json +2 -2
  993. package/json-schema/integration/Connector.json +2 -2
  994. package/json-schema/integration/ConnectorAction.json +2 -2
  995. package/json-schema/integration/ConnectorHealth.json +2 -2
  996. package/json-schema/integration/ConnectorStatus.json +2 -2
  997. package/json-schema/integration/ConnectorTrigger.json +2 -2
  998. package/json-schema/integration/ConnectorType.json +2 -2
  999. package/json-schema/integration/ConsumerConfig.json +2 -2
  1000. package/json-schema/integration/DataSyncConfig.json +2 -2
  1001. package/json-schema/integration/DatabaseConnector.json +2 -2
  1002. package/json-schema/integration/DatabasePoolConfig.json +2 -2
  1003. package/json-schema/integration/DatabaseProvider.json +2 -2
  1004. package/json-schema/integration/DatabaseTable.json +2 -2
  1005. package/json-schema/integration/DeliveryGuarantee.json +2 -2
  1006. package/json-schema/integration/DeploymentConfig.json +2 -2
  1007. package/json-schema/integration/DlqConfig.json +2 -2
  1008. package/json-schema/integration/DomainConfig.json +2 -2
  1009. package/json-schema/integration/EdgeFunctionConfig.json +2 -2
  1010. package/json-schema/integration/EnvironmentVariables.json +2 -2
  1011. package/json-schema/integration/ErrorCategory.json +2 -2
  1012. package/json-schema/integration/ErrorMappingConfig.json +2 -2
  1013. package/json-schema/integration/ErrorMappingRule.json +2 -2
  1014. package/json-schema/integration/FieldMapping.json +2 -2
  1015. package/json-schema/integration/FileAccessPattern.json +2 -2
  1016. package/json-schema/integration/FileFilterConfig.json +2 -2
  1017. package/json-schema/integration/FileMetadataConfig.json +2 -2
  1018. package/json-schema/integration/FileStorageConnector.json +2 -2
  1019. package/json-schema/integration/FileStorageProvider.json +2 -2
  1020. package/json-schema/integration/FileVersioningConfig.json +2 -2
  1021. package/json-schema/integration/GitHubActionsWorkflow.json +2 -2
  1022. package/json-schema/integration/GitHubCommitConfig.json +2 -2
  1023. package/json-schema/integration/GitHubConnector.json +2 -2
  1024. package/json-schema/integration/GitHubIssueTracking.json +2 -2
  1025. package/json-schema/integration/GitHubProvider.json +2 -2
  1026. package/json-schema/integration/GitHubPullRequestConfig.json +2 -2
  1027. package/json-schema/integration/GitHubReleaseConfig.json +2 -2
  1028. package/json-schema/integration/GitHubRepository.json +2 -2
  1029. package/json-schema/integration/GitRepositoryConfig.json +2 -2
  1030. package/json-schema/integration/HealthCheckConfig.json +2 -2
  1031. package/json-schema/integration/MessageFormat.json +2 -2
  1032. package/json-schema/integration/MessageQueueConnector.json +2 -2
  1033. package/json-schema/integration/MessageQueueProvider.json +2 -2
  1034. package/json-schema/integration/MultipartUploadConfig.json +2 -2
  1035. package/json-schema/integration/ProducerConfig.json +2 -2
  1036. package/json-schema/integration/RateLimitConfig.json +2 -2
  1037. package/json-schema/integration/RateLimitStrategy.json +2 -2
  1038. package/json-schema/integration/RetryConfig.json +2 -2
  1039. package/json-schema/integration/RetryStrategy.json +2 -2
  1040. package/json-schema/integration/SaasConnector.json +2 -2
  1041. package/json-schema/integration/SaasObjectType.json +2 -2
  1042. package/json-schema/integration/SaasProvider.json +2 -2
  1043. package/json-schema/integration/SslConfig.json +2 -2
  1044. package/json-schema/integration/StorageBucket.json +2 -2
  1045. package/json-schema/integration/SyncStrategy.json +2 -2
  1046. package/json-schema/integration/TopicQueue.json +2 -2
  1047. package/json-schema/integration/VercelConnector.json +2 -2
  1048. package/json-schema/integration/VercelFramework.json +2 -2
  1049. package/json-schema/integration/VercelMonitoring.json +2 -2
  1050. package/json-schema/integration/VercelProject.json +2 -2
  1051. package/json-schema/integration/VercelProvider.json +2 -2
  1052. package/json-schema/integration/VercelTeam.json +2 -2
  1053. package/json-schema/integration/WebhookConfig.json +2 -2
  1054. package/json-schema/integration/WebhookEvent.json +2 -2
  1055. package/json-schema/integration/WebhookSignatureAlgorithm.json +2 -2
  1056. package/json-schema/kernel/ActivationEvent.json +2 -2
  1057. package/json-schema/kernel/AdvancedPluginLifecycleConfig.json +2 -2
  1058. package/json-schema/kernel/ArtifactChecksum.json +2 -2
  1059. package/json-schema/kernel/ArtifactFileEntry.json +2 -2
  1060. package/json-schema/kernel/ArtifactSignature.json +2 -2
  1061. package/json-schema/kernel/BreakingChange.json +2 -2
  1062. package/json-schema/kernel/CLICommandContribution.json +2 -2
  1063. package/json-schema/kernel/CapabilityConformanceLevel.json +2 -2
  1064. package/json-schema/kernel/CompatibilityLevel.json +2 -2
  1065. package/json-schema/kernel/CompatibilityMatrixEntry.json +2 -2
  1066. package/json-schema/kernel/CustomizationOrigin.json +2 -2
  1067. package/json-schema/kernel/CustomizationPolicy.json +2 -2
  1068. package/json-schema/kernel/DeadLetterQueueEntry.json +2 -2
  1069. package/json-schema/kernel/DependencyConflict.json +2 -2
  1070. package/json-schema/kernel/DependencyGraph.json +2 -2
  1071. package/json-schema/kernel/DependencyGraphNode.json +2 -2
  1072. package/json-schema/kernel/DependencyResolutionResult.json +2 -2
  1073. package/json-schema/kernel/DependencyStatusEnum.json +2 -2
  1074. package/json-schema/kernel/DeprecationNotice.json +2 -2
  1075. package/json-schema/kernel/DevFixtureConfig.json +2 -2
  1076. package/json-schema/kernel/DevPluginConfig.json +2 -2
  1077. package/json-schema/kernel/DevPluginPreset.json +2 -2
  1078. package/json-schema/kernel/DevServiceOverride.json +2 -2
  1079. package/json-schema/kernel/DevToolsConfig.json +2 -2
  1080. package/json-schema/kernel/DisablePackageRequest.json +2 -2
  1081. package/json-schema/kernel/DisablePackageResponse.json +2 -2
  1082. package/json-schema/kernel/DistributedStateConfig.json +2 -2
  1083. package/json-schema/kernel/DynamicLoadRequest.json +2 -2
  1084. package/json-schema/kernel/DynamicLoadingConfig.json +2 -2
  1085. package/json-schema/kernel/DynamicPluginOperation.json +2 -2
  1086. package/json-schema/kernel/DynamicPluginResult.json +2 -2
  1087. package/json-schema/kernel/DynamicUnloadRequest.json +2 -2
  1088. package/json-schema/kernel/EnablePackageRequest.json +2 -2
  1089. package/json-schema/kernel/EnablePackageResponse.json +2 -2
  1090. package/json-schema/kernel/Event.json +2 -2
  1091. package/json-schema/kernel/EventBusConfig.json +2 -2
  1092. package/json-schema/kernel/EventHandler.json +2 -2
  1093. package/json-schema/kernel/EventLogEntry.json +2 -2
  1094. package/json-schema/kernel/EventMessageQueueConfig.json +2 -2
  1095. package/json-schema/kernel/EventMetadata.json +2 -2
  1096. package/json-schema/kernel/EventPersistence.json +2 -2
  1097. package/json-schema/kernel/EventPhase.json +2 -2
  1098. package/json-schema/kernel/EventPriority.json +2 -2
  1099. package/json-schema/kernel/EventQueueConfig.json +2 -2
  1100. package/json-schema/kernel/EventReplayConfig.json +2 -2
  1101. package/json-schema/kernel/EventRoute.json +2 -2
  1102. package/json-schema/kernel/EventSourcingConfig.json +2 -2
  1103. package/json-schema/kernel/EventTypeDefinition.json +2 -2
  1104. package/json-schema/kernel/EventWebhookConfig.json +2 -2
  1105. package/json-schema/kernel/ExecutionContext.json +2 -2
  1106. package/json-schema/kernel/ExtensionPoint.json +2 -2
  1107. package/json-schema/kernel/FeatureFlag.json +2 -2
  1108. package/json-schema/kernel/FeatureStrategy.json +2 -2
  1109. package/json-schema/kernel/FieldChange.json +2 -2
  1110. package/json-schema/kernel/GetPackageRequest.json +2 -2
  1111. package/json-schema/kernel/GetPackageResponse.json +2 -2
  1112. package/json-schema/kernel/GracefulDegradation.json +2 -2
  1113. package/json-schema/kernel/HealthStatus.json +2 -2
  1114. package/json-schema/kernel/HookRegisteredEvent.json +2 -2
  1115. package/json-schema/kernel/HookTriggeredEvent.json +2 -2
  1116. package/json-schema/kernel/HotReloadConfig.json +2 -2
  1117. package/json-schema/kernel/InstallPackageRequest.json +2 -2
  1118. package/json-schema/kernel/InstallPackageResponse.json +2 -2
  1119. package/json-schema/kernel/InstalledPackage.json +2 -2
  1120. package/json-schema/kernel/KernelContext.json +2 -2
  1121. package/json-schema/kernel/KernelEventBase.json +2 -2
  1122. package/json-schema/kernel/KernelReadyEvent.json +2 -2
  1123. package/json-schema/kernel/KernelSecurityPolicy.json +2 -2
  1124. package/json-schema/kernel/KernelSecurityScanResult.json +2 -2
  1125. package/json-schema/kernel/KernelSecurityVulnerability.json +2 -2
  1126. package/json-schema/kernel/KernelShutdownEvent.json +2 -2
  1127. package/json-schema/kernel/ListPackagesRequest.json +2 -2
  1128. package/json-schema/kernel/ListPackagesResponse.json +2 -2
  1129. package/json-schema/kernel/Manifest.json +2 -2
  1130. package/json-schema/kernel/MergeConflict.json +2 -2
  1131. package/json-schema/kernel/MergeResult.json +2 -2
  1132. package/json-schema/kernel/MergeStrategyConfig.json +2 -2
  1133. package/json-schema/kernel/MetadataBulkRegisterRequest.json +2 -2
  1134. package/json-schema/kernel/MetadataBulkResult.json +2 -2
  1135. package/json-schema/kernel/MetadataCategoryEnum.json +2 -2
  1136. package/json-schema/kernel/MetadataChangeType.json +2 -2
  1137. package/json-schema/kernel/MetadataCollectionInfo.json +2 -2
  1138. package/json-schema/kernel/MetadataDependency.json +2 -2
  1139. package/json-schema/kernel/MetadataDiffItem.json +2 -2
  1140. package/json-schema/kernel/MetadataEvent.json +2 -2
  1141. package/json-schema/kernel/MetadataExportOptions.json +2 -2
  1142. package/json-schema/kernel/MetadataFallbackStrategy.json +2 -2
  1143. package/json-schema/kernel/MetadataFormat.json +2 -2
  1144. package/json-schema/kernel/MetadataImportOptions.json +2 -2
  1145. package/json-schema/kernel/MetadataLoadOptions.json +2 -2
  1146. package/json-schema/kernel/MetadataLoadResult.json +2 -2
  1147. package/json-schema/kernel/MetadataLoaderContract.json +2 -2
  1148. package/json-schema/kernel/MetadataManagerConfig.json +2 -2
  1149. package/json-schema/kernel/MetadataOverlay.json +2 -2
  1150. package/json-schema/kernel/MetadataPluginConfig.json +2 -2
  1151. package/json-schema/kernel/MetadataPluginManifest.json +2 -2
  1152. package/json-schema/kernel/MetadataQuery.json +2 -2
  1153. package/json-schema/kernel/MetadataQueryResult.json +2 -2
  1154. package/json-schema/kernel/MetadataSaveOptions.json +2 -2
  1155. package/json-schema/kernel/MetadataSaveResult.json +2 -2
  1156. package/json-schema/kernel/MetadataStats.json +2 -2
  1157. package/json-schema/kernel/MetadataType.json +2 -2
  1158. package/json-schema/kernel/MetadataTypeRegistryEntry.json +2 -2
  1159. package/json-schema/kernel/MetadataValidationResult.json +2 -2
  1160. package/json-schema/kernel/MetadataWatchEvent.json +2 -2
  1161. package/json-schema/kernel/MultiVersionSupport.json +2 -2
  1162. package/json-schema/kernel/NamespaceConflictError.json +2 -2
  1163. package/json-schema/kernel/NamespaceRegistryEntry.json +2 -2
  1164. package/json-schema/kernel/OclifPluginConfig.json +2 -2
  1165. package/json-schema/kernel/OpsDomainModule.json +2 -2
  1166. package/json-schema/kernel/OpsFilePath.json +2 -2
  1167. package/json-schema/kernel/OpsPluginStructure.json +2 -2
  1168. package/json-schema/kernel/PackageArtifact.json +2 -2
  1169. package/json-schema/kernel/PackageDependency.json +2 -2
  1170. package/json-schema/kernel/PackageDependencyConflict.json +2 -2
  1171. package/json-schema/kernel/PackageDependencyResolutionResult.json +2 -2
  1172. package/json-schema/kernel/PackageStatusEnum.json +2 -2
  1173. package/json-schema/kernel/Permission.json +2 -2
  1174. package/json-schema/kernel/PermissionAction.json +2 -2
  1175. package/json-schema/kernel/PermissionScope.json +2 -2
  1176. package/json-schema/kernel/PermissionSet.json +2 -2
  1177. package/json-schema/kernel/PluginBuildOptions.json +2 -2
  1178. package/json-schema/kernel/PluginBuildResult.json +2 -2
  1179. package/json-schema/kernel/PluginCaching.json +2 -2
  1180. package/json-schema/kernel/PluginCapability.json +2 -2
  1181. package/json-schema/kernel/PluginCapabilityManifest.json +2 -2
  1182. package/json-schema/kernel/PluginCodeSplitting.json +2 -2
  1183. package/json-schema/kernel/PluginCompatibilityMatrix.json +2 -2
  1184. package/json-schema/kernel/PluginDependency.json +2 -2
  1185. package/json-schema/kernel/PluginDependencyResolution.json +2 -2
  1186. package/json-schema/kernel/PluginDependencyResolutionResult.json +2 -2
  1187. package/json-schema/kernel/PluginDiscoveryConfig.json +2 -2
  1188. package/json-schema/kernel/PluginDiscoverySource.json +2 -2
  1189. package/json-schema/kernel/PluginDynamicImport.json +2 -2
  1190. package/json-schema/kernel/PluginErrorEvent.json +2 -2
  1191. package/json-schema/kernel/PluginEventBase.json +2 -2
  1192. package/json-schema/kernel/PluginHealthCheck.json +2 -2
  1193. package/json-schema/kernel/PluginHealthReport.json +2 -2
  1194. package/json-schema/kernel/PluginHealthStatus.json +2 -2
  1195. package/json-schema/kernel/PluginHotReload.json +2 -2
  1196. package/json-schema/kernel/PluginInitialization.json +2 -2
  1197. package/json-schema/kernel/PluginInstallConfig.json +2 -2
  1198. package/json-schema/kernel/PluginInterface.json +2 -2
  1199. package/json-schema/kernel/PluginLifecycleEventType.json +2 -2
  1200. package/json-schema/kernel/PluginLifecyclePhaseEvent.json +2 -2
  1201. package/json-schema/kernel/PluginLoadingConfig.json +2 -2
  1202. package/json-schema/kernel/PluginLoadingEvent.json +2 -2
  1203. package/json-schema/kernel/PluginLoadingState.json +2 -2
  1204. package/json-schema/kernel/PluginLoadingStrategy.json +2 -2
  1205. package/json-schema/kernel/PluginMetadata.json +2 -2
  1206. package/json-schema/kernel/PluginPerformanceMonitoring.json +2 -2
  1207. package/json-schema/kernel/PluginPreloadConfig.json +2 -2
  1208. package/json-schema/kernel/PluginProvenance.json +2 -2
  1209. package/json-schema/kernel/PluginPublishOptions.json +2 -2
  1210. package/json-schema/kernel/PluginPublishResult.json +2 -2
  1211. package/json-schema/kernel/PluginQualityMetrics.json +2 -2
  1212. package/json-schema/kernel/PluginRegisteredEvent.json +2 -2
  1213. package/json-schema/kernel/PluginRegistryEntry.json +2 -2
  1214. package/json-schema/kernel/PluginSandboxing.json +2 -2
  1215. package/json-schema/kernel/PluginSearchFilters.json +2 -2
  1216. package/json-schema/kernel/PluginSecurityManifest.json +2 -2
  1217. package/json-schema/kernel/PluginSource.json +2 -2
  1218. package/json-schema/kernel/PluginStartupResult.json +2 -2
  1219. package/json-schema/kernel/PluginStateSnapshot.json +2 -2
  1220. package/json-schema/kernel/PluginStatistics.json +2 -2
  1221. package/json-schema/kernel/PluginTrustLevel.json +2 -2
  1222. package/json-schema/kernel/PluginTrustScore.json +2 -2
  1223. package/json-schema/kernel/PluginUpdateStrategy.json +2 -2
  1224. package/json-schema/kernel/PluginValidateOptions.json +2 -2
  1225. package/json-schema/kernel/PluginValidateResult.json +2 -2
  1226. package/json-schema/kernel/PluginVendor.json +2 -2
  1227. package/json-schema/kernel/PluginVersionMetadata.json +2 -2
  1228. package/json-schema/kernel/PreviewModeConfig.json +2 -2
  1229. package/json-schema/kernel/ProtocolFeature.json +2 -2
  1230. package/json-schema/kernel/ProtocolReference.json +2 -2
  1231. package/json-schema/kernel/ProtocolVersion.json +2 -2
  1232. package/json-schema/kernel/RealTimeNotificationConfig.json +2 -2
  1233. package/json-schema/kernel/RequiredAction.json +2 -2
  1234. package/json-schema/kernel/ResolvedDependency.json +2 -2
  1235. package/json-schema/kernel/ResourceType.json +2 -2
  1236. package/json-schema/kernel/RollbackPackageRequest.json +2 -2
  1237. package/json-schema/kernel/RollbackPackageResponse.json +2 -2
  1238. package/json-schema/kernel/RuntimeConfig.json +2 -2
  1239. package/json-schema/kernel/RuntimeMode.json +2 -2
  1240. package/json-schema/kernel/SBOM.json +2 -2
  1241. package/json-schema/kernel/SBOMEntry.json +2 -2
  1242. package/json-schema/kernel/SandboxConfig.json +2 -2
  1243. package/json-schema/kernel/ScopeConfig.json +2 -2
  1244. package/json-schema/kernel/ScopeInfo.json +2 -2
  1245. package/json-schema/kernel/SecurityPolicy.json +2 -2
  1246. package/json-schema/kernel/SecurityScanResult.json +2 -2
  1247. package/json-schema/kernel/SecurityVulnerability.json +2 -2
  1248. package/json-schema/kernel/SemanticVersion.json +2 -2
  1249. package/json-schema/kernel/ServiceFactoryRegistration.json +2 -2
  1250. package/json-schema/kernel/ServiceMetadata.json +2 -2
  1251. package/json-schema/kernel/ServiceRegisteredEvent.json +2 -2
  1252. package/json-schema/kernel/ServiceRegistryConfig.json +2 -2
  1253. package/json-schema/kernel/ServiceScopeType.json +2 -2
  1254. package/json-schema/kernel/ServiceUnregisteredEvent.json +2 -2
  1255. package/json-schema/kernel/StartupOptions.json +2 -2
  1256. package/json-schema/kernel/StartupOrchestrationResult.json +2 -2
  1257. package/json-schema/kernel/TenantRuntimeContext.json +194 -0
  1258. package/json-schema/kernel/UninstallPackageRequest.json +2 -2
  1259. package/json-schema/kernel/UninstallPackageResponse.json +2 -2
  1260. package/json-schema/kernel/UpgradeContext.json +2 -2
  1261. package/json-schema/kernel/UpgradeImpactLevel.json +2 -2
  1262. package/json-schema/kernel/UpgradePackageRequest.json +2 -2
  1263. package/json-schema/kernel/UpgradePackageResponse.json +2 -2
  1264. package/json-schema/kernel/UpgradePhase.json +2 -2
  1265. package/json-schema/kernel/UpgradePlan.json +2 -2
  1266. package/json-schema/kernel/UpgradeSnapshot.json +2 -2
  1267. package/json-schema/kernel/ValidationError.json +2 -2
  1268. package/json-schema/kernel/ValidationFinding.json +2 -2
  1269. package/json-schema/kernel/ValidationResult.json +2 -2
  1270. package/json-schema/kernel/ValidationSeverityEnum.json +2 -2
  1271. package/json-schema/kernel/ValidationWarning.json +2 -2
  1272. package/json-schema/kernel/VersionConstraint.json +2 -2
  1273. package/json-schema/kernel/VulnerabilitySeverity.json +2 -2
  1274. package/json-schema/objectstack.json +8136 -3411
  1275. package/json-schema/openapi.json +1 -1
  1276. package/json-schema/qa/TestAction.json +2 -2
  1277. package/json-schema/qa/TestActionType.json +2 -2
  1278. package/json-schema/qa/TestAssertion.json +2 -2
  1279. package/json-schema/qa/TestAssertionType.json +2 -2
  1280. package/json-schema/qa/TestContext.json +2 -2
  1281. package/json-schema/qa/TestScenario.json +2 -2
  1282. package/json-schema/qa/TestStep.json +2 -2
  1283. package/json-schema/qa/TestSuite.json +2 -2
  1284. package/json-schema/security/AuditPolicy.json +2 -2
  1285. package/json-schema/security/CriteriaSharingRule.json +2 -2
  1286. package/json-schema/security/FieldPermission.json +2 -2
  1287. package/json-schema/security/NetworkPolicy.json +2 -2
  1288. package/json-schema/security/OWDModel.json +2 -2
  1289. package/json-schema/security/ObjectPermission.json +2 -2
  1290. package/json-schema/security/OwnerSharingRule.json +2 -2
  1291. package/json-schema/security/PasswordPolicy.json +2 -2
  1292. package/json-schema/security/PermissionSet.json +2 -2
  1293. package/json-schema/security/Policy.json +2 -2
  1294. package/json-schema/security/RLSAuditConfig.json +2 -2
  1295. package/json-schema/security/RLSAuditEvent.json +2 -2
  1296. package/json-schema/security/RLSConfig.json +2 -2
  1297. package/json-schema/security/RLSEvaluationResult.json +2 -2
  1298. package/json-schema/security/RLSOperation.json +2 -2
  1299. package/json-schema/security/RLSUserContext.json +2 -2
  1300. package/json-schema/security/RowLevelSecurityPolicy.json +2 -2
  1301. package/json-schema/security/SessionPolicy.json +2 -2
  1302. package/json-schema/security/ShareRecipientType.json +2 -2
  1303. package/json-schema/security/SharingLevel.json +2 -2
  1304. package/json-schema/security/SharingRule.json +2 -2
  1305. package/json-schema/security/SharingRuleType.json +2 -2
  1306. package/json-schema/security/Territory.json +2 -2
  1307. package/json-schema/security/TerritoryModel.json +2 -2
  1308. package/json-schema/security/TerritoryType.json +2 -2
  1309. package/json-schema/shared/AggregationFunctionEnum.json +2 -2
  1310. package/json-schema/shared/AppName.json +2 -2
  1311. package/json-schema/shared/BaseMetadataRecord.json +2 -2
  1312. package/json-schema/shared/CacheStrategyEnum.json +2 -2
  1313. package/json-schema/shared/CorsConfig.json +2 -2
  1314. package/json-schema/shared/EventName.json +2 -2
  1315. package/json-schema/shared/FieldMapping.json +2 -2
  1316. package/json-schema/shared/FieldName.json +2 -2
  1317. package/json-schema/shared/FlowName.json +2 -2
  1318. package/json-schema/shared/HttpMethod.json +3 -5
  1319. package/json-schema/shared/HttpRequest.json +50 -0
  1320. package/json-schema/shared/IsolationLevelEnum.json +2 -2
  1321. package/json-schema/shared/MetadataFormat.json +2 -2
  1322. package/json-schema/shared/MutationEventEnum.json +2 -2
  1323. package/json-schema/shared/ObjectName.json +2 -2
  1324. package/json-schema/shared/RateLimitConfig.json +2 -2
  1325. package/json-schema/shared/RoleName.json +2 -2
  1326. package/json-schema/shared/SnakeCaseIdentifier.json +2 -2
  1327. package/json-schema/shared/SortDirectionEnum.json +2 -2
  1328. package/json-schema/shared/SortItem.json +2 -2
  1329. package/json-schema/shared/StaticMount.json +2 -2
  1330. package/json-schema/shared/SystemIdentifier.json +2 -2
  1331. package/json-schema/shared/TransformType.json +2 -2
  1332. package/json-schema/shared/ViewName.json +2 -2
  1333. package/json-schema/studio/ActionContribution.json +2 -2
  1334. package/json-schema/studio/ActionLocation.json +2 -2
  1335. package/json-schema/studio/ActivationEvent.json +2 -2
  1336. package/json-schema/studio/CanvasSnapSettings.json +2 -2
  1337. package/json-schema/studio/CanvasZoomSettings.json +2 -2
  1338. package/json-schema/studio/CommandContribution.json +2 -2
  1339. package/json-schema/studio/ERDiagramConfig.json +2 -2
  1340. package/json-schema/studio/ERLayoutAlgorithm.json +2 -2
  1341. package/json-schema/studio/ERNodeDisplay.json +2 -2
  1342. package/json-schema/studio/ElementPaletteItem.json +2 -2
  1343. package/json-schema/studio/FieldEditorConfig.json +2 -2
  1344. package/json-schema/studio/FieldGroup.json +2 -2
  1345. package/json-schema/studio/FieldPropertySection.json +2 -2
  1346. package/json-schema/studio/FlowBuilderConfig.json +2 -2
  1347. package/json-schema/studio/FlowCanvasEdge.json +2 -2
  1348. package/json-schema/studio/FlowCanvasEdgeStyle.json +2 -2
  1349. package/json-schema/studio/FlowCanvasNode.json +2 -2
  1350. package/json-schema/studio/FlowLayoutAlgorithm.json +2 -2
  1351. package/json-schema/studio/FlowLayoutDirection.json +2 -2
  1352. package/json-schema/studio/FlowNodeRenderDescriptor.json +2 -2
  1353. package/json-schema/studio/FlowNodeShape.json +2 -2
  1354. package/json-schema/studio/InterfaceBuilderConfig.json +2 -2
  1355. package/json-schema/studio/MetadataIconContribution.json +2 -2
  1356. package/json-schema/studio/MetadataViewerContribution.json +2 -2
  1357. package/json-schema/studio/ObjectDesignerConfig.json +2 -2
  1358. package/json-schema/studio/ObjectDesignerDefaultView.json +2 -2
  1359. package/json-schema/studio/ObjectFilter.json +2 -2
  1360. package/json-schema/studio/ObjectListDisplayMode.json +2 -2
  1361. package/json-schema/studio/ObjectManagerConfig.json +2 -2
  1362. package/json-schema/studio/ObjectPreviewConfig.json +2 -2
  1363. package/json-schema/studio/ObjectPreviewTab.json +2 -2
  1364. package/json-schema/studio/ObjectSortField.json +2 -2
  1365. package/json-schema/studio/PageBuilderConfig.json +2 -2
  1366. package/json-schema/studio/PanelContribution.json +2 -2
  1367. package/json-schema/studio/PanelLocation.json +2 -2
  1368. package/json-schema/studio/RelationshipDisplay.json +2 -2
  1369. package/json-schema/studio/RelationshipMapperConfig.json +2 -2
  1370. package/json-schema/studio/SidebarGroupContribution.json +2 -2
  1371. package/json-schema/studio/StudioPluginContributions.json +2 -2
  1372. package/json-schema/studio/StudioPluginManifest.json +2 -2
  1373. package/json-schema/studio/ViewMode.json +2 -2
  1374. package/json-schema/system/AccessControlConfig.json +2 -2
  1375. package/json-schema/system/AddFieldOperation.json +2 -2
  1376. package/json-schema/system/AnalyzerConfig.json +2 -2
  1377. package/json-schema/system/AppCompatibilityCheck.json +56 -0
  1378. package/json-schema/system/AppInstallRequest.json +38 -0
  1379. package/json-schema/system/AppInstallResult.json +63 -0
  1380. package/json-schema/system/AppManifest.json +93 -0
  1381. package/json-schema/system/AuditConfig.json +2 -2
  1382. package/json-schema/system/AuditEvent.json +2 -2
  1383. package/json-schema/system/AuditEventActor.json +2 -2
  1384. package/json-schema/system/AuditEventChange.json +2 -2
  1385. package/json-schema/system/AuditEventFilter.json +2 -2
  1386. package/json-schema/system/AuditEventSeverity.json +2 -2
  1387. package/json-schema/system/AuditEventTarget.json +2 -2
  1388. package/json-schema/system/AuditEventType.json +2 -2
  1389. package/json-schema/system/AuditFinding.json +97 -0
  1390. package/json-schema/system/AuditFindingSeverity.json +12 -0
  1391. package/json-schema/system/AuditFindingStatus.json +14 -0
  1392. package/json-schema/system/AuditLogConfig.json +2 -2
  1393. package/json-schema/system/AuditRetentionPolicy.json +2 -2
  1394. package/json-schema/system/AuditSchedule.json +167 -0
  1395. package/json-schema/system/AuditStorageConfig.json +2 -2
  1396. package/json-schema/system/AuthConfig.json +2 -2
  1397. package/json-schema/system/AuthPluginConfig.json +2 -2
  1398. package/json-schema/system/AuthProviderConfig.json +2 -2
  1399. package/json-schema/system/AwarenessEvent.json +2 -2
  1400. package/json-schema/system/AwarenessSession.json +2 -2
  1401. package/json-schema/system/AwarenessUpdate.json +2 -2
  1402. package/json-schema/system/AwarenessUserState.json +2 -2
  1403. package/json-schema/system/BackupConfig.json +2 -2
  1404. package/json-schema/system/BackupRetention.json +2 -2
  1405. package/json-schema/system/BackupStrategy.json +2 -2
  1406. package/json-schema/system/BatchProgress.json +2 -2
  1407. package/json-schema/system/BucketConfig.json +2 -2
  1408. package/json-schema/system/CRDTMergeResult.json +2 -2
  1409. package/json-schema/system/CRDTState.json +2 -2
  1410. package/json-schema/system/CRDTType.json +2 -2
  1411. package/json-schema/system/CacheAvalanchePrevention.json +2 -2
  1412. package/json-schema/system/CacheConfig.json +2 -2
  1413. package/json-schema/system/CacheConsistency.json +2 -2
  1414. package/json-schema/system/CacheInvalidation.json +2 -2
  1415. package/json-schema/system/CacheStrategy.json +2 -2
  1416. package/json-schema/system/CacheTier.json +2 -2
  1417. package/json-schema/system/CacheWarmup.json +2 -2
  1418. package/json-schema/system/ChangeImpact.json +2 -2
  1419. package/json-schema/system/ChangePriority.json +2 -2
  1420. package/json-schema/system/ChangeRequest.json +62 -2
  1421. package/json-schema/system/ChangeSchema.json +51 -0
  1422. package/json-schema/system/ChangeSet.json +2 -2
  1423. package/json-schema/system/ChangeStatus.json +2 -2
  1424. package/json-schema/system/ChangeType.json +2 -2
  1425. package/json-schema/system/CollaborationMode.json +2 -2
  1426. package/json-schema/system/CollaborationSession.json +2 -2
  1427. package/json-schema/system/CollaborationSessionConfig.json +2 -2
  1428. package/json-schema/system/CollaborativeCursor.json +2 -2
  1429. package/json-schema/system/ComplianceAuditRequirement.json +2 -2
  1430. package/json-schema/system/ComplianceConfig.json +171 -3
  1431. package/json-schema/system/ComplianceEncryptionRequirement.json +4 -3
  1432. package/json-schema/system/ComplianceFramework.json +15 -0
  1433. package/json-schema/system/ConsoleDestinationConfig.json +2 -2
  1434. package/json-schema/system/ConsumerConfig.json +2 -2
  1435. package/json-schema/system/CoreServiceName.json +2 -2
  1436. package/json-schema/system/CounterOperation.json +2 -2
  1437. package/json-schema/system/CreateObjectOperation.json +2 -2
  1438. package/json-schema/system/CronSchedule.json +2 -2
  1439. package/json-schema/system/CursorColorPreset.json +2 -2
  1440. package/json-schema/system/CursorSelection.json +2 -2
  1441. package/json-schema/system/CursorStyle.json +2 -2
  1442. package/json-schema/system/CursorUpdate.json +2 -2
  1443. package/json-schema/system/DataClassification.json +16 -0
  1444. package/json-schema/system/DataClassificationPolicy.json +2 -2
  1445. package/json-schema/system/DatabaseLevelIsolationStrategy.json +2 -2
  1446. package/json-schema/system/DatabaseProvider.json +12 -0
  1447. package/json-schema/system/DeadLetterQueue.json +2 -2
  1448. package/json-schema/system/DeleteObjectOperation.json +2 -2
  1449. package/json-schema/system/DeployBundle.json +139 -0
  1450. package/json-schema/system/DeployDiff.json +106 -0
  1451. package/json-schema/system/DeployManifest.json +64 -0
  1452. package/json-schema/system/DeployStatusEnum.json +16 -0
  1453. package/json-schema/system/DeployValidationIssue.json +36 -0
  1454. package/json-schema/system/DeployValidationResult.json +72 -0
  1455. package/json-schema/system/DisasterRecoveryPlan.json +2 -2
  1456. package/json-schema/system/DistributedCacheConfig.json +2 -2
  1457. package/json-schema/system/EmailTemplate.json +2 -2
  1458. package/json-schema/system/EncryptionAlgorithm.json +2 -2
  1459. package/json-schema/system/EncryptionConfig.json +2 -2
  1460. package/json-schema/system/ExecuteSqlOperation.json +2 -2
  1461. package/json-schema/system/ExtendedLogLevel.json +2 -2
  1462. package/json-schema/system/ExternalServiceDestinationConfig.json +2 -2
  1463. package/json-schema/system/FacetConfig.json +2 -2
  1464. package/json-schema/system/FailoverConfig.json +2 -2
  1465. package/json-schema/system/FailoverMode.json +2 -2
  1466. package/json-schema/system/Feature.json +2 -2
  1467. package/json-schema/system/FieldEncryption.json +2 -2
  1468. package/json-schema/system/FieldTranslation.json +2 -2
  1469. package/json-schema/system/FileDestinationConfig.json +2 -2
  1470. package/json-schema/system/FileMetadata.json +2 -2
  1471. package/json-schema/system/GCounter.json +2 -2
  1472. package/json-schema/system/GDPRConfig.json +2 -2
  1473. package/json-schema/system/HIPAAConfig.json +2 -2
  1474. package/json-schema/system/HistogramBucketConfig.json +2 -2
  1475. package/json-schema/system/HttpDestinationConfig.json +2 -2
  1476. package/json-schema/system/HttpServerConfig.json +2 -2
  1477. package/json-schema/system/InAppNotification.json +2 -2
  1478. package/json-schema/system/Incident.json +193 -0
  1479. package/json-schema/system/IncidentCategory.json +19 -0
  1480. package/json-schema/system/IncidentNotificationMatrix.json +91 -0
  1481. package/json-schema/system/IncidentNotificationRule.json +62 -0
  1482. package/json-schema/system/IncidentResponsePhase.json +48 -0
  1483. package/json-schema/system/IncidentResponsePolicy.json +142 -0
  1484. package/json-schema/system/IncidentSeverity.json +12 -0
  1485. package/json-schema/system/IncidentStatus.json +16 -0
  1486. package/json-schema/system/IntervalSchedule.json +2 -2
  1487. package/json-schema/system/Job.json +2 -2
  1488. package/json-schema/system/JobExecution.json +2 -2
  1489. package/json-schema/system/JobExecutionStatus.json +2 -2
  1490. package/json-schema/system/KernelServiceMap.json +2 -2
  1491. package/json-schema/system/KeyManagementProvider.json +2 -2
  1492. package/json-schema/system/KeyRotationPolicy.json +2 -2
  1493. package/json-schema/system/LWWRegister.json +2 -2
  1494. package/json-schema/system/LevelIsolationStrategySchema.json +2 -2
  1495. package/json-schema/system/License.json +2 -2
  1496. package/json-schema/system/LicenseMetricType.json +2 -2
  1497. package/json-schema/system/LifecycleAction.json +2 -2
  1498. package/json-schema/system/LifecyclePolicyConfig.json +2 -2
  1499. package/json-schema/system/LifecyclePolicyRule.json +2 -2
  1500. package/json-schema/system/Locale.json +2 -2
  1501. package/json-schema/system/LogDestination.json +2 -2
  1502. package/json-schema/system/LogDestinationType.json +2 -2
  1503. package/json-schema/system/LogEnrichmentConfig.json +2 -2
  1504. package/json-schema/system/LogEntry.json +2 -2
  1505. package/json-schema/system/LogFormat.json +2 -2
  1506. package/json-schema/system/LogLevel.json +2 -2
  1507. package/json-schema/system/LoggerConfig.json +2 -2
  1508. package/json-schema/system/LoggingConfig.json +2 -2
  1509. package/json-schema/system/MaskingConfig.json +2 -2
  1510. package/json-schema/system/MaskingRule.json +2 -2
  1511. package/json-schema/system/MaskingStrategy.json +2 -2
  1512. package/json-schema/system/MaskingVisibilityRule.json +2 -2
  1513. package/json-schema/system/MessageQueueConfig.json +2 -2
  1514. package/json-schema/system/MessageQueueProvider.json +2 -2
  1515. package/json-schema/system/MetadataCollectionInfo.json +2 -2
  1516. package/json-schema/system/MetadataExportOptions.json +2 -2
  1517. package/json-schema/system/MetadataFallbackStrategy.json +2 -2
  1518. package/json-schema/system/MetadataFormat.json +2 -2
  1519. package/json-schema/system/MetadataImportOptions.json +2 -2
  1520. package/json-schema/system/MetadataLoadOptions.json +2 -2
  1521. package/json-schema/system/MetadataLoadResult.json +2 -2
  1522. package/json-schema/system/MetadataLoaderContract.json +2 -2
  1523. package/json-schema/system/MetadataManagerConfig.json +2 -2
  1524. package/json-schema/system/MetadataRecord.json +2 -2
  1525. package/json-schema/system/MetadataSaveOptions.json +2 -2
  1526. package/json-schema/system/MetadataSaveResult.json +2 -2
  1527. package/json-schema/system/MetadataScope.json +2 -2
  1528. package/json-schema/system/MetadataSource.json +2 -2
  1529. package/json-schema/system/MetadataState.json +2 -2
  1530. package/json-schema/system/MetadataStats.json +2 -2
  1531. package/json-schema/system/MetadataWatchEvent.json +2 -2
  1532. package/json-schema/system/MetricAggregationConfig.json +2 -2
  1533. package/json-schema/system/MetricAggregationType.json +2 -2
  1534. package/json-schema/system/MetricDataPoint.json +2 -2
  1535. package/json-schema/system/MetricDefinition.json +2 -2
  1536. package/json-schema/system/MetricExportConfig.json +2 -2
  1537. package/json-schema/system/MetricLabels.json +2 -2
  1538. package/json-schema/system/MetricType.json +2 -2
  1539. package/json-schema/system/MetricUnit.json +2 -2
  1540. package/json-schema/system/MetricsConfig.json +2 -2
  1541. package/json-schema/system/MiddlewareConfig.json +2 -2
  1542. package/json-schema/system/MiddlewareType.json +2 -2
  1543. package/json-schema/system/MigrationDependency.json +2 -2
  1544. package/json-schema/system/MigrationOperation.json +2 -2
  1545. package/json-schema/system/MigrationPlan.json +68 -0
  1546. package/json-schema/system/MigrationStatement.json +35 -0
  1547. package/json-schema/system/ModifyFieldOperation.json +2 -2
  1548. package/json-schema/system/MultipartUploadConfig.json +2 -2
  1549. package/json-schema/system/MutualTLSConfig.json +2 -2
  1550. package/json-schema/system/NotificationChannel.json +2 -2
  1551. package/json-schema/system/NotificationConfig.json +2 -2
  1552. package/json-schema/system/ORSet.json +2 -2
  1553. package/json-schema/system/ORSetElement.json +2 -2
  1554. package/json-schema/system/OTComponent.json +2 -2
  1555. package/json-schema/system/OTOperation.json +2 -2
  1556. package/json-schema/system/OTOperationType.json +2 -2
  1557. package/json-schema/system/OTTransformResult.json +2 -2
  1558. package/json-schema/system/ObjectMetadata.json +2 -2
  1559. package/json-schema/system/ObjectStorageConfig.json +2 -2
  1560. package/json-schema/system/ObjectTranslationData.json +2 -2
  1561. package/json-schema/system/OnceSchedule.json +2 -2
  1562. package/json-schema/system/OpenTelemetryCompatibility.json +2 -2
  1563. package/json-schema/system/OtelExporterType.json +2 -2
  1564. package/json-schema/system/PCIDSSConfig.json +2 -2
  1565. package/json-schema/system/PNCounter.json +2 -2
  1566. package/json-schema/system/Plan.json +2 -2
  1567. package/json-schema/system/PresignedUrlConfig.json +2 -2
  1568. package/json-schema/system/ProvisioningStep.json +52 -0
  1569. package/json-schema/system/PushNotification.json +2 -2
  1570. package/json-schema/system/QueueConfig.json +2 -2
  1571. package/json-schema/system/QuotaEnforcementResult.json +33 -0
  1572. package/json-schema/system/RPO.json +2 -2
  1573. package/json-schema/system/RTO.json +2 -2
  1574. package/json-schema/system/RegistryConfig.json +2 -2
  1575. package/json-schema/system/RegistrySyncPolicy.json +2 -2
  1576. package/json-schema/system/RegistryUpstream.json +2 -2
  1577. package/json-schema/system/RemoveFieldOperation.json +2 -2
  1578. package/json-schema/system/RenameObjectOperation.json +2 -2
  1579. package/json-schema/system/RetryPolicy.json +2 -2
  1580. package/json-schema/system/RollbackPlan.json +2 -2
  1581. package/json-schema/system/RouteHandlerMetadata.json +2 -2
  1582. package/json-schema/system/RowLevelIsolationStrategy.json +2 -2
  1583. package/json-schema/system/SMSTemplate.json +2 -2
  1584. package/json-schema/system/SamplingDecision.json +2 -2
  1585. package/json-schema/system/SamplingStrategyType.json +2 -2
  1586. package/json-schema/system/Schedule.json +2 -2
  1587. package/json-schema/system/SearchConfig.json +2 -2
  1588. package/json-schema/system/SearchIndexConfig.json +2 -2
  1589. package/json-schema/system/SearchProvider.json +2 -2
  1590. package/json-schema/system/SecurityContextConfig.json +4 -3
  1591. package/json-schema/system/SecurityEventCorrelation.json +2 -2
  1592. package/json-schema/system/ServerCapabilities.json +2 -2
  1593. package/json-schema/system/ServerEvent.json +2 -2
  1594. package/json-schema/system/ServerEventType.json +2 -2
  1595. package/json-schema/system/ServerStatus.json +2 -2
  1596. package/json-schema/system/ServiceConfig.json +2 -2
  1597. package/json-schema/system/ServiceCriticality.json +2 -2
  1598. package/json-schema/system/ServiceLevelIndicator.json +2 -2
  1599. package/json-schema/system/ServiceLevelObjective.json +2 -2
  1600. package/json-schema/system/ServiceStatus.json +2 -2
  1601. package/json-schema/system/Span.json +2 -2
  1602. package/json-schema/system/SpanAttributeValue.json +2 -2
  1603. package/json-schema/system/SpanAttributes.json +2 -2
  1604. package/json-schema/system/SpanEvent.json +2 -2
  1605. package/json-schema/system/SpanKind.json +2 -2
  1606. package/json-schema/system/SpanLink.json +2 -2
  1607. package/json-schema/system/SpanStatus.json +2 -2
  1608. package/json-schema/system/StorageAcl.json +2 -2
  1609. package/json-schema/system/StorageClass.json +2 -2
  1610. package/json-schema/system/StorageConnection.json +2 -2
  1611. package/json-schema/system/StorageProvider.json +2 -2
  1612. package/json-schema/system/StorageScope.json +2 -2
  1613. package/json-schema/system/StructuredLogEntry.json +2 -2
  1614. package/json-schema/system/SupplierAssessmentStatus.json +13 -0
  1615. package/json-schema/system/SupplierRiskLevel.json +12 -0
  1616. package/json-schema/system/SupplierSecurityAssessment.json +184 -0
  1617. package/json-schema/system/SupplierSecurityPolicy.json +57 -0
  1618. package/json-schema/system/SupplierSecurityRequirement.json +40 -0
  1619. package/json-schema/system/SuspiciousActivityRule.json +2 -2
  1620. package/json-schema/system/Task.json +2 -2
  1621. package/json-schema/system/TaskExecutionResult.json +2 -2
  1622. package/json-schema/system/TaskPriority.json +2 -2
  1623. package/json-schema/system/TaskRetryPolicy.json +2 -2
  1624. package/json-schema/system/TaskStatus.json +2 -2
  1625. package/json-schema/system/Tenant.json +78 -2
  1626. package/json-schema/system/TenantConnectionConfig.json +26 -0
  1627. package/json-schema/system/TenantIsolationConfig.json +2 -2
  1628. package/json-schema/system/TenantIsolationLevel.json +2 -2
  1629. package/json-schema/system/TenantPlan.json +12 -0
  1630. package/json-schema/system/TenantProvisioningRequest.json +61 -0
  1631. package/json-schema/system/TenantProvisioningResult.json +130 -0
  1632. package/json-schema/system/TenantProvisioningStatusEnum.json +14 -0
  1633. package/json-schema/system/TenantQuota.json +26 -2
  1634. package/json-schema/system/TenantRegion.json +15 -0
  1635. package/json-schema/system/TenantSecurityPolicy.json +2 -2
  1636. package/json-schema/system/TenantUsage.json +66 -0
  1637. package/json-schema/system/TextCRDTOperation.json +2 -2
  1638. package/json-schema/system/TextCRDTState.json +2 -2
  1639. package/json-schema/system/TimeSeries.json +2 -2
  1640. package/json-schema/system/TimeSeriesDataPoint.json +2 -2
  1641. package/json-schema/system/TopicConfig.json +2 -2
  1642. package/json-schema/system/TraceContext.json +2 -2
  1643. package/json-schema/system/TraceContextPropagation.json +2 -2
  1644. package/json-schema/system/TraceFlags.json +2 -2
  1645. package/json-schema/system/TracePropagationFormat.json +2 -2
  1646. package/json-schema/system/TraceSamplingConfig.json +2 -2
  1647. package/json-schema/system/TraceState.json +2 -2
  1648. package/json-schema/system/TracingConfig.json +2 -2
  1649. package/json-schema/system/TrainingCategory.json +18 -0
  1650. package/json-schema/system/TrainingCompletionStatus.json +13 -0
  1651. package/json-schema/system/TrainingCourse.json +78 -0
  1652. package/json-schema/system/TrainingPlan.json +128 -0
  1653. package/json-schema/system/TrainingRecord.json +57 -0
  1654. package/json-schema/system/TranslationBundle.json +2 -2
  1655. package/json-schema/system/TranslationConfig.json +2 -2
  1656. package/json-schema/system/TranslationData.json +2 -2
  1657. package/json-schema/system/TranslationFileOrganization.json +2 -2
  1658. package/json-schema/system/UserActivityStatus.json +2 -2
  1659. package/json-schema/system/VectorClock.json +2 -2
  1660. package/json-schema/system/WorkerStats.json +2 -2
  1661. package/json-schema/ui/AIChatWindowProps.json +2 -2
  1662. package/json-schema/ui/Action.json +2 -2
  1663. package/json-schema/ui/ActionNavItem.json +2 -2
  1664. package/json-schema/ui/ActionParam.json +2 -2
  1665. package/json-schema/ui/AddRecordConfig.json +2 -2
  1666. package/json-schema/ui/Animation.json +5 -5
  1667. package/json-schema/ui/AnimationTrigger.json +2 -2
  1668. package/json-schema/ui/App.json +2 -2
  1669. package/json-schema/ui/AppBranding.json +2 -2
  1670. package/json-schema/ui/AppearanceConfig.json +2 -2
  1671. package/json-schema/ui/AriaProps.json +2 -2
  1672. package/json-schema/ui/BlankPageLayout.json +2 -2
  1673. package/json-schema/ui/BlankPageLayoutItem.json +2 -2
  1674. package/json-schema/ui/BorderRadius.json +2 -2
  1675. package/json-schema/ui/BreakpointColumnMap.json +2 -2
  1676. package/json-schema/ui/BreakpointName.json +2 -2
  1677. package/json-schema/ui/BreakpointOrderMap.json +2 -2
  1678. package/json-schema/ui/Breakpoints.json +2 -2
  1679. package/json-schema/ui/CalendarConfig.json +2 -2
  1680. package/json-schema/ui/ChartAnnotation.json +2 -2
  1681. package/json-schema/ui/ChartAxis.json +2 -2
  1682. package/json-schema/ui/ChartConfig.json +2 -2
  1683. package/json-schema/ui/ChartInteraction.json +2 -2
  1684. package/json-schema/ui/ChartSeries.json +2 -2
  1685. package/json-schema/ui/ChartType.json +2 -2
  1686. package/json-schema/ui/ColorPalette.json +2 -2
  1687. package/json-schema/ui/ColumnSummary.json +2 -2
  1688. package/json-schema/ui/ComponentAnimation.json +14 -2
  1689. package/json-schema/ui/ConflictResolution.json +2 -2
  1690. package/json-schema/ui/Dashboard.json +41 -6
  1691. package/json-schema/ui/DashboardHeader.json +5 -3
  1692. package/json-schema/ui/DashboardHeaderAction.json +5 -3
  1693. package/json-schema/ui/DashboardNavItem.json +2 -2
  1694. package/json-schema/ui/DashboardWidget.json +12 -3
  1695. package/json-schema/ui/DateFormat.json +2 -2
  1696. package/json-schema/ui/DensityMode.json +2 -2
  1697. package/json-schema/ui/DndConfig.json +2 -2
  1698. package/json-schema/ui/DragConstraint.json +2 -2
  1699. package/json-schema/ui/DragHandle.json +2 -2
  1700. package/json-schema/ui/DragItem.json +2 -2
  1701. package/json-schema/ui/DropEffect.json +2 -2
  1702. package/json-schema/ui/DropZone.json +2 -2
  1703. package/json-schema/ui/EasingFunction.json +2 -2
  1704. package/json-schema/ui/ElementButtonProps.json +2 -2
  1705. package/json-schema/ui/ElementDataSource.json +38 -3
  1706. package/json-schema/ui/ElementFilterProps.json +2 -2
  1707. package/json-schema/ui/ElementFormProps.json +2 -2
  1708. package/json-schema/ui/ElementImageProps.json +2 -2
  1709. package/json-schema/ui/ElementNumberProps.json +38 -3
  1710. package/json-schema/ui/ElementRecordPickerProps.json +38 -3
  1711. package/json-schema/ui/ElementTextProps.json +2 -2
  1712. package/json-schema/ui/EmbedConfig.json +2 -2
  1713. package/json-schema/ui/EvictionPolicy.json +2 -2
  1714. package/json-schema/ui/FocusManagement.json +2 -2
  1715. package/json-schema/ui/FocusTrapConfig.json +2 -2
  1716. package/json-schema/ui/FormField.json +2 -2
  1717. package/json-schema/ui/GalleryConfig.json +2 -2
  1718. package/json-schema/ui/GanttConfig.json +2 -2
  1719. package/json-schema/ui/GestureConfig.json +2 -2
  1720. package/json-schema/ui/GestureType.json +2 -2
  1721. package/json-schema/ui/GlobalFilter.json +28 -4
  1722. package/json-schema/ui/GlobalFilterOptionsFrom.json +2 -2
  1723. package/json-schema/ui/GroupNavItem.json +2 -2
  1724. package/json-schema/ui/GroupingConfig.json +2 -2
  1725. package/json-schema/ui/GroupingField.json +2 -2
  1726. package/json-schema/ui/HttpMethod.json +2 -2
  1727. package/json-schema/ui/HttpRequest.json +2 -2
  1728. package/json-schema/ui/I18nLabel.json +2 -2
  1729. package/json-schema/ui/I18nObject.json +2 -2
  1730. package/json-schema/ui/InterfacePageConfig.json +100 -4
  1731. package/json-schema/ui/KanbanConfig.json +2 -2
  1732. package/json-schema/ui/KeyboardNavigationConfig.json +2 -2
  1733. package/json-schema/ui/KeyboardShortcut.json +2 -2
  1734. package/json-schema/ui/ListColumn.json +2 -2
  1735. package/json-schema/ui/ListView.json +280 -5
  1736. package/json-schema/ui/LocaleConfig.json +2 -2
  1737. package/json-schema/ui/LongPressGestureConfig.json +2 -2
  1738. package/json-schema/ui/MotionConfig.json +18 -2
  1739. package/json-schema/ui/NavigationArea.json +2 -2
  1740. package/json-schema/ui/NavigationConfig.json +2 -2
  1741. package/json-schema/ui/NavigationItem.json +2 -2
  1742. package/json-schema/ui/NavigationMode.json +2 -2
  1743. package/json-schema/ui/Notification.json +2 -2
  1744. package/json-schema/ui/NotificationAction.json +2 -2
  1745. package/json-schema/ui/NotificationConfig.json +2 -2
  1746. package/json-schema/ui/NotificationPosition.json +2 -2
  1747. package/json-schema/ui/NotificationSeverity.json +2 -2
  1748. package/json-schema/ui/NotificationType.json +2 -2
  1749. package/json-schema/ui/NumberFormat.json +2 -2
  1750. package/json-schema/ui/ObjectNavItem.json +2 -2
  1751. package/json-schema/ui/OfflineCacheConfig.json +2 -2
  1752. package/json-schema/ui/OfflineConfig.json +2 -2
  1753. package/json-schema/ui/OfflineStrategy.json +2 -2
  1754. package/json-schema/ui/Page.json +150 -7
  1755. package/json-schema/ui/PageAccordionProps.json +2 -2
  1756. package/json-schema/ui/PageCardProps.json +2 -2
  1757. package/json-schema/ui/PageComponent.json +38 -3
  1758. package/json-schema/ui/PageComponentType.json +2 -2
  1759. package/json-schema/ui/PageHeaderProps.json +2 -2
  1760. package/json-schema/ui/PageNavItem.json +2 -2
  1761. package/json-schema/ui/PageRegion.json +38 -3
  1762. package/json-schema/ui/PageTabsProps.json +2 -2
  1763. package/json-schema/ui/PageTransition.json +2 -2
  1764. package/json-schema/ui/PageType.json +2 -2
  1765. package/json-schema/ui/PageVariable.json +2 -2
  1766. package/json-schema/ui/PaginationConfig.json +2 -2
  1767. package/json-schema/ui/PerformanceConfig.json +2 -2
  1768. package/json-schema/ui/PersistStorage.json +2 -2
  1769. package/json-schema/ui/PinchGestureConfig.json +2 -2
  1770. package/json-schema/ui/PluralRule.json +2 -2
  1771. package/json-schema/ui/RecordActivityProps.json +2 -2
  1772. package/json-schema/ui/RecordChatterProps.json +2 -2
  1773. package/json-schema/ui/RecordDetailsProps.json +2 -2
  1774. package/json-schema/ui/RecordHighlightsProps.json +2 -2
  1775. package/json-schema/ui/RecordPathProps.json +2 -2
  1776. package/json-schema/ui/RecordRelatedListProps.json +51 -3
  1777. package/json-schema/ui/RecordReviewConfig.json +50 -4
  1778. package/json-schema/ui/Report.json +2 -2
  1779. package/json-schema/ui/ReportChart.json +2 -2
  1780. package/json-schema/ui/ReportColumn.json +2 -2
  1781. package/json-schema/ui/ReportGrouping.json +2 -2
  1782. package/json-schema/ui/ReportNavItem.json +2 -2
  1783. package/json-schema/ui/ReportType.json +2 -2
  1784. package/json-schema/ui/ResponsiveConfig.json +2 -2
  1785. package/json-schema/ui/RowColorConfig.json +2 -2
  1786. package/json-schema/ui/RowHeight.json +2 -2
  1787. package/json-schema/ui/SelectionConfig.json +2 -2
  1788. package/json-schema/ui/Shadow.json +2 -2
  1789. package/json-schema/ui/SharingConfig.json +2 -2
  1790. package/json-schema/ui/Spacing.json +2 -2
  1791. package/json-schema/ui/SwipeDirection.json +2 -2
  1792. package/json-schema/ui/SwipeGestureConfig.json +2 -2
  1793. package/json-schema/ui/SyncConfig.json +2 -2
  1794. package/json-schema/ui/Theme.json +5 -5
  1795. package/json-schema/ui/ThemeMode.json +2 -2
  1796. package/json-schema/ui/TimelineConfig.json +2 -2
  1797. package/json-schema/ui/TouchInteraction.json +2 -2
  1798. package/json-schema/ui/TouchTargetConfig.json +2 -2
  1799. package/json-schema/ui/TransitionConfig.json +6 -2
  1800. package/json-schema/ui/TransitionPreset.json +2 -2
  1801. package/json-schema/ui/Typography.json +2 -2
  1802. package/json-schema/ui/UrlNavItem.json +2 -2
  1803. package/json-schema/ui/UserActionsConfig.json +2 -2
  1804. package/json-schema/ui/ViewData.json +2 -2
  1805. package/json-schema/ui/ViewFilterRule.json +52 -0
  1806. package/json-schema/ui/ViewSharing.json +2 -2
  1807. package/json-schema/ui/ViewTab.json +51 -3
  1808. package/json-schema/ui/VisualizationType.json +2 -2
  1809. package/json-schema/ui/WcagContrastLevel.json +2 -2
  1810. package/json-schema/ui/WidgetActionType.json +5 -3
  1811. package/json-schema/ui/WidgetColorVariant.json +2 -2
  1812. package/json-schema/ui/WidgetEvent.json +2 -2
  1813. package/json-schema/ui/WidgetLifecycle.json +2 -2
  1814. package/json-schema/ui/WidgetManifest.json +2 -2
  1815. package/json-schema/ui/WidgetMeasure.json +2 -2
  1816. package/json-schema/ui/WidgetProperty.json +2 -2
  1817. package/json-schema/ui/WidgetSource.json +2 -2
  1818. package/json-schema/ui/ZIndex.json +2 -2
  1819. package/package.json +2 -2
  1820. package/dist/{export.zod-JY1n479p.d.mts → export.zod-D4NQy11G.d.mts} +10 -10
  1821. package/dist/{export.zod-JY1n479p.d.ts → export.zod-D4NQy11G.d.ts} +10 -10
  1822. package/dist/{index-DcxXBkSo.d.ts → index-BFKeZTt2.d.mts} +4 -4
  1823. package/dist/{index-DcxXBkSo.d.mts → index-BFKeZTt2.d.ts} +4 -4
  1824. package/dist/{index-DE9Tb8px.d.mts → index-CCGT6YVz.d.mts} +18 -18
  1825. package/dist/{index-DE9Tb8px.d.ts → index-CCGT6YVz.d.ts} +18 -18
  1826. package/dist/{index-C6lkTV3q.d.ts → index-CkWzo978.d.ts} +3 -3
  1827. package/dist/{index-RL3hxi-b.d.mts → index-D2Ta27J4.d.mts} +3 -3
  1828. package/dist/{object.zod-D5DAHp9X.d.mts → object.zod-BkW4b4v5.d.mts} +4 -4
  1829. package/dist/{object.zod-CXDcD0i1.d.ts → object.zod-BueWlT2y.d.ts} +4 -4
  1830. package/dist/{package-upgrade.zod-CDgftw9z.d.mts → package-upgrade.zod-h5P-54yD.d.mts} +8 -8
  1831. package/dist/{package-upgrade.zod-CDgftw9z.d.ts → package-upgrade.zod-h5P-54yD.d.ts} +8 -8
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/system/cache.zod.ts","../../src/system/disaster-recovery.zod.ts","../../src/system/message-queue.zod.ts","../../src/shared/identifiers.zod.ts","../../src/system/object-storage.zod.ts","../../src/system/search-engine.zod.ts","../../src/shared/http.zod.ts","../../src/system/http-server.zod.ts","../../src/system/audit.zod.ts","../../src/system/logging.zod.ts","../../src/system/metrics.zod.ts","../../src/system/tracing.zod.ts","../../src/system/change-management.zod.ts","../../src/system/encryption.zod.ts","../../src/system/masking.zod.ts","../../src/data/field.zod.ts","../../src/data/validation.zod.ts","../../src/automation/state-machine.zod.ts","../../src/data/object.zod.ts","../../src/system/migration.zod.ts","../../src/system/auth-config.zod.ts","../../src/system/compliance.zod.ts","../../src/system/security-context.zod.ts","../../src/system/job.zod.ts","../../src/system/worker.zod.ts","../../src/system/notification.zod.ts","../../src/system/translation.zod.ts","../../src/system/collaboration.zod.ts","../../src/system/metadata-persistence.zod.ts","../../src/system/core-services.zod.ts","../../src/system/tenant.zod.ts","../../src/system/license.zod.ts","../../src/system/registry-config.zod.ts","../../src/system/constants/paths.ts","../../src/system/constants/system-names.ts"],"names":["z","SearchConfigSchema"],"mappings":"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","file":"index.mjs","sourcesContent":["// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Application-Level Cache Protocol\n * \n * Multi-tier caching strategy for application data.\n * Supports Memory, Redis, Memcached, and CDN.\n * \n * ## Caching in ObjectStack\n * \n * **Application Cache (`system/cache.zod.ts`) - This File**\n * - **Purpose**: Cache computed data, query results, aggregations\n * - **Technologies**: Redis, Memcached, in-memory LRU\n * - **Configuration**: TTL, eviction policies, cache warming\n * - **Use case**: Cache expensive database queries, computed values\n * - **Scope**: Application layer, server-side data storage\n * \n * **HTTP Cache (`api/http-cache.zod.ts`)**\n * - **Purpose**: Cache API responses at HTTP protocol level\n * - **Technologies**: HTTP headers (ETag, Last-Modified, Cache-Control), CDN\n * - **Configuration**: Cache-Control headers, validation tokens\n * - **Use case**: Reduce API response time for repeated metadata requests\n * - **Scope**: HTTP layer, client-server communication\n * \n * @see ../../api/http-cache.zod.ts for HTTP-level caching\n */\nexport const CacheStrategySchema = z.enum([\n 'lru', // Least Recently Used\n 'lfu', // Least Frequently Used\n 'fifo', // First In First Out\n 'ttl', // Time To Live only\n 'adaptive', // Dynamic strategy selection\n]).describe('Cache eviction strategy');\n\nexport type CacheStrategy = z.infer<typeof CacheStrategySchema>;\n\nexport const CacheTierSchema = z.object({\n name: z.string().describe('Unique cache tier name'),\n type: z.enum(['memory', 'redis', 'memcached', 'cdn']).describe('Cache backend type'),\n maxSize: z.number().optional().describe('Max size in MB'),\n ttl: z.number().default(300).describe('Default TTL in seconds'),\n strategy: CacheStrategySchema.default('lru').describe('Eviction strategy'),\n warmup: z.boolean().default(false).describe('Pre-populate cache on startup'),\n}).describe('Configuration for a single cache tier in the hierarchy');\n\nexport type CacheTier = z.infer<typeof CacheTierSchema>;\nexport type CacheTierInput = z.input<typeof CacheTierSchema>;\n\nexport const CacheInvalidationSchema = z.object({\n trigger: z.enum(['create', 'update', 'delete', 'manual']).describe('Event that triggers invalidation'),\n scope: z.enum(['key', 'pattern', 'tag', 'all']).describe('Invalidation scope'),\n pattern: z.string().optional().describe('Key pattern for pattern-based invalidation'),\n tags: z.array(z.string()).optional().describe('Cache tags to invalidate'),\n}).describe('Rule defining when and how cached entries are invalidated');\n\nexport type CacheInvalidation = z.infer<typeof CacheInvalidationSchema>;\n\nexport const CacheConfigSchema = z.object({\n enabled: z.boolean().default(false).describe('Enable application-level caching'),\n tiers: z.array(CacheTierSchema).describe('Ordered cache tier hierarchy'),\n invalidation: z.array(CacheInvalidationSchema).describe('Cache invalidation rules'),\n prefetch: z.boolean().default(false).describe('Enable cache prefetching'),\n compression: z.boolean().default(false).describe('Enable data compression in cache'),\n encryption: z.boolean().default(false).describe('Enable encryption for cached data'),\n}).describe('Top-level application cache configuration');\n\nexport type CacheConfig = z.infer<typeof CacheConfigSchema>;\nexport type CacheConfigInput = z.input<typeof CacheConfigSchema>;\n\n/**\n * Distributed Cache Consistency Schema\n *\n * Defines write strategies for distributed cache consistency.\n *\n * - **write_through**: Write to cache and backend simultaneously\n * - **write_behind**: Write to cache first, async persist to backend\n * - **write_around**: Write to backend only, cache on next read\n * - **refresh_ahead**: Proactively refresh expiring entries before TTL\n */\nexport const CacheConsistencySchema = z.enum([\n 'write_through',\n 'write_behind',\n 'write_around',\n 'refresh_ahead',\n]).describe('Distributed cache write consistency strategy');\n\nexport type CacheConsistency = z.infer<typeof CacheConsistencySchema>;\n\n/**\n * Cache Avalanche Prevention Schema\n *\n * Strategies to prevent cache stampede/avalanche when many keys expire simultaneously.\n *\n * @example\n * ```typescript\n * const prevention: CacheAvalanchePrevention = {\n * jitterTtl: { enabled: true, maxJitterSeconds: 60 },\n * circuitBreaker: { enabled: true, failureThreshold: 5, resetTimeout: 30 },\n * lockout: { enabled: true, lockTimeoutMs: 5000 },\n * };\n * ```\n */\nexport const CacheAvalanchePreventionSchema = z.object({\n /** TTL jitter to stagger cache expiration */\n jitterTtl: z.object({\n enabled: z.boolean().default(false).describe('Add random jitter to TTL values'),\n maxJitterSeconds: z.number().default(60).describe('Maximum jitter added to TTL in seconds'),\n }).optional().describe('TTL jitter to prevent simultaneous expiration'),\n\n /** Circuit breaker to protect backend under cache pressure */\n circuitBreaker: z.object({\n enabled: z.boolean().default(false).describe('Enable circuit breaker for backend protection'),\n failureThreshold: z.number().default(5).describe('Failures before circuit opens'),\n resetTimeout: z.number().default(30).describe('Seconds before half-open state'),\n }).optional().describe('Circuit breaker for backend protection'),\n\n /** Cache lock to prevent thundering herd on key miss */\n lockout: z.object({\n enabled: z.boolean().default(false).describe('Enable cache locking for key regeneration'),\n lockTimeoutMs: z.number().default(5000).describe('Maximum lock wait time in milliseconds'),\n }).optional().describe('Lock-based stampede prevention'),\n}).describe('Cache avalanche/stampede prevention configuration');\n\nexport type CacheAvalanchePrevention = z.infer<typeof CacheAvalanchePreventionSchema>;\n\n/**\n * Cache Warmup Strategy Schema\n *\n * Defines how cache is pre-populated on startup or after cache flush.\n */\nexport const CacheWarmupSchema = z.object({\n /** Enable cache warming */\n enabled: z.boolean().default(false).describe('Enable cache warmup'),\n /** Warmup strategy */\n strategy: z.enum(['eager', 'lazy', 'scheduled']).default('lazy')\n .describe('Warmup strategy: eager (at startup), lazy (on first access), scheduled (cron)'),\n /** Cron schedule for scheduled warmup */\n schedule: z.string().optional().describe('Cron expression for scheduled warmup'),\n /** Keys/patterns to warm up */\n patterns: z.array(z.string()).optional().describe('Key patterns to warm up (e.g., \"user:*\", \"config:*\")'),\n /** Maximum concurrent warmup operations */\n concurrency: z.number().default(10).describe('Maximum concurrent warmup operations'),\n}).describe('Cache warmup strategy');\n\nexport type CacheWarmup = z.infer<typeof CacheWarmupSchema>;\n\n/**\n * Distributed Cache Configuration Schema\n *\n * Extended cache configuration for distributed multi-node deployments.\n * Adds consistency strategies, avalanche prevention, and warmup policies.\n *\n * @example\n * ```typescript\n * const distributedCache: DistributedCacheConfig = {\n * enabled: true,\n * tiers: [\n * { name: 'l1', type: 'memory', maxSize: 100, ttl: 60, strategy: 'lru' },\n * { name: 'l2', type: 'redis', maxSize: 1000, ttl: 300, strategy: 'lru' },\n * ],\n * invalidation: [\n * { trigger: 'update', scope: 'key' },\n * ],\n * consistency: 'write_through',\n * avalanchePrevention: {\n * jitterTtl: { enabled: true, maxJitterSeconds: 30 },\n * circuitBreaker: { enabled: true, failureThreshold: 5 },\n * },\n * warmup: { enabled: true, strategy: 'eager', patterns: ['config:*'] },\n * };\n * ```\n */\nexport const DistributedCacheConfigSchema = CacheConfigSchema.extend({\n /** Distributed write consistency strategy */\n consistency: CacheConsistencySchema.optional().describe('Distributed cache consistency strategy'),\n /** Avalanche/stampede prevention settings */\n avalanchePrevention: CacheAvalanchePreventionSchema.optional()\n .describe('Cache avalanche and stampede prevention'),\n /** Cache warmup configuration */\n warmup: CacheWarmupSchema.optional().describe('Cache warmup strategy'),\n}).describe('Distributed cache configuration with consistency and avalanche prevention');\n\nexport type DistributedCacheConfig = z.infer<typeof DistributedCacheConfigSchema>;\nexport type DistributedCacheConfigInput = z.input<typeof DistributedCacheConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Backup Strategy Schema\n *\n * Defines backup methods for disaster recovery.\n *\n * - **full**: Complete snapshot of all data\n * - **incremental**: Only changes since last backup\n * - **differential**: All changes since last full backup\n *\n * @example\n * ```typescript\n * const backup: BackupConfig = {\n * strategy: 'incremental',\n * schedule: '0 2 * * *',\n * retention: { days: 30, minCopies: 3 },\n * encryption: { enabled: true, algorithm: 'AES-256-GCM' },\n * };\n * ```\n */\nexport const BackupStrategySchema = z.enum([\n 'full',\n 'incremental',\n 'differential',\n]).describe('Backup strategy type');\n\nexport type BackupStrategy = z.infer<typeof BackupStrategySchema>;\n\n/**\n * Backup Retention Policy Schema\n */\nexport const BackupRetentionSchema = z.object({\n /** Number of days to retain backups */\n days: z.number().min(1).describe('Retention period in days'),\n /** Minimum number of backup copies to keep regardless of age */\n minCopies: z.number().min(1).default(3).describe('Minimum backup copies to retain'),\n /** Maximum number of backup copies */\n maxCopies: z.number().optional().describe('Maximum backup copies to store'),\n}).describe('Backup retention policy');\n\nexport type BackupRetention = z.infer<typeof BackupRetentionSchema>;\n\n/**\n * Backup Configuration Schema\n */\nexport const BackupConfigSchema = z.object({\n /** Backup strategy */\n strategy: BackupStrategySchema.default('incremental').describe('Backup strategy'),\n /** Cron schedule for automated backups */\n schedule: z.string().optional().describe('Cron expression for backup schedule (e.g., \"0 2 * * *\")'),\n /** Retention policy */\n retention: BackupRetentionSchema.describe('Backup retention policy'),\n /** Storage destination */\n destination: z.object({\n type: z.enum(['s3', 'gcs', 'azure_blob', 'local']).describe('Storage backend type'),\n bucket: z.string().optional().describe('Cloud storage bucket/container name'),\n path: z.string().optional().describe('Storage path prefix'),\n region: z.string().optional().describe('Cloud storage region'),\n }).describe('Backup storage destination'),\n /** Encryption settings */\n encryption: z.object({\n enabled: z.boolean().default(true).describe('Enable backup encryption'),\n algorithm: z.enum(['AES-256-GCM', 'AES-256-CBC', 'ChaCha20-Poly1305']).default('AES-256-GCM')\n .describe('Encryption algorithm'),\n keyId: z.string().optional().describe('KMS key ID for encryption'),\n }).optional().describe('Backup encryption settings'),\n /** Compression settings */\n compression: z.object({\n enabled: z.boolean().default(true).describe('Enable backup compression'),\n algorithm: z.enum(['gzip', 'zstd', 'lz4', 'snappy']).default('zstd').describe('Compression algorithm'),\n }).optional().describe('Backup compression settings'),\n /** Verify backup integrity after creation */\n verifyAfterBackup: z.boolean().default(true).describe('Verify backup integrity after creation'),\n}).describe('Backup configuration');\n\nexport type BackupConfig = z.infer<typeof BackupConfigSchema>;\nexport type BackupConfigInput = z.input<typeof BackupConfigSchema>;\n\n/**\n * Failover Mode Schema\n *\n * Defines how traffic is routed between primary and secondary systems.\n *\n * - **active_passive**: Secondary is standby, activated on primary failure\n * - **active_active**: Both primary and secondary handle traffic\n * - **pilot_light**: Minimal secondary with quick scale-up capability\n * - **warm_standby**: Reduced-capacity secondary, faster failover than pilot light\n */\nexport const FailoverModeSchema = z.enum([\n 'active_passive',\n 'active_active',\n 'pilot_light',\n 'warm_standby',\n]).describe('Failover mode');\n\nexport type FailoverMode = z.infer<typeof FailoverModeSchema>;\n\n/**\n * Failover Configuration Schema\n */\nexport const FailoverConfigSchema = z.object({\n /** Failover mode */\n mode: FailoverModeSchema.default('active_passive').describe('Failover mode'),\n /** Automatic failover enabled */\n autoFailover: z.boolean().default(true).describe('Enable automatic failover'),\n /** Health check interval in seconds */\n healthCheckInterval: z.number().default(30).describe('Health check interval in seconds'),\n /** Number of consecutive failures before triggering failover */\n failureThreshold: z.number().default(3).describe('Consecutive failures before failover'),\n /** Regions/zones for disaster recovery */\n regions: z.array(z.object({\n name: z.string().describe('Region identifier (e.g., \"us-east-1\", \"eu-west-1\")'),\n role: z.enum(['primary', 'secondary', 'witness']).describe('Region role'),\n endpoint: z.string().optional().describe('Region endpoint URL'),\n priority: z.number().optional().describe('Failover priority (lower = higher priority)'),\n })).min(2).describe('Multi-region configuration (minimum 2 regions)'),\n /** DNS failover configuration */\n dns: z.object({\n ttl: z.number().default(60).describe('DNS TTL in seconds for failover'),\n provider: z.enum(['route53', 'cloudflare', 'azure_dns', 'custom']).optional()\n .describe('DNS provider for automatic failover'),\n }).optional().describe('DNS failover settings'),\n}).describe('Failover configuration');\n\nexport type FailoverConfig = z.infer<typeof FailoverConfigSchema>;\nexport type FailoverConfigInput = z.input<typeof FailoverConfigSchema>;\n\n/**\n * Recovery Point Objective (RPO) Schema\n *\n * Maximum acceptable amount of data loss measured in time.\n */\nexport const RPOSchema = z.object({\n /** RPO value */\n value: z.number().min(0).describe('RPO value'),\n /** RPO time unit */\n unit: z.enum(['seconds', 'minutes', 'hours']).default('minutes').describe('RPO time unit'),\n}).describe('Recovery Point Objective (maximum acceptable data loss)');\n\nexport type RPO = z.infer<typeof RPOSchema>;\n\n/**\n * Recovery Time Objective (RTO) Schema\n *\n * Maximum acceptable time to restore service after a disaster.\n */\nexport const RTOSchema = z.object({\n /** RTO value */\n value: z.number().min(0).describe('RTO value'),\n /** RTO time unit */\n unit: z.enum(['seconds', 'minutes', 'hours']).default('minutes').describe('RTO time unit'),\n}).describe('Recovery Time Objective (maximum acceptable downtime)');\n\nexport type RTO = z.infer<typeof RTOSchema>;\n\n/**\n * Disaster Recovery Plan Schema\n *\n * Complete disaster recovery configuration for an ObjectStack deployment.\n * Covers backup, failover, replication, and recovery objectives.\n *\n * Aligned with industry standards:\n * - ISO 22301 (Business Continuity Management)\n * - AWS Well-Architected Framework (Reliability Pillar)\n *\n * @example\n * ```typescript\n * const drPlan: DisasterRecoveryPlan = {\n * enabled: true,\n * rpo: { value: 15, unit: 'minutes' },\n * rto: { value: 1, unit: 'hours' },\n * backup: {\n * strategy: 'incremental',\n * schedule: '0 0/6 * * *',\n * retention: { days: 90, minCopies: 5 },\n * destination: { type: 's3', bucket: 'backup-bucket', region: 'us-east-1' },\n * },\n * failover: {\n * mode: 'active_passive',\n * autoFailover: true,\n * healthCheckInterval: 30,\n * failureThreshold: 3,\n * regions: [\n * { name: 'us-east-1', role: 'primary' },\n * { name: 'us-west-2', role: 'secondary' },\n * ],\n * },\n * };\n * ```\n */\nexport const DisasterRecoveryPlanSchema = z.object({\n /** Enable disaster recovery */\n enabled: z.boolean().default(false).describe('Enable disaster recovery plan'),\n\n /** Recovery Point Objective */\n rpo: RPOSchema.describe('Recovery Point Objective'),\n\n /** Recovery Time Objective */\n rto: RTOSchema.describe('Recovery Time Objective'),\n\n /** Backup configuration */\n backup: BackupConfigSchema.describe('Backup configuration'),\n\n /** Failover configuration */\n failover: FailoverConfigSchema.optional().describe('Multi-region failover configuration'),\n\n /** Data replication settings */\n replication: z.object({\n /** Replication mode */\n mode: z.enum(['synchronous', 'asynchronous', 'semi_synchronous']).default('asynchronous')\n .describe('Data replication mode'),\n /** Maximum replication lag allowed (seconds) */\n maxLagSeconds: z.number().optional().describe('Maximum acceptable replication lag in seconds'),\n /** Objects/tables to replicate (empty = all) */\n includeObjects: z.array(z.string()).optional().describe('Objects to replicate (empty = all)'),\n /** Objects/tables to exclude from replication */\n excludeObjects: z.array(z.string()).optional().describe('Objects to exclude from replication'),\n }).optional().describe('Data replication settings'),\n\n /** Automated recovery testing */\n testing: z.object({\n /** Enable periodic DR testing */\n enabled: z.boolean().default(false).describe('Enable automated DR testing'),\n /** Cron schedule for DR tests */\n schedule: z.string().optional().describe('Cron expression for DR test schedule'),\n /** Notification channel for test results */\n notificationChannel: z.string().optional().describe('Notification channel for DR test results'),\n }).optional().describe('Automated disaster recovery testing'),\n\n /** Runbook URL for manual procedures */\n runbookUrl: z.string().optional().describe('URL to disaster recovery runbook/playbook'),\n\n /** Contact list for DR incidents */\n contacts: z.array(z.object({\n name: z.string().describe('Contact name'),\n role: z.string().describe('Contact role (e.g., \"DBA\", \"SRE Lead\")'),\n email: z.string().optional().describe('Contact email'),\n phone: z.string().optional().describe('Contact phone'),\n })).optional().describe('Emergency contact list for DR incidents'),\n}).describe('Complete disaster recovery plan configuration');\n\nexport type DisasterRecoveryPlan = z.infer<typeof DisasterRecoveryPlanSchema>;\nexport type DisasterRecoveryPlanInput = z.input<typeof DisasterRecoveryPlanSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Message queue protocol for async communication\n * Supports Kafka, RabbitMQ, AWS SQS, Redis Pub/Sub\n */\nexport const MessageQueueProviderSchema = z.enum([\n 'kafka',\n 'rabbitmq',\n 'aws-sqs',\n 'redis-pubsub',\n 'google-pubsub',\n 'azure-service-bus',\n]).describe('Supported message queue backend provider');\n\nexport type MessageQueueProvider = z.infer<typeof MessageQueueProviderSchema>;\n\nexport const TopicConfigSchema = z.object({\n name: z.string().describe('Topic name identifier'),\n partitions: z.number().default(1).describe('Number of partitions for parallel consumption'),\n replicationFactor: z.number().default(1).describe('Number of replicas for fault tolerance'),\n retentionMs: z.number().optional().describe('Message retention period in milliseconds'),\n compressionType: z.enum(['none', 'gzip', 'snappy', 'lz4']).default('none').describe('Message compression algorithm'),\n}).describe('Configuration for a message queue topic');\n\nexport type TopicConfig = z.infer<typeof TopicConfigSchema>;\n\nexport const ConsumerConfigSchema = z.object({\n groupId: z.string().describe('Consumer group identifier'),\n autoOffsetReset: z.enum(['earliest', 'latest']).default('latest').describe('Where to start reading when no offset exists'),\n enableAutoCommit: z.boolean().default(true).describe('Automatically commit consumed offsets'),\n maxPollRecords: z.number().default(500).describe('Maximum records returned per poll'),\n}).describe('Consumer group configuration for topic consumption');\n\nexport type ConsumerConfig = z.infer<typeof ConsumerConfigSchema>;\n\nexport const DeadLetterQueueSchema = z.object({\n enabled: z.boolean().default(false).describe('Enable dead letter queue for failed messages'),\n maxRetries: z.number().default(3).describe('Maximum delivery attempts before sending to DLQ'),\n queueName: z.string().describe('Name of the dead letter queue'),\n}).describe('Dead letter queue configuration for unprocessable messages');\n\nexport type DeadLetterQueue = z.infer<typeof DeadLetterQueueSchema>;\n\nexport const MessageQueueConfigSchema = z.object({\n provider: MessageQueueProviderSchema.describe('Message queue backend provider'),\n topics: z.array(TopicConfigSchema).describe('List of topic configurations'),\n consumers: z.array(ConsumerConfigSchema).optional().describe('Consumer group configurations'),\n deadLetterQueue: DeadLetterQueueSchema.optional().describe('Dead letter queue for failed messages'),\n ssl: z.boolean().default(false).describe('Enable SSL/TLS for broker connections'),\n sasl: z.object({\n mechanism: z.enum(['plain', 'scram-sha-256', 'scram-sha-512']).describe('SASL authentication mechanism'),\n username: z.string().describe('SASL username'),\n password: z.string().describe('SASL password'),\n }).optional().describe('SASL authentication configuration'),\n}).describe('Top-level message queue configuration');\n\nexport type MessageQueueConfig = z.infer<typeof MessageQueueConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * System Identifier Schema\n * \n * Universal naming convention for all machine identifiers (API Names) in ObjectStack.\n * Enforces lowercase with underscores or dots to ensure:\n * - Cross-platform compatibility (case-insensitive filesystems)\n * - URL-friendliness (no encoding needed)\n * - Database consistency (no collation issues)\n * - Security (no case-sensitivity bugs in permission checks)\n * \n * **Applies to all metadata that acts as a machine identifier:**\n * - Object names (tables/collections)\n * - Field names\n * - Role names\n * - Permission set names\n * - Action/trigger names\n * - Event keys\n * - App IDs\n * - Menu/page IDs\n * - Select option values\n * - Workflow names\n * - Webhook names\n * \n * **Naming Convention Summary:**\n * | Type | Pattern | Example |\n * |------|---------|---------|\n * | Machine ID | snake_case | `crm_account`, `btn_submit`, `role_admin` |\n * | Event keys | dot.notation | `user.login`, `order.created` |\n * | Labels | Any case | `Client Account`, `Submit Form` |\n * \n * @example Valid identifiers\n * - 'account'\n * - 'crm_account'\n * - 'user_profile'\n * - 'order.created' (for events)\n * - 'api_v2_endpoint'\n * \n * @example Invalid identifiers (will be rejected)\n * - 'Account' (uppercase)\n * - 'CrmAccount' (camelCase)\n * - 'crm-account' (kebab-case - use underscore instead)\n * - 'user profile' (spaces)\n */\nexport const SystemIdentifierSchema = z\n .string()\n .min(2, { message: 'System identifier must be at least 2 characters' })\n .regex(/^[a-z][a-z0-9_.]*$/, {\n message:\n 'System identifier must be lowercase, starting with a letter, and may contain letters, numbers, underscores, or dots (e.g., \"user_profile\" or \"order.created\")',\n })\n .describe('System identifier (lowercase with underscores or dots)');\n\n/**\n * Strict Snake Case Identifier\n * \n * More restrictive than SystemIdentifierSchema - only allows underscores (no dots).\n * Use this for identifiers that should NOT contain dots (e.g., database table/column names).\n * \n * @example Valid\n * - 'account'\n * - 'crm_account'\n * - 'user_profile'\n * \n * @example Invalid\n * - 'user.profile' (dots not allowed)\n * - 'UserProfile' (uppercase)\n */\nexport const SnakeCaseIdentifierSchema = z\n .string()\n .min(2, { message: 'Identifier must be at least 2 characters' })\n .regex(/^[a-z][a-z0-9_]*$/, {\n message:\n 'Identifier must be lowercase snake_case, starting with a letter, and may contain only letters, numbers, and underscores (e.g., \"user_profile\")',\n })\n .describe('Snake case identifier (lowercase with underscores only)');\n\n/**\n * Event Name Identifier\n * \n * Specialized identifier for event names that encourages dot notation.\n * Used in event-driven systems, message queues, and webhooks.\n * \n * Pattern: `namespace.action` or `entity.event_type`\n * \n * @example Valid\n * - 'user.created'\n * - 'order.paid'\n * - 'user.login_success'\n * - 'alarm.high_cpu'\n * \n * @example Invalid\n * - 'UserCreated' (camelCase)\n * - 'user_created' (should use dots for namespacing)\n */\nexport const EventNameSchema = z\n .string()\n .min(3, { message: 'Event name must be at least 3 characters' })\n .regex(/^[a-z][a-z0-9_.]*$/, {\n message:\n 'Event name must be lowercase with dots for namespacing (e.g., \"user.created\", \"order.paid\")',\n })\n .describe('Event name (lowercase with dot notation for namespacing)');\n\n/**\n * Type Exports\n */\nexport type SystemIdentifier = z.infer<typeof SystemIdentifierSchema>;\nexport type SnakeCaseIdentifier = z.infer<typeof SnakeCaseIdentifierSchema>;\nexport type EventName = z.infer<typeof EventNameSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SystemIdentifierSchema } from '../shared/identifiers.zod';\n\n/**\n * Object Storage Protocol\n * \n * Unified storage protocol that combines:\n * - Object storage systems (S3, Azure Blob, GCS, MinIO)\n * - Scoped storage configuration (temp, cache, data, logs, config, public)\n * - Multi-cloud storage providers\n * - Bucket/container configuration\n * - Access control and permissions\n * - Lifecycle policies for data retention\n * - Presigned URLs for secure direct access\n * - Multipart uploads for large files\n */\n\n// ============================================================================\n// Storage Scope Protocol (formerly from scoped-storage.zod.ts)\n// ============================================================================\n\n/**\n * Storage Scope Enum\n * Defines the lifecycle and persistence guarantee of the storage area.\n */\nexport const StorageScopeSchema = z.enum([\n 'global', // Global application-wide storage\n 'tenant', // Tenant-scoped storage (multi-tenant apps)\n 'user', // User-scoped storage\n 'session', // Session-scoped storage (ephemeral)\n 'temp', // Ephemeral, cleared on restart\n 'cache', // Ephemeral, survives restarts, cleared on LRU/Expiration\n 'data', // Persistent, backed up\n 'logs', // Append-only, rotated\n 'config', // Read-heavy, versioned\n 'public' // Publicly accessible static assets\n]).describe('Storage scope classification');\n\nexport type StorageScope = z.infer<typeof StorageScopeSchema>;\n\n/**\n * File Metadata Schema\n * Standardized file attribute structure\n */\nexport const FileMetadataSchema = z.object({\n path: z.string().describe('File path'),\n name: z.string().describe('File name'),\n size: z.number().int().describe('File size in bytes'),\n mimeType: z.string().describe('MIME type'),\n lastModified: z.string().datetime().describe('Last modified timestamp'),\n created: z.string().datetime().describe('Creation timestamp'),\n etag: z.string().optional().describe('Entity tag'),\n});\n\nexport type FileMetadata = z.infer<typeof FileMetadataSchema>;\n\n// ============================================================================\n// Enums\n// ============================================================================\n\n/**\n * Storage Provider Types\n * \n * Supported cloud and self-hosted object storage providers.\n */\nexport const StorageProviderSchema = z.enum([\n 's3', // Amazon S3\n 'azure_blob', // Azure Blob Storage\n 'gcs', // Google Cloud Storage\n 'minio', // MinIO (self-hosted S3-compatible)\n 'r2', // Cloudflare R2\n 'spaces', // DigitalOcean Spaces\n 'wasabi', // Wasabi Hot Cloud Storage\n 'backblaze', // Backblaze B2\n 'local', // Local filesystem (development only)\n]).describe('Storage provider type');\n\nexport type StorageProvider = z.infer<typeof StorageProviderSchema>;\n\n/**\n * Storage Access Control List (ACL)\n * \n * Predefined access control configurations for objects and buckets.\n */\nexport const StorageAclSchema = z.enum([\n 'private', // Owner has full control, no one else has access\n 'public_read', // Owner has full control, everyone can read\n 'public_read_write', // Owner has full control, everyone can read/write (not recommended)\n 'authenticated_read', // Owner has full control, authenticated users can read\n 'bucket_owner_read', // Object owner has full control, bucket owner can read\n 'bucket_owner_full_control', // Both object and bucket owner have full control\n]).describe('Storage access control level');\n\nexport type StorageAcl = z.infer<typeof StorageAclSchema>;\n\n/**\n * Storage Class / Tier\n * \n * Different storage tiers for cost optimization.\n * Maps to provider-specific storage classes.\n */\nexport const StorageClassSchema = z.enum([\n 'standard', // Standard/hot storage for frequently accessed data\n 'intelligent', // Intelligent tiering (auto-moves between hot/cool)\n 'infrequent_access', // Infrequent access/cool storage\n 'glacier', // Archive/cold storage (slower retrieval)\n 'deep_archive', // Deep archive (cheapest, slowest retrieval)\n]).describe('Storage class/tier for cost optimization');\n\nexport type StorageClass = z.infer<typeof StorageClassSchema>;\n\n/**\n * Lifecycle Transition Action\n */\nexport const LifecycleActionSchema = z.enum([\n 'transition', // Move to different storage class\n 'delete', // Delete the object\n 'abort', // Abort incomplete multipart uploads\n]).describe('Lifecycle policy action type');\n\nexport type LifecycleAction = z.infer<typeof LifecycleActionSchema>;\n\n// ============================================================================\n// Configuration Schemas\n// ============================================================================\n\n/**\n * Object Metadata Schema\n * \n * Standard and custom metadata attached to stored objects.\n * \n * @example\n * {\n * contentType: 'image/jpeg',\n * contentLength: 1024000,\n * etag: '\"abc123\"',\n * lastModified: new Date('2024-01-01'),\n * custom: {\n * uploadedBy: 'user123',\n * department: 'marketing'\n * }\n * }\n */\nexport const ObjectMetadataSchema = z.object({\n contentType: z.string().describe('MIME type (e.g., image/jpeg, application/pdf)'),\n contentLength: z.number().min(0).describe('File size in bytes'),\n contentEncoding: z.string().optional().describe('Content encoding (e.g., gzip)'),\n contentDisposition: z.string().optional().describe('Content disposition header'),\n contentLanguage: z.string().optional().describe('Content language'),\n cacheControl: z.string().optional().describe('Cache control directives'),\n etag: z.string().optional().describe('Entity tag for versioning/caching'),\n lastModified: z.string().datetime().optional().describe('Last modification timestamp'),\n versionId: z.string().optional().describe('Object version identifier'),\n storageClass: StorageClassSchema.optional().describe('Storage class/tier'),\n encryption: z.object({\n algorithm: z.string().describe('Encryption algorithm (e.g., AES256, aws:kms)'),\n keyId: z.string().optional().describe('KMS key ID if using managed encryption'),\n }).optional().describe('Server-side encryption configuration'),\n custom: z.record(z.string(), z.string()).optional().describe('Custom user-defined metadata'),\n});\n\nexport type ObjectMetadata = z.infer<typeof ObjectMetadataSchema>;\n\n/**\n * Presigned URL Configuration\n * \n * Configuration for generating temporary URLs for direct access to objects.\n * Useful for secure file uploads/downloads without exposing credentials.\n * \n * @example\n * // Generate download URL valid for 1 hour\n * {\n * operation: 'get',\n * expiresIn: 3600,\n * contentType: 'image/jpeg'\n * }\n * \n * @example\n * // Generate upload URL valid for 15 minutes with size limit\n * {\n * operation: 'put',\n * expiresIn: 900,\n * contentType: 'application/pdf',\n * maxSize: 10485760\n * }\n */\nexport const PresignedUrlConfigSchema = z.object({\n operation: z.enum(['get', 'put', 'delete', 'head']).describe('Allowed operation'),\n expiresIn: z.number().min(1).max(604800).describe('Expiration time in seconds (max 7 days)'),\n contentType: z.string().optional().describe('Required content type for PUT operations'),\n maxSize: z.number().min(0).optional().describe('Maximum file size in bytes for PUT operations'),\n responseContentType: z.string().optional().describe('Override content-type for GET operations'),\n responseContentDisposition: z.string().optional().describe('Override content-disposition for GET operations'),\n});\n\nexport type PresignedUrlConfig = z.infer<typeof PresignedUrlConfigSchema>;\n\n/**\n * Multipart Upload Configuration\n * \n * Configuration for chunked uploads of large files.\n * Enables resumable uploads and parallel transfer.\n * \n * @example\n * // Enable multipart for files > 100MB with 10MB chunks\n * {\n * enabled: true,\n * partSize: 10485760,\n * maxParts: 10000,\n * threshold: 104857600,\n * maxConcurrent: 4\n * }\n */\nexport const MultipartUploadConfigSchema = z.object({\n enabled: z.boolean().default(true).describe('Enable multipart uploads'),\n partSize: z.number().min(5 * 1024 * 1024).max(5 * 1024 * 1024 * 1024).default(10 * 1024 * 1024).describe('Part size in bytes (min 5MB, max 5GB)'),\n maxParts: z.number().min(1).max(10000).default(10000).describe('Maximum number of parts (max 10,000)'),\n threshold: z.number().min(0).default(100 * 1024 * 1024).describe('File size threshold to trigger multipart upload (bytes)'),\n maxConcurrent: z.number().min(1).max(100).default(4).describe('Maximum concurrent part uploads'),\n abortIncompleteAfterDays: z.number().min(1).optional().describe('Auto-abort incomplete uploads after N days'),\n});\n\nexport type MultipartUploadConfig = z.infer<typeof MultipartUploadConfigSchema>;\n\n/**\n * Access Control Configuration\n * \n * Fine-grained access control for buckets and objects.\n * \n * @example\n * {\n * acl: 'private',\n * allowedOrigins: ['https://app.example.com'],\n * allowedMethods: ['GET', 'PUT'],\n * corsEnabled: true,\n * publicAccess: {\n * allowPublicRead: false,\n * allowPublicWrite: false\n * }\n * }\n */\nexport const AccessControlConfigSchema = z.object({\n acl: StorageAclSchema.default('private').describe('Default access control level'),\n allowedOrigins: z.array(z.string()).optional().describe('CORS allowed origins'),\n allowedMethods: z.array(z.enum(['GET', 'PUT', 'POST', 'DELETE', 'HEAD'])).optional().describe('CORS allowed HTTP methods'),\n allowedHeaders: z.array(z.string()).optional().describe('CORS allowed headers'),\n exposeHeaders: z.array(z.string()).optional().describe('CORS exposed headers'),\n maxAge: z.number().min(0).optional().describe('CORS preflight cache duration in seconds'),\n corsEnabled: z.boolean().default(false).describe('Enable CORS configuration'),\n publicAccess: z.object({\n allowPublicRead: z.boolean().default(false).describe('Allow public read access'),\n allowPublicWrite: z.boolean().default(false).describe('Allow public write access'),\n allowPublicList: z.boolean().default(false).describe('Allow public bucket listing'),\n }).optional().describe('Public access control'),\n allowedIps: z.array(z.string()).optional().describe('Allowed IP addresses/CIDR blocks'),\n blockedIps: z.array(z.string()).optional().describe('Blocked IP addresses/CIDR blocks'),\n});\n\nexport type AccessControlConfig = z.infer<typeof AccessControlConfigSchema>;\n\n/**\n * Lifecycle Policy Rule\n * \n * Individual rule for automatic object lifecycle management.\n * \n * @example\n * // Transition to infrequent access after 30 days\n * {\n * id: 'move_to_ia',\n * enabled: true,\n * action: 'transition',\n * daysAfterCreation: 30,\n * targetStorageClass: 'infrequent_access'\n * }\n * \n * @example\n * // Delete objects after 365 days\n * {\n * id: 'delete_old',\n * enabled: true,\n * action: 'delete',\n * daysAfterCreation: 365\n * }\n */\nexport const LifecyclePolicyRuleSchema = z.object({\n id: SystemIdentifierSchema.describe('Rule identifier'),\n enabled: z.boolean().default(true).describe('Enable this rule'),\n action: LifecycleActionSchema.describe('Action to perform'),\n prefix: z.string().optional().describe('Object key prefix filter (e.g., \"uploads/\")'),\n tags: z.record(z.string(), z.string()).optional().describe('Object tag filters'),\n daysAfterCreation: z.number().min(0).optional().describe('Days after object creation'),\n daysAfterModification: z.number().min(0).optional().describe('Days after last modification'),\n targetStorageClass: StorageClassSchema.optional().describe('Target storage class for transition action'),\n}).refine((data) => {\n // Validate that transition action has targetStorageClass\n if (data.action === 'transition' && !data.targetStorageClass) {\n return false;\n }\n return true;\n}, {\n message: 'targetStorageClass is required when action is \"transition\"',\n});\n\nexport type LifecyclePolicyRule = z.infer<typeof LifecyclePolicyRuleSchema>;\n\n/**\n * Lifecycle Policy Configuration\n * \n * Collection of lifecycle rules for automatic data management.\n * \n * @example\n * {\n * enabled: true,\n * rules: [\n * {\n * id: 'archive_old_files',\n * enabled: true,\n * action: 'transition',\n * daysAfterCreation: 90,\n * targetStorageClass: 'glacier'\n * },\n * {\n * id: 'delete_temp_files',\n * enabled: true,\n * action: 'delete',\n * prefix: 'temp/',\n * daysAfterCreation: 7\n * }\n * ]\n * }\n */\nexport const LifecyclePolicyConfigSchema = z.object({\n enabled: z.boolean().default(false).describe('Enable lifecycle policies'),\n rules: z.array(LifecyclePolicyRuleSchema).default([]).describe('Lifecycle rules'),\n});\n\nexport type LifecyclePolicyConfig = z.infer<typeof LifecyclePolicyConfigSchema>;\n\n/**\n * Bucket Configuration Schema\n * \n * Comprehensive configuration for a storage bucket/container.\n * \n * @example\n * {\n * name: 'user_uploads',\n * label: 'User Uploads',\n * bucketName: 'my-app-uploads',\n * region: 'us-east-1',\n * provider: 's3',\n * versioning: true,\n * accessControl: {\n * acl: 'private',\n * corsEnabled: true,\n * allowedOrigins: ['https://app.example.com']\n * },\n * multipartConfig: {\n * enabled: true,\n * threshold: 104857600\n * }\n * }\n */\nexport const BucketConfigSchema = z.object({\n name: SystemIdentifierSchema.describe('Bucket identifier in ObjectStack (snake_case)'),\n label: z.string().describe('Display label'),\n bucketName: z.string().describe('Actual bucket/container name in storage provider'),\n region: z.string().optional().describe('Storage region (e.g., us-east-1, westus)'),\n provider: StorageProviderSchema.describe('Storage provider'),\n endpoint: z.string().optional().describe('Custom endpoint URL (for S3-compatible providers)'),\n pathStyle: z.boolean().default(false).describe('Use path-style URLs (for S3-compatible providers)'),\n \n versioning: z.boolean().default(false).describe('Enable object versioning'),\n encryption: z.object({\n enabled: z.boolean().default(false).describe('Enable server-side encryption'),\n algorithm: z.enum(['AES256', 'aws:kms', 'azure:kms', 'gcp:kms']).default('AES256').describe('Encryption algorithm'),\n kmsKeyId: z.string().optional().describe('KMS key ID for managed encryption'),\n }).optional().describe('Server-side encryption configuration'),\n \n accessControl: AccessControlConfigSchema.optional().describe('Access control configuration'),\n lifecyclePolicy: LifecyclePolicyConfigSchema.optional().describe('Lifecycle policy configuration'),\n multipartConfig: MultipartUploadConfigSchema.optional().describe('Multipart upload configuration'),\n \n tags: z.record(z.string(), z.string()).optional().describe('Bucket tags for organization'),\n description: z.string().optional().describe('Bucket description'),\n enabled: z.boolean().default(true).describe('Enable this bucket'),\n});\n\nexport type BucketConfig = z.infer<typeof BucketConfigSchema>;\n\n/**\n * Storage Connection Configuration\n * \n * Provider-specific connection credentials and settings.\n * \n * @example S3\n * {\n * accessKeyId: '${AWS_ACCESS_KEY_ID}',\n * secretAccessKey: '${AWS_SECRET_ACCESS_KEY}',\n * sessionToken: '${AWS_SESSION_TOKEN}',\n * region: 'us-east-1'\n * }\n * \n * @example Azure\n * {\n * accountName: 'mystorageaccount',\n * accountKey: '${AZURE_STORAGE_KEY}',\n * endpoint: 'https://mystorageaccount.blob.core.windows.net'\n * }\n */\nexport const StorageConnectionSchema = z.object({\n // AWS S3 / MinIO\n accessKeyId: z.string().optional().describe('AWS access key ID or MinIO access key'),\n secretAccessKey: z.string().optional().describe('AWS secret access key or MinIO secret key'),\n sessionToken: z.string().optional().describe('AWS session token for temporary credentials'),\n \n // Azure Blob Storage\n accountName: z.string().optional().describe('Azure storage account name'),\n accountKey: z.string().optional().describe('Azure storage account key'),\n sasToken: z.string().optional().describe('Azure SAS token'),\n \n // Google Cloud Storage\n projectId: z.string().optional().describe('GCP project ID'),\n credentials: z.string().optional().describe('GCP service account credentials JSON'),\n \n // Common\n endpoint: z.string().optional().describe('Custom endpoint URL'),\n region: z.string().optional().describe('Default region'),\n useSSL: z.boolean().default(true).describe('Use SSL/TLS for connections'),\n timeout: z.number().min(0).optional().describe('Connection timeout in milliseconds'),\n});\n\nexport type StorageConnection = z.infer<typeof StorageConnectionSchema>;\n\n/**\n * Object Storage Configuration\n * \n * Complete object storage system configuration.\n * \n * @example\n * {\n * name: 'production_storage',\n * label: 'Production File Storage',\n * provider: 's3',\n * scope: 'global',\n * connection: {\n * accessKeyId: '${AWS_ACCESS_KEY_ID}',\n * secretAccessKey: '${AWS_SECRET_ACCESS_KEY}',\n * region: 'us-east-1'\n * },\n * buckets: [\n * {\n * name: 'user_uploads',\n * label: 'User Uploads',\n * bucketName: 'prod-uploads',\n * provider: 's3',\n * region: 'us-east-1'\n * }\n * ],\n * defaultBucket: 'user_uploads'\n * }\n */\nexport const ObjectStorageConfigSchema = z.object({\n name: SystemIdentifierSchema.describe('Storage configuration identifier'),\n label: z.string().describe('Display label'),\n provider: StorageProviderSchema.describe('Primary storage provider'),\n \n /**\n * Storage scope\n * Defines the lifecycle and access pattern for this storage\n */\n scope: StorageScopeSchema.optional().default('global').describe('Storage scope'),\n \n connection: StorageConnectionSchema.describe('Connection credentials'),\n buckets: z.array(BucketConfigSchema).default([]).describe('Configured buckets'),\n defaultBucket: z.string().optional().describe('Default bucket name for operations'),\n \n /**\n * Base path or location\n * For local/scoped storage configurations\n */\n location: z.string().optional().describe('Root path (local) or base location'),\n \n /**\n * Storage quota in bytes\n */\n quota: z.number().int().positive().optional().describe('Max size in bytes'),\n \n /**\n * Provider-specific options\n */\n options: z.record(z.string(), z.unknown()).optional().describe('Provider-specific configuration options'),\n \n enabled: z.boolean().default(true).describe('Enable this storage configuration'),\n description: z.string().optional().describe('Configuration description'),\n});\n\nexport type ObjectStorageConfig = z.infer<typeof ObjectStorageConfigSchema>;\n\n// ============================================================================\n// Helper Examples\n// ============================================================================\n\n/**\n * Example: AWS S3 Configuration\n */\nexport const s3StorageExample = ObjectStorageConfigSchema.parse({\n name: 'aws_s3_storage',\n label: 'AWS S3 Production Storage',\n provider: 's3',\n connection: {\n accessKeyId: '${AWS_ACCESS_KEY_ID}',\n secretAccessKey: '${AWS_SECRET_ACCESS_KEY}',\n region: 'us-east-1',\n },\n buckets: [\n {\n name: 'user_uploads',\n label: 'User Uploads',\n bucketName: 'my-app-user-uploads',\n region: 'us-east-1',\n provider: 's3',\n versioning: true,\n encryption: {\n enabled: true,\n algorithm: 'aws:kms',\n kmsKeyId: '${AWS_KMS_KEY_ID}',\n },\n accessControl: {\n acl: 'private',\n corsEnabled: true,\n allowedOrigins: ['https://app.example.com'],\n allowedMethods: ['GET', 'PUT', 'POST'],\n },\n lifecyclePolicy: {\n enabled: true,\n rules: [\n {\n id: 'archive_old_uploads',\n enabled: true,\n action: 'transition',\n daysAfterCreation: 90,\n targetStorageClass: 'glacier',\n },\n ],\n },\n multipartConfig: {\n enabled: true,\n partSize: 10 * 1024 * 1024,\n threshold: 100 * 1024 * 1024,\n maxConcurrent: 4,\n },\n },\n ],\n defaultBucket: 'user_uploads',\n enabled: true,\n});\n\n/**\n * Example: MinIO Configuration\n */\nexport const minioStorageExample = ObjectStorageConfigSchema.parse({\n name: 'minio_local',\n label: 'MinIO Local Storage',\n provider: 'minio',\n connection: {\n accessKeyId: 'minioadmin',\n secretAccessKey: 'minioadmin',\n endpoint: 'http://localhost:9000',\n useSSL: false,\n },\n buckets: [\n {\n name: 'development_files',\n label: 'Development Files',\n bucketName: 'dev-files',\n provider: 'minio',\n endpoint: 'http://localhost:9000',\n pathStyle: true,\n accessControl: {\n acl: 'private',\n },\n },\n ],\n defaultBucket: 'development_files',\n enabled: true,\n});\n\n/**\n * Example: Azure Blob Storage Configuration\n */\nexport const azureBlobStorageExample = ObjectStorageConfigSchema.parse({\n name: 'azure_blob_storage',\n label: 'Azure Blob Storage',\n provider: 'azure_blob',\n connection: {\n accountName: 'mystorageaccount',\n accountKey: '${AZURE_STORAGE_KEY}',\n endpoint: 'https://mystorageaccount.blob.core.windows.net',\n },\n buckets: [\n {\n name: 'media_files',\n label: 'Media Files',\n bucketName: 'media',\n provider: 'azure_blob',\n region: 'eastus',\n accessControl: {\n acl: 'public_read',\n publicAccess: {\n allowPublicRead: true,\n allowPublicWrite: false,\n allowPublicList: false,\n },\n },\n },\n ],\n defaultBucket: 'media_files',\n enabled: true,\n});\n\n/**\n * Example: Google Cloud Storage Configuration\n */\nexport const gcsStorageExample = ObjectStorageConfigSchema.parse({\n name: 'gcs_storage',\n label: 'Google Cloud Storage',\n provider: 'gcs',\n connection: {\n projectId: 'my-gcp-project',\n credentials: '${GCP_SERVICE_ACCOUNT_JSON}',\n },\n buckets: [\n {\n name: 'backup_storage',\n label: 'Backup Storage',\n bucketName: 'my-app-backups',\n region: 'us-central1',\n provider: 'gcs',\n lifecyclePolicy: {\n enabled: true,\n rules: [\n {\n id: 'delete_old_backups',\n enabled: true,\n action: 'delete',\n daysAfterCreation: 30,\n },\n ],\n },\n },\n ],\n defaultBucket: 'backup_storage',\n enabled: true,\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Full-text search protocol\n * Supports Elasticsearch, Algolia, Meilisearch, Typesense\n */\nexport const SearchProviderSchema = z.enum([\n 'elasticsearch',\n 'algolia',\n 'meilisearch',\n 'typesense',\n 'opensearch',\n]).describe('Supported full-text search engine provider');\n\nexport type SearchProvider = z.infer<typeof SearchProviderSchema>;\n\nexport const AnalyzerConfigSchema = z.object({\n type: z.enum(['standard', 'simple', 'whitespace', 'keyword', 'pattern', 'language']).describe('Text analyzer type'),\n language: z.string().optional().describe('Language for language-specific analysis'),\n stopwords: z.array(z.string()).optional().describe('Custom stopwords to filter during analysis'),\n customFilters: z.array(z.string()).optional().describe('Additional token filter names to apply'),\n}).describe('Text analyzer configuration for index tokenization and normalization');\n\nexport type AnalyzerConfig = z.infer<typeof AnalyzerConfigSchema>;\n\nexport const SearchIndexConfigSchema = z.object({\n indexName: z.string().describe('Name of the search index'),\n objectName: z.string().describe('Source ObjectQL object'),\n fields: z.array(z.object({\n name: z.string().describe('Field name to index'),\n type: z.enum(['text', 'keyword', 'number', 'date', 'boolean', 'geo']).describe('Index field data type'),\n analyzer: z.string().optional().describe('Named analyzer to use for this field'),\n searchable: z.boolean().default(true).describe('Include field in full-text search'),\n filterable: z.boolean().default(false).describe('Allow filtering on this field'),\n sortable: z.boolean().default(false).describe('Allow sorting by this field'),\n boost: z.number().default(1).describe('Relevance boost factor for this field'),\n })).describe('Fields to include in the search index'),\n replicas: z.number().default(1).describe('Number of index replicas for availability'),\n shards: z.number().default(1).describe('Number of index shards for distribution'),\n}).describe('Search index definition mapping an ObjectQL object to a search engine index');\n\nexport type SearchIndexConfig = z.infer<typeof SearchIndexConfigSchema>;\n\nexport const FacetConfigSchema = z.object({\n field: z.string().describe('Field name to generate facets from'),\n maxValues: z.number().default(10).describe('Maximum number of facet values to return'),\n sort: z.enum(['count', 'alpha']).default('count').describe('Facet value sort order'),\n}).describe('Faceted search configuration for a single field');\n\nexport type FacetConfig = z.infer<typeof FacetConfigSchema>;\n\nexport const SearchConfigSchema = z.object({\n provider: SearchProviderSchema.describe('Search engine backend provider'),\n indexes: z.array(SearchIndexConfigSchema).describe('Search index definitions'),\n analyzers: z.record(z.string(), AnalyzerConfigSchema).optional().describe('Named text analyzer configurations'),\n facets: z.array(FacetConfigSchema).optional().describe('Faceted search configurations'),\n typoTolerance: z.boolean().default(true).describe('Enable typo-tolerant search'),\n synonyms: z.record(z.string(), z.array(z.string())).optional().describe('Synonym mappings for search expansion'),\n ranking: z.array(z.enum(['typo', 'geo', 'words', 'filters', 'proximity', 'attribute', 'exact', 'custom'])).optional().describe('Custom ranking rule order'),\n}).describe('Top-level full-text search engine configuration');\n\nexport type SearchConfig = z.infer<typeof SearchConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Shared HTTP Schemas\n * \n * Common HTTP-related schemas used across API and System protocols.\n * These schemas ensure consistency across different parts of the stack.\n */\n\n// ==========================================\n// Basic HTTP Types\n// ==========================================\n\n/**\n * HTTP Method Enum\n */\nexport const HttpMethod = z.enum([\n 'GET', \n 'POST', \n 'PUT', \n 'DELETE', \n 'PATCH', \n 'HEAD', \n 'OPTIONS'\n]);\n\nexport type HttpMethod = z.infer<typeof HttpMethod>;\n\n// ==========================================\n// CORS Configuration\n// ==========================================\n\n/**\n * CORS Configuration Schema\n * Cross-Origin Resource Sharing configuration\n * \n * Used by:\n * - api/router.zod.ts (RouterConfigSchema)\n * - system/http-server.zod.ts (HttpServerConfigSchema)\n * \n * @example\n * {\n * \"enabled\": true,\n * \"origins\": [\"http://localhost:3000\", \"https://app.example.com\"],\n * \"methods\": [\"GET\", \"POST\", \"PUT\", \"DELETE\"],\n * \"credentials\": true,\n * \"maxAge\": 86400\n * }\n */\nexport const CorsConfigSchema = z.object({\n /**\n * Enable CORS\n */\n enabled: z.boolean().default(true).describe('Enable CORS'),\n \n /**\n * Allowed origins (* for all)\n */\n origins: z.union([\n z.string(),\n z.array(z.string())\n ]).default('*').describe('Allowed origins (* for all)'),\n \n /**\n * Allowed HTTP methods\n */\n methods: z.array(HttpMethod).optional().describe('Allowed HTTP methods'),\n \n /**\n * Allow credentials (cookies, authorization headers)\n */\n credentials: z.boolean().default(false).describe('Allow credentials (cookies, authorization headers)'),\n \n /**\n * Preflight cache duration in seconds\n */\n maxAge: z.number().int().optional().describe('Preflight cache duration in seconds'),\n});\n\nexport type CorsConfig = z.infer<typeof CorsConfigSchema>;\n\n// ==========================================\n// Rate Limiting\n// ==========================================\n\n/**\n * Rate Limit Configuration Schema\n * \n * Used by:\n * - api/endpoint.zod.ts (ApiEndpointSchema)\n * - system/http-server.zod.ts (HttpServerConfigSchema)\n * \n * @example\n * {\n * \"enabled\": true,\n * \"windowMs\": 60000,\n * \"maxRequests\": 100\n * }\n */\nexport const RateLimitConfigSchema = z.object({\n /**\n * Enable rate limiting\n */\n enabled: z.boolean().default(false).describe('Enable rate limiting'),\n \n /**\n * Time window in milliseconds\n */\n windowMs: z.number().int().default(60000).describe('Time window in milliseconds'),\n \n /**\n * Max requests per window\n */\n maxRequests: z.number().int().default(100).describe('Max requests per window'),\n});\n\nexport type RateLimitConfig = z.infer<typeof RateLimitConfigSchema>;\n\n// ==========================================\n// Static File Serving\n// ==========================================\n\n/**\n * Static Mount Configuration Schema\n * Configuration for serving static files\n * \n * Used by:\n * - api/router.zod.ts (RouterConfigSchema)\n * - system/http-server.zod.ts (HttpServerConfigSchema)\n * \n * @example\n * {\n * \"path\": \"/static\",\n * \"directory\": \"./public\",\n * \"cacheControl\": \"public, max-age=31536000\"\n * }\n */\nexport const StaticMountSchema = z.object({\n /**\n * URL path to serve from\n */\n path: z.string().describe('URL path to serve from'),\n \n /**\n * Physical directory to serve\n */\n directory: z.string().describe('Physical directory to serve'),\n \n /**\n * Cache-Control header value\n */\n cacheControl: z.string().optional().describe('Cache-Control header value'),\n});\n\nexport type StaticMount = z.infer<typeof StaticMountSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { HttpMethod, CorsConfigSchema, RateLimitConfigSchema, StaticMountSchema } from '../shared/http.zod';\n\n/**\n * HTTP Server Protocol\n * \n * Defines the runtime HTTP server configuration and capabilities.\n * Provides abstractions for HTTP server implementations (Express, Fastify, Hono, etc.)\n * \n * Architecture alignment:\n * - Kubernetes: Service and Ingress resources\n * - AWS: API Gateway configuration\n * - Spring Boot: Application properties\n */\n\n// ==========================================\n// Server Configuration\n// ==========================================\n\n/**\n * HTTP Server Configuration Schema\n * Core configuration for HTTP server instances\n * \n * @example\n * {\n * \"port\": 3000,\n * \"host\": \"0.0.0.0\",\n * \"cors\": {\n * \"enabled\": true,\n * \"origins\": [\"http://localhost:3000\"]\n * },\n * \"compression\": true,\n * \"requestTimeout\": 30000\n * }\n */\nexport const HttpServerConfigSchema = z.object({\n /**\n * Server port number\n */\n port: z.number().int().min(1).max(65535).default(3000).describe('Port number to listen on'),\n \n /**\n * Server host address\n */\n host: z.string().default('0.0.0.0').describe('Host address to bind to'),\n \n /**\n * CORS configuration\n */\n cors: CorsConfigSchema.optional().describe('CORS configuration'),\n \n /**\n * Request handling options\n */\n requestTimeout: z.number().int().default(30000).describe('Request timeout in milliseconds'),\n bodyLimit: z.string().default('10mb').describe('Maximum request body size'),\n \n /**\n * Compression settings\n */\n compression: z.boolean().default(true).describe('Enable response compression'),\n \n /**\n * Security headers\n */\n security: z.object({\n helmet: z.boolean().default(true).describe('Enable security headers via helmet'),\n rateLimit: RateLimitConfigSchema.optional().describe('Global rate limiting configuration'),\n }).optional().describe('Security configuration'),\n \n /**\n * Static file serving\n */\n static: z.array(StaticMountSchema).optional().describe('Static file serving configuration'),\n \n /**\n * Trust proxy settings\n */\n trustProxy: z.boolean().default(false).describe('Trust X-Forwarded-* headers'),\n});\n\nexport type HttpServerConfig = z.infer<typeof HttpServerConfigSchema>;\nexport type HttpServerConfigInput = z.input<typeof HttpServerConfigSchema>;\n\n// ==========================================\n// Route Registration\n// ==========================================\n\n/**\n * Route Handler Metadata Schema\n * Metadata for route handlers used in registration\n */\nexport const RouteHandlerMetadataSchema = z.object({\n /**\n * HTTP method\n */\n method: HttpMethod.describe('HTTP method'),\n \n /**\n * URL path pattern (supports parameters like /api/users/:id)\n */\n path: z.string().describe('URL path pattern'),\n \n /**\n * Handler function name or identifier\n */\n handler: z.string().describe('Handler identifier or name'),\n \n /**\n * Route metadata\n */\n metadata: z.object({\n summary: z.string().optional().describe('Route summary for documentation'),\n description: z.string().optional().describe('Route description'),\n tags: z.array(z.string()).optional().describe('Tags for grouping'),\n operationId: z.string().optional().describe('Unique operation identifier'),\n }).optional(),\n \n /**\n * Security requirements\n */\n security: z.object({\n authRequired: z.boolean().default(true).describe('Require authentication'),\n permissions: z.array(z.string()).optional().describe('Required permissions'),\n rateLimit: z.string().optional().describe('Rate limit policy override'),\n }).optional(),\n});\n\nexport type RouteHandlerMetadata = z.infer<typeof RouteHandlerMetadataSchema>;\nexport type RouteHandlerMetadataInput = z.input<typeof RouteHandlerMetadataSchema>;\n\n// ==========================================\n// Middleware Configuration\n// ==========================================\n\n/**\n * Middleware Type Enum\n */\nexport const MiddlewareType = z.enum([\n 'authentication', // Authentication middleware\n 'authorization', // Authorization/permission checks\n 'logging', // Request/response logging\n 'validation', // Input validation\n 'transformation', // Request/response transformation\n 'error', // Error handling\n 'custom', // Custom middleware\n]);\n\nexport type MiddlewareType = z.infer<typeof MiddlewareType>;\n\n/**\n * Middleware Configuration Schema\n * Defines middleware execution order and configuration\n * \n * @example\n * {\n * \"name\": \"auth_middleware\",\n * \"type\": \"authentication\",\n * \"enabled\": true,\n * \"order\": 10,\n * \"config\": {\n * \"jwtSecret\": \"secret\",\n * \"excludePaths\": [\"/health\", \"/metrics\"]\n * }\n * }\n */\nexport const MiddlewareConfigSchema = z.object({\n /**\n * Middleware identifier\n */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Middleware name (snake_case)'),\n \n /**\n * Middleware type\n */\n type: MiddlewareType.describe('Middleware type'),\n \n /**\n * Enable/disable middleware\n */\n enabled: z.boolean().default(true).describe('Whether middleware is enabled'),\n \n /**\n * Execution order (lower numbers execute first)\n */\n order: z.number().int().default(100).describe('Execution order priority'),\n \n /**\n * Middleware-specific configuration\n */\n config: z.record(z.string(), z.unknown()).optional().describe('Middleware configuration object'),\n \n /**\n * Path patterns to apply middleware to\n */\n paths: z.object({\n include: z.array(z.string()).optional().describe('Include path patterns (glob)'),\n exclude: z.array(z.string()).optional().describe('Exclude path patterns (glob)'),\n }).optional().describe('Path filtering'),\n});\n\nexport type MiddlewareConfig = z.infer<typeof MiddlewareConfigSchema>;\nexport type MiddlewareConfigInput = z.input<typeof MiddlewareConfigSchema>;\n\n// ==========================================\n// Server Lifecycle Events\n// ==========================================\n\n/**\n * Server Event Type Enum\n */\nexport const ServerEventType = z.enum([\n 'starting', // Server is starting\n 'started', // Server has started and is listening\n 'stopping', // Server is stopping\n 'stopped', // Server has stopped\n 'request', // Request received\n 'response', // Response sent\n 'error', // Error occurred\n]);\n\nexport type ServerEventType = z.infer<typeof ServerEventType>;\n\n/**\n * Server Event Schema\n * Events emitted by the HTTP server during lifecycle\n */\nexport const ServerEventSchema = z.object({\n /**\n * Event type\n */\n type: ServerEventType.describe('Event type'),\n \n /**\n * Timestamp\n */\n timestamp: z.string().datetime().describe('Event timestamp (ISO 8601)'),\n \n /**\n * Event payload\n */\n data: z.record(z.string(), z.unknown()).optional().describe('Event-specific data'),\n});\n\nexport type ServerEvent = z.infer<typeof ServerEventSchema>;\n\n// ==========================================\n// Server Capability Declaration\n// ==========================================\n\n/**\n * Server Capabilities Schema\n * Declares what features a server implementation supports\n */\nexport const ServerCapabilitiesSchema = z.object({\n /**\n * Supported HTTP versions\n */\n httpVersions: z.array(z.enum(['1.0', '1.1', '2.0', '3.0'])).default(['1.1']).describe('Supported HTTP versions'),\n \n /**\n * WebSocket support\n */\n websocket: z.boolean().default(false).describe('WebSocket support'),\n \n /**\n * Server-Sent Events support\n */\n sse: z.boolean().default(false).describe('Server-Sent Events support'),\n \n /**\n * HTTP/2 Server Push\n */\n serverPush: z.boolean().default(false).describe('HTTP/2 Server Push support'),\n \n /**\n * Streaming support\n */\n streaming: z.boolean().default(true).describe('Response streaming support'),\n \n /**\n * Middleware support\n */\n middleware: z.boolean().default(true).describe('Middleware chain support'),\n \n /**\n * Route parameterization\n */\n routeParams: z.boolean().default(true).describe('URL parameter support (/users/:id)'),\n \n /**\n * Built-in compression\n */\n compression: z.boolean().default(true).describe('Built-in compression support'),\n});\n\nexport type ServerCapabilities = z.infer<typeof ServerCapabilitiesSchema>;\nexport type ServerCapabilitiesInput = z.input<typeof ServerCapabilitiesSchema>;\n\n// ==========================================\n// Server Status & Metrics\n// ==========================================\n\n/**\n * Server Status Schema\n * Current operational status of the server\n */\nexport const ServerStatusSchema = z.object({\n /**\n * Server state\n */\n state: z.enum(['stopped', 'starting', 'running', 'stopping', 'error']).describe('Current server state'),\n \n /**\n * Uptime in milliseconds\n */\n uptime: z.number().int().optional().describe('Server uptime in milliseconds'),\n \n /**\n * Server information\n */\n server: z.object({\n port: z.number().int().describe('Listening port'),\n host: z.string().describe('Bound host'),\n url: z.string().optional().describe('Full server URL'),\n }).optional(),\n \n /**\n * Connection metrics\n */\n connections: z.object({\n active: z.number().int().describe('Active connections'),\n total: z.number().int().describe('Total connections handled'),\n }).optional(),\n \n /**\n * Request metrics\n */\n requests: z.object({\n total: z.number().int().describe('Total requests processed'),\n success: z.number().int().describe('Successful requests'),\n errors: z.number().int().describe('Failed requests'),\n }).optional(),\n});\n\nexport type ServerStatus = z.infer<typeof ServerStatusSchema>;\n\n// ==========================================\n// Helper Functions\n// ==========================================\n\n/**\n * Helper to create HTTP server configuration\n */\nexport const HttpServerConfig = Object.assign(HttpServerConfigSchema, {\n create: <T extends z.input<typeof HttpServerConfigSchema>>(config: T) => config,\n});\n\n/**\n * Helper to create middleware configuration\n */\nexport const MiddlewareConfig = Object.assign(MiddlewareConfigSchema, {\n create: <T extends z.input<typeof MiddlewareConfigSchema>>(config: T) => config,\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Audit Log Architecture\n * \n * Comprehensive audit logging system for compliance and security.\n * Supports SOX, HIPAA, GDPR, and other regulatory requirements.\n * \n * Features:\n * - Records all CRUD operations on data\n * - Tracks authentication events (login, logout, password reset)\n * - Monitors authorization changes (permissions, roles)\n * - Configurable retention policies (180-day GDPR requirement)\n * - Suspicious activity detection and alerting\n */\n\n/**\n * Audit Event Type Enum\n * Categorizes different types of auditable events in the system\n */\nexport const AuditEventType = z.enum([\n // Data Operations (CRUD)\n 'data.create', // Record creation\n 'data.read', // Record retrieval/viewing\n 'data.update', // Record modification\n 'data.delete', // Record deletion\n 'data.export', // Data export operations\n 'data.import', // Data import operations\n 'data.bulk_update', // Bulk update operations\n 'data.bulk_delete', // Bulk delete operations\n \n // Authentication Events\n 'auth.login', // Successful login\n 'auth.login_failed', // Failed login attempt\n 'auth.logout', // User logout\n 'auth.session_created', // New session created\n 'auth.session_expired', // Session expiration\n 'auth.password_reset', // Password reset initiated\n 'auth.password_changed', // Password successfully changed\n 'auth.email_verified', // Email verification completed\n 'auth.mfa_enabled', // Multi-factor auth enabled\n 'auth.mfa_disabled', // Multi-factor auth disabled\n 'auth.account_locked', // Account locked (too many failures)\n 'auth.account_unlocked', // Account unlocked\n \n // Authorization Events\n 'authz.permission_granted', // Permission granted to user\n 'authz.permission_revoked', // Permission revoked from user\n 'authz.role_assigned', // Role assigned to user\n 'authz.role_removed', // Role removed from user\n 'authz.role_created', // New role created\n 'authz.role_updated', // Role permissions modified\n 'authz.role_deleted', // Role deleted\n 'authz.policy_created', // Security policy created\n 'authz.policy_updated', // Security policy updated\n 'authz.policy_deleted', // Security policy deleted\n \n // System Events\n 'system.config_changed', // System configuration modified\n 'system.plugin_installed', // Plugin installed\n 'system.plugin_uninstalled', // Plugin uninstalled\n 'system.backup_created', // Backup created\n 'system.backup_restored', // Backup restored\n 'system.integration_added', // External integration added\n 'system.integration_removed',// External integration removed\n \n // Security Events\n 'security.access_denied', // Access denied (authorization failure)\n 'security.suspicious_activity', // Suspicious activity detected\n 'security.data_breach', // Potential data breach detected\n 'security.api_key_created', // API key created\n 'security.api_key_revoked', // API key revoked\n]);\n\nexport type AuditEventType = z.infer<typeof AuditEventType>;\n\n/**\n * Audit Event Severity Level\n * Indicates the importance/criticality of an audit event\n */\nexport const AuditEventSeverity = z.enum([\n 'debug', // Diagnostic information\n 'info', // Informational events (normal operations)\n 'notice', // Normal but significant events\n 'warning', // Warning conditions\n 'error', // Error conditions\n 'critical', // Critical conditions requiring immediate attention\n 'alert', // Action must be taken immediately\n 'emergency', // System is unusable\n]);\n\nexport type AuditEventSeverity = z.infer<typeof AuditEventSeverity>;\n\n/**\n * Audit Event Actor Schema\n * Identifies who/what performed the action\n */\nexport const AuditEventActorSchema = z.object({\n /**\n * Actor type (user, system, service, api_client, etc.)\n */\n type: z.enum(['user', 'system', 'service', 'api_client', 'integration']).describe('Actor type'),\n \n /**\n * Unique identifier for the actor\n */\n id: z.string().describe('Actor identifier'),\n \n /**\n * Display name of the actor\n */\n name: z.string().optional().describe('Actor display name'),\n \n /**\n * Email address (for user actors)\n */\n email: z.string().email().optional().describe('Actor email address'),\n \n /**\n * IP address of the actor\n */\n ipAddress: z.string().optional().describe('Actor IP address'),\n \n /**\n * User agent string (for web/API requests)\n */\n userAgent: z.string().optional().describe('User agent string'),\n});\n\nexport type AuditEventActor = z.infer<typeof AuditEventActorSchema>;\n\n/**\n * Audit Event Target Schema\n * Identifies what was acted upon\n */\nexport const AuditEventTargetSchema = z.object({\n /**\n * Target type (e.g., 'object', 'record', 'user', 'role', 'config')\n */\n type: z.string().describe('Target type'),\n \n /**\n * Unique identifier for the target\n */\n id: z.string().describe('Target identifier'),\n \n /**\n * Display name of the target\n */\n name: z.string().optional().describe('Target display name'),\n \n /**\n * Additional metadata about the target\n */\n metadata: z.record(z.string(), z.unknown()).optional().describe('Target metadata'),\n});\n\nexport type AuditEventTarget = z.infer<typeof AuditEventTargetSchema>;\n\n/**\n * Audit Event Change Schema\n * Describes what changed (for update operations)\n */\nexport const AuditEventChangeSchema = z.object({\n /**\n * Field/property that changed\n */\n field: z.string().describe('Changed field name'),\n \n /**\n * Value before the change\n */\n oldValue: z.unknown().optional().describe('Previous value'),\n \n /**\n * Value after the change\n */\n newValue: z.unknown().optional().describe('New value'),\n});\n\nexport type AuditEventChange = z.infer<typeof AuditEventChangeSchema>;\n\n/**\n * Audit Event Schema\n * Complete audit event record\n */\nexport const AuditEventSchema = z.object({\n /**\n * Unique identifier for this audit event\n */\n id: z.string().describe('Audit event ID'),\n \n /**\n * Type of event being audited\n */\n eventType: AuditEventType.describe('Event type'),\n \n /**\n * Severity level of the event\n */\n severity: AuditEventSeverity.default('info').describe('Event severity'),\n \n /**\n * Timestamp when the event occurred (ISO 8601)\n */\n timestamp: z.string().datetime().describe('Event timestamp'),\n \n /**\n * Who/what performed the action\n */\n actor: AuditEventActorSchema.describe('Event actor'),\n \n /**\n * What was acted upon\n */\n target: AuditEventTargetSchema.optional().describe('Event target'),\n \n /**\n * Human-readable description of the action\n */\n description: z.string().describe('Event description'),\n \n /**\n * Detailed changes (for update operations)\n */\n changes: z.array(AuditEventChangeSchema).optional().describe('List of changes'),\n \n /**\n * Result of the action (success, failure, partial)\n */\n result: z.enum(['success', 'failure', 'partial']).default('success').describe('Action result'),\n \n /**\n * Error message (if result is failure)\n */\n errorMessage: z.string().optional().describe('Error message'),\n \n /**\n * Tenant identifier (for multi-tenant systems)\n */\n tenantId: z.string().optional().describe('Tenant identifier'),\n \n /**\n * Request/trace ID for correlation\n */\n requestId: z.string().optional().describe('Request ID for tracing'),\n \n /**\n * Additional context and metadata\n */\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata'),\n \n /**\n * Geographic location (if available)\n */\n location: z.object({\n country: z.string().optional(),\n region: z.string().optional(),\n city: z.string().optional(),\n }).optional().describe('Geographic location'),\n});\n\nexport type AuditEvent = z.infer<typeof AuditEventSchema>;\n\n/**\n * Audit Retention Policy Schema\n * Defines how long audit logs are retained\n */\nexport const AuditRetentionPolicySchema = z.object({\n /**\n * Retention period in days\n * Default: 180 days (GDPR 6-month requirement)\n */\n retentionDays: z.number().int().min(1).default(180).describe('Retention period in days'),\n \n /**\n * Whether to archive logs after retention period\n * If true, logs are moved to cold storage; if false, they are deleted\n */\n archiveAfterRetention: z.boolean().default(true).describe('Archive logs after retention period'),\n \n /**\n * Archive storage configuration\n */\n archiveStorage: z.object({\n type: z.enum(['s3', 'gcs', 'azure_blob', 'filesystem']).describe('Archive storage type'),\n endpoint: z.string().optional().describe('Storage endpoint URL'),\n bucket: z.string().optional().describe('Storage bucket/container name'),\n path: z.string().optional().describe('Storage path prefix'),\n credentials: z.record(z.string(), z.unknown()).optional().describe('Storage credentials'),\n }).optional().describe('Archive storage configuration'),\n \n /**\n * Event types that have different retention periods\n * Overrides the default retentionDays for specific event types\n */\n customRetention: z.record(z.string(), z.number().int().positive()).optional().describe('Custom retention by event type'),\n \n /**\n * Minimum retention period for compliance\n * Prevents accidental deletion below compliance requirements\n */\n minimumRetentionDays: z.number().int().positive().optional().describe('Minimum retention for compliance'),\n});\n\nexport type AuditRetentionPolicy = z.infer<typeof AuditRetentionPolicySchema>;\n\n/**\n * Suspicious Activity Rule Schema\n * Defines rules for detecting suspicious activities\n */\nexport const SuspiciousActivityRuleSchema = z.object({\n /**\n * Unique identifier for the rule\n */\n id: z.string().describe('Rule identifier'),\n \n /**\n * Rule name\n */\n name: z.string().describe('Rule name'),\n \n /**\n * Rule description\n */\n description: z.string().optional().describe('Rule description'),\n \n /**\n * Whether the rule is enabled\n */\n enabled: z.boolean().default(true).describe('Rule enabled status'),\n \n /**\n * Event types to monitor\n */\n eventTypes: z.array(AuditEventType).describe('Event types to monitor'),\n \n /**\n * Detection condition\n */\n condition: z.object({\n /**\n * Number of events that trigger the rule\n */\n threshold: z.number().int().positive().describe('Event threshold'),\n \n /**\n * Time window in seconds\n */\n windowSeconds: z.number().int().positive().describe('Time window in seconds'),\n \n /**\n * Grouping criteria (e.g., by actor.id, by ipAddress)\n */\n groupBy: z.array(z.string()).optional().describe('Grouping criteria'),\n \n /**\n * Additional filters\n */\n filters: z.record(z.string(), z.unknown()).optional().describe('Additional filters'),\n }).describe('Detection condition'),\n \n /**\n * Actions to take when rule is triggered\n */\n actions: z.array(z.enum([\n 'alert', // Send alert notification\n 'lock_account', // Lock the user account\n 'block_ip', // Block the IP address\n 'require_mfa', // Require multi-factor authentication\n 'log_critical', // Log as critical event\n 'webhook', // Call webhook\n ])).describe('Actions to take'),\n \n /**\n * Severity level for triggered alerts\n */\n alertSeverity: AuditEventSeverity.default('warning').describe('Alert severity'),\n \n /**\n * Notification configuration\n */\n notifications: z.object({\n /**\n * Email addresses to notify\n */\n email: z.array(z.string().email()).optional().describe('Email recipients'),\n \n /**\n * Slack webhook URL\n */\n slack: z.string().url().optional().describe('Slack webhook URL'),\n \n /**\n * Custom webhook URL\n */\n webhook: z.string().url().optional().describe('Custom webhook URL'),\n }).optional().describe('Notification configuration'),\n});\n\nexport type SuspiciousActivityRule = z.infer<typeof SuspiciousActivityRuleSchema>;\n\n/**\n * Audit Log Storage Configuration\n * Defines where and how audit logs are stored\n */\nexport const AuditStorageConfigSchema = z.object({\n /**\n * Storage backend type\n */\n type: z.enum([\n 'database', // Store in database (PostgreSQL, MySQL, etc.)\n 'elasticsearch', // Store in Elasticsearch\n 'mongodb', // Store in MongoDB\n 'clickhouse', // Store in ClickHouse (for analytics)\n 's3', // Store in S3-compatible storage\n 'gcs', // Store in Google Cloud Storage\n 'azure_blob', // Store in Azure Blob Storage\n 'custom', // Custom storage implementation\n ]).describe('Storage backend type'),\n \n /**\n * Connection string or configuration\n */\n connectionString: z.string().optional().describe('Connection string'),\n \n /**\n * Storage configuration\n */\n config: z.record(z.string(), z.unknown()).optional().describe('Storage-specific configuration'),\n \n /**\n * Whether to enable buffering/batching\n */\n bufferEnabled: z.boolean().default(true).describe('Enable buffering'),\n \n /**\n * Buffer size (number of events before flush)\n */\n bufferSize: z.number().int().positive().default(100).describe('Buffer size'),\n \n /**\n * Buffer flush interval in seconds\n */\n flushIntervalSeconds: z.number().int().positive().default(5).describe('Flush interval in seconds'),\n \n /**\n * Whether to compress stored data\n */\n compression: z.boolean().default(true).describe('Enable compression'),\n});\n\nexport type AuditStorageConfig = z.infer<typeof AuditStorageConfigSchema>;\n\n/**\n * Audit Event Filter Schema\n * Defines filters for querying audit events\n */\nexport const AuditEventFilterSchema = z.object({\n /**\n * Filter by event types\n */\n eventTypes: z.array(AuditEventType).optional().describe('Event types to include'),\n \n /**\n * Filter by severity levels\n */\n severities: z.array(AuditEventSeverity).optional().describe('Severity levels to include'),\n \n /**\n * Filter by actor ID\n */\n actorId: z.string().optional().describe('Actor identifier'),\n \n /**\n * Filter by tenant ID\n */\n tenantId: z.string().optional().describe('Tenant identifier'),\n \n /**\n * Filter by time range\n */\n timeRange: z.object({\n from: z.string().datetime().describe('Start time'),\n to: z.string().datetime().describe('End time'),\n }).optional().describe('Time range filter'),\n \n /**\n * Filter by result status\n */\n result: z.enum(['success', 'failure', 'partial']).optional().describe('Result status'),\n \n /**\n * Search query (full-text search)\n */\n searchQuery: z.string().optional().describe('Search query'),\n \n /**\n * Custom filters\n */\n customFilters: z.record(z.string(), z.unknown()).optional().describe('Custom filters'),\n});\n\nexport type AuditEventFilter = z.infer<typeof AuditEventFilterSchema>;\n\n/**\n * Complete Audit Configuration Schema\n * Main configuration for the audit system\n */\nexport const AuditConfigSchema = z.object({\n /**\n * Unique identifier for this audit configuration\n * Must be in snake_case following ObjectStack conventions\n * Maximum length: 64 characters\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .max(64)\n .describe('Configuration name (snake_case, max 64 chars)'),\n \n /**\n * Human-readable label\n */\n label: z.string().describe('Display label'),\n \n /**\n * Whether audit logging is enabled\n */\n enabled: z.boolean().default(true).describe('Enable audit logging'),\n \n /**\n * Event types to audit\n * If not specified, all event types are audited\n */\n eventTypes: z.array(AuditEventType).optional().describe('Event types to audit'),\n \n /**\n * Event types to exclude from auditing\n */\n excludeEventTypes: z.array(AuditEventType).optional().describe('Event types to exclude'),\n \n /**\n * Minimum severity level to log\n * Events below this level are not logged\n */\n minimumSeverity: AuditEventSeverity.default('info').describe('Minimum severity level'),\n \n /**\n * Storage configuration\n */\n storage: AuditStorageConfigSchema.describe('Storage configuration'),\n \n /**\n * Retention policy\n */\n retentionPolicy: AuditRetentionPolicySchema.optional().describe('Retention policy'),\n \n /**\n * Suspicious activity detection rules\n */\n suspiciousActivityRules: z.array(SuspiciousActivityRuleSchema).default([]).describe('Suspicious activity rules'),\n \n /**\n * Whether to include sensitive data in audit logs\n * If false, sensitive fields are redacted/masked\n */\n includeSensitiveData: z.boolean().default(false).describe('Include sensitive data'),\n \n /**\n * Fields to redact from audit logs\n */\n redactFields: z.array(z.string()).default([\n 'password',\n 'passwordHash',\n 'token',\n 'apiKey',\n 'secret',\n 'creditCard',\n 'ssn',\n ]).describe('Fields to redact'),\n \n /**\n * Whether to log successful read operations\n * Can be disabled to reduce log volume\n */\n logReads: z.boolean().default(false).describe('Log read operations'),\n \n /**\n * Sampling rate for read operations (0.0 to 1.0)\n * Only applies if logReads is true\n */\n readSamplingRate: z.number().min(0).max(1).default(0.1).describe('Read sampling rate'),\n \n /**\n * Whether to log system/internal operations\n */\n logSystemEvents: z.boolean().default(true).describe('Log system events'),\n \n /**\n * Custom audit event handlers\n * Note: Function handlers are for runtime configuration only and will not be serialized to JSON Schema\n */\n customHandlers: z.array(z.object({\n eventType: AuditEventType.describe('Event type to handle'),\n handlerId: z.string().describe('Unique identifier for the handler'),\n })).optional().describe('Custom event handler references'),\n \n /**\n * Compliance mode configuration\n */\n compliance: z.object({\n /**\n * Compliance standards to enforce\n */\n standards: z.array(z.enum([\n 'sox', // Sarbanes-Oxley Act\n 'hipaa', // Health Insurance Portability and Accountability Act\n 'gdpr', // General Data Protection Regulation\n 'pci_dss', // Payment Card Industry Data Security Standard\n 'iso_27001',// ISO/IEC 27001\n 'fedramp', // Federal Risk and Authorization Management Program\n ])).optional().describe('Compliance standards'),\n \n /**\n * Whether to enforce immutable audit logs\n */\n immutableLogs: z.boolean().default(true).describe('Enforce immutable logs'),\n \n /**\n * Whether to require cryptographic signing\n */\n requireSigning: z.boolean().default(false).describe('Require log signing'),\n \n /**\n * Signing key configuration\n */\n signingKey: z.string().optional().describe('Signing key'),\n }).optional().describe('Compliance configuration'),\n});\n\nexport type AuditConfig = z.infer<typeof AuditConfigSchema>;\n\n/**\n * Default suspicious activity rules\n * Common security patterns to detect\n */\nexport const DEFAULT_SUSPICIOUS_ACTIVITY_RULES: SuspiciousActivityRule[] = [\n {\n id: 'multiple_failed_logins',\n name: 'Multiple Failed Login Attempts',\n description: 'Detects multiple failed login attempts from the same user or IP',\n enabled: true,\n eventTypes: ['auth.login_failed'],\n condition: {\n threshold: 5,\n windowSeconds: 600, // 10 minutes\n groupBy: ['actor.id', 'actor.ipAddress'],\n },\n actions: ['alert', 'lock_account'],\n alertSeverity: 'warning',\n },\n {\n id: 'bulk_data_export',\n name: 'Bulk Data Export',\n description: 'Detects large data export operations',\n enabled: true,\n eventTypes: ['data.export'],\n condition: {\n threshold: 3,\n windowSeconds: 3600, // 1 hour\n groupBy: ['actor.id'],\n },\n actions: ['alert', 'log_critical'],\n alertSeverity: 'warning',\n },\n {\n id: 'suspicious_permission_changes',\n name: 'Rapid Permission Changes',\n description: 'Detects rapid permission or role changes',\n enabled: true,\n eventTypes: ['authz.permission_granted', 'authz.role_assigned'],\n condition: {\n threshold: 10,\n windowSeconds: 300, // 5 minutes\n groupBy: ['actor.id'],\n },\n actions: ['alert', 'log_critical'],\n alertSeverity: 'critical',\n },\n {\n id: 'after_hours_access',\n name: 'After Hours Access',\n description: 'Detects access during non-business hours',\n enabled: false, // Disabled by default, requires time zone configuration\n eventTypes: ['auth.login'],\n condition: {\n threshold: 1,\n windowSeconds: 86400, // 24 hours\n },\n actions: ['alert'],\n alertSeverity: 'notice',\n },\n];\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Logging Protocol - Comprehensive Observability Logging\n * \n * Unified logging protocol that combines:\n * - Basic kernel logging (LoggerConfig)\n * - Enterprise-grade features (LoggingConfig)\n * - Multiple log destinations (file, console, external services)\n * - Structured logging with enrichment\n * - Log aggregation and forwarding\n * - Integration with external log management systems\n */\n\n// ============================================================================\n// Basic Logger Protocol (formerly from logger.zod.ts)\n// ============================================================================\n\n/**\n * Log Level Enum\n * Standard RFC 5424 severity levels (simplified)\n */\nexport const LogLevel = z.enum([\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'fatal',\n 'silent'\n]).describe('Log severity level');\n\nexport type LogLevel = z.infer<typeof LogLevel>;\n\n/**\n * Log Format Enum\n */\nexport const LogFormat = z.enum([\n 'json', // Structured JSON for machine parsing\n 'text', // Simple text format\n 'pretty' // Colored human-readable output for CLI/console\n]).describe('Log output format');\n\nexport type LogFormat = z.infer<typeof LogFormat>;\n\n/**\n * Logger Configuration Schema\n * Configuration for the Kernel's internal logger\n */\nexport const LoggerConfigSchema = z.object({\n /**\n * Logger name\n */\n name: z.string().optional().describe('Logger name identifier'),\n\n /**\n * Minimum level to log\n */\n level: LogLevel.optional().default('info'),\n\n /**\n * Output format\n */\n format: LogFormat.optional().default('json'),\n\n /**\n * Redact sensitive keys\n */\n redact: z.array(z.string()).optional().default(['password', 'token', 'secret', 'key'])\n .describe('Keys to redact from log context'),\n\n /**\n * Enable source location (file/line)\n */\n sourceLocation: z.boolean().optional().default(false)\n .describe('Include file and line number'),\n\n /**\n * Log to file (optional)\n */\n file: z.string().optional().describe('Path to log file'),\n\n /**\n * Log rotation config (if file is set)\n */\n rotation: z.object({\n maxSize: z.string().optional().default('10m'),\n maxFiles: z.number().optional().default(5)\n }).optional()\n});\n\nexport type LoggerConfig = z.infer<typeof LoggerConfigSchema>;\n\n/**\n * Log Entry Schema\n * The shape of a structured log record\n */\nexport const LogEntrySchema = z.object({\n timestamp: z.string().datetime().describe('ISO 8601 timestamp'),\n level: LogLevel,\n message: z.string().describe('Log message'),\n context: z.record(z.string(), z.unknown()).optional().describe('Structured context data'),\n error: z.record(z.string(), z.unknown()).optional().describe('Error object if present'),\n \n /** Tracing */\n traceId: z.string().optional().describe('Distributed trace ID'),\n spanId: z.string().optional().describe('Span ID'),\n \n /** Source */\n service: z.string().optional().describe('Service name'),\n component: z.string().optional().describe('Component name (e.g. plugin id)'),\n});\n\nexport type LogEntry = z.infer<typeof LogEntrySchema>;\n\n// ============================================================================\n// Extended Logging Protocol (enterprise features)\n// ============================================================================\n\n/**\n * Extended Log Level Enum\n * Standard RFC 5424 severity levels with trace\n */\nexport const ExtendedLogLevel = z.enum([\n 'trace', // Very detailed debugging information\n 'debug', // Debugging information\n 'info', // Informational messages\n 'warn', // Warning messages\n 'error', // Error messages\n 'fatal', // Fatal errors causing shutdown\n]).describe('Extended log severity level');\n\nexport type ExtendedLogLevel = z.infer<typeof ExtendedLogLevel>;\n\n/**\n * Log Destination Type Enum\n * Where logs can be sent\n */\nexport const LogDestinationType = z.enum([\n 'console', // Standard output/error\n 'file', // File system\n 'syslog', // System logger\n 'elasticsearch', // Elasticsearch\n 'cloudwatch', // AWS CloudWatch\n 'stackdriver', // Google Cloud Logging\n 'azure_monitor', // Azure Monitor\n 'datadog', // Datadog\n 'splunk', // Splunk\n 'loki', // Grafana Loki\n 'http', // HTTP endpoint\n 'kafka', // Apache Kafka\n 'redis', // Redis streams\n 'custom', // Custom implementation\n]).describe('Log destination type');\n\nexport type LogDestinationType = z.infer<typeof LogDestinationType>;\n\n/**\n * Console Destination Configuration\n */\nexport const ConsoleDestinationConfigSchema = z.object({\n /**\n * Output stream\n */\n stream: z.enum(['stdout', 'stderr']).optional().default('stdout'),\n\n /**\n * Enable colored output\n */\n colors: z.boolean().optional().default(true),\n\n /**\n * Pretty print JSON\n */\n prettyPrint: z.boolean().optional().default(false),\n}).describe('Console destination configuration');\n\nexport type ConsoleDestinationConfig = z.infer<typeof ConsoleDestinationConfigSchema>;\n\n/**\n * File Destination Configuration\n */\nexport const FileDestinationConfigSchema = z.object({\n /**\n * File path\n */\n path: z.string().describe('Log file path'),\n\n /**\n * Enable log rotation\n */\n rotation: z.object({\n /**\n * Maximum file size before rotation (e.g., '10m', '100k', '1g')\n */\n maxSize: z.string().optional().default('10m'),\n\n /**\n * Maximum number of files to keep\n */\n maxFiles: z.number().int().positive().optional().default(5),\n\n /**\n * Compress rotated files\n */\n compress: z.boolean().optional().default(true),\n\n /**\n * Rotation interval (e.g., 'daily', 'weekly')\n */\n interval: z.enum(['hourly', 'daily', 'weekly', 'monthly']).optional(),\n }).optional(),\n\n /**\n * File encoding\n */\n encoding: z.string().optional().default('utf8'),\n\n /**\n * Append to existing file\n */\n append: z.boolean().optional().default(true),\n}).describe('File destination configuration');\n\nexport type FileDestinationConfig = z.infer<typeof FileDestinationConfigSchema>;\n\n/**\n * HTTP Destination Configuration\n */\nexport const HttpDestinationConfigSchema = z.object({\n /**\n * HTTP endpoint URL\n */\n url: z.string().url().describe('HTTP endpoint URL'),\n\n /**\n * HTTP method\n */\n method: z.enum(['POST', 'PUT']).optional().default('POST'),\n\n /**\n * Headers to include\n */\n headers: z.record(z.string(), z.string()).optional(),\n\n /**\n * Authentication\n */\n auth: z.object({\n type: z.enum(['basic', 'bearer', 'api_key']).describe('Auth type'),\n username: z.string().optional(),\n password: z.string().optional(),\n token: z.string().optional(),\n apiKey: z.string().optional(),\n apiKeyHeader: z.string().optional().default('X-API-Key'),\n }).optional(),\n\n /**\n * Batch configuration\n */\n batch: z.object({\n /**\n * Maximum batch size\n */\n maxSize: z.number().int().positive().optional().default(100),\n\n /**\n * Flush interval in milliseconds\n */\n flushInterval: z.number().int().positive().optional().default(5000),\n }).optional(),\n\n /**\n * Retry configuration\n */\n retry: z.object({\n /**\n * Maximum retry attempts\n */\n maxAttempts: z.number().int().positive().optional().default(3),\n\n /**\n * Initial retry delay in milliseconds\n */\n initialDelay: z.number().int().positive().optional().default(1000),\n\n /**\n * Backoff multiplier\n */\n backoffMultiplier: z.number().positive().optional().default(2),\n }).optional(),\n\n /**\n * Timeout in milliseconds\n */\n timeout: z.number().int().positive().optional().default(30000),\n}).describe('HTTP destination configuration');\n\nexport type HttpDestinationConfig = z.infer<typeof HttpDestinationConfigSchema>;\n\n/**\n * External Service Destination Configuration\n * Generic configuration for cloud logging services\n */\nexport const ExternalServiceDestinationConfigSchema = z.object({\n /**\n * Service-specific endpoint\n */\n endpoint: z.string().url().optional(),\n\n /**\n * Region (for cloud services)\n */\n region: z.string().optional(),\n\n /**\n * Credentials\n */\n credentials: z.object({\n accessKeyId: z.string().optional(),\n secretAccessKey: z.string().optional(),\n apiKey: z.string().optional(),\n projectId: z.string().optional(),\n }).optional(),\n\n /**\n * Log group/stream/index name\n */\n logGroup: z.string().optional(),\n logStream: z.string().optional(),\n index: z.string().optional(),\n\n /**\n * Service-specific configuration\n */\n config: z.record(z.string(), z.unknown()).optional(),\n}).describe('External service destination configuration');\n\nexport type ExternalServiceDestinationConfig = z.infer<typeof ExternalServiceDestinationConfigSchema>;\n\n/**\n * Log Destination Schema\n * Configuration for a single log destination\n */\nexport const LogDestinationSchema = z.object({\n /**\n * Destination name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('Destination name (snake_case)'),\n\n /**\n * Destination type\n */\n type: LogDestinationType.describe('Destination type'),\n\n /**\n * Minimum log level for this destination\n */\n level: ExtendedLogLevel.optional().default('info'),\n\n /**\n * Enabled flag\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Console configuration\n */\n console: ConsoleDestinationConfigSchema.optional(),\n\n /**\n * File configuration\n */\n file: FileDestinationConfigSchema.optional(),\n\n /**\n * HTTP configuration\n */\n http: HttpDestinationConfigSchema.optional(),\n\n /**\n * External service configuration\n */\n externalService: ExternalServiceDestinationConfigSchema.optional(),\n\n /**\n * Format for this destination\n */\n format: z.enum(['json', 'text', 'pretty']).optional().default('json'),\n\n /**\n * Filter function reference (runtime only)\n */\n filterId: z.string().optional().describe('Filter function identifier'),\n}).describe('Log destination configuration');\n\nexport type LogDestination = z.infer<typeof LogDestinationSchema>;\n\n/**\n * Log Enrichment Configuration\n * Add contextual data to all log entries\n */\nexport const LogEnrichmentConfigSchema = z.object({\n /**\n * Static fields to add to all logs\n */\n staticFields: z.record(z.string(), z.unknown()).optional().describe('Static fields added to every log'),\n\n /**\n * Dynamic field enrichers (runtime only)\n * References to functions that add dynamic context\n */\n dynamicEnrichers: z.array(z.string()).optional().describe('Dynamic enricher function IDs'),\n\n /**\n * Add hostname\n */\n addHostname: z.boolean().optional().default(true),\n\n /**\n * Add process ID\n */\n addProcessId: z.boolean().optional().default(true),\n\n /**\n * Add environment info\n */\n addEnvironment: z.boolean().optional().default(true),\n\n /**\n * Add timestamp in additional formats\n */\n addTimestampFormats: z.object({\n unix: z.boolean().optional().default(false),\n iso: z.boolean().optional().default(true),\n }).optional(),\n\n /**\n * Add caller information (file, line, function)\n */\n addCaller: z.boolean().optional().default(false),\n\n /**\n * Add correlation IDs\n */\n addCorrelationIds: z.boolean().optional().default(true),\n}).describe('Log enrichment configuration');\n\nexport type LogEnrichmentConfig = z.infer<typeof LogEnrichmentConfigSchema>;\n\n/**\n * Structured Log Entry Schema\n * Enhanced structured log record with enrichment\n */\nexport const StructuredLogEntrySchema = z.object({\n /**\n * Timestamp (ISO 8601)\n */\n timestamp: z.string().datetime().describe('ISO 8601 timestamp'),\n\n /**\n * Log level\n */\n level: ExtendedLogLevel.describe('Log severity level'),\n\n /**\n * Log message\n */\n message: z.string().describe('Log message'),\n\n /**\n * Structured context data\n */\n context: z.record(z.string(), z.unknown()).optional().describe('Structured context'),\n\n /**\n * Error information\n */\n error: z.object({\n name: z.string().optional(),\n message: z.string().optional(),\n stack: z.string().optional(),\n code: z.string().optional(),\n details: z.record(z.string(), z.unknown()).optional(),\n }).optional().describe('Error details'),\n\n /**\n * Trace context\n */\n trace: z.object({\n traceId: z.string().describe('Trace ID'),\n spanId: z.string().describe('Span ID'),\n parentSpanId: z.string().optional().describe('Parent span ID'),\n traceFlags: z.number().int().optional().describe('Trace flags'),\n }).optional().describe('Distributed tracing context'),\n\n /**\n * Source information\n */\n source: z.object({\n service: z.string().optional().describe('Service name'),\n component: z.string().optional().describe('Component name'),\n file: z.string().optional().describe('Source file'),\n line: z.number().int().optional().describe('Line number'),\n function: z.string().optional().describe('Function name'),\n }).optional().describe('Source information'),\n\n /**\n * Host information\n */\n host: z.object({\n hostname: z.string().optional(),\n pid: z.number().int().optional(),\n ip: z.string().optional(),\n }).optional().describe('Host information'),\n\n /**\n * Environment\n */\n environment: z.string().optional().describe('Environment (e.g., production, staging)'),\n\n /**\n * User information\n */\n user: z.object({\n id: z.string().optional(),\n username: z.string().optional(),\n email: z.string().optional(),\n }).optional().describe('User context'),\n\n /**\n * Request information\n */\n request: z.object({\n id: z.string().optional(),\n method: z.string().optional(),\n path: z.string().optional(),\n userAgent: z.string().optional(),\n ip: z.string().optional(),\n }).optional().describe('Request context'),\n\n /**\n * Custom labels/tags\n */\n labels: z.record(z.string(), z.string()).optional().describe('Custom labels'),\n\n /**\n * Additional metadata\n */\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata'),\n}).describe('Structured log entry');\n\nexport type StructuredLogEntry = z.infer<typeof StructuredLogEntrySchema>;\n\n/**\n * Logging Configuration Schema\n * Main configuration for the logging system\n */\nexport const LoggingConfigSchema = z.object({\n /**\n * Configuration name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .max(64)\n .describe('Configuration name (snake_case, max 64 chars)'),\n\n /**\n * Display label\n */\n label: z.string().describe('Display label'),\n\n /**\n * Enable logging\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Global minimum log level\n */\n level: ExtendedLogLevel.optional().default('info'),\n\n /**\n * Default logger configuration\n * Basic logger config for the kernel\n */\n default: LoggerConfigSchema.optional().describe('Default logger configuration'),\n\n /**\n * Named logger configurations\n * Map of logger name to logger config for different components/modules\n */\n loggers: z.record(z.string(), LoggerConfigSchema).optional().describe('Named logger configurations'),\n\n /**\n * Log destinations\n */\n destinations: z.array(LogDestinationSchema).describe('Log destinations'),\n\n /**\n * Log enrichment configuration\n */\n enrichment: LogEnrichmentConfigSchema.optional(),\n\n /**\n * Fields to redact from logs\n */\n redact: z.array(z.string()).optional().default([\n 'password',\n 'passwordHash',\n 'token',\n 'apiKey',\n 'secret',\n 'creditCard',\n 'ssn',\n 'authorization',\n ]).describe('Fields to redact'),\n\n /**\n * Sampling configuration\n */\n sampling: z.object({\n /**\n * Enable sampling\n */\n enabled: z.boolean().optional().default(false),\n\n /**\n * Sample rate (0.0 to 1.0)\n */\n rate: z.number().min(0).max(1).optional().default(1.0),\n\n /**\n * Sample rate by level\n */\n rateByLevel: z.record(z.string(), z.number().min(0).max(1)).optional(),\n }).optional(),\n\n /**\n * Buffer configuration\n */\n buffer: z.object({\n /**\n * Enable buffering\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Buffer size\n */\n size: z.number().int().positive().optional().default(1000),\n\n /**\n * Flush interval in milliseconds\n */\n flushInterval: z.number().int().positive().optional().default(1000),\n\n /**\n * Flush on shutdown\n */\n flushOnShutdown: z.boolean().optional().default(true),\n }).optional(),\n\n /**\n * Performance configuration\n */\n performance: z.object({\n /**\n * Async logging\n */\n async: z.boolean().optional().default(true),\n\n /**\n * Worker threads for async logging\n */\n workers: z.number().int().positive().optional().default(1),\n }).optional(),\n}).describe('Logging configuration');\n\nexport type LoggingConfig = z.infer<typeof LoggingConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Metrics Protocol - Performance and Operational Metrics\n * \n * Comprehensive metrics collection and monitoring:\n * - Counter, Gauge, Histogram, Summary metric types\n * - Time-series data collection\n * - SLI/SLO definitions\n * - Metric aggregation and export\n * - Integration with monitoring systems (Prometheus, etc.)\n */\n\n/**\n * Metric Type Enum\n * Standard Prometheus metric types\n */\nexport const MetricType = z.enum([\n 'counter', // Monotonically increasing value\n 'gauge', // Value that can go up and down\n 'histogram', // Observations bucketed by configurable ranges\n 'summary', // Observations with quantiles\n]).describe('Metric type');\n\nexport type MetricType = z.infer<typeof MetricType>;\n\n/**\n * Metric Unit Enum\n * Standard units for metrics\n */\nexport const MetricUnit = z.enum([\n // Time units\n 'nanoseconds',\n 'microseconds',\n 'milliseconds',\n 'seconds',\n 'minutes',\n 'hours',\n 'days',\n\n // Size units\n 'bytes',\n 'kilobytes',\n 'megabytes',\n 'gigabytes',\n 'terabytes',\n\n // Rate units\n 'requests_per_second',\n 'events_per_second',\n 'bytes_per_second',\n\n // Percentage\n 'percent',\n 'ratio',\n\n // Count\n 'count',\n 'operations',\n\n // Custom\n 'custom',\n]).describe('Metric unit');\n\nexport type MetricUnit = z.infer<typeof MetricUnit>;\n\n/**\n * Metric Aggregation Type\n */\nexport const MetricAggregationType = z.enum([\n 'sum', // Sum of all values\n 'avg', // Average of all values\n 'min', // Minimum value\n 'max', // Maximum value\n 'count', // Count of observations\n 'p50', // 50th percentile (median)\n 'p75', // 75th percentile\n 'p90', // 90th percentile\n 'p95', // 95th percentile\n 'p99', // 99th percentile\n 'p999', // 99.9th percentile\n 'rate', // Rate of change\n 'stddev', // Standard deviation\n]).describe('Metric aggregation type');\n\nexport type MetricAggregationType = z.infer<typeof MetricAggregationType>;\n\n/**\n * Histogram Bucket Configuration\n */\nexport const HistogramBucketConfigSchema = z.object({\n /**\n * Bucket type\n */\n type: z.enum(['linear', 'exponential', 'explicit']).describe('Bucket type'),\n\n /**\n * Linear bucket configuration\n */\n linear: z.object({\n start: z.number().describe('Start value'),\n width: z.number().positive().describe('Bucket width'),\n count: z.number().int().positive().describe('Number of buckets'),\n }).optional(),\n\n /**\n * Exponential bucket configuration\n */\n exponential: z.object({\n start: z.number().positive().describe('Start value'),\n factor: z.number().positive().describe('Growth factor'),\n count: z.number().int().positive().describe('Number of buckets'),\n }).optional(),\n\n /**\n * Explicit bucket boundaries\n */\n explicit: z.object({\n boundaries: z.array(z.number()).describe('Bucket boundaries'),\n }).optional(),\n}).describe('Histogram bucket configuration');\n\nexport type HistogramBucketConfig = z.infer<typeof HistogramBucketConfigSchema>;\n\n/**\n * Metric Labels Schema\n * Key-value pairs for metric dimensions\n */\nexport const MetricLabelsSchema = z.record(z.string(), z.string()).describe('Metric labels');\n\nexport type MetricLabels = z.infer<typeof MetricLabelsSchema>;\n\n/**\n * Metric Definition Schema\n */\nexport const MetricDefinitionSchema = z.object({\n /**\n * Metric name (snake_case)\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('Metric name (snake_case)'),\n\n /**\n * Display label\n */\n label: z.string().optional().describe('Display label'),\n\n /**\n * Metric type\n */\n type: MetricType.describe('Metric type'),\n\n /**\n * Metric unit\n */\n unit: MetricUnit.optional().describe('Metric unit'),\n\n /**\n * Description\n */\n description: z.string().optional().describe('Metric description'),\n\n /**\n * Label names for this metric\n */\n labelNames: z.array(z.string()).optional().default([]).describe('Label names'),\n\n /**\n * Histogram configuration (for histogram type)\n */\n histogram: HistogramBucketConfigSchema.optional(),\n\n /**\n * Summary configuration (for summary type)\n */\n summary: z.object({\n /**\n * Quantiles to track\n */\n quantiles: z.array(z.number().min(0).max(1)).optional().default([0.5, 0.9, 0.99]),\n\n /**\n * Max age of observations in seconds\n */\n maxAge: z.number().int().positive().optional().default(600),\n\n /**\n * Number of age buckets\n */\n ageBuckets: z.number().int().positive().optional().default(5),\n }).optional(),\n\n /**\n * Enabled flag\n */\n enabled: z.boolean().optional().default(true),\n}).describe('Metric definition');\n\nexport type MetricDefinition = z.infer<typeof MetricDefinitionSchema>;\n\n/**\n * Metric Data Point Schema\n * A single metric observation\n */\nexport const MetricDataPointSchema = z.object({\n /**\n * Metric name\n */\n name: z.string().describe('Metric name'),\n\n /**\n * Metric type\n */\n type: MetricType.describe('Metric type'),\n\n /**\n * Timestamp (ISO 8601)\n */\n timestamp: z.string().datetime().describe('Observation timestamp'),\n\n /**\n * Value (for counter and gauge)\n */\n value: z.number().optional().describe('Metric value'),\n\n /**\n * Labels\n */\n labels: MetricLabelsSchema.optional().describe('Metric labels'),\n\n /**\n * Histogram data\n */\n histogram: z.object({\n count: z.number().int().nonnegative().describe('Total count'),\n sum: z.number().describe('Sum of all values'),\n buckets: z.array(z.object({\n upperBound: z.number().describe('Upper bound of bucket'),\n count: z.number().int().nonnegative().describe('Count in bucket'),\n })).describe('Histogram buckets'),\n }).optional(),\n\n /**\n * Summary data\n */\n summary: z.object({\n count: z.number().int().nonnegative().describe('Total count'),\n sum: z.number().describe('Sum of all values'),\n quantiles: z.array(z.object({\n quantile: z.number().min(0).max(1).describe('Quantile (0-1)'),\n value: z.number().describe('Quantile value'),\n })).describe('Summary quantiles'),\n }).optional(),\n}).describe('Metric data point');\n\nexport type MetricDataPoint = z.infer<typeof MetricDataPointSchema>;\n\n/**\n * Time Series Data Point Schema\n */\nexport const TimeSeriesDataPointSchema = z.object({\n /**\n * Timestamp (ISO 8601)\n */\n timestamp: z.string().datetime().describe('Timestamp'),\n\n /**\n * Value\n */\n value: z.number().describe('Value'),\n\n /**\n * Labels/tags\n */\n labels: z.record(z.string(), z.string()).optional().describe('Labels'),\n}).describe('Time series data point');\n\nexport type TimeSeriesDataPoint = z.infer<typeof TimeSeriesDataPointSchema>;\n\n/**\n * Time Series Schema\n */\nexport const TimeSeriesSchema = z.object({\n /**\n * Series name\n */\n name: z.string().describe('Series name'),\n\n /**\n * Series labels\n */\n labels: z.record(z.string(), z.string()).optional().describe('Series labels'),\n\n /**\n * Data points\n */\n dataPoints: z.array(TimeSeriesDataPointSchema).describe('Data points'),\n\n /**\n * Start time\n */\n startTime: z.string().datetime().optional().describe('Start time'),\n\n /**\n * End time\n */\n endTime: z.string().datetime().optional().describe('End time'),\n}).describe('Time series');\n\nexport type TimeSeries = z.infer<typeof TimeSeriesSchema>;\n\n/**\n * Metric Aggregation Configuration\n */\nexport const MetricAggregationConfigSchema = z.object({\n /**\n * Aggregation type\n */\n type: MetricAggregationType.describe('Aggregation type'),\n\n /**\n * Time window for aggregation\n */\n window: z.object({\n /**\n * Window size in seconds\n */\n size: z.number().int().positive().describe('Window size in seconds'),\n\n /**\n * Sliding window (true) or tumbling window (false)\n */\n sliding: z.boolean().optional().default(false),\n\n /**\n * Slide interval for sliding windows\n */\n slideInterval: z.number().int().positive().optional(),\n }).optional(),\n\n /**\n * Group by labels\n */\n groupBy: z.array(z.string()).optional().describe('Group by label names'),\n\n /**\n * Filters\n */\n filters: z.record(z.string(), z.unknown()).optional().describe('Filter criteria'),\n}).describe('Metric aggregation configuration');\n\nexport type MetricAggregationConfig = z.infer<typeof MetricAggregationConfigSchema>;\n\n/**\n * Service Level Indicator (SLI) Schema\n */\nexport const ServiceLevelIndicatorSchema = z.object({\n /**\n * SLI name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('SLI name (snake_case)'),\n\n /**\n * Display label\n */\n label: z.string().describe('Display label'),\n\n /**\n * Description\n */\n description: z.string().optional().describe('SLI description'),\n\n /**\n * Metric name this SLI is based on\n */\n metric: z.string().describe('Base metric name'),\n\n /**\n * SLI type\n */\n type: z.enum([\n 'availability', // Percentage of successful requests\n 'latency', // Response time percentile\n 'throughput', // Requests per second\n 'error_rate', // Error percentage\n 'saturation', // Resource utilization\n 'custom', // Custom calculation\n ]).describe('SLI type'),\n\n /**\n * Success criteria\n */\n successCriteria: z.object({\n /**\n * Threshold value\n */\n threshold: z.number().describe('Threshold value'),\n\n /**\n * Comparison operator\n */\n operator: z.enum(['lt', 'lte', 'gt', 'gte', 'eq']).describe('Comparison operator'),\n\n /**\n * Percentile (for latency SLIs)\n */\n percentile: z.number().min(0).max(1).optional().describe('Percentile (0-1)'),\n }).describe('Success criteria'),\n\n /**\n * Measurement window\n */\n window: z.object({\n /**\n * Window size in seconds\n */\n size: z.number().int().positive().describe('Window size in seconds'),\n\n /**\n * Rolling window (true) or calendar-aligned (false)\n */\n rolling: z.boolean().optional().default(true),\n }).describe('Measurement window'),\n\n /**\n * Enabled flag\n */\n enabled: z.boolean().optional().default(true),\n}).describe('Service Level Indicator');\n\nexport type ServiceLevelIndicator = z.infer<typeof ServiceLevelIndicatorSchema>;\n\n/**\n * Service Level Objective (SLO) Schema\n */\nexport const ServiceLevelObjectiveSchema = z.object({\n /**\n * SLO name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('SLO name (snake_case)'),\n\n /**\n * Display label\n */\n label: z.string().describe('Display label'),\n\n /**\n * Description\n */\n description: z.string().optional().describe('SLO description'),\n\n /**\n * SLI this SLO is based on\n */\n sli: z.string().describe('SLI name'),\n\n /**\n * Target percentage (0-100)\n */\n target: z.number().min(0).max(100).describe('Target percentage'),\n\n /**\n * Time period for SLO\n */\n period: z.object({\n /**\n * Period type\n */\n type: z.enum(['rolling', 'calendar']).describe('Period type'),\n\n /**\n * Duration in seconds (for rolling)\n */\n duration: z.number().int().positive().optional().describe('Duration in seconds'),\n\n /**\n * Calendar period (for calendar)\n */\n calendar: z.enum(['daily', 'weekly', 'monthly', 'quarterly', 'yearly']).optional(),\n }).describe('Time period'),\n\n /**\n * Error budget configuration\n */\n errorBudget: z.object({\n /**\n * Auto-calculated budget (1 - target)\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Alert when budget consumed percentage exceeds threshold\n */\n alertThreshold: z.number().min(0).max(100).optional().default(80),\n\n /**\n * Burn rate alert windows\n */\n burnRateWindows: z.array(z.object({\n /**\n * Window size in seconds\n */\n window: z.number().int().positive().describe('Window size'),\n\n /**\n * Burn rate multiplier threshold\n */\n threshold: z.number().positive().describe('Burn rate threshold'),\n })).optional(),\n }).optional(),\n\n /**\n * Alert configuration\n */\n alerts: z.array(z.object({\n /**\n * Alert name\n */\n name: z.string().describe('Alert name'),\n\n /**\n * Severity\n */\n severity: z.enum(['info', 'warning', 'critical']).describe('Alert severity'),\n\n /**\n * Condition\n */\n condition: z.object({\n type: z.enum(['slo_breach', 'error_budget', 'burn_rate']).describe('Condition type'),\n threshold: z.number().optional().describe('Threshold value'),\n }).describe('Alert condition'),\n })).optional().default([]),\n\n /**\n * Enabled flag\n */\n enabled: z.boolean().optional().default(true),\n}).describe('Service Level Objective');\n\nexport type ServiceLevelObjective = z.infer<typeof ServiceLevelObjectiveSchema>;\n\n/**\n * Metric Export Configuration\n */\nexport const MetricExportConfigSchema = z.object({\n /**\n * Export type\n */\n type: z.enum([\n 'prometheus', // Prometheus exposition format\n 'openmetrics', // OpenMetrics format\n 'graphite', // Graphite plaintext protocol\n 'statsd', // StatsD protocol\n 'influxdb', // InfluxDB line protocol\n 'datadog', // Datadog agent\n 'cloudwatch', // AWS CloudWatch\n 'stackdriver', // Google Cloud Monitoring\n 'azure_monitor', // Azure Monitor\n 'http', // HTTP push\n 'custom', // Custom exporter\n ]).describe('Export type'),\n\n /**\n * Endpoint configuration\n */\n endpoint: z.string().optional().describe('Export endpoint'),\n\n /**\n * Export interval in seconds\n */\n interval: z.number().int().positive().optional().default(60),\n\n /**\n * Batch configuration\n */\n batch: z.object({\n enabled: z.boolean().optional().default(true),\n size: z.number().int().positive().optional().default(1000),\n }).optional(),\n\n /**\n * Authentication\n */\n auth: z.object({\n type: z.enum(['none', 'basic', 'bearer', 'api_key']).describe('Auth type'),\n username: z.string().optional(),\n password: z.string().optional(),\n token: z.string().optional(),\n apiKey: z.string().optional(),\n }).optional(),\n\n /**\n * Additional configuration\n */\n config: z.record(z.string(), z.unknown()).optional().describe('Additional configuration'),\n}).describe('Metric export configuration');\n\nexport type MetricExportConfig = z.infer<typeof MetricExportConfigSchema>;\n\n/**\n * Metrics Configuration Schema\n */\nexport const MetricsConfigSchema = z.object({\n /**\n * Configuration name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .max(64)\n .describe('Configuration name (snake_case, max 64 chars)'),\n\n /**\n * Display label\n */\n label: z.string().describe('Display label'),\n\n /**\n * Enable metrics collection\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Metric definitions\n */\n metrics: z.array(MetricDefinitionSchema).optional().default([]),\n\n /**\n * Default labels applied to all metrics\n */\n defaultLabels: MetricLabelsSchema.optional().default({}),\n\n /**\n * Aggregation configurations\n */\n aggregations: z.array(MetricAggregationConfigSchema).optional().default([]),\n\n /**\n * Service Level Indicators\n */\n slis: z.array(ServiceLevelIndicatorSchema).optional().default([]),\n\n /**\n * Service Level Objectives\n */\n slos: z.array(ServiceLevelObjectiveSchema).optional().default([]),\n\n /**\n * Export configurations\n */\n exports: z.array(MetricExportConfigSchema).optional().default([]),\n\n /**\n * Collection interval in seconds\n */\n collectionInterval: z.number().int().positive().optional().default(15),\n\n /**\n * Retention configuration\n */\n retention: z.object({\n /**\n * Retention period in seconds\n */\n period: z.number().int().positive().optional().default(604800), // 7 days\n\n /**\n * Downsampling configuration\n */\n downsampling: z.array(z.object({\n /**\n * After this duration, downsample to this resolution\n */\n afterSeconds: z.number().int().positive().describe('Downsample after seconds'),\n\n /**\n * Resolution in seconds\n */\n resolution: z.number().int().positive().describe('Downsampled resolution'),\n })).optional(),\n }).optional(),\n\n /**\n * Cardinality limits\n */\n cardinalityLimits: z.object({\n /**\n * Maximum unique label combinations per metric\n */\n maxLabelCombinations: z.number().int().positive().optional().default(10000),\n\n /**\n * Action when limit exceeded\n */\n onLimitExceeded: z.enum(['drop', 'sample', 'alert']).optional().default('alert'),\n }).optional(),\n}).describe('Metrics configuration');\n\nexport type MetricsConfig = z.infer<typeof MetricsConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Tracing Protocol - Distributed Tracing & Observability\n * \n * Comprehensive distributed tracing based on OpenTelemetry standards:\n * - Trace context propagation\n * - Span creation and management\n * - Sampling strategies\n * - Integration with tracing backends (Jaeger, Zipkin, etc.)\n * - W3C Trace Context standard compliance\n */\n\n/**\n * Trace State Schema\n * W3C Trace Context tracestate header\n */\nexport const TraceStateSchema = z.object({\n /**\n * Vendor-specific key-value pairs\n */\n entries: z.record(z.string(), z.string()).describe('Trace state entries'),\n}).describe('Trace state');\n\nexport type TraceState = z.infer<typeof TraceStateSchema>;\n\n/**\n * Trace Flags Enum\n * W3C Trace Context trace flags\n */\nexport const TraceFlagsSchema = z.number().int().min(0).max(255).describe('Trace flags bitmap');\n\nexport type TraceFlags = z.infer<typeof TraceFlagsSchema>;\n\n/**\n * Trace Context Schema\n * W3C Trace Context standard\n */\nexport const TraceContextSchema = z.object({\n /**\n * Trace ID (128-bit identifier, 32 hex chars)\n */\n traceId: z.string()\n .regex(/^[0-9a-f]{32}$/)\n .describe('Trace ID (32 hex chars)'),\n\n /**\n * Span ID (64-bit identifier, 16 hex chars)\n */\n spanId: z.string()\n .regex(/^[0-9a-f]{16}$/)\n .describe('Span ID (16 hex chars)'),\n\n /**\n * Trace flags (8-bit)\n */\n traceFlags: TraceFlagsSchema.optional().default(1),\n\n /**\n * Trace state (vendor-specific)\n */\n traceState: TraceStateSchema.optional(),\n\n /**\n * Parent span ID\n */\n parentSpanId: z.string()\n .regex(/^[0-9a-f]{16}$/)\n .optional()\n .describe('Parent span ID (16 hex chars)'),\n\n /**\n * Is sampled\n */\n sampled: z.boolean().optional().default(true),\n\n /**\n * Remote context (from incoming request)\n */\n remote: z.boolean().optional().default(false),\n}).describe('Trace context (W3C Trace Context)');\n\nexport type TraceContext = z.infer<typeof TraceContextSchema>;\n\n/**\n * Span Kind Enum\n * OpenTelemetry span kinds\n */\nexport const SpanKind = z.enum([\n 'internal', // Internal operation\n 'server', // Server-side request handling\n 'client', // Client-side request\n 'producer', // Message producer\n 'consumer', // Message consumer\n]).describe('Span kind');\n\nexport type SpanKind = z.infer<typeof SpanKind>;\n\n/**\n * Span Status Enum\n * OpenTelemetry span status\n */\nexport const SpanStatus = z.enum([\n 'unset', // Default status\n 'ok', // Successful operation\n 'error', // Error occurred\n]).describe('Span status');\n\nexport type SpanStatus = z.infer<typeof SpanStatus>;\n\n/**\n * Span Attribute Value Schema\n */\nexport const SpanAttributeValueSchema = z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.array(z.string()),\n z.array(z.number()),\n z.array(z.boolean()),\n]).describe('Span attribute value');\n\nexport type SpanAttributeValue = z.infer<typeof SpanAttributeValueSchema>;\n\n/**\n * Span Attributes Schema\n * OpenTelemetry semantic conventions\n */\nexport const SpanAttributesSchema = z.record(z.string(), SpanAttributeValueSchema).describe('Span attributes');\n\nexport type SpanAttributes = z.infer<typeof SpanAttributesSchema>;\n\n/**\n * Span Event Schema\n */\nexport const SpanEventSchema = z.object({\n /**\n * Event name\n */\n name: z.string().describe('Event name'),\n\n /**\n * Event timestamp (ISO 8601)\n */\n timestamp: z.string().datetime().describe('Event timestamp'),\n\n /**\n * Event attributes\n */\n attributes: SpanAttributesSchema.optional().describe('Event attributes'),\n}).describe('Span event');\n\nexport type SpanEvent = z.infer<typeof SpanEventSchema>;\n\n/**\n * Span Link Schema\n * Links to other spans\n */\nexport const SpanLinkSchema = z.object({\n /**\n * Linked trace context\n */\n context: TraceContextSchema.describe('Linked trace context'),\n\n /**\n * Link attributes\n */\n attributes: SpanAttributesSchema.optional().describe('Link attributes'),\n}).describe('Span link');\n\nexport type SpanLink = z.infer<typeof SpanLinkSchema>;\n\n/**\n * Span Schema\n * OpenTelemetry span representation\n */\nexport const SpanSchema = z.object({\n /**\n * Trace context\n */\n context: TraceContextSchema.describe('Trace context'),\n\n /**\n * Span name\n */\n name: z.string().describe('Span name'),\n\n /**\n * Span kind\n */\n kind: SpanKind.optional().default('internal'),\n\n /**\n * Start time (ISO 8601)\n */\n startTime: z.string().datetime().describe('Span start time'),\n\n /**\n * End time (ISO 8601)\n */\n endTime: z.string().datetime().optional().describe('Span end time'),\n\n /**\n * Duration in milliseconds\n */\n duration: z.number().nonnegative().optional().describe('Duration in milliseconds'),\n\n /**\n * Span status\n */\n status: z.object({\n code: SpanStatus.describe('Status code'),\n message: z.string().optional().describe('Status message'),\n }).optional(),\n\n /**\n * Span attributes\n */\n attributes: SpanAttributesSchema.optional().default({}),\n\n /**\n * Span events\n */\n events: z.array(SpanEventSchema).optional().default([]),\n\n /**\n * Span links\n */\n links: z.array(SpanLinkSchema).optional().default([]),\n\n /**\n * Resource attributes\n */\n resource: SpanAttributesSchema.optional().describe('Resource attributes'),\n\n /**\n * Instrumentation library\n */\n instrumentationLibrary: z.object({\n name: z.string().describe('Library name'),\n version: z.string().optional().describe('Library version'),\n }).optional(),\n}).describe('OpenTelemetry span');\n\nexport type Span = z.infer<typeof SpanSchema>;\n\n/**\n * Sampling Decision Enum\n */\nexport const SamplingDecision = z.enum([\n 'drop', // Do not record or export\n 'record_only', // Record but do not export\n 'record_and_sample', // Record and export\n]).describe('Sampling decision');\n\nexport type SamplingDecision = z.infer<typeof SamplingDecision>;\n\n/**\n * Sampling Strategy Type Enum\n */\nexport const SamplingStrategyType = z.enum([\n 'always_on', // Always sample\n 'always_off', // Never sample\n 'trace_id_ratio', // Sample based on trace ID ratio\n 'rate_limiting', // Rate-limited sampling\n 'parent_based', // Respect parent span sampling decision\n 'probability', // Probability-based sampling\n 'composite', // Combine multiple strategies\n 'custom', // Custom sampling logic\n]).describe('Sampling strategy type');\n\nexport type SamplingStrategyType = z.infer<typeof SamplingStrategyType>;\n\n/**\n * Trace Sampling Configuration Schema\n */\nexport const TraceSamplingConfigSchema = z.object({\n /**\n * Sampling strategy type\n */\n type: SamplingStrategyType.describe('Sampling strategy'),\n\n /**\n * Sample ratio (0.0 to 1.0) for trace_id_ratio and probability strategies\n */\n ratio: z.number().min(0).max(1).optional().describe('Sample ratio (0-1)'),\n\n /**\n * Rate limit (traces per second) for rate_limiting strategy\n */\n rateLimit: z.number().positive().optional().describe('Traces per second'),\n\n /**\n * Parent-based configuration\n */\n parentBased: z.object({\n /**\n * Sampler to use when parent is sampled\n */\n whenParentSampled: SamplingStrategyType.optional().default('always_on'),\n\n /**\n * Sampler to use when parent is not sampled\n */\n whenParentNotSampled: SamplingStrategyType.optional().default('always_off'),\n\n /**\n * Sampler to use when there is no parent (root span)\n */\n root: SamplingStrategyType.optional().default('trace_id_ratio'),\n\n /**\n * Root sampler ratio\n */\n rootRatio: z.number().min(0).max(1).optional().default(0.1),\n }).optional(),\n\n /**\n * Composite sampling (multiple strategies)\n */\n composite: z.array(z.object({\n strategy: SamplingStrategyType.describe('Strategy type'),\n ratio: z.number().min(0).max(1).optional(),\n condition: z.record(z.string(), z.unknown()).optional().describe('Condition for this strategy'),\n })).optional(),\n\n /**\n * Sampling rules\n */\n rules: z.array(z.object({\n /**\n * Rule name\n */\n name: z.string().describe('Rule name'),\n\n /**\n * Match condition\n */\n match: z.object({\n /**\n * Service name pattern\n */\n service: z.string().optional(),\n\n /**\n * Span name pattern (regex)\n */\n spanName: z.string().optional(),\n\n /**\n * Attribute filters\n */\n attributes: z.record(z.string(), z.unknown()).optional(),\n }).optional(),\n\n /**\n * Sampling decision for matching spans\n */\n decision: SamplingDecision.describe('Sampling decision'),\n\n /**\n * Sample rate for this rule\n */\n rate: z.number().min(0).max(1).optional(),\n })).optional().default([]),\n\n /**\n * Custom sampler ID (for custom strategy)\n */\n customSamplerId: z.string().optional().describe('Custom sampler identifier'),\n}).describe('Trace sampling configuration');\n\nexport type TraceSamplingConfig = z.infer<typeof TraceSamplingConfigSchema>;\n\n/**\n * Trace Context Propagation Format Enum\n */\nexport const TracePropagationFormat = z.enum([\n 'w3c', // W3C Trace Context\n 'b3', // Zipkin B3 (single header)\n 'b3_multi', // Zipkin B3 (multi header)\n 'jaeger', // Jaeger propagation\n 'xray', // AWS X-Ray\n 'ottrace', // OpenTracing\n 'custom', // Custom format\n]).describe('Trace propagation format');\n\nexport type TracePropagationFormat = z.infer<typeof TracePropagationFormat>;\n\n/**\n * Trace Context Propagation Schema\n */\nexport const TraceContextPropagationSchema = z.object({\n /**\n * Propagation formats (in priority order)\n */\n formats: z.array(TracePropagationFormat).optional().default(['w3c']),\n\n /**\n * Extract context from incoming requests\n */\n extract: z.boolean().optional().default(true),\n\n /**\n * Inject context into outgoing requests\n */\n inject: z.boolean().optional().default(true),\n\n /**\n * Custom header mappings\n */\n headers: z.object({\n /**\n * Trace ID header name\n */\n traceId: z.string().optional(),\n\n /**\n * Span ID header name\n */\n spanId: z.string().optional(),\n\n /**\n * Trace flags header name\n */\n traceFlags: z.string().optional(),\n\n /**\n * Trace state header name\n */\n traceState: z.string().optional(),\n }).optional(),\n\n /**\n * Baggage propagation\n */\n baggage: z.object({\n /**\n * Enable baggage propagation\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Maximum baggage size in bytes\n */\n maxSize: z.number().int().positive().optional().default(8192),\n\n /**\n * Allowed baggage keys (whitelist)\n */\n allowedKeys: z.array(z.string()).optional(),\n }).optional(),\n}).describe('Trace context propagation');\n\nexport type TraceContextPropagation = z.infer<typeof TraceContextPropagationSchema>;\n\n/**\n * OpenTelemetry Exporter Type Enum\n */\nexport const OtelExporterType = z.enum([\n 'otlp_http', // OTLP over HTTP\n 'otlp_grpc', // OTLP over gRPC\n 'jaeger', // Jaeger\n 'zipkin', // Zipkin\n 'console', // Console (for debugging)\n 'datadog', // Datadog\n 'honeycomb', // Honeycomb\n 'lightstep', // Lightstep\n 'newrelic', // New Relic\n 'custom', // Custom exporter\n]).describe('OpenTelemetry exporter type');\n\nexport type OtelExporterType = z.infer<typeof OtelExporterType>;\n\n/**\n * OpenTelemetry Compatibility Schema\n */\nexport const OpenTelemetryCompatibilitySchema = z.object({\n /**\n * OpenTelemetry SDK version\n */\n sdkVersion: z.string().optional().describe('OTel SDK version'),\n\n /**\n * Exporter configuration\n */\n exporter: z.object({\n /**\n * Exporter type\n */\n type: OtelExporterType.describe('Exporter type'),\n\n /**\n * Endpoint URL\n */\n endpoint: z.string().url().optional().describe('Exporter endpoint'),\n\n /**\n * Protocol version\n */\n protocol: z.string().optional().describe('Protocol version'),\n\n /**\n * Headers\n */\n headers: z.record(z.string(), z.string()).optional().describe('HTTP headers'),\n\n /**\n * Timeout in milliseconds\n */\n timeout: z.number().int().positive().optional().default(10000),\n\n /**\n * Compression\n */\n compression: z.enum(['none', 'gzip']).optional().default('none'),\n\n /**\n * Batch configuration\n */\n batch: z.object({\n /**\n * Maximum batch size\n */\n maxBatchSize: z.number().int().positive().optional().default(512),\n\n /**\n * Maximum queue size\n */\n maxQueueSize: z.number().int().positive().optional().default(2048),\n\n /**\n * Export timeout in milliseconds\n */\n exportTimeout: z.number().int().positive().optional().default(30000),\n\n /**\n * Scheduled delay in milliseconds\n */\n scheduledDelay: z.number().int().positive().optional().default(5000),\n }).optional(),\n }).describe('Exporter configuration'),\n\n /**\n * Resource attributes (service identification)\n */\n resource: z.object({\n /**\n * Service name\n */\n serviceName: z.string().describe('Service name'),\n\n /**\n * Service version\n */\n serviceVersion: z.string().optional().describe('Service version'),\n\n /**\n * Service instance ID\n */\n serviceInstanceId: z.string().optional().describe('Service instance ID'),\n\n /**\n * Service namespace\n */\n serviceNamespace: z.string().optional().describe('Service namespace'),\n\n /**\n * Deployment environment\n */\n deploymentEnvironment: z.string().optional().describe('Deployment environment'),\n\n /**\n * Additional resource attributes\n */\n attributes: SpanAttributesSchema.optional().describe('Additional resource attributes'),\n }).describe('Resource attributes'),\n\n /**\n * Instrumentation configuration\n */\n instrumentation: z.object({\n /**\n * Auto-instrumentation enabled\n */\n autoInstrumentation: z.boolean().optional().default(true),\n\n /**\n * Instrumentation libraries to enable\n */\n libraries: z.array(z.string()).optional().describe('Enabled libraries'),\n\n /**\n * Instrumentation libraries to disable\n */\n disabledLibraries: z.array(z.string()).optional().describe('Disabled libraries'),\n }).optional(),\n\n /**\n * Semantic conventions version\n */\n semanticConventionsVersion: z.string().optional().describe('Semantic conventions version'),\n}).describe('OpenTelemetry compatibility configuration');\n\nexport type OpenTelemetryCompatibility = z.infer<typeof OpenTelemetryCompatibilitySchema>;\n\n/**\n * Tracing Configuration Schema\n */\nexport const TracingConfigSchema = z.object({\n /**\n * Configuration name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .max(64)\n .describe('Configuration name (snake_case, max 64 chars)'),\n\n /**\n * Display label\n */\n label: z.string().describe('Display label'),\n\n /**\n * Enable tracing\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Sampling configuration\n */\n sampling: TraceSamplingConfigSchema.optional().default({ type: 'always_on', rules: [] }),\n\n /**\n * Context propagation\n */\n propagation: TraceContextPropagationSchema.optional().default({ formats: ['w3c'], extract: true, inject: true }),\n\n /**\n * OpenTelemetry configuration\n */\n openTelemetry: OpenTelemetryCompatibilitySchema.optional(),\n\n /**\n * Span limits\n */\n spanLimits: z.object({\n /**\n * Maximum number of attributes per span\n */\n maxAttributes: z.number().int().positive().optional().default(128),\n\n /**\n * Maximum number of events per span\n */\n maxEvents: z.number().int().positive().optional().default(128),\n\n /**\n * Maximum number of links per span\n */\n maxLinks: z.number().int().positive().optional().default(128),\n\n /**\n * Maximum attribute value length\n */\n maxAttributeValueLength: z.number().int().positive().optional().default(4096),\n }).optional(),\n\n /**\n * Trace ID generator\n */\n traceIdGenerator: z.enum(['random', 'uuid', 'custom']).optional().default('random'),\n\n /**\n * Custom trace ID generator ID\n */\n customTraceIdGeneratorId: z.string().optional().describe('Custom generator identifier'),\n\n /**\n * Performance configuration\n */\n performance: z.object({\n /**\n * Async span export\n */\n asyncExport: z.boolean().optional().default(true),\n\n /**\n * Background export interval in milliseconds\n */\n exportInterval: z.number().int().positive().optional().default(5000),\n }).optional(),\n}).describe('Tracing configuration');\n\nexport type TracingConfig = z.infer<typeof TracingConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Change Type Enum\n * \n * Classification of change requests based on risk and approval requirements.\n * Follows ITIL change management best practices.\n */\nexport const ChangeTypeSchema = z.enum([\n 'standard', // Pre-approved, low-risk changes\n 'normal', // Requires standard approval process\n 'emergency', // Fast-track approval for critical issues\n 'major', // Requires CAB (Change Advisory Board) approval\n]);\n\n/**\n * Change Priority Enum\n * \n * Priority level for change request processing.\n */\nexport const ChangePrioritySchema = z.enum([\n 'critical',\n 'high',\n 'medium',\n 'low',\n]);\n\n/**\n * Change Status Enum\n * \n * Current status of a change request in its lifecycle.\n */\nexport const ChangeStatusSchema = z.enum([\n 'draft',\n 'submitted',\n 'in-review',\n 'approved',\n 'scheduled',\n 'in-progress',\n 'completed',\n 'failed',\n 'rolled-back',\n 'cancelled',\n]);\n\n/**\n * Change Impact Schema\n * \n * Assessment of the impact and scope of a change request.\n * Used for risk evaluation and approval routing.\n * \n * @example\n * ```json\n * {\n * \"level\": \"high\",\n * \"affectedSystems\": [\"crm-api\", \"customer-portal\"],\n * \"affectedUsers\": 5000,\n * \"downtime\": {\n * \"required\": true,\n * \"durationMinutes\": 30\n * }\n * }\n * ```\n */\nexport const ChangeImpactSchema = z.object({\n /**\n * Overall impact level of the change\n */\n level: z.enum(['low', 'medium', 'high', 'critical']).describe('Impact level'),\n\n /**\n * List of systems affected by this change\n */\n affectedSystems: z.array(z.string()).describe('Affected systems'),\n\n /**\n * Estimated number of users affected\n */\n affectedUsers: z.number().optional().describe('Affected user count'),\n\n /**\n * Downtime requirements\n */\n downtime: z.object({\n /**\n * Whether downtime is required\n */\n required: z.boolean().describe('Downtime required'),\n\n /**\n * Duration of downtime in minutes\n */\n durationMinutes: z.number().optional().describe('Downtime duration'),\n }).optional().describe('Downtime information'),\n});\n\n/**\n * Rollback Plan Schema\n * \n * Detailed procedure for reverting changes if implementation fails.\n * Required for all non-standard changes.\n * \n * @example\n * ```json\n * {\n * \"description\": \"Revert database schema to previous version\",\n * \"steps\": [\n * {\n * \"order\": 1,\n * \"description\": \"Stop application servers\",\n * \"estimatedMinutes\": 5\n * },\n * {\n * \"order\": 2,\n * \"description\": \"Restore database backup\",\n * \"estimatedMinutes\": 15\n * }\n * ],\n * \"testProcedure\": \"Verify application login and basic functionality\"\n * }\n * ```\n */\nexport const RollbackPlanSchema = z.object({\n /**\n * High-level description of the rollback approach\n */\n description: z.string().describe('Rollback description'),\n\n /**\n * Sequential steps to execute rollback\n */\n steps: z.array(z.object({\n /**\n * Step execution order\n */\n order: z.number().describe('Step order'),\n\n /**\n * Detailed description of this step\n */\n description: z.string().describe('Step description'),\n\n /**\n * Estimated time to complete this step\n */\n estimatedMinutes: z.number().describe('Estimated duration'),\n })).describe('Rollback steps'),\n\n /**\n * Testing procedure to verify successful rollback\n */\n testProcedure: z.string().optional().describe('Test procedure'),\n});\n\n/**\n * Change Request Schema\n * \n * Comprehensive change management protocol for IT governance.\n * Supports change requests, deployment tracking, and ITIL compliance.\n * \n * @example\n * ```json\n * {\n * \"id\": \"CHG-2024-001\",\n * \"title\": \"Upgrade CRM Database Schema\",\n * \"description\": \"Migrate customer database to new schema version 2.0\",\n * \"type\": \"normal\",\n * \"priority\": \"high\",\n * \"status\": \"approved\",\n * \"requestedBy\": \"user_123\",\n * \"requestedAt\": 1704067200000,\n * \"impact\": {\n * \"level\": \"high\",\n * \"affectedSystems\": [\"crm-api\", \"customer-portal\"],\n * \"affectedUsers\": 5000,\n * \"downtime\": {\n * \"required\": true,\n * \"durationMinutes\": 30\n * }\n * },\n * \"implementation\": {\n * \"description\": \"Execute database migration scripts\",\n * \"steps\": [\n * {\n * \"order\": 1,\n * \"description\": \"Backup current database\",\n * \"estimatedMinutes\": 10\n * }\n * ],\n * \"testing\": \"Run integration test suite\"\n * },\n * \"rollbackPlan\": {\n * \"description\": \"Restore from backup\",\n * \"steps\": [\n * {\n * \"order\": 1,\n * \"description\": \"Restore backup\",\n * \"estimatedMinutes\": 15\n * }\n * ]\n * },\n * \"schedule\": {\n * \"plannedStart\": 1704153600000,\n * \"plannedEnd\": 1704155400000\n * }\n * }\n * ```\n */\nexport const ChangeRequestSchema = z.object({\n /**\n * Unique change request identifier\n */\n id: z.string().describe('Change request ID'),\n\n /**\n * Short descriptive title of the change\n */\n title: z.string().describe('Change title'),\n\n /**\n * Detailed description of the change and its purpose\n */\n description: z.string().describe('Change description'),\n\n /**\n * Change classification type\n */\n type: ChangeTypeSchema.describe('Change type'),\n\n /**\n * Priority level for processing\n */\n priority: ChangePrioritySchema.describe('Change priority'),\n\n /**\n * Current status in the change lifecycle\n */\n status: ChangeStatusSchema.describe('Change status'),\n\n /**\n * User ID of the change requester\n */\n requestedBy: z.string().describe('Requester user ID'),\n\n /**\n * Timestamp when change was requested (Unix milliseconds)\n */\n requestedAt: z.number().describe('Request timestamp'),\n\n /**\n * Impact assessment of the change\n */\n impact: ChangeImpactSchema.describe('Impact assessment'),\n\n /**\n * Implementation plan and procedures\n */\n implementation: z.object({\n /**\n * High-level implementation description\n */\n description: z.string().describe('Implementation description'),\n\n /**\n * Sequential implementation steps\n */\n steps: z.array(z.object({\n /**\n * Step execution order\n */\n order: z.number().describe('Step order'),\n\n /**\n * Detailed description of this step\n */\n description: z.string().describe('Step description'),\n\n /**\n * Estimated time to complete this step\n */\n estimatedMinutes: z.number().describe('Estimated duration'),\n })).describe('Implementation steps'),\n\n /**\n * Testing procedures to verify successful implementation\n */\n testing: z.string().optional().describe('Testing procedure'),\n }).describe('Implementation plan'),\n\n /**\n * Rollback plan in case of failure\n */\n rollbackPlan: RollbackPlanSchema.describe('Rollback plan'),\n\n /**\n * Change schedule and timing\n */\n schedule: z.object({\n /**\n * Planned start time (Unix milliseconds)\n */\n plannedStart: z.number().describe('Planned start time'),\n\n /**\n * Planned end time (Unix milliseconds)\n */\n plannedEnd: z.number().describe('Planned end time'),\n\n /**\n * Actual start time (Unix milliseconds)\n */\n actualStart: z.number().optional().describe('Actual start time'),\n\n /**\n * Actual end time (Unix milliseconds)\n */\n actualEnd: z.number().optional().describe('Actual end time'),\n }).optional().describe('Schedule'),\n\n /**\n * Approval workflow configuration\n */\n approval: z.object({\n /**\n * Whether approval is required for this change\n */\n required: z.boolean().describe('Approval required'),\n\n /**\n * List of approvers and their approval status\n */\n approvers: z.array(z.object({\n /**\n * Approver user ID\n */\n userId: z.string().describe('Approver user ID'),\n\n /**\n * Timestamp when approval was granted (Unix milliseconds)\n */\n approvedAt: z.number().optional().describe('Approval timestamp'),\n\n /**\n * Comments from the approver\n */\n comments: z.string().optional().describe('Approver comments'),\n })).describe('Approvers'),\n }).optional().describe('Approval workflow'),\n\n /**\n * Supporting documentation and files\n */\n attachments: z.array(z.object({\n /**\n * Attachment file name\n */\n name: z.string().describe('Attachment name'),\n\n /**\n * URL to download the attachment\n */\n url: z.string().url().describe('Attachment URL'),\n })).optional().describe('Attachments'),\n\n /**\n * Custom metadata key-value pairs for extensibility\n */\n metadata: z.record(z.string(), z.unknown()).optional().describe('Custom metadata key-value pairs for extensibility'),\n});\n\n// Type exports\nexport type ChangeRequest = z.infer<typeof ChangeRequestSchema>;\nexport type ChangeType = z.infer<typeof ChangeTypeSchema>;\nexport type ChangeStatus = z.infer<typeof ChangeStatusSchema>;\nexport type ChangePriority = z.infer<typeof ChangePrioritySchema>;\nexport type ChangeImpact = z.infer<typeof ChangeImpactSchema>;\nexport type RollbackPlan = z.infer<typeof RollbackPlanSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Field-level encryption protocol\n * GDPR/HIPAA/PCI-DSS compliant\n */\nexport const EncryptionAlgorithmSchema = z.enum([\n 'aes-256-gcm',\n 'aes-256-cbc',\n 'chacha20-poly1305',\n]).describe('Supported encryption algorithm');\n\nexport type EncryptionAlgorithm = z.infer<typeof EncryptionAlgorithmSchema>;\n\nexport const KeyManagementProviderSchema = z.enum([\n 'local',\n 'aws-kms',\n 'azure-key-vault',\n 'gcp-kms',\n 'hashicorp-vault',\n]).describe('Key management service provider');\n\nexport type KeyManagementProvider = z.infer<typeof KeyManagementProviderSchema>;\n\nexport const KeyRotationPolicySchema = z.object({\n enabled: z.boolean().default(false).describe('Enable automatic key rotation'),\n frequencyDays: z.number().min(1).default(90).describe('Rotation frequency in days'),\n retainOldVersions: z.number().default(3).describe('Number of old key versions to retain'),\n autoRotate: z.boolean().default(true).describe('Automatically rotate without manual approval'),\n}).describe('Policy for automatic encryption key rotation');\n\nexport type KeyRotationPolicy = z.infer<typeof KeyRotationPolicySchema>;\nexport type KeyRotationPolicyInput = z.input<typeof KeyRotationPolicySchema>;\n\nexport const EncryptionConfigSchema = z.object({\n enabled: z.boolean().default(false).describe('Enable field-level encryption'),\n algorithm: EncryptionAlgorithmSchema.default('aes-256-gcm').describe('Encryption algorithm'),\n keyManagement: z.object({\n provider: KeyManagementProviderSchema.describe('Key management service provider'),\n keyId: z.string().optional().describe('Key identifier in the provider'),\n rotationPolicy: KeyRotationPolicySchema.optional().describe('Key rotation policy'),\n }).describe('Key management configuration'),\n scope: z.enum(['field', 'record', 'table', 'database']).describe('Encryption scope level'),\n deterministicEncryption: z.boolean().default(false).describe('Allows equality queries on encrypted data'),\n searchableEncryption: z.boolean().default(false).describe('Allows search on encrypted data'),\n}).describe('Field-level encryption configuration');\n\nexport type EncryptionConfig = z.infer<typeof EncryptionConfigSchema>;\nexport type EncryptionConfigInput = z.input<typeof EncryptionConfigSchema>;\n\nexport const FieldEncryptionSchema = z.object({\n fieldName: z.string().describe('Name of the field to encrypt'),\n encryptionConfig: EncryptionConfigSchema.describe('Encryption settings for this field'),\n indexable: z.boolean().default(false).describe('Allow indexing on encrypted field'),\n}).describe('Per-field encryption assignment');\n\nexport type FieldEncryption = z.infer<typeof FieldEncryptionSchema>;\nexport type FieldEncryptionInput = z.input<typeof FieldEncryptionSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Data masking protocol for PII protection\n */\nexport const MaskingStrategySchema = z.enum([\n 'redact', // Complete redaction: ****\n 'partial', // Partial masking: 138****5678\n 'hash', // Hash value: sha256(value)\n 'tokenize', // Tokenization: token-12345\n 'randomize', // Randomize: generate random value\n 'nullify', // Null value: null\n 'substitute', // Substitute with dummy data\n]).describe('Data masking strategy for PII protection');\n\nexport type MaskingStrategy = z.infer<typeof MaskingStrategySchema>;\n\nexport const MaskingRuleSchema = z.object({\n field: z.string().describe('Field name to apply masking to'),\n strategy: MaskingStrategySchema.describe('Masking strategy to use'),\n pattern: z.string().optional().describe('Regex pattern for partial masking'),\n preserveFormat: z.boolean().default(true).describe('Keep the original data format after masking'),\n preserveLength: z.boolean().default(true).describe('Keep the original data length after masking'),\n roles: z.array(z.string()).optional().describe('Roles that see masked data'),\n exemptRoles: z.array(z.string()).optional().describe('Roles that see unmasked data'),\n}).describe('Masking rule for a single field');\n\nexport type MaskingRule = z.infer<typeof MaskingRuleSchema>;\nexport type MaskingRuleInput = z.input<typeof MaskingRuleSchema>;\n\nexport const MaskingConfigSchema = z.object({\n enabled: z.boolean().default(false).describe('Enable data masking'),\n rules: z.array(MaskingRuleSchema).describe('List of field-level masking rules'),\n auditUnmasking: z.boolean().default(true).describe('Log when masked data is accessed unmasked'),\n}).describe('Top-level data masking configuration for PII protection');\n\nexport type MaskingConfig = z.infer<typeof MaskingConfigSchema>;\nexport type MaskingConfigInput = z.input<typeof MaskingConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SystemIdentifierSchema } from '../shared/identifiers.zod';\nimport { EncryptionConfigSchema } from '../system/encryption.zod';\nimport { MaskingRuleSchema } from '../system/masking.zod';\n\n/**\n * Field Type Enum\n */\nexport const FieldType = z.enum([\n // Core Text\n 'text', 'textarea', 'email', 'url', 'phone', 'password',\n // Rich Content\n 'markdown', 'html', 'richtext',\n // Numbers\n 'number', 'currency', 'percent', \n // Date & Time\n 'date', 'datetime', 'time',\n // Logic\n 'boolean', 'toggle', // Toggle is a distinct UI from checkbox\n // Selection\n 'select', // Single select dropdown\n 'multiselect', // Multi select (often tags)\n 'radio', // Radio group\n 'checkboxes', // Checkbox group\n // Relational\n 'lookup', 'master_detail', // Dynamic reference\n 'tree', // Hierarchical reference\n // Media\n 'image', 'file', 'avatar', 'video', 'audio',\n // Calculated / System\n 'formula', 'summary', 'autonumber',\n // Enhanced Types\n 'location', // GPS coordinates\n 'address', // Structured address\n 'code', // Code editor (JSON/SQL/JS)\n 'json', // Structured JSON data\n 'color', // Color picker\n 'rating', // Star rating\n 'slider', // Numeric slider\n 'signature', // Digital signature\n 'qrcode', // QR code / Barcode\n 'progress', // Progress bar\n 'tags', // Simple tag list\n // AI/ML Types\n 'vector', // Vector embeddings for AI/ML (semantic search, RAG)\n]);\n\nexport type FieldType = z.infer<typeof FieldType>;\n\n/**\n * Select Option Schema\n * \n * Defines option values for select/picklist fields.\n * \n * **CRITICAL RULE**: The `value` field is a machine identifier that gets stored in the database.\n * It MUST be lowercase to avoid case-sensitivity issues in queries and comparisons.\n * \n * @example Good\n * { label: 'New', value: 'new' }\n * { label: 'In Progress', value: 'in_progress' }\n * { label: 'Closed Won', value: 'closed_won' }\n * \n * @example Bad (will be rejected)\n * { label: 'New', value: 'New' } // uppercase\n * { label: 'In Progress', value: 'In Progress' } // spaces and uppercase\n * { label: 'Closed Won', value: 'Closed_Won' } // mixed case\n */\nexport const SelectOptionSchema = z.object({\n label: z.string().describe('Display label (human-readable, any case allowed)'),\n value: SystemIdentifierSchema.describe('Stored value (lowercase machine identifier)'),\n color: z.string().optional().describe('Color code for badges/charts'),\n default: z.boolean().optional().describe('Is default option'),\n});\n\n/**\n * Location Coordinates Schema\n * GPS coordinates for location field type\n */\nexport const LocationCoordinatesSchema = z.object({\n latitude: z.number().min(-90).max(90).describe('Latitude coordinate'),\n longitude: z.number().min(-180).max(180).describe('Longitude coordinate'),\n altitude: z.number().optional().describe('Altitude in meters'),\n accuracy: z.number().optional().describe('Accuracy in meters'),\n});\n\n/**\n * Currency Configuration Schema\n * Configuration for currency field type supporting multi-currency\n * \n * Note: Currency codes are validated by length only (3 characters) to support:\n * - Standard ISO 4217 codes (USD, EUR, CNY, etc.)\n * - Cryptocurrency codes (BTC, ETH, etc.)\n * - Custom business-specific codes\n * Stricter validation can be implemented at the application layer based on business requirements.\n */\nexport const CurrencyConfigSchema = z.object({\n precision: z.number().int().min(0).max(10).default(2).describe('Decimal precision (default: 2)'),\n currencyMode: z.enum(['dynamic', 'fixed']).default('dynamic').describe('Currency mode: dynamic (user selectable) or fixed (single currency)'),\n defaultCurrency: z.string().length(3).default('CNY').describe('Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)'),\n});\n\n/**\n * Currency Value Schema\n * Runtime value structure for currency fields\n * \n * Note: Currency codes are validated by length only (3 characters) to support flexibility.\n * See CurrencyConfigSchema for details on currency code validation strategy.\n */\nexport const CurrencyValueSchema = z.object({\n value: z.number().describe('Monetary amount'),\n currency: z.string().length(3).describe('Currency code (ISO 4217)'),\n});\n\n/**\n * Address Schema\n * Structured address for address field type\n */\nexport const AddressSchema = z.object({\n street: z.string().optional().describe('Street address'),\n city: z.string().optional().describe('City name'),\n state: z.string().optional().describe('State/Province'),\n postalCode: z.string().optional().describe('Postal/ZIP code'),\n country: z.string().optional().describe('Country name or code'),\n countryCode: z.string().optional().describe('ISO country code (e.g., US, GB)'),\n formatted: z.string().optional().describe('Formatted address string'),\n});\n\n/**\n * Vector Configuration Schema\n * Configuration for vector field type supporting AI/ML embeddings\n * \n * Vector fields store numerical embeddings for semantic search, similarity matching,\n * and Retrieval-Augmented Generation (RAG) workflows.\n * \n * @example\n * // Text embeddings for semantic search\n * {\n * dimensions: 1536, // OpenAI text-embedding-ada-002\n * distanceMetric: 'cosine',\n * indexed: true\n * }\n * \n * @example\n * // Image embeddings with normalization\n * {\n * dimensions: 512, // ResNet-50\n * distanceMetric: 'euclidean',\n * normalized: true,\n * indexed: true\n * }\n */\nexport const VectorConfigSchema = z.object({\n dimensions: z.number().int().min(1).max(10000).describe('Vector dimensionality (e.g., 1536 for OpenAI embeddings)'),\n distanceMetric: z.enum(['cosine', 'euclidean', 'dotProduct', 'manhattan']).default('cosine').describe('Distance/similarity metric for vector search'),\n normalized: z.boolean().default(false).describe('Whether vectors are normalized (unit length)'),\n indexed: z.boolean().default(true).describe('Whether to create a vector index for fast similarity search'),\n indexType: z.enum(['hnsw', 'ivfflat', 'flat']).optional().describe('Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets)'),\n});\n\n/**\n * File Attachment Configuration Schema\n * Configuration for file and attachment field types\n * \n * Provides comprehensive file upload capabilities with:\n * - File type restrictions (allowed/blocked)\n * - File size limits (min/max)\n * - Virus scanning integration\n * - Storage provider integration\n * - Image-specific features (dimensions, thumbnails)\n * \n * @example Basic file upload with size limit\n * {\n * maxSize: 10485760, // 10MB\n * allowedTypes: ['.pdf', '.docx', '.xlsx'],\n * virusScan: true\n * }\n * \n * @example Image upload with validation\n * {\n * maxSize: 5242880, // 5MB\n * allowedTypes: ['.jpg', '.jpeg', '.png', '.webp'],\n * imageValidation: {\n * maxWidth: 4096,\n * maxHeight: 4096,\n * generateThumbnails: true\n * }\n * }\n */\nexport const FileAttachmentConfigSchema = z.object({\n /** File Size Limits */\n minSize: z.number().min(0).optional().describe('Minimum file size in bytes'),\n maxSize: z.number().min(1).optional().describe('Maximum file size in bytes (e.g., 10485760 = 10MB)'),\n \n /** File Type Restrictions */\n allowedTypes: z.array(z.string()).optional().describe('Allowed file extensions (e.g., [\".pdf\", \".docx\", \".jpg\"])'),\n blockedTypes: z.array(z.string()).optional().describe('Blocked file extensions (e.g., [\".exe\", \".bat\", \".sh\"])'),\n allowedMimeTypes: z.array(z.string()).optional().describe('Allowed MIME types (e.g., [\"image/jpeg\", \"application/pdf\"])'),\n blockedMimeTypes: z.array(z.string()).optional().describe('Blocked MIME types'),\n \n /** Virus Scanning */\n virusScan: z.boolean().default(false).describe('Enable virus scanning for uploaded files'),\n virusScanProvider: z.enum(['clamav', 'virustotal', 'metadefender', 'custom']).optional().describe('Virus scanning service provider'),\n virusScanOnUpload: z.boolean().default(true).describe('Scan files immediately on upload'),\n quarantineOnThreat: z.boolean().default(true).describe('Quarantine files if threat detected'),\n \n /** Storage Configuration */\n storageProvider: z.string().optional().describe('Object storage provider name (references ObjectStorageConfig)'),\n storageBucket: z.string().optional().describe('Target bucket name'),\n storagePrefix: z.string().optional().describe('Storage path prefix (e.g., \"uploads/documents/\")'),\n \n /** Image-Specific Validation */\n imageValidation: z.object({\n minWidth: z.number().min(1).optional().describe('Minimum image width in pixels'),\n maxWidth: z.number().min(1).optional().describe('Maximum image width in pixels'),\n minHeight: z.number().min(1).optional().describe('Minimum image height in pixels'),\n maxHeight: z.number().min(1).optional().describe('Maximum image height in pixels'),\n aspectRatio: z.string().optional().describe('Required aspect ratio (e.g., \"16:9\", \"1:1\")'),\n generateThumbnails: z.boolean().default(false).describe('Auto-generate thumbnails'),\n thumbnailSizes: z.array(z.object({\n name: z.string().describe('Thumbnail variant name (e.g., \"small\", \"medium\", \"large\")'),\n width: z.number().min(1).describe('Thumbnail width in pixels'),\n height: z.number().min(1).describe('Thumbnail height in pixels'),\n crop: z.boolean().default(false).describe('Crop to exact dimensions'),\n })).optional().describe('Thumbnail size configurations'),\n preserveMetadata: z.boolean().default(false).describe('Preserve EXIF metadata'),\n autoRotate: z.boolean().default(true).describe('Auto-rotate based on EXIF orientation'),\n }).optional().describe('Image-specific validation rules'),\n \n /** Upload Behavior */\n allowMultiple: z.boolean().default(false).describe('Allow multiple file uploads (overrides field.multiple)'),\n allowReplace: z.boolean().default(true).describe('Allow replacing existing files'),\n allowDelete: z.boolean().default(true).describe('Allow deleting uploaded files'),\n requireUpload: z.boolean().default(false).describe('Require at least one file when field is required'),\n \n /** Metadata Extraction */\n extractMetadata: z.boolean().default(true).describe('Extract file metadata (name, size, type, etc.)'),\n extractText: z.boolean().default(false).describe('Extract text content from documents (OCR/parsing)'),\n \n /** Versioning */\n versioningEnabled: z.boolean().default(false).describe('Keep previous versions of replaced files'),\n maxVersions: z.number().min(1).optional().describe('Maximum number of versions to retain'),\n \n /** Access Control */\n publicRead: z.boolean().default(false).describe('Allow public read access to uploaded files'),\n presignedUrlExpiry: z.number().min(60).max(604800).default(3600).describe('Presigned URL expiration in seconds (default: 1 hour)'),\n}).refine((data) => {\n // Validate minSize is less than or equal to maxSize\n if (data.minSize !== undefined && data.maxSize !== undefined && data.minSize > data.maxSize) {\n return false;\n }\n return true;\n}, {\n message: 'minSize must be less than or equal to maxSize',\n}).refine((data) => {\n // Validate virusScanProvider requires virusScan to be enabled\n if (data.virusScanProvider !== undefined && data.virusScan !== true) {\n return false;\n }\n return true;\n}, {\n message: 'virusScanProvider requires virusScan to be enabled',\n});\n\n/**\n * Data Quality Rules Schema\n * Defines data quality validation and monitoring for fields\n * \n * @example Unique SSN field with completeness requirement\n * {\n * uniqueness: true,\n * completeness: 0.95, // 95% of records must have this field\n * accuracy: {\n * source: 'government_db',\n * threshold: 0.98\n * }\n * }\n */\nexport const DataQualityRulesSchema = z.object({\n /** Enforce uniqueness constraint */\n uniqueness: z.boolean().default(false).describe('Enforce unique values across all records'),\n \n /** Completeness ratio (0-1) indicating minimum percentage of non-null values */\n completeness: z.number().min(0).max(1).default(0).describe('Minimum ratio of non-null values (0-1, default: 0 = no requirement)'),\n \n /** Accuracy validation against authoritative source */\n accuracy: z.object({\n source: z.string().describe('Reference data source for validation (e.g., \"api.verify.com\", \"master_data\")'),\n threshold: z.number().min(0).max(1).describe('Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)'),\n }).optional().describe('Accuracy validation configuration'),\n});\n\n/**\n * Computed Field Caching Schema\n * Configuration for caching computed/formula field results\n * \n * @example Cache product price with 1-hour TTL, invalidate on inventory changes\n * {\n * enabled: true,\n * ttl: 3600,\n * invalidateOn: ['inventory.quantity', 'pricing.discount']\n * }\n */\nexport const ComputedFieldCacheSchema = z.object({\n /** Enable caching for this computed field */\n enabled: z.boolean().describe('Enable caching for computed field results'),\n \n /** Time-to-live in seconds */\n ttl: z.number().min(0).describe('Cache TTL in seconds (0 = no expiration)'),\n \n /** Array of field paths that trigger cache invalidation when changed */\n invalidateOn: z.array(z.string()).describe('Field paths that invalidate cache (e.g., [\"inventory.quantity\", \"pricing.base_price\"])'),\n});\n\n/**\n * Field Schema - Best Practice Enterprise Pattern\n */\n/**\n * Field Definition Schema\n * Defines the properties, type, and behavior of a single field (column) on an object.\n * \n * @example Lookup Field\n * {\n * name: \"account_id\",\n * label: \"Account\",\n * type: \"lookup\",\n * reference: \"accounts\",\n * required: true\n * }\n * \n * @example Select Field\n * {\n * name: \"status\",\n * label: \"Status\",\n * type: \"select\",\n * options: [\n * { label: \"Open\", value: \"open\" },\n * { label: \"Closed\", value: \"closed\" }\n * ],\n * defaultValue: \"open\"\n * }\n */\nexport const FieldSchema = z.object({\n /** Identity */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Machine name (snake_case)').optional(),\n label: z.string().optional().describe('Human readable label'),\n type: FieldType.describe('Field Data Type'),\n description: z.string().optional().describe('Tooltip/Help text'),\n format: z.string().optional().describe('Format string (e.g. email, phone)'),\n\n /** Storage Layer Mapping */\n columnName: z.string().optional().describe('Physical column name in the target datasource. Defaults to the field key when not set.'),\n\n /** Database Constraints */\n required: z.boolean().default(false).describe('Is required'),\n searchable: z.boolean().default(false).describe('Is searchable'),\n multiple: z.boolean().default(false).describe('Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image.'),\n unique: z.boolean().default(false).describe('Is unique constraint'),\n defaultValue: z.unknown().optional().describe('Default value'),\n \n /** Text/String Constraints */\n maxLength: z.number().optional().describe('Max character length'),\n minLength: z.number().optional().describe('Min character length'),\n \n /** Number Constraints */\n precision: z.number().optional().describe('Total digits'),\n scale: z.number().optional().describe('Decimal places'),\n min: z.number().optional().describe('Minimum value'),\n max: z.number().optional().describe('Maximum value'),\n\n /** Selection Options */\n options: z.array(SelectOptionSchema).optional().describe('Static options for select/multiselect'),\n\n /** Relationship Config */\n reference: z.string().optional().describe('Target Object Name'),\n referenceFilters: z.array(z.string()).optional().describe('Filters applied to lookup dialogs (e.g. \"active = true\")'),\n writeRequiresMasterRead: z.boolean().optional().describe('If true, user needs read access to master record to edit this field'),\n deleteBehavior: z.enum(['set_null', 'cascade', 'restrict']).optional().default('set_null').describe('What happens if referenced record is deleted'),\n\n /** Calculation */\n expression: z.string().optional().describe('Formula expression'),\n summaryOperations: z.object({\n object: z.string().describe('Source child object name for roll-up'),\n field: z.string().describe('Field on child object to aggregate'),\n function: z.enum(['count', 'sum', 'min', 'max', 'avg']).describe('Aggregation function to apply'),\n }).optional().describe('Roll-up summary definition'),\n\n /** Enhanced Field Type Configurations */\n // Code field config\n language: z.string().optional().describe('Programming language for syntax highlighting (e.g., javascript, python, sql)'),\n theme: z.string().optional().describe('Code editor theme (e.g., dark, light, monokai)'),\n lineNumbers: z.boolean().optional().describe('Show line numbers in code editor'),\n \n // Rating field config\n maxRating: z.number().optional().describe('Maximum rating value (default: 5)'),\n allowHalf: z.boolean().optional().describe('Allow half-star ratings'),\n \n // Location field config\n displayMap: z.boolean().optional().describe('Display map widget for location field'),\n allowGeocoding: z.boolean().optional().describe('Allow address-to-coordinate conversion'),\n \n // Address field config\n addressFormat: z.enum(['us', 'uk', 'international']).optional().describe('Address format template'),\n \n // Color field config\n colorFormat: z.enum(['hex', 'rgb', 'rgba', 'hsl']).optional().describe('Color value format'),\n allowAlpha: z.boolean().optional().describe('Allow transparency/alpha channel'),\n presetColors: z.array(z.string()).optional().describe('Preset color options'),\n \n // Slider field config\n step: z.number().optional().describe('Step increment for slider (default: 1)'),\n showValue: z.boolean().optional().describe('Display current value on slider'),\n marks: z.record(z.string(), z.string()).optional().describe('Custom marks/labels at specific values (e.g., {0: \"Low\", 50: \"Medium\", 100: \"High\"})'),\n \n // QR Code / Barcode field config\n // Note: qrErrorCorrection is only applicable when barcodeFormat='qr'\n // Runtime validation should enforce this constraint\n barcodeFormat: z.enum(['qr', 'ean13', 'ean8', 'code128', 'code39', 'upca', 'upce']).optional().describe('Barcode format type'),\n qrErrorCorrection: z.enum(['L', 'M', 'Q', 'H']).optional().describe('QR code error correction level (L=7%, M=15%, Q=25%, H=30%). Only applicable when barcodeFormat is \"qr\"'),\n displayValue: z.boolean().optional().describe('Display human-readable value below barcode/QR code'),\n allowScanning: z.boolean().optional().describe('Enable camera scanning for barcode/QR code input'),\n\n // Currency field config\n currencyConfig: CurrencyConfigSchema.optional().describe('Configuration for currency field type'),\n\n // Vector field config\n vectorConfig: VectorConfigSchema.optional().describe('Configuration for vector field type (AI/ML embeddings)'),\n\n // File attachment field config\n fileAttachmentConfig: FileAttachmentConfigSchema.optional().describe('Configuration for file and attachment field types'),\n\n /** Enhanced Security & Compliance */\n // Encryption configuration\n encryptionConfig: EncryptionConfigSchema.optional().describe('Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS)'),\n \n // Data masking rules\n maskingRule: MaskingRuleSchema.optional().describe('Data masking rules for PII protection'),\n \n // Audit trail\n auditTrail: z.boolean().default(false).describe('Enable detailed audit trail for this field (tracks all changes with user and timestamp)'),\n \n /** Field Dependencies & Relationships */\n // Field dependencies\n dependencies: z.array(z.string()).optional().describe('Array of field names that this field depends on (for formulas, visibility rules, etc.)'),\n \n /** Computed Field Optimization */\n // Computed field caching\n cached: ComputedFieldCacheSchema.optional().describe('Caching configuration for computed/formula fields'),\n \n /** Data Quality & Governance */\n // Data quality rules\n dataQuality: DataQualityRulesSchema.optional().describe('Data quality validation and monitoring rules'),\n\n /** Layout & Grouping */\n group: z.string().optional().describe('Field group name for organizing fields in forms and layouts (e.g., \"contact_info\", \"billing\", \"system\")'),\n\n /** Conditional Requirements */\n conditionalRequired: z.string().optional().describe('Formula expression that makes this field required when TRUE (e.g., \"status = \\'closed_won\\'\")'),\n\n /** Security & Visibility */\n hidden: z.boolean().default(false).describe('Hidden from default UI'),\n readonly: z.boolean().default(false).describe('Read-only in UI'),\n sortable: z.boolean().optional().default(true).describe('Whether field is sortable in list views'),\n inlineHelpText: z.string().optional().describe('Help text displayed below the field in forms'),\n trackFeedHistory: z.boolean().optional().describe('Track field changes in Chatter/activity feed (Salesforce pattern)'),\n caseSensitive: z.boolean().optional().describe('Whether text comparisons are case-sensitive'),\n autonumberFormat: z.string().optional().describe('Auto-number display format pattern (e.g., \"CASE-{0000}\")'),\n /** Indexing */\n index: z.boolean().default(false).describe('Create standard database index'),\n externalId: z.boolean().default(false).describe('Is external ID for upsert operations'),\n});\n\nexport type Field = z.infer<typeof FieldSchema>;\nexport type SelectOption = z.infer<typeof SelectOptionSchema>;\nexport type LocationCoordinates = z.infer<typeof LocationCoordinatesSchema>;\nexport type Address = z.infer<typeof AddressSchema>;\nexport type CurrencyConfig = z.infer<typeof CurrencyConfigSchema>;\nexport type CurrencyConfigInput = z.input<typeof CurrencyConfigSchema>;\nexport type CurrencyValue = z.infer<typeof CurrencyValueSchema>;\nexport type VectorConfig = z.infer<typeof VectorConfigSchema>;\nexport type VectorConfigInput = z.input<typeof VectorConfigSchema>;\nexport type FileAttachmentConfig = z.infer<typeof FileAttachmentConfigSchema>;\nexport type FileAttachmentConfigInput = z.input<typeof FileAttachmentConfigSchema>;\nexport type DataQualityRules = z.infer<typeof DataQualityRulesSchema>;\nexport type DataQualityRulesInput = z.input<typeof DataQualityRulesSchema>;\nexport type ComputedFieldCache = z.infer<typeof ComputedFieldCacheSchema>;\n\n/**\n * Field Factory Helper\n */\nexport type FieldInput = Omit<Partial<Field>, 'type'>;\n\nexport const Field = {\n text: (config: FieldInput = {}) => ({ type: 'text', ...config } as const),\n textarea: (config: FieldInput = {}) => ({ type: 'textarea', ...config } as const),\n number: (config: FieldInput = {}) => ({ type: 'number', ...config } as const),\n boolean: (config: FieldInput = {}) => ({ type: 'boolean', ...config } as const),\n date: (config: FieldInput = {}) => ({ type: 'date', ...config } as const),\n datetime: (config: FieldInput = {}) => ({ type: 'datetime', ...config } as const),\n currency: (config: FieldInput = {}) => ({ type: 'currency', ...config } as const),\n percent: (config: FieldInput = {}) => ({ type: 'percent', ...config } as const),\n url: (config: FieldInput = {}) => ({ type: 'url', ...config } as const),\n email: (config: FieldInput = {}) => ({ type: 'email', ...config } as const),\n phone: (config: FieldInput = {}) => ({ type: 'phone', ...config } as const),\n image: (config: FieldInput = {}) => ({ type: 'image', ...config } as const),\n file: (config: FieldInput = {}) => ({ type: 'file', ...config } as const),\n avatar: (config: FieldInput = {}) => ({ type: 'avatar', ...config } as const),\n formula: (config: FieldInput = {}) => ({ type: 'formula', ...config } as const),\n summary: (config: FieldInput = {}) => ({ type: 'summary', ...config } as const),\n autonumber: (config: FieldInput = {}) => ({ type: 'autonumber', ...config } as const),\n markdown: (config: FieldInput = {}) => ({ type: 'markdown', ...config } as const),\n html: (config: FieldInput = {}) => ({ type: 'html', ...config } as const),\n password: (config: FieldInput = {}) => ({ type: 'password', ...config } as const),\n \n /**\n * Select field helper with backward-compatible API\n * \n * Automatically converts option values to lowercase to enforce naming conventions.\n * \n * @example Old API (array first) - auto-converts to lowercase\n * Field.select(['High', 'Low'], { label: 'Priority' })\n * // Results in: [{ label: 'High', value: 'high' }, { label: 'Low', value: 'low' }]\n * \n * @example New API (config object) - enforces lowercase\n * Field.select({ options: [{label: 'High', value: 'high'}], label: 'Priority' })\n * \n * @example Multi-word values - converts to snake_case\n * Field.select(['In Progress', 'Closed Won'], { label: 'Status' })\n * // Results in: [{ label: 'In Progress', value: 'in_progress' }, { label: 'Closed Won', value: 'closed_won' }]\n */\n select: (optionsOrConfig: SelectOption[] | string[] | FieldInput & { options: SelectOption[] | string[] }, config?: FieldInput) => {\n // Helper function to convert string to lowercase snake_case\n const toSnakeCase = (str: string): string => {\n return str\n .toLowerCase()\n .replace(/\\s+/g, '_') // Replace spaces with underscores\n .replace(/[^a-z0-9_]/g, ''); // Remove invalid characters (keeping underscores only)\n };\n\n // Support both old and new signatures:\n // Old: Field.select(['a', 'b'], { label: 'X' })\n // New: Field.select({ options: [{label: 'A', value: 'a'}], label: 'X' })\n let options: SelectOption[];\n let finalConfig: FieldInput;\n \n if (Array.isArray(optionsOrConfig)) {\n // Old signature: array as first param\n options = optionsOrConfig.map(o => \n typeof o === 'string' \n ? { label: o, value: toSnakeCase(o) } // Auto-convert string to snake_case\n : { ...o, value: o.value.toLowerCase() } // Ensure value is lowercase\n );\n finalConfig = config || {};\n } else {\n // New signature: config object with options\n options = (optionsOrConfig.options || []).map(o => \n typeof o === 'string' \n ? { label: o, value: toSnakeCase(o) } // Auto-convert string to snake_case\n : { ...o, value: o.value.toLowerCase() } // Ensure value is lowercase\n );\n // Remove options from config to avoid confusion\n const { options: _, ...restConfig } = optionsOrConfig;\n finalConfig = restConfig;\n }\n \n return { type: 'select', options, ...finalConfig } as const;\n },\n\n \n lookup: (reference: string, config: FieldInput = {}) => ({ \n type: 'lookup', \n reference, \n ...config \n } as const),\n \n masterDetail: (reference: string, config: FieldInput = {}) => ({ \n type: 'master_detail', \n reference, \n ...config \n } as const),\n\n // Enhanced Field Type Helpers\n location: (config: FieldInput = {}) => ({ \n type: 'location', \n ...config \n } as const),\n \n address: (config: FieldInput = {}) => ({ \n type: 'address', \n ...config \n } as const),\n \n richtext: (config: FieldInput = {}) => ({ \n type: 'richtext', \n ...config \n } as const),\n \n code: (language?: string, config: FieldInput = {}) => ({ \n type: 'code', \n language,\n ...config \n } as const),\n \n color: (config: FieldInput = {}) => ({ \n type: 'color', \n ...config \n } as const),\n \n rating: (maxRating: number = 5, config: FieldInput = {}) => ({ \n type: 'rating', \n maxRating,\n ...config \n } as const),\n \n signature: (config: FieldInput = {}) => ({ \n type: 'signature', \n ...config \n } as const),\n \n slider: (config: FieldInput = {}) => ({ \n type: 'slider', \n ...config \n } as const),\n \n qrcode: (config: FieldInput = {}) => ({ \n type: 'qrcode', \n ...config \n } as const),\n \n vector: (dimensions: number, config: FieldInput = {}) => ({ \n type: 'vector', \n vectorConfig: {\n dimensions,\n distanceMetric: 'cosine' as const,\n normalized: false,\n indexed: true,\n ...config.vectorConfig\n },\n ...config \n } as const),\n};\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * # ObjectStack Validation Protocol\n * \n * This module defines the validation schema protocol for ObjectStack, providing a comprehensive\n * type-safe validation system similar to Salesforce's validation rules but with enhanced capabilities.\n * \n * ## Overview\n * \n * Validation rules are applied at the data layer to ensure data integrity and enforce business logic.\n * The system supports multiple validation types:\n * \n * 1. **Script Validation**: Formula-based validation using expressions\n * 2. **Uniqueness Validation**: Enforce unique constraints across fields\n * 3. **State Machine Validation**: Control allowed state transitions\n * 4. **Format Validation**: Validate field formats (email, URL, regex, etc.)\n * 5. **Cross-Field Validation**: Validate relationships between multiple fields\n * 6. **Async Validation**: Remote validation via API calls\n * 7. **Custom Validation**: User-defined validation functions\n * 8. **Conditional Validation**: Apply validations based on conditions\n * \n * ## Salesforce Comparison\n * \n * ObjectStack validation rules are inspired by Salesforce validation rules but enhanced:\n * - Salesforce: Formula-based validation with `Error Condition Formula`\n * - ObjectStack: Multiple validation types with composable rules\n * \n * Example Salesforce validation rule:\n * ```\n * Rule Name: Discount_Cannot_Exceed_40_Percent\n * Error Condition Formula: Discount_Percent__c > 0.40\n * Error Message: Discount cannot exceed 40%.\n * ```\n * \n * Equivalent ObjectStack rule:\n * ```typescript\n * {\n * type: 'script',\n * name: 'discount_cannot_exceed_40_percent',\n * condition: 'discount_percent > 0.40',\n * message: 'Discount cannot exceed 40%',\n * severity: 'error'\n * }\n * ```\n */\n\n/**\n * Base Validation Rule\n * \n * All validation rules extend from this base schema with common properties.\n * \n * ## Industry Standard Enhancements\n * - **Label/Description**: Essential for governance in large systems with thousands of rules.\n * - **Events**: granular control over validation timing (Context-aware validation).\n * - **Tags**: categorization for reporting and management.\n */\nconst BaseValidationSchema = z.object({\n // Identification\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Unique rule name (snake_case)'),\n label: z.string().optional().describe('Human-readable label for the rule listing'),\n description: z.string().optional().describe('Administrative notes explaining the business reason'),\n \n // Execution Control\n active: z.boolean().default(true),\n events: z.array(z.enum(['insert', 'update', 'delete'])).default(['insert', 'update']).describe('Validation contexts'),\n priority: z.number().int().min(0).max(9999).default(100).describe('Execution priority (lower runs first, default: 100)'),\n \n // Classification\n tags: z.array(z.string()).optional().describe('Categorization tags (e.g., \"compliance\", \"billing\")'),\n \n // Feedback\n severity: z.enum(['error', 'warning', 'info']).default('error'),\n message: z.string().describe('Error message to display to the user'),\n});\n\n/**\n * 1. Script/Expression Validation\n * Generic formula-based validation.\n */\nexport const ScriptValidationSchema = BaseValidationSchema.extend({\n type: z.literal('script'),\n condition: z.string().describe('Formula expression. If TRUE, validation fails. (e.g. amount < 0)'),\n});\n\n/**\n * 2. Uniqueness Validation\n * specialized optimized check for unique constraints.\n */\nexport const UniquenessValidationSchema = BaseValidationSchema.extend({\n type: z.literal('unique'),\n fields: z.array(z.string()).describe('Fields that must be combined unique'),\n scope: z.string().optional().describe('Formula condition for scope (e.g. active = true)'),\n caseSensitive: z.boolean().default(true),\n});\n\n/**\n * 3. State Machine Validation\n * State transition logic.\n */\nexport const StateMachineValidationSchema = BaseValidationSchema.extend({\n type: z.literal('state_machine'),\n field: z.string().describe('State field (e.g. status)'),\n transitions: z.record(z.string(), z.array(z.string())).describe('Map of { OldState: [AllowedNewStates] }'),\n});\n\n/**\n * 4. Value Format Validation\n * Regex or specialized formats.\n */\nexport const FormatValidationSchema = BaseValidationSchema.extend({\n type: z.literal('format'),\n field: z.string(),\n regex: z.string().optional(),\n format: z.enum(['email', 'url', 'phone', 'json']).optional(),\n});\n\n/**\n * 5. Cross-Field Validation\n * Validates relationships between multiple fields.\n * \n * ## Use Cases\n * - Date range validations (end_date > start_date)\n * - Amount comparisons (discount < total)\n * - Complex business rules involving multiple fields\n * \n * ## Salesforce Examples\n * \n * ### Example 1: Close Date Must Be In Current or Future Month\n * **Salesforce Formula:**\n * ```\n * MONTH(CloseDate) < MONTH(TODAY()) ||\n * YEAR(CloseDate) < YEAR(TODAY())\n * ```\n * \n * **ObjectStack Equivalent:**\n * ```typescript\n * {\n * type: 'cross_field',\n * name: 'close_date_future',\n * condition: 'MONTH(close_date) >= MONTH(TODAY()) AND YEAR(close_date) >= YEAR(TODAY())',\n * fields: ['close_date'],\n * message: 'Close Date must be in the current or a future month'\n * }\n * ```\n * \n * ### Example 2: Discount Validation\n * **Salesforce Formula:**\n * ```\n * Discount__c > (Amount__c * 0.40)\n * ```\n * \n * **ObjectStack Equivalent:**\n * ```typescript\n * {\n * type: 'cross_field',\n * name: 'discount_limit',\n * condition: 'discount > (amount * 0.40)',\n * fields: ['discount', 'amount'],\n * message: 'Discount cannot exceed 40% of the amount'\n * }\n * ```\n * \n * ### Example 3: Opportunity Must Have Products\n * **Salesforce Formula:**\n * ```\n * ISBLANK(Products__c) && ISPICKVAL(StageName, \"Closed Won\")\n * ```\n * \n * **ObjectStack Equivalent:**\n * ```typescript\n * {\n * type: 'cross_field',\n * name: 'products_required_for_won',\n * condition: 'products = null AND stage = \"closed_won\"',\n * fields: ['products', 'stage'],\n * message: 'Opportunity must have products to be marked as Closed Won'\n * }\n * ```\n */\nexport const CrossFieldValidationSchema = BaseValidationSchema.extend({\n type: z.literal('cross_field'),\n condition: z.string().describe('Formula expression comparing fields (e.g. \"end_date > start_date\")'),\n fields: z.array(z.string()).describe('Fields involved in the validation'),\n});\n\n/**\n * 6. JSON Structure Validation\n * Validates JSON fields against a JSON Schema.\n * \n * ## Use Cases\n * - Validating configuration objects stored in JSON fields\n * - Enforcing API payload structures\n * - Complex nested data validation\n */\nexport const JSONValidationSchema = BaseValidationSchema.extend({\n type: z.literal('json_schema'),\n field: z.string().describe('JSON field to validate'),\n schema: z.record(z.string(), z.unknown()).describe('JSON Schema object definition'),\n});\n\n/**\n * 7. Async Validation\n * Remote validation via API call or database query.\n * \n * ## Use Cases\n * \n * ### 1. Email Uniqueness Check\n * Check if an email address is already registered in the system.\n * ```typescript\n * {\n * type: 'async',\n * name: 'unique_email',\n * field: 'email',\n * validatorUrl: '/api/users/check-email',\n * message: 'This email address is already registered',\n * debounce: 500, // Wait 500ms after user stops typing\n * timeout: 3000\n * }\n * ```\n * \n * ### 2. Username Availability\n * Verify username is available before form submission.\n * ```typescript\n * {\n * type: 'async',\n * name: 'username_available',\n * field: 'username',\n * validatorUrl: '/api/users/check-username',\n * message: 'This username is already taken',\n * debounce: 300,\n * timeout: 2000\n * }\n * ```\n * \n * ### 3. Tax ID Validation\n * Validate tax ID with government API (e.g., IRS, HMRC).\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_tax_id',\n * field: 'tax_id',\n * validatorFunction: 'validateTaxIdWithIRS',\n * message: 'Invalid Tax ID number',\n * timeout: 10000, // Government APIs may be slow\n * params: { country: 'US', format: 'EIN' }\n * }\n * ```\n * \n * ### 4. Credit Card Validation\n * Verify credit card with payment gateway without charging.\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_card',\n * field: 'card_number',\n * validatorUrl: 'https://api.stripe.com/v1/tokens/validate',\n * message: 'Invalid credit card number',\n * timeout: 5000,\n * params: { \n * mode: 'validate_only',\n * checkFunds: false \n * }\n * }\n * ```\n * \n * ### 5. Address Validation\n * Validate and standardize addresses using geocoding services.\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_address',\n * field: 'street_address',\n * validatorFunction: 'validateAddressWithGoogleMaps',\n * message: 'Unable to verify address',\n * timeout: 4000,\n * params: {\n * includeFields: ['city', 'state', 'zip'],\n * strictMode: true,\n * country: 'US'\n * }\n * }\n * ```\n * \n * ### 6. Domain Name Availability\n * Check if domain name is available for registration.\n * ```typescript\n * {\n * type: 'async',\n * name: 'domain_available',\n * field: 'domain_name',\n * validatorUrl: '/api/domains/check-availability',\n * message: 'This domain is already taken or reserved',\n * debounce: 500,\n * timeout: 2000\n * }\n * ```\n * \n * ### 7. Coupon Code Validation\n * Verify coupon code is valid and not expired.\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_coupon',\n * field: 'coupon_code',\n * validatorUrl: '/api/coupons/validate',\n * message: 'Invalid or expired coupon code',\n * timeout: 2000,\n * params: {\n * checkExpiration: true,\n * checkUsageLimit: true,\n * userId: '{{current_user_id}}'\n * }\n * }\n * ```\n */\nexport const AsyncValidationSchema = BaseValidationSchema.extend({\n type: z.literal('async'),\n field: z.string().describe('Field to validate'),\n validatorUrl: z.string().optional().describe('External API endpoint for validation'),\n method: z.enum(['GET', 'POST']).default('GET').describe('HTTP method for external call'),\n headers: z.record(z.string(), z.string()).optional().describe('Custom headers for the request'),\n validatorFunction: z.string().optional().describe('Reference to custom validator function'),\n timeout: z.number().optional().default(5000).describe('Timeout in milliseconds'),\n debounce: z.number().optional().describe('Debounce delay in milliseconds'),\n params: z.record(z.string(), z.unknown()).optional().describe('Additional parameters to pass to validator'),\n});\n\n/**\n * 8. Custom Validator Function\n * User-defined validation logic with code reference.\n */\nexport const CustomValidatorSchema = BaseValidationSchema.extend({\n type: z.literal('custom'),\n handler: z.string().describe('Name of the custom validation function registered in the system'),\n params: z.record(z.string(), z.unknown()).optional().describe('Parameters passed to the custom handler'),\n});\n\n/**\n * 9. Master Validation Rule Schema\n */\n/** Base type for validation rules - used for z.lazy() recursive type annotation */\nexport interface BaseValidationRuleShape {\n type: string;\n name: string;\n message: string;\n label?: string;\n description?: string;\n active?: boolean;\n events?: ('insert' | 'update' | 'delete')[];\n priority?: number;\n tags?: string[];\n severity?: 'error' | 'warning' | 'info';\n [key: string]: unknown;\n}\n\nexport const ValidationRuleSchema: z.ZodType<BaseValidationRuleShape> = z.lazy(() =>\n z.discriminatedUnion('type', [\n ScriptValidationSchema,\n UniquenessValidationSchema,\n StateMachineValidationSchema,\n FormatValidationSchema,\n CrossFieldValidationSchema,\n JSONValidationSchema,\n AsyncValidationSchema,\n CustomValidatorSchema,\n ConditionalValidationSchema,\n ])\n);\n\n/**\n * 8. Conditional Validation\n * Validation that only applies when a condition is met.\n * \n * ## Overview\n * Conditional validations follow the pattern: \"Validate X only if Y is true\"\n * This allows for context-aware validation rules that adapt to different scenarios.\n * \n * ## Use Cases\n * \n * ### 1. Validate Based on Record Type\n * Apply different validation rules based on the type of record.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'enterprise_approval_required',\n * when: 'account_type = \"enterprise\"',\n * message: 'Enterprise validation',\n * then: {\n * type: 'script',\n * name: 'require_approval',\n * message: 'Enterprise accounts require manager approval',\n * condition: 'approval_status = null'\n * }\n * }\n * ```\n * \n * ### 2. Conditional Field Requirements\n * Require certain fields only when specific conditions are met.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'shipping_address_when_required',\n * when: 'requires_shipping = true',\n * message: 'Shipping validation',\n * then: {\n * type: 'script',\n * name: 'shipping_address_required',\n * message: 'Shipping address is required for physical products',\n * condition: 'shipping_address = null OR shipping_address = \"\"'\n * }\n * }\n * ```\n * \n * ### 3. Amount-Based Validation\n * Apply different rules based on transaction amount.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'high_value_approval',\n * when: 'order_total > 10000',\n * message: 'High value order validation',\n * then: {\n * type: 'script',\n * name: 'manager_approval_required',\n * message: 'Orders over $10,000 require manager approval',\n * condition: 'manager_approval_id = null'\n * },\n * otherwise: {\n * type: 'script',\n * name: 'standard_validation',\n * message: 'Payment method is required',\n * condition: 'payment_method = null'\n * }\n * }\n * ```\n * \n * ### 4. Regional Compliance\n * Apply region-specific validation rules.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'regional_compliance',\n * when: 'region = \"EU\"',\n * message: 'EU compliance validation',\n * then: {\n * type: 'script',\n * name: 'gdpr_consent',\n * message: 'GDPR consent is required for EU customers',\n * condition: 'gdpr_consent_given = false'\n * },\n * otherwise: {\n * type: 'script',\n * name: 'tos_acceptance',\n * message: 'Terms of Service acceptance required',\n * condition: 'tos_accepted = false'\n * }\n * }\n * ```\n * \n * ### 5. Nested Conditional Validation\n * Create complex validation logic with nested conditions.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'country_state_validation',\n * when: 'country = \"US\"',\n * message: 'US-specific validation',\n * then: {\n * type: 'conditional',\n * name: 'california_validation',\n * when: 'state = \"CA\"',\n * message: 'California-specific validation',\n * then: {\n * type: 'script',\n * name: 'ca_tax_id_required',\n * message: 'California requires a valid tax ID',\n * condition: 'tax_id = null OR NOT(REGEX(tax_id, \"^\\\\d{2}-\\\\d{7}$\"))'\n * }\n * }\n * }\n * ```\n * \n * ### 6. Tax Validation for Taxable Items\n * Only validate tax fields when the item is taxable.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'tax_field_validation',\n * when: 'is_taxable = true',\n * message: 'Tax validation',\n * then: {\n * type: 'script',\n * name: 'tax_code_required',\n * message: 'Tax code is required for taxable items',\n * condition: 'tax_code = null OR tax_code = \"\"'\n * }\n * }\n * ```\n * \n * ### 7. Role-Based Validation\n * Apply validation based on user role.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'role_based_approval_limit',\n * when: 'user_role = \"manager\"',\n * message: 'Manager approval limits',\n * then: {\n * type: 'script',\n * name: 'manager_limit',\n * message: 'Managers can approve up to $50,000',\n * condition: 'approval_amount > 50000'\n * }\n * }\n * ```\n * \n * ## Salesforce Pattern Comparison\n * \n * Salesforce doesn't have explicit \"conditional validation\" rules but achieves similar\n * behavior using formula logic. ObjectStack makes this pattern explicit and composable.\n * \n * **Salesforce Approach:**\n * ```\n * IF(\n * ISPICKVAL(Type, \"Enterprise\"),\n * AND(Amount > 100000, ISBLANK(Approval__c)),\n * FALSE\n * )\n * ```\n * \n * **ObjectStack Approach:**\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'enterprise_high_value',\n * when: 'type = \"enterprise\"',\n * then: {\n * type: 'cross_field',\n * name: 'amount_approval',\n * condition: 'amount > 100000 AND approval = null',\n * fields: ['amount', 'approval']\n * }\n * }\n * ```\n */\nexport const ConditionalValidationSchema = BaseValidationSchema.extend({\n type: z.literal('conditional'),\n when: z.string().describe('Condition formula (e.g. \"type = \\'enterprise\\'\")'),\n then: ValidationRuleSchema.describe('Validation rule to apply when condition is true'),\n otherwise: ValidationRuleSchema.optional().describe('Validation rule to apply when condition is false'),\n});\n\nexport type ValidationRule = z.infer<typeof ValidationRuleSchema>;\nexport type ScriptValidation = z.infer<typeof ScriptValidationSchema>;\nexport type UniquenessValidation = z.infer<typeof UniquenessValidationSchema>;\nexport type StateMachineValidation = z.infer<typeof StateMachineValidationSchema>;\nexport type FormatValidation = z.infer<typeof FormatValidationSchema>;\nexport type CrossFieldValidation = z.infer<typeof CrossFieldValidationSchema>;\nexport type JSONValidation = z.infer<typeof JSONValidationSchema>;\nexport type AsyncValidation = z.infer<typeof AsyncValidationSchema>;\nexport type CustomValidation = z.infer<typeof CustomValidatorSchema>;\nexport type ConditionalValidation = z.infer<typeof ConditionalValidationSchema>;","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SnakeCaseIdentifierSchema } from '../shared/identifiers.zod';\n\n/**\n * XState-inspired State Machine Protocol\n * Used to define strict business logic constraints and lifecycle management.\n * Prevent AI \"hallucinations\" by enforcing valid valid transitions.\n */\n\n// --- Primitives ---\n\n/**\n * References a named action (side effect)\n * Can be a script, a webhook, or a field update.\n */\nexport const ActionRefSchema = z.union([\n z.string().describe('Action Name'),\n z.object({\n type: z.string(), // e.g., 'xstate.assign', 'log', 'email'\n params: z.record(z.string(), z.unknown()).optional()\n })\n]);\n\n/**\n * References a named condition (guard)\n * Must evaluate to true for the transition to occur.\n */\nexport const GuardRefSchema = z.union([\n z.string().describe('Guard Name (e.g., \"isManager\", \"amountGT1000\")'),\n z.object({\n type: z.string(),\n params: z.record(z.string(), z.unknown()).optional()\n })\n]);\n\n// --- Core Structure ---\n\n/**\n * State Transition Definition\n * \"When EVENT happens, if GUARD is true, go to TARGET and run ACTIONS\"\n */\nexport const TransitionSchema = z.object({\n target: z.string().optional().describe('Target State ID'),\n cond: GuardRefSchema.optional().describe('Condition (Guard) required to take this path'),\n actions: z.array(ActionRefSchema).optional().describe('Actions to execute during transition'),\n description: z.string().optional().describe('Human readable description of this rule'),\n});\n\n/**\n * Event Definition (Signals)\n */\nexport const EventSchema = z.object({\n type: z.string().describe('Event Type (e.g. \"APPROVE\", \"REJECT\", \"Submit\")'),\n // Payload validation schema could go here if we want deep validation\n schema: z.record(z.string(), z.unknown()).optional().describe('Expected event payload structure'),\n});\n\nexport type ActionRef = z.infer<typeof ActionRefSchema>;\nexport type Transition = z.infer<typeof TransitionSchema>;\n\nexport type StateNodeConfig = {\n type?: 'atomic' | 'compound' | 'parallel' | 'final' | 'history';\n entry?: ActionRef[];\n exit?: ActionRef[];\n on?: Record<string, string | Transition | Transition[]>;\n always?: Transition[];\n initial?: string;\n states?: Record<string, StateNodeConfig>;\n meta?: {\n label?: string;\n description?: string;\n color?: string;\n aiInstructions?: string;\n };\n};\n\n/**\n * State Node Definition\n */\nexport const StateNodeSchema: z.ZodType<StateNodeConfig> = z.lazy(() => z.object({\n /** Type of state */\n type: z.enum(['atomic', 'compound', 'parallel', 'final', 'history']).default('atomic'),\n \n /** Entry/Exit Actions */\n entry: z.array(ActionRefSchema).optional().describe('Actions to run when entering this state'),\n exit: z.array(ActionRefSchema).optional().describe('Actions to run when leaving this state'),\n \n /** Transitions (Events) */\n on: z.record(z.string(), z.union([\n z.string(), // Shorthand target\n TransitionSchema, \n z.array(TransitionSchema)\n ])).optional().describe('Map of Event Type -> Transition Definition'),\n \n /** Always Transitions (Eventless) */\n always: z.array(TransitionSchema).optional(),\n\n /** Nesting (Hierarchical States) */\n initial: z.string().optional().describe('Initial child state (if compound)'),\n states: z.record(z.string(), StateNodeSchema).optional(),\n \n /** Metadata for UI/AI */\n meta: z.object({\n label: z.string().optional(),\n description: z.string().optional(),\n color: z.string().optional(), // For UI diagrams\n // Instructions for AI Agent when in this state\n aiInstructions: z.string().optional().describe('Specific instructions for AI when in this state'),\n }).optional(),\n}));\n\n/**\n * Top-Level State Machine Definition\n */\nexport const StateMachineSchema = z.object({\n id: SnakeCaseIdentifierSchema.describe('Unique Machine ID'),\n description: z.string().optional(),\n \n /** Context (Memory) Schema */\n contextSchema: z.record(z.string(), z.unknown()).optional().describe('Zod Schema for the machine context/memory'),\n \n /** Initial State */\n initial: z.string().describe('Initial State ID'),\n \n /** State Definitions */\n states: z.record(z.string(), StateNodeSchema).describe('State Nodes'),\n \n /** Global Listeners */\n on: z.record(z.string(), z.union([z.string(), TransitionSchema, z.array(TransitionSchema)])).optional(),\n});\n\nexport type StateMachineConfig = z.infer<typeof StateMachineSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { FieldSchema } from './field.zod';\nimport { ValidationRuleSchema } from './validation.zod';\nimport { StateMachineSchema } from '../automation/state-machine.zod';\n\n/**\n * API Operations Enum\n */\nexport const ApiMethod = z.enum([\n 'get', 'list', // Read\n 'create', 'update', 'delete', // Write\n 'upsert', // Idempotent Write\n 'bulk', // Batch operations\n 'aggregate', // Analytics (count, sum)\n 'history', // Audit access\n 'search', // Search access\n 'restore', 'purge', // Trash management\n 'import', 'export', // Data portability\n]);\nexport type ApiMethod = z.infer<typeof ApiMethod>;\n\n/**\n * Capability Flags\n * Defines what system features are enabled for this object.\n * \n * Optimized based on industry standards (Salesforce, ServiceNow):\n * - Added `activities` (Tasks/Events)\n * - Added `mru` (Recent Items)\n * - Added `feeds` (Social/Chatter)\n * - Grouped API permissions\n * \n * @example\n * {\n * trackHistory: true,\n * searchable: true,\n * apiEnabled: true,\n * files: true\n * }\n */\nexport const ObjectCapabilities = z.object({\n /** Enable history tracking (Audit Trail) */\n trackHistory: z.boolean().default(false).describe('Enable field history tracking for audit compliance'),\n \n /** Enable global search indexing */\n searchable: z.boolean().default(true).describe('Index records for global search'),\n \n /** Enable REST/GraphQL API access */\n apiEnabled: z.boolean().default(true).describe('Expose object via automatic APIs'),\n\n /** \n * API Supported Operations\n * Granular control over API exposure.\n */\n apiMethods: z.array(ApiMethod).optional().describe('Whitelist of allowed API operations'),\n \n /** Enable standard attachments/files engine */\n files: z.boolean().default(false).describe('Enable file attachments and document management'),\n \n /** Enable social collaboration (Comments, Mentions, Feeds) */\n feeds: z.boolean().default(false).describe('Enable social feed, comments, and mentions (Chatter-like)'),\n \n /** Enable standard Activity suite (Tasks, Calendars, Events) */\n activities: z.boolean().default(false).describe('Enable standard tasks and events tracking'),\n \n /** Enable Recycle Bin / Soft Delete */\n trash: z.boolean().default(true).describe('Enable soft-delete with restore capability'),\n\n /** Enable \"Recently Viewed\" tracking */\n mru: z.boolean().default(true).describe('Track Most Recently Used (MRU) list for users'),\n \n /** Allow cloning records */\n clone: z.boolean().default(true).describe('Allow record deep cloning'),\n});\n\n/**\n * Schema for database indexes.\n * Enhanced with additional index types and configuration options\n * \n * @example\n * {\n * name: \"idx_account_name\",\n * fields: [\"name\"],\n * type: \"btree\",\n * unique: true\n * }\n */\nexport const IndexSchema = z.object({\n name: z.string().optional().describe('Index name (auto-generated if not provided)'),\n fields: z.array(z.string()).describe('Fields included in the index'),\n type: z.enum(['btree', 'hash', 'gin', 'gist', 'fulltext']).optional().default('btree').describe('Index algorithm type'),\n unique: z.boolean().optional().default(false).describe('Whether the index enforces uniqueness'),\n partial: z.string().optional().describe('Partial index condition (SQL WHERE clause for conditional indexes)'),\n});\n\n/**\n * Search Configuration\n * Defines how this object behaves in search results.\n * \n * @example\n * {\n * fields: [\"name\", \"email\", \"phone\"],\n * displayFields: [\"name\", \"title\"],\n * filters: [\"status = 'active'\"]\n * }\n */\nexport const SearchConfigSchema = z.object({\n fields: z.array(z.string()).describe('Fields to index for full-text search weighting'),\n displayFields: z.array(z.string()).optional().describe('Fields to display in search result cards'),\n filters: z.array(z.string()).optional().describe('Default filters for search results'),\n});\n\n/**\n * Multi-Tenancy Configuration Schema\n * Configures tenant isolation strategy for SaaS applications\n * \n * @example Shared database with tenant_id isolation\n * {\n * enabled: true,\n * strategy: 'shared',\n * tenantField: 'tenant_id',\n * crossTenantAccess: false\n * }\n */\nexport const TenancyConfigSchema = z.object({\n enabled: z.boolean().describe('Enable multi-tenancy for this object'),\n strategy: z.enum(['shared', 'isolated', 'hybrid']).describe('Tenant isolation strategy: shared (single DB, row-level), isolated (separate DB per tenant), hybrid (mix)'),\n tenantField: z.string().default('tenant_id').describe('Field name for tenant identifier'),\n crossTenantAccess: z.boolean().default(false).describe('Allow cross-tenant data access (with explicit permission)'),\n});\n\n/**\n * Soft Delete Configuration Schema\n * Implements recycle bin / trash functionality\n * \n * @example Standard soft delete with cascade\n * {\n * enabled: true,\n * field: 'deleted_at',\n * cascadeDelete: true\n * }\n */\nexport const SoftDeleteConfigSchema = z.object({\n enabled: z.boolean().describe('Enable soft delete (trash/recycle bin)'),\n field: z.string().default('deleted_at').describe('Field name for soft delete timestamp'),\n cascadeDelete: z.boolean().default(false).describe('Cascade soft delete to related records'),\n});\n\n/**\n * Versioning Configuration Schema\n * Implements record versioning and history tracking\n * \n * @example Snapshot versioning with 90-day retention\n * {\n * enabled: true,\n * strategy: 'snapshot',\n * retentionDays: 90,\n * versionField: 'version'\n * }\n */\nexport const VersioningConfigSchema = z.object({\n enabled: z.boolean().describe('Enable record versioning'),\n strategy: z.enum(['snapshot', 'delta', 'event-sourcing']).describe('Versioning strategy: snapshot (full copy), delta (changes only), event-sourcing (event log)'),\n retentionDays: z.number().min(1).optional().describe('Number of days to retain old versions (undefined = infinite)'),\n versionField: z.string().default('version').describe('Field name for version number/timestamp'),\n});\n\n/**\n * Partitioning Strategy Schema\n * Configures table partitioning for performance at scale\n * \n * @example Range partitioning by date (monthly)\n * {\n * enabled: true,\n * strategy: 'range',\n * key: 'created_at',\n * interval: '1 month'\n * }\n */\nexport const PartitioningConfigSchema = z.object({\n enabled: z.boolean().describe('Enable table partitioning'),\n strategy: z.enum(['range', 'hash', 'list']).describe('Partitioning strategy: range (date ranges), hash (consistent hashing), list (predefined values)'),\n key: z.string().describe('Field name to partition by'),\n interval: z.string().optional().describe('Partition interval for range strategy (e.g., \"1 month\", \"1 year\")'),\n}).refine((data) => {\n // If strategy is 'range', interval must be provided\n if (data.strategy === 'range' && !data.interval) {\n return false;\n }\n return true;\n}, {\n message: 'interval is required when strategy is \"range\"',\n});\n\n/**\n * Change Data Capture (CDC) Configuration Schema\n * Enables real-time data streaming to external systems\n * \n * @example Stream all changes to Kafka\n * {\n * enabled: true,\n * events: ['insert', 'update', 'delete'],\n * destination: 'kafka://events.objectstack'\n * }\n */\nexport const CDCConfigSchema = z.object({\n enabled: z.boolean().describe('Enable Change Data Capture'),\n events: z.array(z.enum(['insert', 'update', 'delete'])).describe('Event types to capture'),\n destination: z.string().describe('Destination endpoint (e.g., \"kafka://topic\", \"webhook://url\")'),\n});\n\n/**\n * Base Object Schema Definition\n * \n * The Blueprint of a Business Object.\n * Represents a table, a collection, or a virtual entity.\n * \n * @example\n * ```yaml\n * name: project_task\n * label: Project Task\n * icon: task\n * fields:\n * project:\n * type: lookup\n * reference: project\n * status:\n * type: select\n * options: [todo, in_progress, done]\n * enable:\n * trackHistory: true\n * files: true\n * ```\n */\nconst ObjectSchemaBase = z.object({\n /** \n * Identity & Metadata \n */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Machine unique key (snake_case). Immutable.'),\n label: z.string().optional().describe('Human readable singular label (e.g. \"Account\")'),\n pluralLabel: z.string().optional().describe('Human readable plural label (e.g. \"Accounts\")'),\n description: z.string().optional().describe('Developer documentation / description'),\n icon: z.string().optional().describe('Icon name (Lucide/Material) for UI representation'),\n \n /**\n * Taxonomy & Organization\n */\n tags: z.array(z.string()).optional().describe('Categorization tags (e.g. \"sales\", \"system\", \"reference\")'),\n active: z.boolean().optional().default(true).describe('Is the object active and usable'),\n isSystem: z.boolean().optional().default(false).describe('Is system object (protected from deletion)'),\n abstract: z.boolean().optional().default(false).describe('Is abstract base object (cannot be instantiated)'),\n\n /** \n * Storage & Virtualization \n */\n datasource: z.string().optional().default('default').describe('Target Datasource ID. \"default\" is the primary DB.'),\n tableName: z.string().optional().describe('Physical table/collection name in the target datasource'),\n \n /** \n * Data Model \n */\n fields: z.record(z.string().regex(/^[a-z_][a-z0-9_]*$/, {\n message: 'Field names must be lowercase snake_case (e.g., \"first_name\", \"company\", \"annual_revenue\")',\n }), FieldSchema).describe('Field definitions map. Keys must be snake_case identifiers.'),\n indexes: z.array(IndexSchema).optional().describe('Database performance indexes'),\n \n /**\n * Advanced Data Management\n */\n \n // Multi-tenancy configuration\n tenancy: TenancyConfigSchema.optional().describe('Multi-tenancy configuration for SaaS applications'),\n \n // Soft delete configuration\n softDelete: SoftDeleteConfigSchema.optional().describe('Soft delete (trash/recycle bin) configuration'),\n \n // Versioning configuration\n versioning: VersioningConfigSchema.optional().describe('Record versioning and history tracking configuration'),\n \n // Partitioning strategy\n partitioning: PartitioningConfigSchema.optional().describe('Table partitioning configuration for performance'),\n \n // Change Data Capture\n cdc: CDCConfigSchema.optional().describe('Change Data Capture (CDC) configuration for real-time data streaming'),\n \n /**\n * Logic & Validation (Co-located)\n * Best Practice: Define rules close to data.\n */\n validations: z.array(ValidationRuleSchema).optional().describe('Object-level validation rules'),\n \n /**\n * State Machine(s)\n * Named record of state machines, where each key is a unique machine identifier.\n * Multiple machines allow parallel lifecycles (e.g., status + payment_status + approval_status).\n * \n * @example stateMachines: { lifecycle: {...}, payment: {...}, approval: {...} }\n */\n stateMachines: z.record(z.string(), StateMachineSchema).optional().describe('Named state machines for parallel lifecycles (e.g., status, payment, approval)'),\n\n /** \n * Display & UI Hints (Data-Layer)\n */\n displayNameField: z.string().optional().describe('Field to use as the record display name (e.g., \"name\", \"title\"). Defaults to \"name\" if present.'),\n recordName: z.object({\n type: z.enum(['text', 'autonumber']).describe('Record name type: text (user-entered) or autonumber (system-generated)'),\n displayFormat: z.string().optional().describe('Auto-number format pattern (e.g., \"CASE-{0000}\", \"INV-{YYYY}-{0000}\")'),\n startNumber: z.number().int().min(0).optional().describe('Starting number for autonumber (default: 1)'),\n }).optional().describe('Record name generation configuration (Salesforce pattern)'),\n titleFormat: z.string().optional().describe('Title expression (e.g. \"{name} - {code}\"). Overrides displayNameField.'),\n compactLayout: z.array(z.string()).optional().describe('Primary fields for hover/cards/lookups'),\n \n /** \n * Search Engine Config \n */\n search: SearchConfigSchema.optional().describe('Search engine configuration'),\n \n /** \n * System Capabilities \n */\n enable: ObjectCapabilities.optional().describe('Enabled system features modules'),\n\n /** Record Types */\n recordTypes: z.array(z.string()).optional().describe('Record type names for this object'),\n\n /** Sharing Model */\n sharingModel: z.enum(['private', 'read', 'read_write', 'full']).optional().describe('Default sharing model'),\n\n /** Key Prefix */\n keyPrefix: z.string().max(5).optional().describe('Short prefix for record IDs (e.g., \"001\" for Account)'),\n});\n\n/**\n * Converts a snake_case name to a human-readable Title Case label.\n * @example snakeCaseToLabel('project_task') → 'Project Task'\n */\nfunction snakeCaseToLabel(name: string): string {\n return name\n .split('_')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n}\n\n/**\n * Enhanced ObjectSchema with Factory\n */\nexport const ObjectSchema = Object.assign(ObjectSchemaBase, {\n /**\n * Type-safe factory for creating business object definitions.\n * \n * Enhancements over raw schema:\n * - **Auto-label**: Generates `label` from `name` if not provided (snake_case → Title Case).\n * - **Validation**: Runs Zod `.parse()` to validate the config at creation time.\n * \n * @example\n * ```ts\n * const Task = ObjectSchema.create({\n * name: 'project_task',\n * // label auto-generated as 'Project Task'\n * fields: {\n * subject: { type: 'text', label: 'Subject', required: true },\n * },\n * });\n * ```\n */\n create: (config: z.input<typeof ObjectSchemaBase>): ServiceObject => {\n const withDefaults = {\n ...config,\n label: config.label ?? snakeCaseToLabel(config.name),\n };\n return ObjectSchemaBase.parse(withDefaults);\n },\n});\n\nexport type ServiceObject = z.infer<typeof ObjectSchemaBase>;\nexport type ServiceObjectInput = z.input<typeof ObjectSchemaBase>;\nexport type ObjectCapabilities = z.infer<typeof ObjectCapabilities>;\nexport type ObjectIndex = z.infer<typeof IndexSchema>;\nexport type TenancyConfig = z.infer<typeof TenancyConfigSchema>;\nexport type SoftDeleteConfig = z.infer<typeof SoftDeleteConfigSchema>;\nexport type VersioningConfig = z.infer<typeof VersioningConfigSchema>;\nexport type PartitioningConfig = z.infer<typeof PartitioningConfigSchema>;\nexport type CDCConfig = z.infer<typeof CDCConfigSchema>;\n\n// =================================================================\n// Object Ownership Model\n// =================================================================\n\n/**\n * How a package relates to an object it references.\n * \n * - `own`: This package is the original author/owner of the object.\n * Only one package may own a given object name. The owner defines\n * the base schema (table name, primary key, core fields).\n * \n * - `extend`: This package adds fields, views, or actions to an\n * existing object owned by another package. Multiple packages\n * may extend the same object. Extensions are merged at boot time.\n * \n * Follows Salesforce/ServiceNow patterns:\n * object name = database table name, globally unique, no namespace prefix.\n */\nexport const ObjectOwnershipEnum = z.enum(['own', 'extend']);\nexport type ObjectOwnership = z.infer<typeof ObjectOwnershipEnum>;\n\n/**\n * Object Extension Entry — used in `objectExtensions` array.\n * Declares fields/config to merge into an existing object owned by another package.\n * \n * @example\n * ```ts\n * objectExtensions: [{\n * extend: 'contact', // target object FQN\n * fields: { sales_stage: Field.select([...]) },\n * }]\n * ```\n */\nexport const ObjectExtensionSchema = z.object({\n /** The target object name (FQN) to extend */\n extend: z.string().describe('Target object name (FQN) to extend'),\n \n /** Fields to merge into the target object (additive) */\n fields: z.record(z.string(), FieldSchema).optional().describe('Fields to add/override'),\n \n /** Override label */\n label: z.string().optional().describe('Override label for the extended object'),\n \n /** Override plural label */\n pluralLabel: z.string().optional().describe('Override plural label for the extended object'),\n \n /** Override description */\n description: z.string().optional().describe('Override description for the extended object'),\n \n /** Additional validation rules to add */\n validations: z.array(ValidationRuleSchema).optional().describe('Additional validation rules to merge into the target object'),\n \n /** Additional indexes to add */\n indexes: z.array(IndexSchema).optional().describe('Additional indexes to merge into the target object'),\n \n /** Merge priority. Higher number applied later (wins on conflict). Default: 200 */\n priority: z.number().int().min(0).max(999).default(200).describe('Merge priority (higher = applied later)'),\n});\n\nexport type ObjectExtension = z.infer<typeof ObjectExtensionSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { FieldSchema } from '../data/field.zod';\nimport { ObjectSchema } from '../data/object.zod';\n\n// --- Atomic Operations ---\n\nexport const AddFieldOperation = z.object({\n type: z.literal('add_field'),\n objectName: z.string().describe('Target object name'),\n fieldName: z.string().describe('Name of the field to add'),\n field: FieldSchema.describe('Full field definition to add')\n}).describe('Add a new field to an existing object');\n\nexport const ModifyFieldOperation = z.object({\n type: z.literal('modify_field'),\n objectName: z.string().describe('Target object name'),\n fieldName: z.string().describe('Name of the field to modify'),\n changes: z.record(z.string(), z.unknown()).describe('Partial field definition updates')\n}).describe('Modify properties of an existing field');\n\nexport const RemoveFieldOperation = z.object({\n type: z.literal('remove_field'),\n objectName: z.string().describe('Target object name'),\n fieldName: z.string().describe('Name of the field to remove')\n}).describe('Remove a field from an existing object');\n\nexport const CreateObjectOperation = z.object({\n type: z.literal('create_object'),\n object: ObjectSchema.describe('Full object definition to create')\n}).describe('Create a new object');\n\nexport const RenameObjectOperation = z.object({\n type: z.literal('rename_object'),\n oldName: z.string().describe('Current object name'),\n newName: z.string().describe('New object name')\n}).describe('Rename an existing object');\n\nexport const DeleteObjectOperation = z.object({\n type: z.literal('delete_object'),\n objectName: z.string().describe('Name of the object to delete')\n}).describe('Delete an existing object');\n\nexport const ExecuteSqlOperation = z.object({\n type: z.literal('execute_sql'),\n sql: z.string().describe('Raw SQL statement to execute'),\n description: z.string().optional().describe('Human-readable description of the SQL')\n}).describe('Execute a raw SQL statement');\n\n// Union of all possible operations\nexport const MigrationOperationSchema = z.discriminatedUnion('type', [\n AddFieldOperation,\n ModifyFieldOperation,\n RemoveFieldOperation,\n CreateObjectOperation,\n RenameObjectOperation,\n DeleteObjectOperation,\n ExecuteSqlOperation\n]);\n\n// --- Migration & ChangeSet ---\n\nexport const MigrationDependencySchema = z.object({\n migrationId: z.string().describe('ID of the migration this depends on'),\n package: z.string().optional().describe('Package that owns the dependency migration')\n}).describe('Dependency reference to another migration that must run first');\n\nexport const ChangeSetSchema = z.object({\n id: z.string().uuid().describe('Unique identifier for this change set'),\n name: z.string().describe('Human readable name for the migration'),\n description: z.string().optional().describe('Detailed description of what this migration does'),\n author: z.string().optional().describe('Author who created this migration'),\n createdAt: z.string().datetime().optional().describe('ISO 8601 timestamp when the migration was created'),\n \n // Dependencies ensure migrations run in order\n dependencies: z.array(MigrationDependencySchema).optional().describe('Migrations that must run before this one'),\n \n // The actual atomic operations\n operations: z.array(MigrationOperationSchema).describe('Ordered list of atomic migration operations'),\n \n // Rollback operations (AI should generate these too)\n rollback: z.array(MigrationOperationSchema).optional().describe('Operations to reverse this migration')\n}).describe('A versioned set of atomic schema migration operations');\n\nexport type ChangeSet = z.infer<typeof ChangeSetSchema>;\nexport type MigrationOperation = z.infer<typeof MigrationOperationSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Better-Auth Configuration Protocol\n * \n * Defines the configuration required to initialize the Better-Auth kernel.\n * Used in server-side configuration injection.\n */\n\nexport const AuthProviderConfigSchema = z.object({\n id: z.string().describe('Provider ID (github, google)'),\n clientId: z.string().describe('OAuth Client ID'),\n clientSecret: z.string().describe('OAuth Client Secret'),\n scope: z.array(z.string()).optional().describe('Requested permissions'),\n});\n\nexport const AuthPluginConfigSchema = z.object({\n organization: z.boolean().default(false).describe('Enable Organization/Teams support'),\n twoFactor: z.boolean().default(false).describe('Enable 2FA'),\n passkeys: z.boolean().default(false).describe('Enable Passkey support'),\n magicLink: z.boolean().default(false).describe('Enable Magic Link login'),\n});\n\n/**\n * Mutual TLS (mTLS) Configuration Schema\n * \n * Enables client certificate authentication for zero-trust architectures.\n */\nexport const MutualTLSConfigSchema = z.object({\n /** Enable mutual TLS authentication */\n enabled: z.boolean()\n .default(false)\n .describe('Enable mutual TLS authentication'),\n\n /** Require client certificates for all connections */\n clientCertRequired: z.boolean()\n .default(false)\n .describe('Require client certificates for all connections'),\n\n /** PEM-encoded CA certificates or file paths for trust validation */\n trustedCAs: z.array(z.string())\n .describe('PEM-encoded CA certificates or file paths'),\n\n /** Certificate Revocation List URL */\n crlUrl: z.string()\n .optional()\n .describe('Certificate Revocation List (CRL) URL'),\n\n /** Online Certificate Status Protocol URL */\n ocspUrl: z.string()\n .optional()\n .describe('Online Certificate Status Protocol (OCSP) URL'),\n\n /** Certificate validation strictness level */\n certificateValidation: z.enum(['strict', 'relaxed', 'none'])\n .describe('Certificate validation strictness level'),\n\n /** Allowed Common Names on client certificates */\n allowedCNs: z.array(z.string())\n .optional()\n .describe('Allowed Common Names (CN) on client certificates'),\n\n /** Allowed Organizational Units on client certificates */\n allowedOUs: z.array(z.string())\n .optional()\n .describe('Allowed Organizational Units (OU) on client certificates'),\n\n /** Certificate pinning configuration */\n pinning: z.object({\n /** Enable certificate pinning */\n enabled: z.boolean().describe('Enable certificate pinning'),\n /** Array of pinned certificate hashes */\n pins: z.array(z.string()).describe('Pinned certificate hashes'),\n })\n .optional()\n .describe('Certificate pinning configuration'),\n});\n\nexport type MutualTLSConfig = z.infer<typeof MutualTLSConfigSchema>;\n\nexport const AuthConfigSchema = z.object({\n secret: z.string().optional().describe('Encryption secret'),\n baseUrl: z.string().optional().describe('Base URL for auth routes'),\n databaseUrl: z.string().optional().describe('Database connection string'),\n providers: z.array(AuthProviderConfigSchema).optional(),\n plugins: AuthPluginConfigSchema.optional(),\n session: z.object({\n expiresIn: z.number().default(60 * 60 * 24 * 7).describe('Session duration in seconds'),\n updateAge: z.number().default(60 * 60 * 24).describe('Session update frequency'),\n }).optional(),\n mutualTls: MutualTLSConfigSchema.optional().describe('Mutual TLS (mTLS) configuration'),\n}).catchall(z.unknown());\n\nexport type AuthProviderConfig = z.infer<typeof AuthProviderConfigSchema>;\nexport type AuthPluginConfig = z.infer<typeof AuthPluginConfigSchema>;\nexport type AuthConfig = z.infer<typeof AuthConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Compliance protocol for GDPR, CCPA, HIPAA, SOX, PCI-DSS\n */\nexport const GDPRConfigSchema = z.object({\n enabled: z.boolean().describe('Enable GDPR compliance controls'),\n dataSubjectRights: z.object({\n rightToAccess: z.boolean().default(true).describe('Allow data subjects to access their data'),\n rightToRectification: z.boolean().default(true).describe('Allow data subjects to correct their data'),\n rightToErasure: z.boolean().default(true).describe('Allow data subjects to request deletion'),\n rightToRestriction: z.boolean().default(true).describe('Allow data subjects to restrict processing'),\n rightToPortability: z.boolean().default(true).describe('Allow data subjects to export their data'),\n rightToObjection: z.boolean().default(true).describe('Allow data subjects to object to processing'),\n }).describe('Data subject rights configuration per GDPR Articles 15-21'),\n legalBasis: z.enum([\n 'consent',\n 'contract',\n 'legal-obligation',\n 'vital-interests',\n 'public-task',\n 'legitimate-interests',\n ]).describe('Legal basis for data processing under GDPR Article 6'),\n consentTracking: z.boolean().default(true).describe('Track and record user consent'),\n dataRetentionDays: z.number().optional().describe('Maximum data retention period in days'),\n dataProcessingAgreement: z.string().optional().describe('URL or reference to the data processing agreement'),\n}).describe('GDPR (General Data Protection Regulation) compliance configuration');\n\nexport type GDPRConfig = z.infer<typeof GDPRConfigSchema>;\nexport type GDPRConfigInput = z.input<typeof GDPRConfigSchema>;\n\nexport const HIPAAConfigSchema = z.object({\n enabled: z.boolean().describe('Enable HIPAA compliance controls'),\n phi: z.object({\n encryption: z.boolean().default(true).describe('Encrypt Protected Health Information at rest'),\n accessControl: z.boolean().default(true).describe('Enforce role-based access to PHI'),\n auditTrail: z.boolean().default(true).describe('Log all PHI access events'),\n backupAndRecovery: z.boolean().default(true).describe('Enable PHI backup and disaster recovery'),\n }).describe('Protected Health Information safeguards'),\n businessAssociateAgreement: z.boolean().default(false).describe('BAA is in place with third-party processors'),\n}).describe('HIPAA (Health Insurance Portability and Accountability Act) compliance configuration');\n\nexport type HIPAAConfig = z.infer<typeof HIPAAConfigSchema>;\nexport type HIPAAConfigInput = z.input<typeof HIPAAConfigSchema>;\n\nexport const PCIDSSConfigSchema = z.object({\n enabled: z.boolean().describe('Enable PCI-DSS compliance controls'),\n level: z.enum(['1', '2', '3', '4']).describe('PCI-DSS compliance level (1 = highest)'),\n cardDataFields: z.array(z.string()).describe('Field names containing cardholder data'),\n tokenization: z.boolean().default(true).describe('Replace card data with secure tokens'),\n encryptionInTransit: z.boolean().default(true).describe('Encrypt cardholder data during transmission'),\n encryptionAtRest: z.boolean().default(true).describe('Encrypt stored cardholder data'),\n}).describe('PCI-DSS (Payment Card Industry Data Security Standard) compliance configuration');\n\nexport type PCIDSSConfig = z.infer<typeof PCIDSSConfigSchema>;\nexport type PCIDSSConfigInput = z.input<typeof PCIDSSConfigSchema>;\n\nexport const AuditLogConfigSchema = z.object({\n enabled: z.boolean().default(true).describe('Enable audit logging'),\n retentionDays: z.number().default(365).describe('Number of days to retain audit logs'),\n immutable: z.boolean().default(true).describe('Prevent modification or deletion of audit logs'),\n signLogs: z.boolean().default(false).describe('Cryptographically sign log entries for tamper detection'),\n events: z.array(z.enum([\n 'create',\n 'read',\n 'update',\n 'delete',\n 'export',\n 'permission-change',\n 'login',\n 'logout',\n 'failed-login',\n ])).describe('Event types to capture in the audit log'),\n}).describe('Audit log configuration for compliance and security monitoring');\n\nexport type AuditLogConfig = z.infer<typeof AuditLogConfigSchema>;\nexport type AuditLogConfigInput = z.input<typeof AuditLogConfigSchema>;\n\nexport const ComplianceConfigSchema = z.object({\n gdpr: GDPRConfigSchema.optional().describe('GDPR compliance settings'),\n hipaa: HIPAAConfigSchema.optional().describe('HIPAA compliance settings'),\n pciDss: PCIDSSConfigSchema.optional().describe('PCI-DSS compliance settings'),\n auditLog: AuditLogConfigSchema.describe('Audit log configuration'),\n}).describe('Unified compliance configuration spanning GDPR, HIPAA, and PCI-DSS');\n\nexport type ComplianceConfig = z.infer<typeof ComplianceConfigSchema>;\nexport type ComplianceConfigInput = z.input<typeof ComplianceConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Unified Security Context Protocol\n *\n * Provides a central governance layer that correlates and unifies\n * the four independent security subsystems:\n * - **Audit** (audit.zod.ts): Event logging and suspicious activity detection\n * - **Encryption** (encryption.zod.ts): Field-level encryption and key management\n * - **Compliance** (compliance.zod.ts): Regulatory framework enforcement (GDPR/HIPAA/SOX/PCI-DSS)\n * - **Masking** (masking.zod.ts): PII data masking and tokenization\n *\n * This schema enforces cross-cutting security policies, ensuring compliance\n * frameworks drive encryption requirements, masking rules respect role-based\n * audit visibility, and all security operations are correlated in a single\n * governance context.\n *\n * @see https://www.iso.org/standard/27001\n * @category Security\n */\n\n/**\n * Compliance-driven audit requirement.\n * Maps specific compliance frameworks to the audit event types that MUST be captured.\n */\nexport const ComplianceAuditRequirementSchema = z.object({\n framework: z.enum(['gdpr', 'hipaa', 'sox', 'pci_dss', 'ccpa', 'iso27001'])\n .describe('Compliance framework identifier'),\n requiredEvents: z.array(z.string())\n .describe('Audit event types required by this framework (e.g., \"data.delete\", \"auth.login\")'),\n retentionDays: z.number().min(1)\n .describe('Minimum audit log retention period required by this framework (in days)'),\n alertOnMissing: z.boolean().default(true)\n .describe('Raise alert if a required audit event is not being captured'),\n}).describe('Compliance framework audit event requirements');\n\nexport type ComplianceAuditRequirement = z.infer<typeof ComplianceAuditRequirementSchema>;\n\n/**\n * Compliance-driven encryption requirement.\n * Maps compliance frameworks to encryption mandates for specific data classifications.\n */\nexport const ComplianceEncryptionRequirementSchema = z.object({\n framework: z.enum(['gdpr', 'hipaa', 'sox', 'pci_dss', 'ccpa', 'iso27001'])\n .describe('Compliance framework identifier'),\n dataClassifications: z.array(z.enum([\n 'pii', 'phi', 'pci', 'financial', 'confidential', 'internal', 'public',\n ])).describe('Data classifications that must be encrypted under this framework'),\n minimumAlgorithm: z.enum(['aes-256-gcm', 'aes-256-cbc', 'chacha20-poly1305']).default('aes-256-gcm')\n .describe('Minimum encryption algorithm strength required'),\n keyRotationMaxDays: z.number().min(1).default(90)\n .describe('Maximum key rotation interval required (in days)'),\n}).describe('Compliance framework encryption requirements');\n\nexport type ComplianceEncryptionRequirement = z.infer<typeof ComplianceEncryptionRequirementSchema>;\n\n/**\n * Masking visibility rule.\n * Controls which roles can view unmasked data with audit trail enforcement.\n */\nexport const MaskingVisibilityRuleSchema = z.object({\n dataClassification: z.enum([\n 'pii', 'phi', 'pci', 'financial', 'confidential', 'internal', 'public',\n ]).describe('Data classification this rule applies to'),\n defaultMasked: z.boolean().default(true)\n .describe('Whether data is masked by default'),\n unmaskRoles: z.array(z.string()).optional()\n .describe('Roles allowed to view unmasked data'),\n auditUnmask: z.boolean().default(true)\n .describe('Log an audit event when data is unmasked'),\n requireApproval: z.boolean().default(false)\n .describe('Require explicit approval before unmasking'),\n approvalRoles: z.array(z.string()).optional()\n .describe('Roles that can approve unmasking requests'),\n}).describe('Masking visibility and audit rule per data classification');\n\nexport type MaskingVisibilityRule = z.infer<typeof MaskingVisibilityRuleSchema>;\n\n/**\n * Security Event Correlation Schema.\n * Defines how security events from different subsystems are correlated.\n */\nexport const SecurityEventCorrelationSchema = z.object({\n enabled: z.boolean().default(true)\n .describe('Enable cross-subsystem security event correlation'),\n correlationId: z.boolean().default(true)\n .describe('Inject a shared correlation ID into audit, encryption, and masking events'),\n linkAuthToAudit: z.boolean().default(true)\n .describe('Link authentication events to subsequent data operation audit trails'),\n linkEncryptionToAudit: z.boolean().default(true)\n .describe('Log encryption/decryption operations in the audit trail'),\n linkMaskingToAudit: z.boolean().default(true)\n .describe('Log masking/unmasking operations in the audit trail'),\n}).describe('Cross-subsystem security event correlation configuration');\n\nexport type SecurityEventCorrelation = z.infer<typeof SecurityEventCorrelationSchema>;\n\n/**\n * Data Classification Policy Schema.\n * Assigns classification labels to fields/objects for unified security enforcement.\n */\nexport const DataClassificationPolicySchema = z.object({\n classification: z.enum([\n 'pii', 'phi', 'pci', 'financial', 'confidential', 'internal', 'public',\n ]).describe('Data classification level'),\n requireEncryption: z.boolean().default(false)\n .describe('Encryption required for this classification'),\n requireMasking: z.boolean().default(false)\n .describe('Masking required for this classification'),\n requireAudit: z.boolean().default(false)\n .describe('Audit trail required for access to this classification'),\n retentionDays: z.number().optional()\n .describe('Data retention limit in days (for compliance)'),\n}).describe('Security policy for a specific data classification level');\n\nexport type DataClassificationPolicy = z.infer<typeof DataClassificationPolicySchema>;\n\n/**\n * Security Context Configuration Schema\n *\n * Top-level unified security governance context that ties together\n * audit, encryption, compliance, and masking subsystems.\n */\nexport const SecurityContextConfigSchema = z.object({\n enabled: z.boolean().default(true)\n .describe('Enable unified security context governance'),\n\n complianceAuditRequirements: z.array(ComplianceAuditRequirementSchema).optional()\n .describe('Compliance-driven audit event requirements'),\n\n complianceEncryptionRequirements: z.array(ComplianceEncryptionRequirementSchema).optional()\n .describe('Compliance-driven encryption requirements by data classification'),\n\n maskingVisibility: z.array(MaskingVisibilityRuleSchema).optional()\n .describe('Masking visibility rules per data classification'),\n\n dataClassifications: z.array(DataClassificationPolicySchema).optional()\n .describe('Data classification policies for unified security enforcement'),\n\n eventCorrelation: SecurityEventCorrelationSchema.optional()\n .describe('Cross-subsystem security event correlation settings'),\n\n enforceOnWrite: z.boolean().default(true)\n .describe('Enforce encryption and masking requirements on data write operations'),\n\n enforceOnRead: z.boolean().default(true)\n .describe('Enforce masking and audit requirements on data read operations'),\n\n failOpen: z.boolean().default(false)\n .describe('When false (default), deny access if security context cannot be evaluated'),\n}).describe('Unified security context governance configuration');\n\nexport type SecurityContextConfig = z.infer<typeof SecurityContextConfigSchema>;\nexport type SecurityContextConfigInput = z.input<typeof SecurityContextConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Cron Schedule Schema\n * Schedule jobs using cron expressions\n */\nexport const CronScheduleSchema = z.object({\n type: z.literal('cron'),\n expression: z.string().describe('Cron expression (e.g., \"0 0 * * *\" for daily at midnight)'),\n timezone: z.string().optional().default('UTC').describe('Timezone for cron execution (e.g., \"America/New_York\")'),\n});\n\n/**\n * Interval Schedule Schema\n * Schedule jobs at fixed intervals\n */\nexport const IntervalScheduleSchema = z.object({\n type: z.literal('interval'),\n intervalMs: z.number().int().positive().describe('Interval in milliseconds'),\n});\n\n/**\n * Once Schedule Schema\n * Schedule a job to run once at a specific time\n */\nexport const OnceScheduleSchema = z.object({\n type: z.literal('once'),\n at: z.string().datetime().describe('ISO 8601 datetime when to execute'),\n});\n\n/**\n * Schedule Schema\n * Discriminated union of all schedule types\n */\nexport const ScheduleSchema = z.discriminatedUnion('type', [\n CronScheduleSchema,\n IntervalScheduleSchema,\n OnceScheduleSchema,\n]);\n\nexport type Schedule = z.infer<typeof ScheduleSchema>;\nexport type CronSchedule = z.infer<typeof CronScheduleSchema>;\nexport type IntervalSchedule = z.infer<typeof IntervalScheduleSchema>;\nexport type OnceSchedule = z.infer<typeof OnceScheduleSchema>;\nexport type JobSchedule = Schedule; // Alias for backwards compatibility\n\n/**\n * Retry Policy Schema\n * Configuration for job retry behavior with exponential backoff\n */\nexport const RetryPolicySchema = z.object({\n maxRetries: z.number().int().min(0).default(3).describe('Maximum number of retry attempts'),\n backoffMs: z.number().int().positive().default(1000).describe('Initial backoff delay in milliseconds'),\n backoffMultiplier: z.number().positive().default(2).describe('Multiplier for exponential backoff'),\n});\n\nexport type RetryPolicy = z.infer<typeof RetryPolicySchema>;\n\n/**\n * Job Schema\n * Defines a scheduled job that executes background logic.\n * \n * @example Metadata Sync Job (Cron)\n * {\n * id: \"job_sync_meta\",\n * name: \"sync_metadata_nightly\",\n * schedule: {\n * type: \"cron\",\n * expression: \"0 0 * * *\", // Midnight\n * timezone: \"UTC\"\n * },\n * handler: \"services/syncStatus.ts:syncAll\", \n * retryPolicy: {\n * maxRetries: 3,\n * backoffMs: 5000\n * }\n * }\n */\nexport const JobSchema = z.object({\n id: z.string().describe('Unique job identifier'),\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Job name (snake_case)'),\n schedule: ScheduleSchema.describe('Job schedule configuration'),\n handler: z.string().describe('Handler path (e.g. \"path/to/file:functionName\") or script ID'),\n retryPolicy: RetryPolicySchema.optional().describe('Retry policy configuration'),\n timeout: z.number().int().positive().optional().describe('Timeout in milliseconds'),\n enabled: z.boolean().default(true).describe('Whether the job is enabled'),\n});\n\nexport type Job = z.infer<typeof JobSchema>;\n\n/**\n * Job Execution Status Enum\n * Status of job execution\n */\nexport const JobExecutionStatus = z.enum([\n 'running',\n 'success',\n 'failed',\n 'timeout',\n]);\n\nexport type JobExecutionStatus = z.infer<typeof JobExecutionStatus>;\n\n/**\n * Job Execution Schema\n * Logs for job execution\n */\nexport const JobExecutionSchema = z.object({\n jobId: z.string().describe('Job identifier'),\n startedAt: z.string().datetime().describe('ISO 8601 datetime when execution started'),\n completedAt: z.string().datetime().optional().describe('ISO 8601 datetime when execution completed'),\n status: JobExecutionStatus.describe('Execution status'),\n error: z.string().optional().describe('Error message if failed'),\n duration: z.number().int().optional().describe('Execution duration in milliseconds'),\n});\n\nexport type JobExecution = z.infer<typeof JobExecutionSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Worker System Protocol\n * \n * Background task processing system with queues, priorities, and retry logic.\n * Provides a robust foundation for async task execution similar to:\n * - Sidekiq (Ruby)\n * - Celery (Python)\n * - Bull/BullMQ (Node.js)\n * - AWS SQS/Lambda\n * \n * Features:\n * - Task queues with priorities\n * - Task scheduling and retry logic\n * - Batch processing\n * - Dead letter queues\n * - Task monitoring and logging\n * \n * @example Basic task\n * ```typescript\n * const task: Task = {\n * id: 'task-123',\n * type: 'send_email',\n * payload: { to: 'user@example.com', subject: 'Welcome' },\n * queue: 'notifications',\n * priority: 5\n * };\n * ```\n */\n\n// ==========================================\n// Task Priority\n// ==========================================\n\n/**\n * Task Priority Enum\n * Lower numbers = higher priority\n */\nexport const TaskPriority = z.enum([\n 'critical', // 0 - Must execute immediately\n 'high', // 1 - Execute soon\n 'normal', // 2 - Default priority\n 'low', // 3 - Execute when resources available\n 'background', // 4 - Execute during low-traffic periods\n]);\n\nexport type TaskPriority = z.infer<typeof TaskPriority>;\n\n/**\n * Task Priority Mapping\n * Maps priority names to numeric values for sorting\n */\nexport const TASK_PRIORITY_VALUES: Record<TaskPriority, number> = {\n critical: 0,\n high: 1,\n normal: 2,\n low: 3,\n background: 4,\n};\n\n// ==========================================\n// Task Status\n// ==========================================\n\n/**\n * Task Status Enum\n * Lifecycle states of a task\n */\nexport const TaskStatus = z.enum([\n 'pending', // Waiting to be processed\n 'queued', // In queue, ready for worker\n 'processing', // Currently being executed\n 'completed', // Successfully completed\n 'failed', // Failed (may retry)\n 'cancelled', // Manually cancelled\n 'timeout', // Exceeded execution timeout\n 'dead', // Moved to dead letter queue\n]);\n\nexport type TaskStatus = z.infer<typeof TaskStatus>;\n\n// ==========================================\n// Task Schema\n// ==========================================\n\n/**\n * Task Retry Policy Schema\n * Configuration for task retry behavior\n */\nexport const TaskRetryPolicySchema = z.object({\n maxRetries: z.number().int().min(0).default(3).describe('Maximum retry attempts'),\n backoffStrategy: z.enum(['fixed', 'linear', 'exponential']).default('exponential')\n .describe('Backoff strategy between retries'),\n initialDelayMs: z.number().int().positive().default(1000).describe('Initial retry delay in milliseconds'),\n maxDelayMs: z.number().int().positive().default(60000).describe('Maximum retry delay in milliseconds'),\n backoffMultiplier: z.number().positive().default(2).describe('Multiplier for exponential backoff'),\n});\n\nexport type TaskRetryPolicy = z.infer<typeof TaskRetryPolicySchema>;\nexport type TaskRetryPolicyInput = z.input<typeof TaskRetryPolicySchema>;\n\n/**\n * Task Schema\n * Represents a background task to be executed\n * \n * @example\n * {\n * \"id\": \"task-abc123\",\n * \"type\": \"send_email\",\n * \"payload\": { \"to\": \"user@example.com\", \"template\": \"welcome\" },\n * \"queue\": \"notifications\",\n * \"priority\": \"high\",\n * \"retryPolicy\": {\n * \"maxRetries\": 3,\n * \"backoffStrategy\": \"exponential\"\n * }\n * }\n */\nexport const TaskSchema = z.object({\n /**\n * Unique task identifier\n */\n id: z.string().describe('Unique task identifier'),\n \n /**\n * Task type (handler identifier)\n */\n type: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Task type (snake_case)'),\n \n /**\n * Task payload data\n */\n payload: z.unknown().describe('Task payload data'),\n \n /**\n * Queue name\n */\n queue: z.string().default('default').describe('Queue name'),\n \n /**\n * Task priority\n */\n priority: TaskPriority.default('normal').describe('Task priority level'),\n \n /**\n * Retry policy\n */\n retryPolicy: TaskRetryPolicySchema.optional().describe('Retry policy configuration'),\n \n /**\n * Execution timeout in milliseconds\n */\n timeoutMs: z.number().int().positive().optional().describe('Task timeout in milliseconds'),\n \n /**\n * Scheduled execution time\n */\n scheduledAt: z.string().datetime().optional().describe('ISO 8601 datetime to execute task'),\n \n /**\n * Maximum execution attempts\n */\n attempts: z.number().int().min(0).default(0).describe('Number of execution attempts'),\n \n /**\n * Task status\n */\n status: TaskStatus.default('pending').describe('Current task status'),\n \n /**\n * Task metadata\n */\n metadata: z.object({\n createdAt: z.string().datetime().optional().describe('When task was created'),\n updatedAt: z.string().datetime().optional().describe('Last update time'),\n createdBy: z.string().optional().describe('User who created task'),\n tags: z.array(z.string()).optional().describe('Task tags for filtering'),\n }).optional().describe('Task metadata'),\n});\n\nexport type Task = z.infer<typeof TaskSchema>;\nexport type TaskInput = z.input<typeof TaskSchema>;\n\n// ==========================================\n// Task Execution Result\n// ==========================================\n\n/**\n * Task Execution Result Schema\n * Result of a task execution attempt\n */\nexport const TaskExecutionResultSchema = z.object({\n /**\n * Task identifier\n */\n taskId: z.string().describe('Task identifier'),\n \n /**\n * Execution status\n */\n status: TaskStatus.describe('Execution status'),\n \n /**\n * Execution result data\n */\n result: z.unknown().optional().describe('Execution result data'),\n \n /**\n * Error information\n */\n error: z.object({\n message: z.string().describe('Error message'),\n stack: z.string().optional().describe('Error stack trace'),\n code: z.string().optional().describe('Error code'),\n }).optional().describe('Error details if failed'),\n \n /**\n * Execution duration\n */\n durationMs: z.number().int().optional().describe('Execution duration in milliseconds'),\n \n /**\n * Execution timestamps\n */\n startedAt: z.string().datetime().describe('When execution started'),\n completedAt: z.string().datetime().optional().describe('When execution completed'),\n \n /**\n * Retry information\n */\n attempt: z.number().int().min(1).describe('Attempt number (1-indexed)'),\n willRetry: z.boolean().describe('Whether task will be retried'),\n});\n\nexport type TaskExecutionResult = z.infer<typeof TaskExecutionResultSchema>;\n\n// ==========================================\n// Queue Configuration\n// ==========================================\n\n/**\n * Queue Configuration Schema\n * Configuration for a task queue\n * \n * @example\n * {\n * \"name\": \"notifications\",\n * \"concurrency\": 10,\n * \"rateLimit\": {\n * \"max\": 100,\n * \"duration\": 60000\n * }\n * }\n */\nexport const QueueConfigSchema = z.object({\n /**\n * Queue name\n */\n name: z.string().describe('Queue name (snake_case)'),\n \n /**\n * Maximum concurrent workers\n */\n concurrency: z.number().int().min(1).default(5).describe('Max concurrent task executions'),\n \n /**\n * Rate limiting\n */\n rateLimit: z.object({\n max: z.number().int().positive().describe('Maximum tasks per duration'),\n duration: z.number().int().positive().describe('Duration in milliseconds'),\n }).optional().describe('Rate limit configuration'),\n \n /**\n * Default retry policy\n */\n defaultRetryPolicy: TaskRetryPolicySchema.optional().describe('Default retry policy for tasks'),\n \n /**\n * Dead letter queue\n */\n deadLetterQueue: z.string().optional().describe('Dead letter queue name'),\n \n /**\n * Queue priority\n */\n priority: z.number().int().min(0).default(0).describe('Queue priority (lower = higher priority)'),\n \n /**\n * Auto-scaling configuration\n */\n autoScale: z.object({\n enabled: z.boolean().default(false).describe('Enable auto-scaling'),\n minWorkers: z.number().int().min(1).default(1).describe('Minimum workers'),\n maxWorkers: z.number().int().min(1).default(10).describe('Maximum workers'),\n scaleUpThreshold: z.number().int().positive().default(100).describe('Queue size to scale up'),\n scaleDownThreshold: z.number().int().min(0).default(10).describe('Queue size to scale down'),\n }).optional().describe('Auto-scaling configuration'),\n});\n\nexport type QueueConfig = z.infer<typeof QueueConfigSchema>;\nexport type QueueConfigInput = z.input<typeof QueueConfigSchema>;\n\n// ==========================================\n// Batch Processing\n// ==========================================\n\n/**\n * Batch Task Schema\n * Configuration for batch processing multiple items\n * \n * @example\n * {\n * \"id\": \"batch-import-123\",\n * \"type\": \"import_records\",\n * \"items\": [{ \"name\": \"Item 1\" }, { \"name\": \"Item 2\" }],\n * \"batchSize\": 100,\n * \"queue\": \"batch_processing\"\n * }\n */\nexport const BatchTaskSchema = z.object({\n /**\n * Batch job identifier\n */\n id: z.string().describe('Unique batch job identifier'),\n \n /**\n * Task type for processing each item\n */\n type: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Task type (snake_case)'),\n \n /**\n * Items to process\n */\n items: z.array(z.unknown()).describe('Array of items to process'),\n \n /**\n * Batch size (items per task)\n */\n batchSize: z.number().int().min(1).default(100).describe('Number of items per batch'),\n \n /**\n * Queue name\n */\n queue: z.string().default('batch').describe('Queue for batch tasks'),\n \n /**\n * Priority\n */\n priority: TaskPriority.default('normal').describe('Batch task priority'),\n \n /**\n * Parallel processing\n */\n parallel: z.boolean().default(true).describe('Process batches in parallel'),\n \n /**\n * Stop on error\n */\n stopOnError: z.boolean().default(false).describe('Stop batch if any item fails'),\n \n /**\n * Progress callback\n * \n * Called after each batch completes to report progress.\n * Invoked asynchronously and should not throw errors.\n * If the callback throws, the error is logged but batch processing continues.\n * \n * @param progress - Object containing processed count, total count, and failed count\n */\n onProgress: z.function()\n .input(z.tuple([z.object({\n processed: z.number(),\n total: z.number(),\n failed: z.number(),\n })]))\n .output(z.void())\n .optional()\n .describe('Progress callback function (called after each batch)'),\n});\n\nexport type BatchTask = z.infer<typeof BatchTaskSchema>;\nexport type BatchTaskInput = z.input<typeof BatchTaskSchema>;\n\n/**\n * Batch Progress Schema\n * Tracks progress of a batch job\n */\nexport const BatchProgressSchema = z.object({\n /**\n * Batch job identifier\n */\n batchId: z.string().describe('Batch job identifier'),\n \n /**\n * Total items\n */\n total: z.number().int().min(0).describe('Total number of items'),\n \n /**\n * Processed items\n */\n processed: z.number().int().min(0).default(0).describe('Items processed'),\n \n /**\n * Successful items\n */\n succeeded: z.number().int().min(0).default(0).describe('Items succeeded'),\n \n /**\n * Failed items\n */\n failed: z.number().int().min(0).default(0).describe('Items failed'),\n \n /**\n * Progress percentage\n */\n percentage: z.number().min(0).max(100).describe('Progress percentage'),\n \n /**\n * Status\n */\n status: z.enum(['pending', 'running', 'completed', 'failed', 'cancelled']).describe('Batch status'),\n \n /**\n * Timestamps\n */\n startedAt: z.string().datetime().optional().describe('When batch started'),\n completedAt: z.string().datetime().optional().describe('When batch completed'),\n});\n\nexport type BatchProgress = z.infer<typeof BatchProgressSchema>;\nexport type BatchProgressInput = z.input<typeof BatchProgressSchema>;\n\n// ==========================================\n// Worker Configuration\n// ==========================================\n\n/**\n * Worker Configuration Schema\n * Configuration for a worker instance\n */\nexport const WorkerConfigSchema = z.object({\n /**\n * Worker name\n */\n name: z.string().describe('Worker name'),\n \n /**\n * Queues to process\n */\n queues: z.array(z.string()).min(1).describe('Queue names to process'),\n \n /**\n * Queue configurations\n */\n queueConfigs: z.array(QueueConfigSchema).optional().describe('Queue configurations'),\n \n /**\n * Polling interval\n */\n pollIntervalMs: z.number().int().positive().default(1000).describe('Queue polling interval in milliseconds'),\n \n /**\n * Visibility timeout\n */\n visibilityTimeoutMs: z.number().int().positive().default(30000)\n .describe('How long a task is invisible after being claimed'),\n \n /**\n * Task timeout\n */\n defaultTimeoutMs: z.number().int().positive().default(300000).describe('Default task timeout in milliseconds'),\n \n /**\n * Graceful shutdown timeout\n */\n shutdownTimeoutMs: z.number().int().positive().default(30000)\n .describe('Graceful shutdown timeout in milliseconds'),\n \n /**\n * Task handlers\n */\n handlers: z.record(z.string(), z.function()).optional().describe('Task type handlers'),\n});\n\nexport type WorkerConfig = z.infer<typeof WorkerConfigSchema>;\nexport type WorkerConfigInput = z.input<typeof WorkerConfigSchema>;\n\n// ==========================================\n// Worker Stats\n// ==========================================\n\n/**\n * Worker Stats Schema\n * Runtime statistics for a worker\n */\nexport const WorkerStatsSchema = z.object({\n /**\n * Worker name\n */\n workerName: z.string().describe('Worker name'),\n \n /**\n * Total tasks processed\n */\n totalProcessed: z.number().int().min(0).describe('Total tasks processed'),\n \n /**\n * Successful tasks\n */\n succeeded: z.number().int().min(0).describe('Successful tasks'),\n \n /**\n * Failed tasks\n */\n failed: z.number().int().min(0).describe('Failed tasks'),\n \n /**\n * Active tasks\n */\n active: z.number().int().min(0).describe('Currently active tasks'),\n \n /**\n * Average execution time\n */\n avgExecutionMs: z.number().min(0).optional().describe('Average execution time in milliseconds'),\n \n /**\n * Uptime\n */\n uptimeMs: z.number().int().min(0).describe('Worker uptime in milliseconds'),\n \n /**\n * Queue stats\n */\n queues: z.record(z.string(), z.object({\n pending: z.number().int().min(0).describe('Pending tasks'),\n active: z.number().int().min(0).describe('Active tasks'),\n completed: z.number().int().min(0).describe('Completed tasks'),\n failed: z.number().int().min(0).describe('Failed tasks'),\n })).optional().describe('Per-queue statistics'),\n});\n\nexport type WorkerStats = z.infer<typeof WorkerStatsSchema>;\n\n// ==========================================\n// Helper Functions\n// ==========================================\n\n/**\n * Helper to create a task\n */\nexport const Task = Object.assign(TaskSchema, {\n create: <T extends z.input<typeof TaskSchema>>(task: T) => task,\n});\n\n/**\n * Helper to create a queue config\n */\nexport const QueueConfig = Object.assign(QueueConfigSchema, {\n create: <T extends z.input<typeof QueueConfigSchema>>(config: T) => config,\n});\n\n/**\n * Helper to create a worker config\n */\nexport const WorkerConfig = Object.assign(WorkerConfigSchema, {\n create: <T extends z.input<typeof WorkerConfigSchema>>(config: T) => config,\n});\n\n/**\n * Helper to create a batch task\n */\nexport const BatchTask = Object.assign(BatchTaskSchema, {\n create: <T extends z.input<typeof BatchTaskSchema>>(batch: T) => batch,\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Email Template Schema\n * \n * Defines the structure and content of email notifications.\n * Supports variables for personalization and file attachments.\n * \n * @example\n * ```json\n * {\n * \"id\": \"welcome-email\",\n * \"subject\": \"Welcome to {{company_name}}\",\n * \"body\": \"<h1>Welcome {{user_name}}!</h1>\",\n * \"bodyType\": \"html\",\n * \"variables\": [\"company_name\", \"user_name\"],\n * \"attachments\": [\n * {\n * \"name\": \"guide.pdf\",\n * \"url\": \"https://example.com/guide.pdf\"\n * }\n * ]\n * }\n * ```\n */\nexport const EmailTemplateSchema = z.object({\n /**\n * Unique identifier for the email template\n */\n id: z.string().describe('Template identifier'),\n\n /**\n * Email subject line (supports variable interpolation)\n */\n subject: z.string().describe('Email subject'),\n\n /**\n * Email body content\n */\n body: z.string().describe('Email body content'),\n\n /**\n * Content type of the email body\n * @default 'html'\n */\n bodyType: z.enum(['text', 'html', 'markdown']).optional().default('html').describe('Body content type'),\n\n /**\n * List of template variables for dynamic content\n */\n variables: z.array(z.string()).optional().describe('Template variables'),\n\n /**\n * File attachments to include with the email\n */\n attachments: z.array(z.object({\n name: z.string().describe('Attachment filename'),\n url: z.string().url().describe('Attachment URL'),\n })).optional().describe('Email attachments'),\n});\n\n/**\n * SMS Template Schema\n * \n * Defines the structure of SMS text message notifications.\n * Includes character limits and variable support.\n * \n * @example\n * ```json\n * {\n * \"id\": \"verification-sms\",\n * \"message\": \"Your code is {{code}}\",\n * \"maxLength\": 160,\n * \"variables\": [\"code\"]\n * }\n * ```\n */\nexport const SMSTemplateSchema = z.object({\n /**\n * Unique identifier for the SMS template\n */\n id: z.string().describe('Template identifier'),\n\n /**\n * SMS message content (supports variable interpolation)\n */\n message: z.string().describe('SMS message content'),\n\n /**\n * Maximum character length for the SMS\n * @default 160\n */\n maxLength: z.number().optional().default(160).describe('Maximum message length'),\n\n /**\n * List of template variables for dynamic content\n */\n variables: z.array(z.string()).optional().describe('Template variables'),\n});\n\n/**\n * Push Notification Schema\n * \n * Defines mobile and web push notification structure.\n * Supports rich notifications with actions and badges.\n * \n * @example\n * ```json\n * {\n * \"title\": \"New Message\",\n * \"body\": \"You have a new message from John\",\n * \"icon\": \"https://example.com/icon.png\",\n * \"badge\": 5,\n * \"data\": {\"messageId\": \"msg_123\"},\n * \"actions\": [\n * {\"action\": \"view\", \"title\": \"View\"},\n * {\"action\": \"dismiss\", \"title\": \"Dismiss\"}\n * ]\n * }\n * ```\n */\nexport const PushNotificationSchema = z.object({\n /**\n * Notification title\n */\n title: z.string().describe('Notification title'),\n\n /**\n * Notification body text\n */\n body: z.string().describe('Notification body'),\n\n /**\n * Icon URL to display with notification\n */\n icon: z.string().url().optional().describe('Notification icon URL'),\n\n /**\n * Badge count to display on app icon\n */\n badge: z.number().optional().describe('Badge count'),\n\n /**\n * Custom data payload\n */\n data: z.record(z.string(), z.unknown()).optional().describe('Custom data'),\n\n /**\n * Action buttons for the notification\n */\n actions: z.array(z.object({\n action: z.string().describe('Action identifier'),\n title: z.string().describe('Action button title'),\n })).optional().describe('Notification actions'),\n});\n\n/**\n * In-App Notification Schema\n * \n * Defines in-application notification banners and toasts.\n * Includes severity levels and auto-dismiss settings.\n * \n * @example\n * ```json\n * {\n * \"title\": \"System Update\",\n * \"message\": \"New features are now available\",\n * \"type\": \"info\",\n * \"actionUrl\": \"/updates\",\n * \"dismissible\": true,\n * \"expiresAt\": 1704067200000\n * }\n * ```\n */\nexport const InAppNotificationSchema = z.object({\n /**\n * Notification title\n */\n title: z.string().describe('Notification title'),\n\n /**\n * Notification message content\n */\n message: z.string().describe('Notification message'),\n\n /**\n * Notification severity type\n */\n type: z.enum(['info', 'success', 'warning', 'error']).describe('Notification type'),\n\n /**\n * Optional URL to navigate to when clicked\n */\n actionUrl: z.string().optional().describe('Action URL'),\n\n /**\n * Whether the notification can be dismissed by the user\n * @default true\n */\n dismissible: z.boolean().optional().default(true).describe('User dismissible'),\n\n /**\n * Timestamp when notification expires (Unix milliseconds)\n */\n expiresAt: z.number().optional().describe('Expiration timestamp'),\n});\n\n/**\n * Notification Channel Enum\n * \n * Supported notification delivery channels.\n */\nexport const NotificationChannelSchema = z.enum([\n 'email',\n 'sms',\n 'push',\n 'in-app',\n 'slack',\n 'teams',\n 'webhook',\n]);\n\n/**\n * Notification Configuration Schema\n * \n * Unified notification management protocol supporting multiple channels.\n * Includes scheduling, retry policies, and delivery tracking.\n * \n * @example\n * ```json\n * {\n * \"id\": \"welcome-notification\",\n * \"name\": \"Welcome Email\",\n * \"channel\": \"email\",\n * \"template\": {\n * \"id\": \"tpl-001\",\n * \"subject\": \"Welcome!\",\n * \"body\": \"<h1>Welcome</h1>\",\n * \"bodyType\": \"html\"\n * },\n * \"recipients\": {\n * \"to\": [\"user@example.com\"],\n * \"cc\": [\"admin@example.com\"]\n * },\n * \"schedule\": {\n * \"type\": \"immediate\"\n * },\n * \"retryPolicy\": {\n * \"enabled\": true,\n * \"maxRetries\": 3,\n * \"backoffStrategy\": \"exponential\"\n * },\n * \"tracking\": {\n * \"trackOpens\": true,\n * \"trackClicks\": true,\n * \"trackDelivery\": true\n * }\n * }\n * ```\n */\nexport const NotificationConfigSchema = z.object({\n /**\n * Unique identifier for this notification configuration\n */\n id: z.string().describe('Notification ID'),\n\n /**\n * Human-readable name for this notification\n */\n name: z.string().describe('Notification name'),\n\n /**\n * Delivery channel for the notification\n */\n channel: NotificationChannelSchema.describe('Notification channel'),\n\n /**\n * Notification template based on channel type\n */\n template: z.union([\n EmailTemplateSchema,\n SMSTemplateSchema,\n PushNotificationSchema,\n InAppNotificationSchema,\n ]).describe('Notification template'),\n\n /**\n * Recipient configuration\n */\n recipients: z.object({\n /**\n * Primary recipients\n */\n to: z.array(z.string()).describe('Primary recipients'),\n\n /**\n * CC recipients (email only)\n */\n cc: z.array(z.string()).optional().describe('CC recipients'),\n\n /**\n * BCC recipients (email only)\n */\n bcc: z.array(z.string()).optional().describe('BCC recipients'),\n }).describe('Recipients'),\n\n /**\n * Scheduling configuration\n */\n schedule: z.object({\n /**\n * Scheduling type\n */\n type: z.enum(['immediate', 'delayed', 'scheduled']).describe('Schedule type'),\n\n /**\n * Delay in milliseconds (for delayed type)\n */\n delay: z.number().optional().describe('Delay in milliseconds'),\n\n /**\n * Scheduled send time (Unix timestamp in milliseconds)\n */\n scheduledAt: z.number().optional().describe('Scheduled timestamp'),\n }).optional().describe('Scheduling'),\n\n /**\n * Retry policy for failed deliveries\n */\n retryPolicy: z.object({\n /**\n * Enable automatic retries\n * @default true\n */\n enabled: z.boolean().optional().default(true).describe('Enable retries'),\n\n /**\n * Maximum number of retry attempts\n * @default 3\n */\n maxRetries: z.number().optional().default(3).describe('Max retry attempts'),\n\n /**\n * Backoff strategy for retries\n */\n backoffStrategy: z.enum(['exponential', 'linear', 'fixed']).describe('Backoff strategy'),\n }).optional().describe('Retry policy'),\n\n /**\n * Delivery tracking configuration\n */\n tracking: z.object({\n /**\n * Track when emails are opened\n * @default false\n */\n trackOpens: z.boolean().optional().default(false).describe('Track opens'),\n\n /**\n * Track when links are clicked\n * @default false\n */\n trackClicks: z.boolean().optional().default(false).describe('Track clicks'),\n\n /**\n * Track delivery status\n * @default true\n */\n trackDelivery: z.boolean().optional().default(true).describe('Track delivery'),\n }).optional().describe('Tracking configuration'),\n});\n\n// Type exports\nexport type NotificationConfig = z.infer<typeof NotificationConfigSchema>;\nexport type NotificationChannel = z.infer<typeof NotificationChannelSchema>;\nexport type EmailTemplate = z.infer<typeof EmailTemplateSchema>;\nexport type SMSTemplate = z.infer<typeof SMSTemplateSchema>;\nexport type PushNotification = z.infer<typeof PushNotificationSchema>;\nexport type InAppNotification = z.infer<typeof InAppNotificationSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n// ────────────────────────────────────────────────────────────────────────────\n// Locale\n// ────────────────────────────────────────────────────────────────────────────\n\nexport const LocaleSchema = z.string().describe('BCP-47 Language Tag (e.g. en-US, zh-CN)');\n\n// ────────────────────────────────────────────────────────────────────────────\n// Object-level Translation (per-object file)\n// ────────────────────────────────────────────────────────────────────────────\n\n/**\n * Field Translation Schema\n * Translation data for a single field.\n */\nexport const FieldTranslationSchema = z.object({\n label: z.string().optional().describe('Translated field label'),\n help: z.string().optional().describe('Translated help text'),\n options: z.record(z.string(), z.string()).optional().describe('Option value to translated label map'),\n}).describe('Translation data for a single field');\n\nexport type FieldTranslation = z.infer<typeof FieldTranslationSchema>;\n\n/**\n * Object Translation Data Schema\n *\n * Translation data for a **single object** in a **single locale**.\n * Use this schema to validate per-object translation files.\n *\n * File convention: `i18n/{locale}/{object_name}.json`\n *\n * @example\n * ```json\n * // i18n/en/account.json\n * {\n * \"label\": \"Account\",\n * \"pluralLabel\": \"Accounts\",\n * \"fields\": {\n * \"name\": { \"label\": \"Account Name\", \"help\": \"Legal name\" },\n * \"type\": { \"label\": \"Type\", \"options\": { \"customer\": \"Customer\" } }\n * }\n * }\n * ```\n */\nexport const ObjectTranslationDataSchema = z.object({\n /** Translated singular label for the object */\n label: z.string().describe('Translated singular label'),\n /** Translated plural label for the object */\n pluralLabel: z.string().optional().describe('Translated plural label'),\n /** Field-level translations keyed by field name (snake_case) */\n fields: z.record(z.string(), FieldTranslationSchema).optional().describe('Field-level translations'),\n}).describe('Translation data for a single object');\n\nexport type ObjectTranslationData = z.infer<typeof ObjectTranslationDataSchema>;\n\n// ────────────────────────────────────────────────────────────────────────────\n// Locale-level Translation Data (per-locale aggregate)\n// ────────────────────────────────────────────────────────────────────────────\n\n/**\n * Translation Data Schema\n * Supports i18n for labels, messages, and options within a single locale.\n * Example structure:\n * ```json\n * {\n * \"objects\": { \"account\": { \"label\": \"Account\" } },\n * \"apps\": { \"crm\": { \"label\": \"CRM\" } },\n * \"messages\": { \"common.save\": \"Save\" }\n * }\n * ```\n */\nexport const TranslationDataSchema = z.object({\n /** Object translations */\n objects: z.record(z.string(), ObjectTranslationDataSchema).optional().describe('Object translations keyed by object name'),\n \n /** App/Menu translations */\n apps: z.record(z.string(), z.object({\n label: z.string().describe('Translated app label'),\n description: z.string().optional().describe('Translated app description'),\n })).optional().describe('App translations keyed by app name'),\n\n /** UI Messages */\n messages: z.record(z.string(), z.string()).optional().describe('UI message translations keyed by message ID'),\n \n /** Validation Error Messages */\n validationMessages: z.record(z.string(), z.string()).optional().describe('Translatable validation error messages keyed by rule name (e.g., {\"discount_limit\": \"折扣不能超过40%\"})'),\n}).describe('Translation data for objects, apps, and UI messages');\n\nexport type TranslationData = z.infer<typeof TranslationDataSchema>;\n\n// ────────────────────────────────────────────────────────────────────────────\n// Translation Bundle (all locales)\n// ────────────────────────────────────────────────────────────────────────────\n\nexport const TranslationBundleSchema = z.record(LocaleSchema, TranslationDataSchema).describe('Map of locale codes to translation data');\n\nexport type TranslationBundle = z.infer<typeof TranslationBundleSchema>;\n\n// ────────────────────────────────────────────────────────────────────────────\n// File Organization Convention\n// ────────────────────────────────────────────────────────────────────────────\n\n/**\n * Translation File Organization Strategy\n *\n * Defines how translation files are organized on disk.\n *\n * - `bundled` — All locales in a single `TranslationBundle` file.\n * Best for small projects with few objects.\n * ```\n * src/translations/\n * crm.translation.ts # { en: {...}, \"zh-CN\": {...} }\n * ```\n *\n * - `per_locale` — One file per locale containing all namespaces.\n * Recommended when a single locale file stays under ~500 lines.\n * ```\n * src/translations/\n * en.ts # TranslationData for English\n * zh-CN.ts # TranslationData for Chinese\n * ```\n *\n * - `per_namespace` — One file per namespace (object) per locale.\n * Recommended for large projects with many objects/languages.\n * Aligns with Salesforce DX and ServiceNow conventions.\n * ```\n * i18n/\n * en/\n * account.json # ObjectTranslationData\n * contact.json\n * common.json # messages + app labels\n * zh-CN/\n * account.json\n * contact.json\n * common.json\n * ```\n */\nexport const TranslationFileOrganizationSchema = z.enum([\n 'bundled',\n 'per_locale',\n 'per_namespace',\n]).describe('Translation file organization strategy');\n\nexport type TranslationFileOrganization = z.infer<typeof TranslationFileOrganizationSchema>;\n\n// ────────────────────────────────────────────────────────────────────────────\n// Translation Configuration\n// ────────────────────────────────────────────────────────────────────────────\n\n/**\n * Translation Configuration Schema\n *\n * Defines internationalization settings for the stack.\n *\n * @example\n * ```typescript\n * export default defineStack({\n * i18n: {\n * defaultLocale: 'en',\n * supportedLocales: ['en', 'zh-CN', 'ja-JP'],\n * fallbackLocale: 'en',\n * fileOrganization: 'per_locale',\n * },\n * translations: [...],\n * });\n * ```\n */\nexport const TranslationConfigSchema = z.object({\n /** Default locale for the application */\n defaultLocale: LocaleSchema.describe('Default locale (e.g., \"en\")'),\n /** Supported BCP-47 locale codes */\n supportedLocales: z.array(LocaleSchema).describe('Supported BCP-47 locale codes'),\n /** Fallback locale when translation is not found */\n fallbackLocale: LocaleSchema.optional().describe('Fallback locale code'),\n /** How translation files are organized on disk */\n fileOrganization: TranslationFileOrganizationSchema.default('per_locale')\n .describe('File organization strategy'),\n /** Load translations on demand instead of eagerly */\n lazyLoad: z.boolean().default(false).describe('Load translations on demand'),\n /** Cache loaded translations in memory */\n cache: z.boolean().default(true).describe('Cache loaded translations'),\n}).describe('Internationalization configuration');\n\nexport type TranslationConfig = z.infer<typeof TranslationConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Real-Time Collaboration Protocol\n * \n * Defines schemas for real-time collaborative editing in ObjectStack.\n * Supports Operational Transformation (OT), CRDT (Conflict-free Replicated Data Types),\n * cursor sharing, and awareness state for collaborative applications.\n * \n * Industry alignment: Google Docs, Figma, VSCode Live Share, Yjs\n */\n\n// ==========================================\n// Operational Transformation (OT)\n// ==========================================\n\n/**\n * OT Operation Type Enum\n * Types of operations in Operational Transformation\n */\nexport const OTOperationType = z.enum([\n 'insert', // Insert characters at position\n 'delete', // Delete characters at position\n 'retain', // Keep characters (used for composing operations)\n]);\n\nexport type OTOperationType = z.infer<typeof OTOperationType>;\n\n/**\n * OT Operation Component\n * Single component of an OT operation\n */\nexport const OTComponentSchema = z.discriminatedUnion('type', [\n z.object({\n type: z.literal('insert'),\n text: z.string().describe('Text to insert'),\n attributes: z.record(z.string(), z.unknown()).optional().describe('Text formatting attributes (e.g., bold, italic)'),\n }),\n z.object({\n type: z.literal('delete'),\n count: z.number().int().positive().describe('Number of characters to delete'),\n }),\n z.object({\n type: z.literal('retain'),\n count: z.number().int().positive().describe('Number of characters to retain'),\n attributes: z.record(z.string(), z.unknown()).optional().describe('Attribute changes to apply'),\n }),\n]);\n\nexport type OTComponent = z.infer<typeof OTComponentSchema>;\n\n/**\n * OT Operation Schema\n * Represents a complete OT operation\n * Based on the OT algorithm used by Google Docs and other collaborative editors\n */\nexport const OTOperationSchema = z.object({\n operationId: z.string().uuid().describe('Unique operation identifier'),\n documentId: z.string().describe('Document identifier'),\n userId: z.string().describe('User who created the operation'),\n sessionId: z.string().uuid().describe('Session identifier'),\n components: z.array(OTComponentSchema).describe('Operation components'),\n baseVersion: z.number().int().nonnegative().describe('Document version this operation is based on'),\n timestamp: z.string().datetime().describe('ISO 8601 datetime when operation was created'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional operation metadata'),\n});\n\nexport type OTOperation = z.infer<typeof OTOperationSchema>;\n\n/**\n * OT Transform Result\n * Result of transforming one operation against another\n */\nexport const OTTransformResultSchema = z.object({\n operation: OTOperationSchema.describe('Transformed operation'),\n transformed: z.boolean().describe('Whether transformation was applied'),\n conflicts: z.array(z.string()).optional().describe('Conflict descriptions if any'),\n});\n\nexport type OTTransformResult = z.infer<typeof OTTransformResultSchema>;\n\n// ==========================================\n// CRDT (Conflict-free Replicated Data Types)\n// ==========================================\n\n/**\n * CRDT Type Enum\n * Types of CRDTs supported\n */\nexport const CRDTType = z.enum([\n 'lww-register', // Last-Write-Wins Register\n 'g-counter', // Grow-only Counter\n 'pn-counter', // Positive-Negative Counter\n 'g-set', // Grow-only Set\n 'or-set', // Observed-Remove Set\n 'lww-map', // Last-Write-Wins Map\n 'text', // CRDT-based Text (e.g., Yjs, Automerge)\n 'tree', // CRDT-based Tree structure\n 'json', // CRDT-based JSON (e.g., Automerge)\n]);\n\nexport type CRDTType = z.infer<typeof CRDTType>;\n\n/**\n * Vector Clock Schema\n * Tracks causality in distributed systems\n */\nexport const VectorClockSchema = z.object({\n clock: z.record(z.string(), z.number().int().nonnegative()).describe('Map of replica ID to logical timestamp'),\n});\n\nexport type VectorClock = z.infer<typeof VectorClockSchema>;\n\n/**\n * LWW-Register Schema\n * Last-Write-Wins Register CRDT\n */\nexport const LWWRegisterSchema = z.object({\n type: z.literal('lww-register'),\n value: z.unknown().describe('Current register value'),\n timestamp: z.string().datetime().describe('ISO 8601 datetime of last write'),\n replicaId: z.string().describe('ID of replica that performed last write'),\n vectorClock: VectorClockSchema.optional().describe('Optional vector clock for causality tracking'),\n});\n\nexport type LWWRegister = z.infer<typeof LWWRegisterSchema>;\n\n/**\n * Counter Operation Schema\n * Operations for Counter CRDTs\n */\nexport const CounterOperationSchema = z.object({\n replicaId: z.string().describe('Replica identifier'),\n delta: z.number().int().describe('Change amount (positive for increment, negative for decrement)'),\n timestamp: z.string().datetime().describe('ISO 8601 datetime of operation'),\n});\n\nexport type CounterOperation = z.infer<typeof CounterOperationSchema>;\n\n/**\n * G-Counter Schema\n * Grow-only Counter CRDT\n */\nexport const GCounterSchema = z.object({\n type: z.literal('g-counter'),\n counts: z.record(z.string(), z.number().int().nonnegative()).describe('Map of replica ID to count'),\n});\n\nexport type GCounter = z.infer<typeof GCounterSchema>;\n\n/**\n * PN-Counter Schema\n * Positive-Negative Counter CRDT (supports increment and decrement)\n */\nexport const PNCounterSchema = z.object({\n type: z.literal('pn-counter'),\n positive: z.record(z.string(), z.number().int().nonnegative()).describe('Positive increments per replica'),\n negative: z.record(z.string(), z.number().int().nonnegative()).describe('Negative increments per replica'),\n});\n\nexport type PNCounter = z.infer<typeof PNCounterSchema>;\n\n/**\n * OR-Set Element Schema\n * Element in an Observed-Remove Set\n */\nexport const ORSetElementSchema = z.object({\n value: z.unknown().describe('Element value'),\n timestamp: z.string().datetime().describe('Addition timestamp'),\n replicaId: z.string().describe('Replica that added the element'),\n uid: z.string().uuid().describe('Unique identifier for this addition'),\n removed: z.boolean().optional().default(false).describe('Whether element has been removed'),\n});\n\nexport type ORSetElement = z.infer<typeof ORSetElementSchema>;\n\n/**\n * OR-Set Schema\n * Observed-Remove Set CRDT\n */\nexport const ORSetSchema = z.object({\n type: z.literal('or-set'),\n elements: z.array(ORSetElementSchema).describe('Set elements with metadata'),\n});\n\nexport type ORSet = z.infer<typeof ORSetSchema>;\n\n/**\n * Text CRDT Operation Schema\n * Operations for text-based CRDTs (e.g., Yjs, Automerge)\n */\nexport const TextCRDTOperationSchema = z.object({\n operationId: z.string().uuid().describe('Unique operation identifier'),\n replicaId: z.string().describe('Replica identifier'),\n position: z.number().int().nonnegative().describe('Position in document'),\n insert: z.string().optional().describe('Text to insert'),\n delete: z.number().int().positive().optional().describe('Number of characters to delete'),\n timestamp: z.string().datetime().describe('ISO 8601 datetime of operation'),\n lamportTimestamp: z.number().int().nonnegative().describe('Lamport timestamp for ordering'),\n});\n\nexport type TextCRDTOperation = z.infer<typeof TextCRDTOperationSchema>;\n\n/**\n * Text CRDT State Schema\n * State of a text-based CRDT document\n */\nexport const TextCRDTStateSchema = z.object({\n type: z.literal('text'),\n documentId: z.string().describe('Document identifier'),\n content: z.string().describe('Current text content'),\n operations: z.array(TextCRDTOperationSchema).describe('History of operations'),\n lamportClock: z.number().int().nonnegative().describe('Current Lamport clock value'),\n vectorClock: VectorClockSchema.describe('Vector clock for causality'),\n});\n\nexport type TextCRDTState = z.infer<typeof TextCRDTStateSchema>;\n\n/**\n * CRDT State Union\n * Discriminated union of all CRDT types\n */\nexport const CRDTStateSchema = z.discriminatedUnion('type', [\n LWWRegisterSchema,\n GCounterSchema,\n PNCounterSchema,\n ORSetSchema,\n TextCRDTStateSchema,\n]);\n\nexport type CRDTState = z.infer<typeof CRDTStateSchema>;\n\n/**\n * CRDT Merge Schema\n * Result of merging two CRDT states\n */\nexport const CRDTMergeResultSchema = z.object({\n state: CRDTStateSchema.describe('Merged CRDT state'),\n conflicts: z.array(z.object({\n type: z.string().describe('Conflict type'),\n description: z.string().describe('Conflict description'),\n resolved: z.boolean().describe('Whether conflict was automatically resolved'),\n })).optional().describe('Conflicts encountered during merge'),\n});\n\nexport type CRDTMergeResult = z.infer<typeof CRDTMergeResultSchema>;\n\n// ==========================================\n// Cursor Sharing\n// ==========================================\n\n/**\n * Cursor Color Preset Enum\n * Standard color presets for cursor visualization\n */\nexport const CursorColorPreset = z.enum([\n 'blue',\n 'green',\n 'red',\n 'yellow',\n 'purple',\n 'orange',\n 'pink',\n 'teal',\n 'indigo',\n 'cyan',\n]);\n\nexport type CursorColorPreset = z.infer<typeof CursorColorPreset>;\n\n/**\n * Cursor Style Schema\n * Visual styling for collaborative cursors\n */\nexport const CursorStyleSchema = z.object({\n color: z.union([CursorColorPreset, z.string()]).describe('Cursor color (preset or custom hex)'),\n opacity: z.number().min(0).max(1).optional().default(1).describe('Cursor opacity (0-1)'),\n label: z.string().optional().describe('Label to display with cursor (usually username)'),\n showLabel: z.boolean().optional().default(true).describe('Whether to show label'),\n pulseOnUpdate: z.boolean().optional().default(true).describe('Whether to pulse when cursor moves'),\n});\n\nexport type CursorStyle = z.infer<typeof CursorStyleSchema>;\n\n/**\n * Cursor Selection Schema\n * Represents a text selection in collaborative editing\n */\nexport const CursorSelectionSchema = z.object({\n anchor: z.object({\n line: z.number().int().nonnegative().describe('Anchor line number'),\n column: z.number().int().nonnegative().describe('Anchor column number'),\n }).describe('Selection anchor (start point)'),\n focus: z.object({\n line: z.number().int().nonnegative().describe('Focus line number'),\n column: z.number().int().nonnegative().describe('Focus column number'),\n }).describe('Selection focus (end point)'),\n direction: z.enum(['forward', 'backward']).optional().describe('Selection direction'),\n});\n\nexport type CursorSelection = z.infer<typeof CursorSelectionSchema>;\n\n/**\n * Collaborative Cursor Schema\n * Complete cursor state for a collaborative user\n */\nexport const CollaborativeCursorSchema = z.object({\n userId: z.string().describe('User identifier'),\n sessionId: z.string().uuid().describe('Session identifier'),\n documentId: z.string().describe('Document identifier'),\n userName: z.string().describe('Display name of user'),\n position: z.object({\n line: z.number().int().nonnegative().describe('Cursor line number (0-indexed)'),\n column: z.number().int().nonnegative().describe('Cursor column number (0-indexed)'),\n }).describe('Current cursor position'),\n selection: CursorSelectionSchema.optional().describe('Current text selection'),\n style: CursorStyleSchema.describe('Visual style for this cursor'),\n isTyping: z.boolean().optional().default(false).describe('Whether user is currently typing'),\n lastUpdate: z.string().datetime().describe('ISO 8601 datetime of last cursor update'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional cursor metadata'),\n});\n\nexport type CollaborativeCursor = z.infer<typeof CollaborativeCursorSchema>;\n\n/**\n * Cursor Update Schema\n * Update to a collaborative cursor\n */\nexport const CursorUpdateSchema = z.object({\n position: z.object({\n line: z.number().int().nonnegative(),\n column: z.number().int().nonnegative(),\n }).optional().describe('Updated cursor position'),\n selection: CursorSelectionSchema.optional().describe('Updated selection'),\n isTyping: z.boolean().optional().describe('Updated typing state'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Updated metadata'),\n});\n\nexport type CursorUpdate = z.infer<typeof CursorUpdateSchema>;\n\n// ==========================================\n// Awareness State\n// ==========================================\n\n/**\n * User Activity Status Enum\n * User activity status for awareness\n */\nexport const UserActivityStatus = z.enum([\n 'active', // User is actively editing\n 'idle', // User is idle but connected\n 'viewing', // User is viewing but not editing\n 'disconnected', // User is disconnected\n]);\n\nexport type UserActivityStatus = z.infer<typeof UserActivityStatus>;\n\n/**\n * Awareness User State Schema\n * Tracks what a user is doing in the collaborative session\n */\nexport const AwarenessUserStateSchema = z.object({\n userId: z.string().describe('User identifier'),\n sessionId: z.string().uuid().describe('Session identifier'),\n userName: z.string().describe('Display name'),\n userAvatar: z.string().optional().describe('User avatar URL'),\n status: UserActivityStatus.describe('Current activity status'),\n currentDocument: z.string().optional().describe('Document ID user is currently editing'),\n currentView: z.string().optional().describe('Current view/page user is on'),\n lastActivity: z.string().datetime().describe('ISO 8601 datetime of last activity'),\n joinedAt: z.string().datetime().describe('ISO 8601 datetime when user joined session'),\n permissions: z.array(z.string()).optional().describe('User permissions in this session'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional user state metadata'),\n});\n\nexport type AwarenessUserState = z.infer<typeof AwarenessUserStateSchema>;\n\n/**\n * Awareness Session Schema\n * Represents the complete awareness state for a collaboration session\n */\nexport const AwarenessSessionSchema = z.object({\n sessionId: z.string().uuid().describe('Session identifier'),\n documentId: z.string().optional().describe('Document ID this session is for'),\n users: z.array(AwarenessUserStateSchema).describe('Active users in session'),\n startedAt: z.string().datetime().describe('ISO 8601 datetime when session started'),\n lastUpdate: z.string().datetime().describe('ISO 8601 datetime of last update'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Session metadata'),\n});\n\nexport type AwarenessSession = z.infer<typeof AwarenessSessionSchema>;\n\n/**\n * Awareness Update Schema\n * Update to awareness state\n */\nexport const AwarenessUpdateSchema = z.object({\n status: UserActivityStatus.optional().describe('Updated status'),\n currentDocument: z.string().optional().describe('Updated current document'),\n currentView: z.string().optional().describe('Updated current view'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Updated metadata'),\n});\n\nexport type AwarenessUpdate = z.infer<typeof AwarenessUpdateSchema>;\n\n/**\n * Awareness Event Schema\n * Events that occur in awareness tracking\n */\nexport const AwarenessEventSchema = z.object({\n eventId: z.string().uuid().describe('Event identifier'),\n sessionId: z.string().uuid().describe('Session identifier'),\n eventType: z.enum([\n 'user.joined',\n 'user.left',\n 'user.updated',\n 'session.created',\n 'session.ended',\n ]).describe('Type of awareness event'),\n userId: z.string().optional().describe('User involved in event'),\n timestamp: z.string().datetime().describe('ISO 8601 datetime of event'),\n payload: z.unknown().describe('Event payload'),\n});\n\nexport type AwarenessEvent = z.infer<typeof AwarenessEventSchema>;\n\n// ==========================================\n// Collaboration Session Management\n// ==========================================\n\n/**\n * Collaboration Mode Enum\n * Types of collaboration modes\n */\nexport const CollaborationMode = z.enum([\n 'ot', // Operational Transformation\n 'crdt', // CRDT-based\n 'lock', // Pessimistic locking (turn-based)\n 'hybrid', // Hybrid approach\n]);\n\nexport type CollaborationMode = z.infer<typeof CollaborationMode>;\n\n/**\n * Collaboration Session Config\n * Configuration for a collaboration session\n */\nexport const CollaborationSessionConfigSchema = z.object({\n mode: CollaborationMode.describe('Collaboration mode to use'),\n enableCursorSharing: z.boolean().optional().default(true).describe('Enable cursor sharing'),\n enablePresence: z.boolean().optional().default(true).describe('Enable presence tracking'),\n enableAwareness: z.boolean().optional().default(true).describe('Enable awareness state'),\n maxUsers: z.number().int().positive().optional().describe('Maximum concurrent users'),\n idleTimeout: z.number().int().positive().optional().default(300000).describe('Idle timeout in milliseconds'),\n conflictResolution: z.enum(['ot', 'crdt', 'manual']).optional().default('ot').describe('Conflict resolution strategy'),\n persistence: z.boolean().optional().default(true).describe('Enable operation persistence'),\n snapshot: z.object({\n enabled: z.boolean().describe('Enable periodic snapshots'),\n interval: z.number().int().positive().describe('Snapshot interval in milliseconds'),\n }).optional().describe('Snapshot configuration'),\n});\n\nexport type CollaborationSessionConfig = z.infer<typeof CollaborationSessionConfigSchema>;\n\n/**\n * Collaboration Session Schema\n * Complete collaboration session state\n */\nexport const CollaborationSessionSchema = z.object({\n sessionId: z.string().uuid().describe('Session identifier'),\n documentId: z.string().describe('Document identifier'),\n config: CollaborationSessionConfigSchema.describe('Session configuration'),\n users: z.array(AwarenessUserStateSchema).describe('Active users'),\n cursors: z.array(CollaborativeCursorSchema).describe('Active cursors'),\n version: z.number().int().nonnegative().describe('Current document version'),\n operations: z.array(z.union([OTOperationSchema, TextCRDTOperationSchema])).optional().describe('Recent operations'),\n createdAt: z.string().datetime().describe('ISO 8601 datetime when session was created'),\n lastActivity: z.string().datetime().describe('ISO 8601 datetime of last activity'),\n status: z.enum(['active', 'idle', 'ended']).describe('Session status'),\n});\n\nexport type CollaborationSession = z.infer<typeof CollaborationSessionSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Metadata Scope Enum\n * Defines the lifecycle and mutability of a metadata item.\n */\nexport const MetadataScopeSchema = z.enum([\n 'system', // Defined in Code (Files). Read-only at runtime. Upgraded via deployment.\n 'platform', // Defined in DB (Global). admin-configured. Overrides system.\n 'user', // Defined in DB (Personal). User-configured. Overrides platform/system.\n]);\n\n/**\n * Metadata Lifecycle State\n */\nexport const MetadataStateSchema = z.enum([\n 'draft', // Work in progress, not active\n 'active', // Live and running\n 'archived', // Soft deleted\n 'deprecated' // Running but flagged for removal\n]);\n\n/**\n * Unified Metadata Persistence Protocol\n * \n * Defines the standardized envelope for storing ANY metadata item (Object, View, Flow)\n * in the database (e.g. `_framework_metadata` or generic `metadata` table).\n * \n * This treats \"Metadata as Data\".\n */\nexport const MetadataRecordSchema = z.object({\n /** Primary Key (UUID) */\n id: z.string(),\n \n /** \n * Machine Name \n * The unique identifier used in code references (e.g. \"account_list_view\").\n */\n name: z.string(),\n \n /**\n * Metadata Type\n * e.g. \"object\", \"view\", \"permission_set\", \"flow\"\n */\n type: z.string(),\n \n /**\n * Namespace / Module\n * Groups metadata into packages (e.g. \"crm\", \"finance\", \"core\").\n */\n namespace: z.string().default('default'),\n\n /**\n * Package Ownership Reference\n * Links this metadata record to the package that delivered it.\n * When set, the record is \"managed\" by the package and should not be\n * directly edited — customizations go through the overlay system.\n * Null/undefined means the record was created independently (not from a package).\n */\n packageId: z.string().optional().describe('Package ID that owns/delivered this metadata'),\n\n /**\n * Managed By Indicator\n * Determines who controls this metadata record's lifecycle.\n * - \"package\": Delivered and upgraded by a plugin package (read-only base)\n * - \"platform\": Created by platform admin via UI\n * - \"user\": Created by end user\n */\n managedBy: z.enum(['package', 'platform', 'user']).optional()\n .describe('Who manages this metadata record lifecycle'),\n \n /**\n * Ownership differentiation\n */\n scope: MetadataScopeSchema.default('platform'),\n \n /**\n * The Payload\n * Stores the actual configuration JSON.\n * This field holds the value of `ViewSchema`, `ObjectSchema`, etc.\n */\n metadata: z.record(z.string(), z.unknown()),\n\n /**\n * Extension / Merge Strategy\n * If this record overrides a system record, how should it be applied?\n */\n extends: z.string().optional().describe('Name of the parent metadata to extend/override'),\n strategy: z.enum(['merge', 'replace']).default('merge'),\n\n /** Owner (for user-scope items) */\n owner: z.string().optional(),\n \n /** State */\n state: MetadataStateSchema.default('active'),\n\n /** Tenant ID for multi-tenant isolation */\n tenantId: z.string().optional().describe('Tenant identifier for multi-tenant isolation'),\n\n /** Version number for optimistic concurrency */\n version: z.number().default(1).describe('Record version for optimistic concurrency control'),\n\n /** Checksum for change detection */\n checksum: z.string().optional().describe('Content checksum for change detection'),\n\n /** Source origin marker */\n source: z.enum(['filesystem', 'database', 'api', 'migration']).optional().describe('Origin of this metadata record'),\n\n /** Classification tags */\n tags: z.array(z.string()).optional().describe('Classification tags for filtering and grouping'),\n \n /** Audit */\n createdBy: z.string().optional(),\n createdAt: z.string().datetime().optional().describe('Creation timestamp'),\n updatedBy: z.string().optional(),\n updatedAt: z.string().datetime().optional().describe('Last update timestamp'),\n});\n\nexport type MetadataRecord = z.infer<typeof MetadataRecordSchema>;\nexport type MetadataScope = z.infer<typeof MetadataScopeSchema>;\n\n/**\n * Metadata Format\n * Supported file formats for metadata serialization.\n */\nexport const MetadataFormatSchema = z.enum([\n 'json', 'yaml', 'yml', 'ts', 'js',\n 'typescript', 'javascript' // Aliases\n]);\n\n/**\n * Metadata Stats\n * Statistics about a metadata item.\n */\nexport const MetadataStatsSchema = z.object({\n path: z.string().optional(),\n size: z.number().optional(),\n mtime: z.string().datetime().optional(),\n hash: z.string().optional(),\n etag: z.string().optional(), // Required by local cache\n modifiedAt: z.string().datetime().optional(), // Alias for mtime\n format: MetadataFormatSchema.optional(), // Required for serialization\n});\n\n/**\n * Metadata Loader Contract\n * Describes the capabilities and identity of a metadata loader.\n */\nexport const MetadataLoaderContractSchema = z.object({\n name: z.string(),\n protocol: z.enum(['file:', 'http:', 's3:', 'datasource:', 'memory:']).describe('Loader protocol identifier'),\n description: z.string().optional(),\n supportedFormats: z.array(z.string()).optional(),\n supportsWatch: z.boolean().optional(),\n supportsWrite: z.boolean().optional(),\n supportsCache: z.boolean().optional(),\n capabilities: z.object({\n read: z.boolean().default(true),\n write: z.boolean().default(false),\n watch: z.boolean().default(false),\n list: z.boolean().default(true),\n }),\n});\n\n/**\n * Metadata Load Options\n */\nexport const MetadataLoadOptionsSchema = z.object({\n scope: MetadataScopeSchema.optional(),\n namespace: z.string().optional(),\n raw: z.boolean().optional().describe('Return raw file content instead of parsed JSON'),\n cache: z.boolean().optional(),\n useCache: z.boolean().optional(), // Alias for cache\n validate: z.boolean().optional(),\n ifNoneMatch: z.string().optional(), // For caching\n recursive: z.boolean().optional(),\n limit: z.number().optional(),\n patterns: z.array(z.string()).optional(),\n loader: z.string().optional().describe('Specific loader to use (e.g. filesystem, database)'),\n});\n\n/**\n * Metadata Load Result\n */\nexport const MetadataLoadResultSchema = z.object({\n data: z.unknown(),\n stats: MetadataStatsSchema.optional(),\n format: MetadataFormatSchema.optional(),\n source: z.string().optional(), // File path or URL\n fromCache: z.boolean().optional(),\n etag: z.string().optional(),\n notModified: z.boolean().optional(),\n loadTime: z.number().optional(),\n});\n\n/**\n * Metadata Save Options\n */\nexport const MetadataSaveOptionsSchema = z.object({\n format: MetadataFormatSchema.optional(),\n create: z.boolean().default(true),\n overwrite: z.boolean().default(true),\n path: z.string().optional(),\n prettify: z.boolean().optional(),\n indent: z.number().optional(),\n sortKeys: z.boolean().optional(),\n backup: z.boolean().optional(),\n atomic: z.boolean().optional(),\n loader: z.string().optional().describe('Specific loader to use (e.g. filesystem, database)'),\n});\n\n/**\n * Metadata Save Result\n */\nexport const MetadataSaveResultSchema = z.object({\n success: z.boolean(),\n path: z.string().optional(),\n stats: MetadataStatsSchema.optional(),\n etag: z.string().optional(),\n size: z.number().optional(),\n saveTime: z.number().optional(),\n backupPath: z.string().optional(),\n});\n\n/**\n * Metadata Watch Event\n */\nexport const MetadataWatchEventSchema = z.object({\n type: z.enum(['add', 'change', 'unlink', 'added', 'changed', 'deleted']),\n path: z.string(),\n name: z.string().optional(),\n stats: MetadataStatsSchema.optional(),\n metadataType: z.string().optional(),\n data: z.unknown().optional(),\n timestamp: z.string().datetime().optional(),\n});\n\n/**\n * Metadata Collection Info\n */\nexport const MetadataCollectionInfoSchema = z.object({\n type: z.string(),\n count: z.number(),\n namespaces: z.array(z.string()),\n});\n\n/**\n * Metadata Export/Import Options\n */\nexport const MetadataExportOptionsSchema = z.object({\n types: z.array(z.string()).optional(),\n namespaces: z.array(z.string()).optional(),\n output: z.string().describe('Output directory or file'),\n format: MetadataFormatSchema.default('json'),\n});\n\nexport const MetadataImportOptionsSchema = z.object({\n source: z.string().describe('Input directory or file'),\n strategy: z.enum(['merge', 'replace', 'skip']).default('merge'),\n validate: z.boolean().default(true),\n});\n\n/**\n * Metadata Fallback Strategy\n * Determines behavior when the primary datasource is unavailable.\n */\nexport const MetadataFallbackStrategySchema = z.enum([\n 'filesystem', // Fall back to filesystem-based loading\n 'memory', // Fall back to in-memory storage\n 'none', // No fallback — fail immediately\n]);\n\n/**\n * Metadata Source Origin\n * Indicates where a metadata record was loaded from.\n */\nexport const MetadataSourceSchema = z.enum([\n 'filesystem', // Loaded from local files\n 'database', // Loaded from database via datasource\n 'api', // Loaded from remote API\n 'migration', // Created during a migration process\n]);\n\n/**\n * Metadata Manager Config\n * \n * Unified configuration for the MetadataManager.\n * Supports datasource-backed persistence via `datasource` field,\n * which references a DatasourceSchema.name resolved at runtime.\n */\nexport const MetadataManagerConfigSchema = z.object({\n /**\n * Datasource Name Reference\n * References a DatasourceSchema.name (e.g. 'default').\n * At runtime, resolved from kernel service `driver.{name}` to obtain the actual driver.\n * When provided, metadata is persisted to a database table.\n */\n datasource: z.string().optional().describe('Datasource name reference for database persistence'),\n\n /**\n * Metadata Table Name\n * The database table used for metadata storage when datasource is configured.\n */\n tableName: z.string().default('sys_metadata').describe('Database table name for metadata storage'),\n\n /**\n * Fallback Strategy\n * Determines behavior when the primary datasource is unavailable.\n */\n fallback: MetadataFallbackStrategySchema.default('none').describe('Fallback strategy when datasource is unavailable'),\n\n /**\n * Root directory for metadata (for filesystem loaders)\n */\n rootDir: z.string().optional().describe('Root directory for filesystem-based metadata'),\n\n /**\n * Enabled serialization formats\n */\n formats: z.array(MetadataFormatSchema).optional().describe('Enabled metadata formats'),\n\n /**\n * Enable file watching\n */\n watch: z.boolean().optional().describe('Enable file watching for filesystem loaders'),\n\n /**\n * Cache configuration\n */\n cache: z.boolean().optional().describe('Enable metadata caching'),\n\n /**\n * Watch options\n */\n watchOptions: z.object({\n ignored: z.array(z.string()).optional().describe('Patterns to ignore'),\n persistent: z.boolean().default(true).describe('Keep process running'),\n }).optional().describe('File watcher options'),\n});\n\nexport type MetadataFormat = z.infer<typeof MetadataFormatSchema>;\nexport type MetadataStats = z.infer<typeof MetadataStatsSchema>;\nexport type MetadataLoaderContract = z.input<typeof MetadataLoaderContractSchema>;\nexport type MetadataLoadOptions = z.infer<typeof MetadataLoadOptionsSchema>;\nexport type MetadataLoadResult = z.infer<typeof MetadataLoadResultSchema>;\nexport type MetadataSaveOptions = z.infer<typeof MetadataSaveOptionsSchema>;\nexport type MetadataSaveResult = z.infer<typeof MetadataSaveResultSchema>;\nexport type MetadataWatchEvent = z.infer<typeof MetadataWatchEventSchema>;\nexport type MetadataCollectionInfo = z.infer<typeof MetadataCollectionInfoSchema>;\nexport type MetadataExportOptions = z.infer<typeof MetadataExportOptionsSchema>;\nexport type MetadataImportOptions = z.infer<typeof MetadataImportOptionsSchema>;\nexport type MetadataManagerConfig = z.input<typeof MetadataManagerConfigSchema>;\nexport type MetadataFallbackStrategy = z.infer<typeof MetadataFallbackStrategySchema>;\nexport type MetadataSource = z.infer<typeof MetadataSourceSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * # Service Registry Protocol\n * \n * Defines the standard built-in services that constitute the ObjectStack Kernel.\n * This registry is used by the `ObjectKernel` and `HttpDispatcher` to:\n * 1. Verify service availability.\n * 2. Route requests to the correct service handler.\n * 3. Type-check service interactions.\n */\n\n// ==========================================\n// Service Identifiers\n// ==========================================\n\nexport const CoreServiceName = z.enum([\n // Core Data & Metadata\n 'metadata', // Object/Field Definitions\n 'data', // CRUD & Query Engine\n 'auth', // Authentication & Identity\n \n // Infrastructure\n 'file-storage', // Storage Driver (Local/S3)\n 'search', // Search Engine (Elastic/Meili)\n 'cache', // Cache Driver (Redis/Memory)\n 'queue', // Job Queue (BullMQ/Redis)\n \n // Advanced Capabilities\n 'automation', // Flow & Script Engine\n 'graphql', // GraphQL API Engine\n 'analytics', // BI & Semantic Layer\n 'realtime', // WebSocket & PubSub\n 'job', // Background Job Manager\n 'notification', // Email/Push/SMS\n 'ai', // AI Engine (NLQ, Chat, Suggest, Insights)\n 'i18n', // Internationalization Service\n 'ui', // UI Metadata Service (View CRUD)\n 'workflow', // Workflow State Machine Engine\n]);\n\nexport type CoreServiceName = z.infer<typeof CoreServiceName>;\n\n/**\n * Service Criticality Level\n * Defines the startup behavior when a service is missing.\n */\nexport const ServiceCriticalitySchema = z.enum([\n 'required', // System fails to start if missing (Exit Code 1)\n 'core', // System warns if missing, functionality degraded (Warn)\n 'optional', // System ignores if missing, feature disabled (Info)\n]);\n\n/**\n * Service Requirement Definition\n */\nexport const ServiceRequirementDef = {\n // Required: The kernel cannot function without these\n metadata: 'required',\n data: 'required',\n\n // Core: Highly recommended, defaults to in-memory / no-op if missing\n auth: 'core',\n\n // Core: Highly recommended, defaults to in-memory if missing\n cache: 'core',\n queue: 'core',\n job: 'core',\n\n // Optional: Add-on capabilities\n 'file-storage': 'optional',\n search: 'optional',\n automation: 'optional',\n graphql: 'optional',\n analytics: 'optional',\n realtime: 'optional',\n notification: 'optional',\n ai: 'optional',\n i18n: 'optional',\n ui: 'optional',\n workflow: 'optional',\n} as const;\n\n// ==========================================\n// Service Capabilities\n// ==========================================\n\n/**\n * Describes the availability and health of a service\n */\nexport const ServiceStatusSchema = z.object({\n name: CoreServiceName,\n enabled: z.boolean(),\n status: z.enum(['running', 'stopped', 'degraded', 'initializing']),\n version: z.string().optional(),\n provider: z.string().optional().describe('Implementation provider (e.g. \"s3\" for storage)'),\n features: z.array(z.string()).optional().describe('List of supported sub-features'),\n});\n\n/**\n * The Contract definition for what the Kernel MUST expose\n * map<ServiceName, ServiceInstance>\n */\nexport const KernelServiceMapSchema = z.record(\n CoreServiceName, \n z.unknown().describe('Service Instance implementing the protocol interface')\n);\n\n// ==========================================\n// Service Interfaces (Stub definitions)\n// ==========================================\n// Ideally, we would define strict Typescript interfaces here \n// for what methods each service must expose to the Registry.\n// For Zod, we primarily validate configuration and status.\n\n// e.g.\nexport const ServiceConfigSchema = z.object({\n id: z.string(),\n name: CoreServiceName,\n options: z.record(z.string(), z.unknown()).optional(),\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { 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.unknown()).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>;\nexport type RowLevelIsolationStrategyInput = z.input<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>;\nexport type SchemaLevelIsolationStrategyInput = z.input<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>;\nexport type DatabaseLevelIsolationStrategyInput = z.input<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>;\nexport type TenantSecurityPolicyInput = z.input<typeof TenantSecurityPolicySchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Metric Type Classification\n */\nexport const LicenseMetricType = 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]).describe('License metric type');\nexport type LicenseMetricType = z.infer<typeof LicenseMetricType>;\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: LicenseMetricType.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 FeatureInput = z.input<typeof FeatureSchema>;\nexport type Plan = z.infer<typeof PlanSchema>;\nexport type PlanInput = z.input<typeof PlanSchema>;\nexport type License = z.infer<typeof LicenseSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { 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.unknown()).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","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\n/**\n * Package conventions and directory structure constants.\n * These define the \"Law of Location\" - where things must be in ObjectStack packages.\n * \n * These paths are the source of truth used by:\n * - ObjectOS Runtime (to locate package components)\n * - ObjectStack CLI (to scaffold and validate packages)\n * - ObjectStudio IDE (to provide intelligent navigation and validation)\n */\nexport const PKG_CONVENTIONS = {\n /**\n * Standard directories within ObjectStack packages.\n * All packages MUST follow these conventions for the runtime to locate resources.\n */\n DIRS: {\n /** \n * Location for schema definitions (Zod schemas, JSON schemas).\n * Path: src/schemas\n */\n SCHEMA: 'src/schemas',\n \n /** \n * Location for server-side code and triggers.\n * Path: src/server\n */\n SERVER: 'src/server',\n \n /** \n * Location for server-side trigger functions.\n * Path: src/triggers\n */\n TRIGGERS: 'src/triggers',\n \n /** \n * Location for client-side code.\n * Path: src/client\n */\n CLIENT: 'src/client',\n \n /** \n * Location for client-side page components.\n * Path: src/client/pages\n */\n PAGES: 'src/client/pages',\n \n /** \n * Location for static assets (images, fonts, etc.).\n * Path: assets\n */\n ASSETS: 'assets',\n },\n \n /**\n * Standard file names within ObjectStack packages.\n */\n FILES: {\n /** \n * Package manifest configuration file.\n * File: objectstack.config.ts\n */\n MANIFEST: 'objectstack.config.ts',\n \n /** \n * Main entry point for the package.\n * File: src/index.ts\n */\n ENTRY: 'src/index.ts',\n },\n} as const;\n\n/**\n * Type helper to extract directory path values.\n */\nexport type PackageDirectory = typeof PKG_CONVENTIONS.DIRS[keyof typeof PKG_CONVENTIONS.DIRS];\n\n/**\n * Type helper to extract file path values.\n */\nexport type PackageFile = typeof PKG_CONVENTIONS.FILES[keyof typeof PKG_CONVENTIONS.FILES];\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\n/**\n * System Object Names — Protocol Layer Constants\n *\n * These constants define the canonical, protocol-level names for system objects.\n * All API calls, SDK references, permissions checks, and metadata lookups MUST use\n * these names instead of hardcoded strings or physical table names.\n *\n * The actual storage table name may differ via `ObjectSchema.tableName`.\n * The mapping between protocol name and storage name is handled by the\n * ObjectQL Engine / Driver layer.\n *\n * @example\n * ```ts\n * import { SystemObjectName } from '@objectstack/spec/system';\n *\n * // Always use the constant for API / SDK / permission references\n * const users = await engine.find(SystemObjectName.USER, { ... });\n * ```\n */\nexport const SystemObjectName = {\n /** Authentication: user identity */\n USER: 'sys_user',\n /** Authentication: active session */\n SESSION: 'sys_session',\n /** Authentication: OAuth / credential account */\n ACCOUNT: 'sys_account',\n /** Authentication: email / phone verification */\n VERIFICATION: 'sys_verification',\n /** System metadata storage */\n METADATA: 'sys_metadata',\n} as const;\n\n/** Union type of all system object names */\nexport type SystemObjectName = typeof SystemObjectName[keyof typeof SystemObjectName];\n\n/**\n * System Field Names — Protocol Layer Constants\n *\n * These constants define the canonical, protocol-level names for common system fields.\n * All API calls, SDK references, and permission checks MUST use these constants\n * instead of hardcoded strings or physical column names.\n *\n * The actual storage column name may differ via `FieldSchema.columnName`.\n *\n * @example\n * ```ts\n * import { SystemFieldName } from '@objectstack/spec/system';\n *\n * // Use the constant to reference the owner field in queries\n * const myRecords = await engine.find('project', {\n * filters: [SystemFieldName.OWNER_ID, '=', currentUserId],\n * });\n * ```\n */\nexport const SystemFieldName = {\n /** Primary key */\n ID: 'id',\n /** Record creation timestamp */\n CREATED_AT: 'created_at',\n /** Record last-updated timestamp */\n UPDATED_AT: 'updated_at',\n /** Record owner (lookup to user) */\n OWNER_ID: 'owner_id',\n /** Tenant isolation key */\n TENANT_ID: 'tenant_id',\n /** Foreign key to user on session / account objects */\n USER_ID: 'user_id',\n /** Soft-delete timestamp */\n DELETED_AT: 'deleted_at',\n} as const;\n\n/** Union type of all system field names */\nexport type SystemFieldName = typeof SystemFieldName[keyof typeof SystemFieldName];\n\n/**\n * Storage Name Mapping — Protocol ↔ Physical Name Resolution\n *\n * Provides pure utility functions for resolving protocol-level names to\n * physical storage names and vice-versa.\n *\n * These helpers are intended for use inside the ObjectQL Engine and Driver layers.\n * They are intentionally stateless — they receive the object definition and return\n * the resolved name.\n */\nexport const StorageNameMapping = {\n /**\n * Resolve the physical table name for an object.\n * Falls back to `object.name` when `tableName` is not set.\n *\n * @param object - Object definition (at minimum `{ name: string; tableName?: string }`)\n * @returns The physical table / collection name to use in storage operations.\n */\n resolveTableName(object: { name: string; tableName?: string }): string {\n return object.tableName ?? object.name;\n },\n\n /**\n * Resolve the physical column name for a field.\n * Falls back to `fieldKey` when `columnName` is not set on the field.\n *\n * @param fieldKey - The protocol-level field key (snake_case identifier).\n * @param field - Field definition (at minimum `{ columnName?: string }`).\n * @returns The physical column name to use in storage operations.\n */\n resolveColumnName(fieldKey: string, field: { columnName?: string }): string {\n return field.columnName ?? fieldKey;\n },\n\n /**\n * Build a complete field-key → column-name map for an entire object.\n *\n * @param fields - The fields record from an ObjectSchema.\n * @returns A record mapping every protocol field key to its physical column name.\n */\n buildColumnMap(fields: Record<string, { columnName?: string }>): Record<string, string> {\n const map: Record<string, string> = {};\n for (const key of Object.keys(fields)) {\n map[key] = fields[key].columnName ?? key;\n }\n return map;\n },\n\n /**\n * Build a reverse column-name → field-key map for an entire object.\n * Useful for translating storage-layer results back to protocol-level field keys.\n *\n * @param fields - The fields record from an ObjectSchema.\n * @returns A record mapping every physical column name back to its protocol field key.\n */\n buildReverseColumnMap(fields: Record<string, { columnName?: string }>): Record<string, string> {\n const map: Record<string, string> = {};\n for (const key of Object.keys(fields)) {\n const col = fields[key].columnName ?? key;\n map[col] = key;\n }\n return map;\n },\n} as const;\n"]}
1
+ {"version":3,"sources":["../../src/system/cache.zod.ts","../../src/system/disaster-recovery.zod.ts","../../src/system/message-queue.zod.ts","../../src/shared/identifiers.zod.ts","../../src/system/object-storage.zod.ts","../../src/system/search-engine.zod.ts","../../src/shared/http.zod.ts","../../src/system/http-server.zod.ts","../../src/system/audit.zod.ts","../../src/system/logging.zod.ts","../../src/system/metrics.zod.ts","../../src/system/tracing.zod.ts","../../src/system/security-context.zod.ts","../../src/system/change-management.zod.ts","../../src/system/encryption.zod.ts","../../src/system/masking.zod.ts","../../src/data/field.zod.ts","../../src/data/validation.zod.ts","../../src/automation/state-machine.zod.ts","../../src/data/object.zod.ts","../../src/system/migration.zod.ts","../../src/system/auth-config.zod.ts","../../src/system/compliance.zod.ts","../../src/system/incident-response.zod.ts","../../src/system/supplier-security.zod.ts","../../src/system/training.zod.ts","../../src/system/job.zod.ts","../../src/system/worker.zod.ts","../../src/system/notification.zod.ts","../../src/system/translation.zod.ts","../../src/system/collaboration.zod.ts","../../src/system/metadata-persistence.zod.ts","../../src/system/core-services.zod.ts","../../src/system/tenant.zod.ts","../../src/system/license.zod.ts","../../src/system/registry-config.zod.ts","../../src/system/provisioning.zod.ts","../../src/system/deploy-bundle.zod.ts","../../src/system/app-install.zod.ts","../../src/system/constants/paths.ts","../../src/system/constants/system-names.ts"],"names":["z","SearchConfigSchema"],"mappings":"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","file":"index.mjs","sourcesContent":["// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Application-Level Cache Protocol\n * \n * Multi-tier caching strategy for application data.\n * Supports Memory, Redis, Memcached, and CDN.\n * \n * ## Caching in ObjectStack\n * \n * **Application Cache (`system/cache.zod.ts`) - This File**\n * - **Purpose**: Cache computed data, query results, aggregations\n * - **Technologies**: Redis, Memcached, in-memory LRU\n * - **Configuration**: TTL, eviction policies, cache warming\n * - **Use case**: Cache expensive database queries, computed values\n * - **Scope**: Application layer, server-side data storage\n * \n * **HTTP Cache (`api/http-cache.zod.ts`)**\n * - **Purpose**: Cache API responses at HTTP protocol level\n * - **Technologies**: HTTP headers (ETag, Last-Modified, Cache-Control), CDN\n * - **Configuration**: Cache-Control headers, validation tokens\n * - **Use case**: Reduce API response time for repeated metadata requests\n * - **Scope**: HTTP layer, client-server communication\n * \n * @see ../../api/http-cache.zod.ts for HTTP-level caching\n */\nexport const CacheStrategySchema = z.enum([\n 'lru', // Least Recently Used\n 'lfu', // Least Frequently Used\n 'fifo', // First In First Out\n 'ttl', // Time To Live only\n 'adaptive', // Dynamic strategy selection\n]).describe('Cache eviction strategy');\n\nexport type CacheStrategy = z.infer<typeof CacheStrategySchema>;\n\nexport const CacheTierSchema = z.object({\n name: z.string().describe('Unique cache tier name'),\n type: z.enum(['memory', 'redis', 'memcached', 'cdn']).describe('Cache backend type'),\n maxSize: z.number().optional().describe('Max size in MB'),\n ttl: z.number().default(300).describe('Default TTL in seconds'),\n strategy: CacheStrategySchema.default('lru').describe('Eviction strategy'),\n warmup: z.boolean().default(false).describe('Pre-populate cache on startup'),\n}).describe('Configuration for a single cache tier in the hierarchy');\n\nexport type CacheTier = z.infer<typeof CacheTierSchema>;\nexport type CacheTierInput = z.input<typeof CacheTierSchema>;\n\nexport const CacheInvalidationSchema = z.object({\n trigger: z.enum(['create', 'update', 'delete', 'manual']).describe('Event that triggers invalidation'),\n scope: z.enum(['key', 'pattern', 'tag', 'all']).describe('Invalidation scope'),\n pattern: z.string().optional().describe('Key pattern for pattern-based invalidation'),\n tags: z.array(z.string()).optional().describe('Cache tags to invalidate'),\n}).describe('Rule defining when and how cached entries are invalidated');\n\nexport type CacheInvalidation = z.infer<typeof CacheInvalidationSchema>;\n\nexport const CacheConfigSchema = z.object({\n enabled: z.boolean().default(false).describe('Enable application-level caching'),\n tiers: z.array(CacheTierSchema).describe('Ordered cache tier hierarchy'),\n invalidation: z.array(CacheInvalidationSchema).describe('Cache invalidation rules'),\n prefetch: z.boolean().default(false).describe('Enable cache prefetching'),\n compression: z.boolean().default(false).describe('Enable data compression in cache'),\n encryption: z.boolean().default(false).describe('Enable encryption for cached data'),\n}).describe('Top-level application cache configuration');\n\nexport type CacheConfig = z.infer<typeof CacheConfigSchema>;\nexport type CacheConfigInput = z.input<typeof CacheConfigSchema>;\n\n/**\n * Distributed Cache Consistency Schema\n *\n * Defines write strategies for distributed cache consistency.\n *\n * - **write_through**: Write to cache and backend simultaneously\n * - **write_behind**: Write to cache first, async persist to backend\n * - **write_around**: Write to backend only, cache on next read\n * - **refresh_ahead**: Proactively refresh expiring entries before TTL\n */\nexport const CacheConsistencySchema = z.enum([\n 'write_through',\n 'write_behind',\n 'write_around',\n 'refresh_ahead',\n]).describe('Distributed cache write consistency strategy');\n\nexport type CacheConsistency = z.infer<typeof CacheConsistencySchema>;\n\n/**\n * Cache Avalanche Prevention Schema\n *\n * Strategies to prevent cache stampede/avalanche when many keys expire simultaneously.\n *\n * @example\n * ```typescript\n * const prevention: CacheAvalanchePrevention = {\n * jitterTtl: { enabled: true, maxJitterSeconds: 60 },\n * circuitBreaker: { enabled: true, failureThreshold: 5, resetTimeout: 30 },\n * lockout: { enabled: true, lockTimeoutMs: 5000 },\n * };\n * ```\n */\nexport const CacheAvalanchePreventionSchema = z.object({\n /** TTL jitter to stagger cache expiration */\n jitterTtl: z.object({\n enabled: z.boolean().default(false).describe('Add random jitter to TTL values'),\n maxJitterSeconds: z.number().default(60).describe('Maximum jitter added to TTL in seconds'),\n }).optional().describe('TTL jitter to prevent simultaneous expiration'),\n\n /** Circuit breaker to protect backend under cache pressure */\n circuitBreaker: z.object({\n enabled: z.boolean().default(false).describe('Enable circuit breaker for backend protection'),\n failureThreshold: z.number().default(5).describe('Failures before circuit opens'),\n resetTimeout: z.number().default(30).describe('Seconds before half-open state'),\n }).optional().describe('Circuit breaker for backend protection'),\n\n /** Cache lock to prevent thundering herd on key miss */\n lockout: z.object({\n enabled: z.boolean().default(false).describe('Enable cache locking for key regeneration'),\n lockTimeoutMs: z.number().default(5000).describe('Maximum lock wait time in milliseconds'),\n }).optional().describe('Lock-based stampede prevention'),\n}).describe('Cache avalanche/stampede prevention configuration');\n\nexport type CacheAvalanchePrevention = z.infer<typeof CacheAvalanchePreventionSchema>;\n\n/**\n * Cache Warmup Strategy Schema\n *\n * Defines how cache is pre-populated on startup or after cache flush.\n */\nexport const CacheWarmupSchema = z.object({\n /** Enable cache warming */\n enabled: z.boolean().default(false).describe('Enable cache warmup'),\n /** Warmup strategy */\n strategy: z.enum(['eager', 'lazy', 'scheduled']).default('lazy')\n .describe('Warmup strategy: eager (at startup), lazy (on first access), scheduled (cron)'),\n /** Cron schedule for scheduled warmup */\n schedule: z.string().optional().describe('Cron expression for scheduled warmup'),\n /** Keys/patterns to warm up */\n patterns: z.array(z.string()).optional().describe('Key patterns to warm up (e.g., \"user:*\", \"config:*\")'),\n /** Maximum concurrent warmup operations */\n concurrency: z.number().default(10).describe('Maximum concurrent warmup operations'),\n}).describe('Cache warmup strategy');\n\nexport type CacheWarmup = z.infer<typeof CacheWarmupSchema>;\n\n/**\n * Distributed Cache Configuration Schema\n *\n * Extended cache configuration for distributed multi-node deployments.\n * Adds consistency strategies, avalanche prevention, and warmup policies.\n *\n * @example\n * ```typescript\n * const distributedCache: DistributedCacheConfig = {\n * enabled: true,\n * tiers: [\n * { name: 'l1', type: 'memory', maxSize: 100, ttl: 60, strategy: 'lru' },\n * { name: 'l2', type: 'redis', maxSize: 1000, ttl: 300, strategy: 'lru' },\n * ],\n * invalidation: [\n * { trigger: 'update', scope: 'key' },\n * ],\n * consistency: 'write_through',\n * avalanchePrevention: {\n * jitterTtl: { enabled: true, maxJitterSeconds: 30 },\n * circuitBreaker: { enabled: true, failureThreshold: 5 },\n * },\n * warmup: { enabled: true, strategy: 'eager', patterns: ['config:*'] },\n * };\n * ```\n */\nexport const DistributedCacheConfigSchema = CacheConfigSchema.extend({\n /** Distributed write consistency strategy */\n consistency: CacheConsistencySchema.optional().describe('Distributed cache consistency strategy'),\n /** Avalanche/stampede prevention settings */\n avalanchePrevention: CacheAvalanchePreventionSchema.optional()\n .describe('Cache avalanche and stampede prevention'),\n /** Cache warmup configuration */\n warmup: CacheWarmupSchema.optional().describe('Cache warmup strategy'),\n}).describe('Distributed cache configuration with consistency and avalanche prevention');\n\nexport type DistributedCacheConfig = z.infer<typeof DistributedCacheConfigSchema>;\nexport type DistributedCacheConfigInput = z.input<typeof DistributedCacheConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Backup Strategy Schema\n *\n * Defines backup methods for disaster recovery.\n *\n * - **full**: Complete snapshot of all data\n * - **incremental**: Only changes since last backup\n * - **differential**: All changes since last full backup\n *\n * @example\n * ```typescript\n * const backup: BackupConfig = {\n * strategy: 'incremental',\n * schedule: '0 2 * * *',\n * retention: { days: 30, minCopies: 3 },\n * encryption: { enabled: true, algorithm: 'AES-256-GCM' },\n * };\n * ```\n */\nexport const BackupStrategySchema = z.enum([\n 'full',\n 'incremental',\n 'differential',\n]).describe('Backup strategy type');\n\nexport type BackupStrategy = z.infer<typeof BackupStrategySchema>;\n\n/**\n * Backup Retention Policy Schema\n */\nexport const BackupRetentionSchema = z.object({\n /** Number of days to retain backups */\n days: z.number().min(1).describe('Retention period in days'),\n /** Minimum number of backup copies to keep regardless of age */\n minCopies: z.number().min(1).default(3).describe('Minimum backup copies to retain'),\n /** Maximum number of backup copies */\n maxCopies: z.number().optional().describe('Maximum backup copies to store'),\n}).describe('Backup retention policy');\n\nexport type BackupRetention = z.infer<typeof BackupRetentionSchema>;\n\n/**\n * Backup Configuration Schema\n */\nexport const BackupConfigSchema = z.object({\n /** Backup strategy */\n strategy: BackupStrategySchema.default('incremental').describe('Backup strategy'),\n /** Cron schedule for automated backups */\n schedule: z.string().optional().describe('Cron expression for backup schedule (e.g., \"0 2 * * *\")'),\n /** Retention policy */\n retention: BackupRetentionSchema.describe('Backup retention policy'),\n /** Storage destination */\n destination: z.object({\n type: z.enum(['s3', 'gcs', 'azure_blob', 'local']).describe('Storage backend type'),\n bucket: z.string().optional().describe('Cloud storage bucket/container name'),\n path: z.string().optional().describe('Storage path prefix'),\n region: z.string().optional().describe('Cloud storage region'),\n }).describe('Backup storage destination'),\n /** Encryption settings */\n encryption: z.object({\n enabled: z.boolean().default(true).describe('Enable backup encryption'),\n algorithm: z.enum(['AES-256-GCM', 'AES-256-CBC', 'ChaCha20-Poly1305']).default('AES-256-GCM')\n .describe('Encryption algorithm'),\n keyId: z.string().optional().describe('KMS key ID for encryption'),\n }).optional().describe('Backup encryption settings'),\n /** Compression settings */\n compression: z.object({\n enabled: z.boolean().default(true).describe('Enable backup compression'),\n algorithm: z.enum(['gzip', 'zstd', 'lz4', 'snappy']).default('zstd').describe('Compression algorithm'),\n }).optional().describe('Backup compression settings'),\n /** Verify backup integrity after creation */\n verifyAfterBackup: z.boolean().default(true).describe('Verify backup integrity after creation'),\n}).describe('Backup configuration');\n\nexport type BackupConfig = z.infer<typeof BackupConfigSchema>;\nexport type BackupConfigInput = z.input<typeof BackupConfigSchema>;\n\n/**\n * Failover Mode Schema\n *\n * Defines how traffic is routed between primary and secondary systems.\n *\n * - **active_passive**: Secondary is standby, activated on primary failure\n * - **active_active**: Both primary and secondary handle traffic\n * - **pilot_light**: Minimal secondary with quick scale-up capability\n * - **warm_standby**: Reduced-capacity secondary, faster failover than pilot light\n */\nexport const FailoverModeSchema = z.enum([\n 'active_passive',\n 'active_active',\n 'pilot_light',\n 'warm_standby',\n]).describe('Failover mode');\n\nexport type FailoverMode = z.infer<typeof FailoverModeSchema>;\n\n/**\n * Failover Configuration Schema\n */\nexport const FailoverConfigSchema = z.object({\n /** Failover mode */\n mode: FailoverModeSchema.default('active_passive').describe('Failover mode'),\n /** Automatic failover enabled */\n autoFailover: z.boolean().default(true).describe('Enable automatic failover'),\n /** Health check interval in seconds */\n healthCheckInterval: z.number().default(30).describe('Health check interval in seconds'),\n /** Number of consecutive failures before triggering failover */\n failureThreshold: z.number().default(3).describe('Consecutive failures before failover'),\n /** Regions/zones for disaster recovery */\n regions: z.array(z.object({\n name: z.string().describe('Region identifier (e.g., \"us-east-1\", \"eu-west-1\")'),\n role: z.enum(['primary', 'secondary', 'witness']).describe('Region role'),\n endpoint: z.string().optional().describe('Region endpoint URL'),\n priority: z.number().optional().describe('Failover priority (lower = higher priority)'),\n })).min(2).describe('Multi-region configuration (minimum 2 regions)'),\n /** DNS failover configuration */\n dns: z.object({\n ttl: z.number().default(60).describe('DNS TTL in seconds for failover'),\n provider: z.enum(['route53', 'cloudflare', 'azure_dns', 'custom']).optional()\n .describe('DNS provider for automatic failover'),\n }).optional().describe('DNS failover settings'),\n}).describe('Failover configuration');\n\nexport type FailoverConfig = z.infer<typeof FailoverConfigSchema>;\nexport type FailoverConfigInput = z.input<typeof FailoverConfigSchema>;\n\n/**\n * Recovery Point Objective (RPO) Schema\n *\n * Maximum acceptable amount of data loss measured in time.\n */\nexport const RPOSchema = z.object({\n /** RPO value */\n value: z.number().min(0).describe('RPO value'),\n /** RPO time unit */\n unit: z.enum(['seconds', 'minutes', 'hours']).default('minutes').describe('RPO time unit'),\n}).describe('Recovery Point Objective (maximum acceptable data loss)');\n\nexport type RPO = z.infer<typeof RPOSchema>;\n\n/**\n * Recovery Time Objective (RTO) Schema\n *\n * Maximum acceptable time to restore service after a disaster.\n */\nexport const RTOSchema = z.object({\n /** RTO value */\n value: z.number().min(0).describe('RTO value'),\n /** RTO time unit */\n unit: z.enum(['seconds', 'minutes', 'hours']).default('minutes').describe('RTO time unit'),\n}).describe('Recovery Time Objective (maximum acceptable downtime)');\n\nexport type RTO = z.infer<typeof RTOSchema>;\n\n/**\n * Disaster Recovery Plan Schema\n *\n * Complete disaster recovery configuration for an ObjectStack deployment.\n * Covers backup, failover, replication, and recovery objectives.\n *\n * Aligned with industry standards:\n * - ISO 22301 (Business Continuity Management)\n * - AWS Well-Architected Framework (Reliability Pillar)\n *\n * @example\n * ```typescript\n * const drPlan: DisasterRecoveryPlan = {\n * enabled: true,\n * rpo: { value: 15, unit: 'minutes' },\n * rto: { value: 1, unit: 'hours' },\n * backup: {\n * strategy: 'incremental',\n * schedule: '0 0/6 * * *',\n * retention: { days: 90, minCopies: 5 },\n * destination: { type: 's3', bucket: 'backup-bucket', region: 'us-east-1' },\n * },\n * failover: {\n * mode: 'active_passive',\n * autoFailover: true,\n * healthCheckInterval: 30,\n * failureThreshold: 3,\n * regions: [\n * { name: 'us-east-1', role: 'primary' },\n * { name: 'us-west-2', role: 'secondary' },\n * ],\n * },\n * };\n * ```\n */\nexport const DisasterRecoveryPlanSchema = z.object({\n /** Enable disaster recovery */\n enabled: z.boolean().default(false).describe('Enable disaster recovery plan'),\n\n /** Recovery Point Objective */\n rpo: RPOSchema.describe('Recovery Point Objective'),\n\n /** Recovery Time Objective */\n rto: RTOSchema.describe('Recovery Time Objective'),\n\n /** Backup configuration */\n backup: BackupConfigSchema.describe('Backup configuration'),\n\n /** Failover configuration */\n failover: FailoverConfigSchema.optional().describe('Multi-region failover configuration'),\n\n /** Data replication settings */\n replication: z.object({\n /** Replication mode */\n mode: z.enum(['synchronous', 'asynchronous', 'semi_synchronous']).default('asynchronous')\n .describe('Data replication mode'),\n /** Maximum replication lag allowed (seconds) */\n maxLagSeconds: z.number().optional().describe('Maximum acceptable replication lag in seconds'),\n /** Objects/tables to replicate (empty = all) */\n includeObjects: z.array(z.string()).optional().describe('Objects to replicate (empty = all)'),\n /** Objects/tables to exclude from replication */\n excludeObjects: z.array(z.string()).optional().describe('Objects to exclude from replication'),\n }).optional().describe('Data replication settings'),\n\n /** Automated recovery testing */\n testing: z.object({\n /** Enable periodic DR testing */\n enabled: z.boolean().default(false).describe('Enable automated DR testing'),\n /** Cron schedule for DR tests */\n schedule: z.string().optional().describe('Cron expression for DR test schedule'),\n /** Notification channel for test results */\n notificationChannel: z.string().optional().describe('Notification channel for DR test results'),\n }).optional().describe('Automated disaster recovery testing'),\n\n /** Runbook URL for manual procedures */\n runbookUrl: z.string().optional().describe('URL to disaster recovery runbook/playbook'),\n\n /** Contact list for DR incidents */\n contacts: z.array(z.object({\n name: z.string().describe('Contact name'),\n role: z.string().describe('Contact role (e.g., \"DBA\", \"SRE Lead\")'),\n email: z.string().optional().describe('Contact email'),\n phone: z.string().optional().describe('Contact phone'),\n })).optional().describe('Emergency contact list for DR incidents'),\n}).describe('Complete disaster recovery plan configuration');\n\nexport type DisasterRecoveryPlan = z.infer<typeof DisasterRecoveryPlanSchema>;\nexport type DisasterRecoveryPlanInput = z.input<typeof DisasterRecoveryPlanSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Message queue protocol for async communication\n * Supports Kafka, RabbitMQ, AWS SQS, Redis Pub/Sub\n */\nexport const MessageQueueProviderSchema = z.enum([\n 'kafka',\n 'rabbitmq',\n 'aws-sqs',\n 'redis-pubsub',\n 'google-pubsub',\n 'azure-service-bus',\n]).describe('Supported message queue backend provider');\n\nexport type MessageQueueProvider = z.infer<typeof MessageQueueProviderSchema>;\n\nexport const TopicConfigSchema = z.object({\n name: z.string().describe('Topic name identifier'),\n partitions: z.number().default(1).describe('Number of partitions for parallel consumption'),\n replicationFactor: z.number().default(1).describe('Number of replicas for fault tolerance'),\n retentionMs: z.number().optional().describe('Message retention period in milliseconds'),\n compressionType: z.enum(['none', 'gzip', 'snappy', 'lz4']).default('none').describe('Message compression algorithm'),\n}).describe('Configuration for a message queue topic');\n\nexport type TopicConfig = z.infer<typeof TopicConfigSchema>;\n\nexport const ConsumerConfigSchema = z.object({\n groupId: z.string().describe('Consumer group identifier'),\n autoOffsetReset: z.enum(['earliest', 'latest']).default('latest').describe('Where to start reading when no offset exists'),\n enableAutoCommit: z.boolean().default(true).describe('Automatically commit consumed offsets'),\n maxPollRecords: z.number().default(500).describe('Maximum records returned per poll'),\n}).describe('Consumer group configuration for topic consumption');\n\nexport type ConsumerConfig = z.infer<typeof ConsumerConfigSchema>;\n\nexport const DeadLetterQueueSchema = z.object({\n enabled: z.boolean().default(false).describe('Enable dead letter queue for failed messages'),\n maxRetries: z.number().default(3).describe('Maximum delivery attempts before sending to DLQ'),\n queueName: z.string().describe('Name of the dead letter queue'),\n}).describe('Dead letter queue configuration for unprocessable messages');\n\nexport type DeadLetterQueue = z.infer<typeof DeadLetterQueueSchema>;\n\nexport const MessageQueueConfigSchema = z.object({\n provider: MessageQueueProviderSchema.describe('Message queue backend provider'),\n topics: z.array(TopicConfigSchema).describe('List of topic configurations'),\n consumers: z.array(ConsumerConfigSchema).optional().describe('Consumer group configurations'),\n deadLetterQueue: DeadLetterQueueSchema.optional().describe('Dead letter queue for failed messages'),\n ssl: z.boolean().default(false).describe('Enable SSL/TLS for broker connections'),\n sasl: z.object({\n mechanism: z.enum(['plain', 'scram-sha-256', 'scram-sha-512']).describe('SASL authentication mechanism'),\n username: z.string().describe('SASL username'),\n password: z.string().describe('SASL password'),\n }).optional().describe('SASL authentication configuration'),\n}).describe('Top-level message queue configuration');\n\nexport type MessageQueueConfig = z.infer<typeof MessageQueueConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * System Identifier Schema\n * \n * Universal naming convention for all machine identifiers (API Names) in ObjectStack.\n * Enforces lowercase with underscores or dots to ensure:\n * - Cross-platform compatibility (case-insensitive filesystems)\n * - URL-friendliness (no encoding needed)\n * - Database consistency (no collation issues)\n * - Security (no case-sensitivity bugs in permission checks)\n * \n * **Applies to all metadata that acts as a machine identifier:**\n * - Object names (tables/collections)\n * - Field names\n * - Role names\n * - Permission set names\n * - Action/trigger names\n * - Event keys\n * - App IDs\n * - Menu/page IDs\n * - Select option values\n * - Workflow names\n * - Webhook names\n * \n * **Naming Convention Summary:**\n * | Type | Pattern | Example |\n * |------|---------|---------|\n * | Machine ID | snake_case | `crm_account`, `btn_submit`, `role_admin` |\n * | Event keys | dot.notation | `user.login`, `order.created` |\n * | Labels | Any case | `Client Account`, `Submit Form` |\n * \n * @example Valid identifiers\n * - 'account'\n * - 'crm_account'\n * - 'user_profile'\n * - 'order.created' (for events)\n * - 'api_v2_endpoint'\n * \n * @example Invalid identifiers (will be rejected)\n * - 'Account' (uppercase)\n * - 'CrmAccount' (camelCase)\n * - 'crm-account' (kebab-case - use underscore instead)\n * - 'user profile' (spaces)\n */\nexport const SystemIdentifierSchema = z\n .string()\n .min(2, { message: 'System identifier must be at least 2 characters' })\n .regex(/^[a-z][a-z0-9_.]*$/, {\n message:\n 'System identifier must be lowercase, starting with a letter, and may contain letters, numbers, underscores, or dots (e.g., \"user_profile\" or \"order.created\")',\n })\n .describe('System identifier (lowercase with underscores or dots)');\n\n/**\n * Strict Snake Case Identifier\n * \n * More restrictive than SystemIdentifierSchema - only allows underscores (no dots).\n * Use this for identifiers that should NOT contain dots (e.g., database table/column names).\n * \n * @example Valid\n * - 'account'\n * - 'crm_account'\n * - 'user_profile'\n * \n * @example Invalid\n * - 'user.profile' (dots not allowed)\n * - 'UserProfile' (uppercase)\n */\nexport const SnakeCaseIdentifierSchema = z\n .string()\n .min(2, { message: 'Identifier must be at least 2 characters' })\n .regex(/^[a-z][a-z0-9_]*$/, {\n message:\n 'Identifier must be lowercase snake_case, starting with a letter, and may contain only letters, numbers, and underscores (e.g., \"user_profile\")',\n })\n .describe('Snake case identifier (lowercase with underscores only)');\n\n/**\n * Event Name Identifier\n * \n * Specialized identifier for event names that encourages dot notation.\n * Used in event-driven systems, message queues, and webhooks.\n * \n * Pattern: `namespace.action` or `entity.event_type`\n * \n * @example Valid\n * - 'user.created'\n * - 'order.paid'\n * - 'user.login_success'\n * - 'alarm.high_cpu'\n * \n * @example Invalid\n * - 'UserCreated' (camelCase)\n * - 'user_created' (should use dots for namespacing)\n */\nexport const EventNameSchema = z\n .string()\n .min(3, { message: 'Event name must be at least 3 characters' })\n .regex(/^[a-z][a-z0-9_.]*$/, {\n message:\n 'Event name must be lowercase with dots for namespacing (e.g., \"user.created\", \"order.paid\")',\n })\n .describe('Event name (lowercase with dot notation for namespacing)');\n\n/**\n * Type Exports\n */\nexport type SystemIdentifier = z.infer<typeof SystemIdentifierSchema>;\nexport type SnakeCaseIdentifier = z.infer<typeof SnakeCaseIdentifierSchema>;\nexport type EventName = z.infer<typeof EventNameSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SystemIdentifierSchema } from '../shared/identifiers.zod';\n\n/**\n * Object Storage Protocol\n * \n * Unified storage protocol that combines:\n * - Object storage systems (S3, Azure Blob, GCS, MinIO)\n * - Scoped storage configuration (temp, cache, data, logs, config, public)\n * - Multi-cloud storage providers\n * - Bucket/container configuration\n * - Access control and permissions\n * - Lifecycle policies for data retention\n * - Presigned URLs for secure direct access\n * - Multipart uploads for large files\n */\n\n// ============================================================================\n// Storage Scope Protocol (formerly from scoped-storage.zod.ts)\n// ============================================================================\n\n/**\n * Storage Scope Enum\n * Defines the lifecycle and persistence guarantee of the storage area.\n */\nexport const StorageScopeSchema = z.enum([\n 'global', // Global application-wide storage\n 'tenant', // Tenant-scoped storage (multi-tenant apps)\n 'user', // User-scoped storage\n 'session', // Session-scoped storage (ephemeral)\n 'temp', // Ephemeral, cleared on restart\n 'cache', // Ephemeral, survives restarts, cleared on LRU/Expiration\n 'data', // Persistent, backed up\n 'logs', // Append-only, rotated\n 'config', // Read-heavy, versioned\n 'public' // Publicly accessible static assets\n]).describe('Storage scope classification');\n\nexport type StorageScope = z.infer<typeof StorageScopeSchema>;\n\n/**\n * File Metadata Schema\n * Standardized file attribute structure\n */\nexport const FileMetadataSchema = z.object({\n path: z.string().describe('File path'),\n name: z.string().describe('File name'),\n size: z.number().int().describe('File size in bytes'),\n mimeType: z.string().describe('MIME type'),\n lastModified: z.string().datetime().describe('Last modified timestamp'),\n created: z.string().datetime().describe('Creation timestamp'),\n etag: z.string().optional().describe('Entity tag'),\n});\n\nexport type FileMetadata = z.infer<typeof FileMetadataSchema>;\n\n// ============================================================================\n// Enums\n// ============================================================================\n\n/**\n * Storage Provider Types\n * \n * Supported cloud and self-hosted object storage providers.\n */\nexport const StorageProviderSchema = z.enum([\n 's3', // Amazon S3\n 'azure_blob', // Azure Blob Storage\n 'gcs', // Google Cloud Storage\n 'minio', // MinIO (self-hosted S3-compatible)\n 'r2', // Cloudflare R2\n 'spaces', // DigitalOcean Spaces\n 'wasabi', // Wasabi Hot Cloud Storage\n 'backblaze', // Backblaze B2\n 'local', // Local filesystem (development only)\n]).describe('Storage provider type');\n\nexport type StorageProvider = z.infer<typeof StorageProviderSchema>;\n\n/**\n * Storage Access Control List (ACL)\n * \n * Predefined access control configurations for objects and buckets.\n */\nexport const StorageAclSchema = z.enum([\n 'private', // Owner has full control, no one else has access\n 'public_read', // Owner has full control, everyone can read\n 'public_read_write', // Owner has full control, everyone can read/write (not recommended)\n 'authenticated_read', // Owner has full control, authenticated users can read\n 'bucket_owner_read', // Object owner has full control, bucket owner can read\n 'bucket_owner_full_control', // Both object and bucket owner have full control\n]).describe('Storage access control level');\n\nexport type StorageAcl = z.infer<typeof StorageAclSchema>;\n\n/**\n * Storage Class / Tier\n * \n * Different storage tiers for cost optimization.\n * Maps to provider-specific storage classes.\n */\nexport const StorageClassSchema = z.enum([\n 'standard', // Standard/hot storage for frequently accessed data\n 'intelligent', // Intelligent tiering (auto-moves between hot/cool)\n 'infrequent_access', // Infrequent access/cool storage\n 'glacier', // Archive/cold storage (slower retrieval)\n 'deep_archive', // Deep archive (cheapest, slowest retrieval)\n]).describe('Storage class/tier for cost optimization');\n\nexport type StorageClass = z.infer<typeof StorageClassSchema>;\n\n/**\n * Lifecycle Transition Action\n */\nexport const LifecycleActionSchema = z.enum([\n 'transition', // Move to different storage class\n 'delete', // Delete the object\n 'abort', // Abort incomplete multipart uploads\n]).describe('Lifecycle policy action type');\n\nexport type LifecycleAction = z.infer<typeof LifecycleActionSchema>;\n\n// ============================================================================\n// Configuration Schemas\n// ============================================================================\n\n/**\n * Object Metadata Schema\n * \n * Standard and custom metadata attached to stored objects.\n * \n * @example\n * {\n * contentType: 'image/jpeg',\n * contentLength: 1024000,\n * etag: '\"abc123\"',\n * lastModified: new Date('2024-01-01'),\n * custom: {\n * uploadedBy: 'user123',\n * department: 'marketing'\n * }\n * }\n */\nexport const ObjectMetadataSchema = z.object({\n contentType: z.string().describe('MIME type (e.g., image/jpeg, application/pdf)'),\n contentLength: z.number().min(0).describe('File size in bytes'),\n contentEncoding: z.string().optional().describe('Content encoding (e.g., gzip)'),\n contentDisposition: z.string().optional().describe('Content disposition header'),\n contentLanguage: z.string().optional().describe('Content language'),\n cacheControl: z.string().optional().describe('Cache control directives'),\n etag: z.string().optional().describe('Entity tag for versioning/caching'),\n lastModified: z.string().datetime().optional().describe('Last modification timestamp'),\n versionId: z.string().optional().describe('Object version identifier'),\n storageClass: StorageClassSchema.optional().describe('Storage class/tier'),\n encryption: z.object({\n algorithm: z.string().describe('Encryption algorithm (e.g., AES256, aws:kms)'),\n keyId: z.string().optional().describe('KMS key ID if using managed encryption'),\n }).optional().describe('Server-side encryption configuration'),\n custom: z.record(z.string(), z.string()).optional().describe('Custom user-defined metadata'),\n});\n\nexport type ObjectMetadata = z.infer<typeof ObjectMetadataSchema>;\n\n/**\n * Presigned URL Configuration\n * \n * Configuration for generating temporary URLs for direct access to objects.\n * Useful for secure file uploads/downloads without exposing credentials.\n * \n * @example\n * // Generate download URL valid for 1 hour\n * {\n * operation: 'get',\n * expiresIn: 3600,\n * contentType: 'image/jpeg'\n * }\n * \n * @example\n * // Generate upload URL valid for 15 minutes with size limit\n * {\n * operation: 'put',\n * expiresIn: 900,\n * contentType: 'application/pdf',\n * maxSize: 10485760\n * }\n */\nexport const PresignedUrlConfigSchema = z.object({\n operation: z.enum(['get', 'put', 'delete', 'head']).describe('Allowed operation'),\n expiresIn: z.number().min(1).max(604800).describe('Expiration time in seconds (max 7 days)'),\n contentType: z.string().optional().describe('Required content type for PUT operations'),\n maxSize: z.number().min(0).optional().describe('Maximum file size in bytes for PUT operations'),\n responseContentType: z.string().optional().describe('Override content-type for GET operations'),\n responseContentDisposition: z.string().optional().describe('Override content-disposition for GET operations'),\n});\n\nexport type PresignedUrlConfig = z.infer<typeof PresignedUrlConfigSchema>;\n\n/**\n * Multipart Upload Configuration\n * \n * Configuration for chunked uploads of large files.\n * Enables resumable uploads and parallel transfer.\n * \n * @example\n * // Enable multipart for files > 100MB with 10MB chunks\n * {\n * enabled: true,\n * partSize: 10485760,\n * maxParts: 10000,\n * threshold: 104857600,\n * maxConcurrent: 4\n * }\n */\nexport const MultipartUploadConfigSchema = z.object({\n enabled: z.boolean().default(true).describe('Enable multipart uploads'),\n partSize: z.number().min(5 * 1024 * 1024).max(5 * 1024 * 1024 * 1024).default(10 * 1024 * 1024).describe('Part size in bytes (min 5MB, max 5GB)'),\n maxParts: z.number().min(1).max(10000).default(10000).describe('Maximum number of parts (max 10,000)'),\n threshold: z.number().min(0).default(100 * 1024 * 1024).describe('File size threshold to trigger multipart upload (bytes)'),\n maxConcurrent: z.number().min(1).max(100).default(4).describe('Maximum concurrent part uploads'),\n abortIncompleteAfterDays: z.number().min(1).optional().describe('Auto-abort incomplete uploads after N days'),\n});\n\nexport type MultipartUploadConfig = z.infer<typeof MultipartUploadConfigSchema>;\n\n/**\n * Access Control Configuration\n * \n * Fine-grained access control for buckets and objects.\n * \n * @example\n * {\n * acl: 'private',\n * allowedOrigins: ['https://app.example.com'],\n * allowedMethods: ['GET', 'PUT'],\n * corsEnabled: true,\n * publicAccess: {\n * allowPublicRead: false,\n * allowPublicWrite: false\n * }\n * }\n */\nexport const AccessControlConfigSchema = z.object({\n acl: StorageAclSchema.default('private').describe('Default access control level'),\n allowedOrigins: z.array(z.string()).optional().describe('CORS allowed origins'),\n allowedMethods: z.array(z.enum(['GET', 'PUT', 'POST', 'DELETE', 'HEAD'])).optional().describe('CORS allowed HTTP methods'),\n allowedHeaders: z.array(z.string()).optional().describe('CORS allowed headers'),\n exposeHeaders: z.array(z.string()).optional().describe('CORS exposed headers'),\n maxAge: z.number().min(0).optional().describe('CORS preflight cache duration in seconds'),\n corsEnabled: z.boolean().default(false).describe('Enable CORS configuration'),\n publicAccess: z.object({\n allowPublicRead: z.boolean().default(false).describe('Allow public read access'),\n allowPublicWrite: z.boolean().default(false).describe('Allow public write access'),\n allowPublicList: z.boolean().default(false).describe('Allow public bucket listing'),\n }).optional().describe('Public access control'),\n allowedIps: z.array(z.string()).optional().describe('Allowed IP addresses/CIDR blocks'),\n blockedIps: z.array(z.string()).optional().describe('Blocked IP addresses/CIDR blocks'),\n});\n\nexport type AccessControlConfig = z.infer<typeof AccessControlConfigSchema>;\n\n/**\n * Lifecycle Policy Rule\n * \n * Individual rule for automatic object lifecycle management.\n * \n * @example\n * // Transition to infrequent access after 30 days\n * {\n * id: 'move_to_ia',\n * enabled: true,\n * action: 'transition',\n * daysAfterCreation: 30,\n * targetStorageClass: 'infrequent_access'\n * }\n * \n * @example\n * // Delete objects after 365 days\n * {\n * id: 'delete_old',\n * enabled: true,\n * action: 'delete',\n * daysAfterCreation: 365\n * }\n */\nexport const LifecyclePolicyRuleSchema = z.object({\n id: SystemIdentifierSchema.describe('Rule identifier'),\n enabled: z.boolean().default(true).describe('Enable this rule'),\n action: LifecycleActionSchema.describe('Action to perform'),\n prefix: z.string().optional().describe('Object key prefix filter (e.g., \"uploads/\")'),\n tags: z.record(z.string(), z.string()).optional().describe('Object tag filters'),\n daysAfterCreation: z.number().min(0).optional().describe('Days after object creation'),\n daysAfterModification: z.number().min(0).optional().describe('Days after last modification'),\n targetStorageClass: StorageClassSchema.optional().describe('Target storage class for transition action'),\n}).refine((data) => {\n // Validate that transition action has targetStorageClass\n if (data.action === 'transition' && !data.targetStorageClass) {\n return false;\n }\n return true;\n}, {\n message: 'targetStorageClass is required when action is \"transition\"',\n});\n\nexport type LifecyclePolicyRule = z.infer<typeof LifecyclePolicyRuleSchema>;\n\n/**\n * Lifecycle Policy Configuration\n * \n * Collection of lifecycle rules for automatic data management.\n * \n * @example\n * {\n * enabled: true,\n * rules: [\n * {\n * id: 'archive_old_files',\n * enabled: true,\n * action: 'transition',\n * daysAfterCreation: 90,\n * targetStorageClass: 'glacier'\n * },\n * {\n * id: 'delete_temp_files',\n * enabled: true,\n * action: 'delete',\n * prefix: 'temp/',\n * daysAfterCreation: 7\n * }\n * ]\n * }\n */\nexport const LifecyclePolicyConfigSchema = z.object({\n enabled: z.boolean().default(false).describe('Enable lifecycle policies'),\n rules: z.array(LifecyclePolicyRuleSchema).default([]).describe('Lifecycle rules'),\n});\n\nexport type LifecyclePolicyConfig = z.infer<typeof LifecyclePolicyConfigSchema>;\n\n/**\n * Bucket Configuration Schema\n * \n * Comprehensive configuration for a storage bucket/container.\n * \n * @example\n * {\n * name: 'user_uploads',\n * label: 'User Uploads',\n * bucketName: 'my-app-uploads',\n * region: 'us-east-1',\n * provider: 's3',\n * versioning: true,\n * accessControl: {\n * acl: 'private',\n * corsEnabled: true,\n * allowedOrigins: ['https://app.example.com']\n * },\n * multipartConfig: {\n * enabled: true,\n * threshold: 104857600\n * }\n * }\n */\nexport const BucketConfigSchema = z.object({\n name: SystemIdentifierSchema.describe('Bucket identifier in ObjectStack (snake_case)'),\n label: z.string().describe('Display label'),\n bucketName: z.string().describe('Actual bucket/container name in storage provider'),\n region: z.string().optional().describe('Storage region (e.g., us-east-1, westus)'),\n provider: StorageProviderSchema.describe('Storage provider'),\n endpoint: z.string().optional().describe('Custom endpoint URL (for S3-compatible providers)'),\n pathStyle: z.boolean().default(false).describe('Use path-style URLs (for S3-compatible providers)'),\n \n versioning: z.boolean().default(false).describe('Enable object versioning'),\n encryption: z.object({\n enabled: z.boolean().default(false).describe('Enable server-side encryption'),\n algorithm: z.enum(['AES256', 'aws:kms', 'azure:kms', 'gcp:kms']).default('AES256').describe('Encryption algorithm'),\n kmsKeyId: z.string().optional().describe('KMS key ID for managed encryption'),\n }).optional().describe('Server-side encryption configuration'),\n \n accessControl: AccessControlConfigSchema.optional().describe('Access control configuration'),\n lifecyclePolicy: LifecyclePolicyConfigSchema.optional().describe('Lifecycle policy configuration'),\n multipartConfig: MultipartUploadConfigSchema.optional().describe('Multipart upload configuration'),\n \n tags: z.record(z.string(), z.string()).optional().describe('Bucket tags for organization'),\n description: z.string().optional().describe('Bucket description'),\n enabled: z.boolean().default(true).describe('Enable this bucket'),\n});\n\nexport type BucketConfig = z.infer<typeof BucketConfigSchema>;\n\n/**\n * Storage Connection Configuration\n * \n * Provider-specific connection credentials and settings.\n * \n * @example S3\n * {\n * accessKeyId: '${AWS_ACCESS_KEY_ID}',\n * secretAccessKey: '${AWS_SECRET_ACCESS_KEY}',\n * sessionToken: '${AWS_SESSION_TOKEN}',\n * region: 'us-east-1'\n * }\n * \n * @example Azure\n * {\n * accountName: 'mystorageaccount',\n * accountKey: '${AZURE_STORAGE_KEY}',\n * endpoint: 'https://mystorageaccount.blob.core.windows.net'\n * }\n */\nexport const StorageConnectionSchema = z.object({\n // AWS S3 / MinIO\n accessKeyId: z.string().optional().describe('AWS access key ID or MinIO access key'),\n secretAccessKey: z.string().optional().describe('AWS secret access key or MinIO secret key'),\n sessionToken: z.string().optional().describe('AWS session token for temporary credentials'),\n \n // Azure Blob Storage\n accountName: z.string().optional().describe('Azure storage account name'),\n accountKey: z.string().optional().describe('Azure storage account key'),\n sasToken: z.string().optional().describe('Azure SAS token'),\n \n // Google Cloud Storage\n projectId: z.string().optional().describe('GCP project ID'),\n credentials: z.string().optional().describe('GCP service account credentials JSON'),\n \n // Common\n endpoint: z.string().optional().describe('Custom endpoint URL'),\n region: z.string().optional().describe('Default region'),\n useSSL: z.boolean().default(true).describe('Use SSL/TLS for connections'),\n timeout: z.number().min(0).optional().describe('Connection timeout in milliseconds'),\n});\n\nexport type StorageConnection = z.infer<typeof StorageConnectionSchema>;\n\n/**\n * Object Storage Configuration\n * \n * Complete object storage system configuration.\n * \n * @example\n * {\n * name: 'production_storage',\n * label: 'Production File Storage',\n * provider: 's3',\n * scope: 'global',\n * connection: {\n * accessKeyId: '${AWS_ACCESS_KEY_ID}',\n * secretAccessKey: '${AWS_SECRET_ACCESS_KEY}',\n * region: 'us-east-1'\n * },\n * buckets: [\n * {\n * name: 'user_uploads',\n * label: 'User Uploads',\n * bucketName: 'prod-uploads',\n * provider: 's3',\n * region: 'us-east-1'\n * }\n * ],\n * defaultBucket: 'user_uploads'\n * }\n */\nexport const ObjectStorageConfigSchema = z.object({\n name: SystemIdentifierSchema.describe('Storage configuration identifier'),\n label: z.string().describe('Display label'),\n provider: StorageProviderSchema.describe('Primary storage provider'),\n \n /**\n * Storage scope\n * Defines the lifecycle and access pattern for this storage\n */\n scope: StorageScopeSchema.optional().default('global').describe('Storage scope'),\n \n connection: StorageConnectionSchema.describe('Connection credentials'),\n buckets: z.array(BucketConfigSchema).default([]).describe('Configured buckets'),\n defaultBucket: z.string().optional().describe('Default bucket name for operations'),\n \n /**\n * Base path or location\n * For local/scoped storage configurations\n */\n location: z.string().optional().describe('Root path (local) or base location'),\n \n /**\n * Storage quota in bytes\n */\n quota: z.number().int().positive().optional().describe('Max size in bytes'),\n \n /**\n * Provider-specific options\n */\n options: z.record(z.string(), z.unknown()).optional().describe('Provider-specific configuration options'),\n \n enabled: z.boolean().default(true).describe('Enable this storage configuration'),\n description: z.string().optional().describe('Configuration description'),\n});\n\nexport type ObjectStorageConfig = z.infer<typeof ObjectStorageConfigSchema>;\n\n// ============================================================================\n// Helper Examples\n// ============================================================================\n\n/**\n * Example: AWS S3 Configuration\n */\nexport const s3StorageExample = ObjectStorageConfigSchema.parse({\n name: 'aws_s3_storage',\n label: 'AWS S3 Production Storage',\n provider: 's3',\n connection: {\n accessKeyId: '${AWS_ACCESS_KEY_ID}',\n secretAccessKey: '${AWS_SECRET_ACCESS_KEY}',\n region: 'us-east-1',\n },\n buckets: [\n {\n name: 'user_uploads',\n label: 'User Uploads',\n bucketName: 'my-app-user-uploads',\n region: 'us-east-1',\n provider: 's3',\n versioning: true,\n encryption: {\n enabled: true,\n algorithm: 'aws:kms',\n kmsKeyId: '${AWS_KMS_KEY_ID}',\n },\n accessControl: {\n acl: 'private',\n corsEnabled: true,\n allowedOrigins: ['https://app.example.com'],\n allowedMethods: ['GET', 'PUT', 'POST'],\n },\n lifecyclePolicy: {\n enabled: true,\n rules: [\n {\n id: 'archive_old_uploads',\n enabled: true,\n action: 'transition',\n daysAfterCreation: 90,\n targetStorageClass: 'glacier',\n },\n ],\n },\n multipartConfig: {\n enabled: true,\n partSize: 10 * 1024 * 1024,\n threshold: 100 * 1024 * 1024,\n maxConcurrent: 4,\n },\n },\n ],\n defaultBucket: 'user_uploads',\n enabled: true,\n});\n\n/**\n * Example: MinIO Configuration\n */\nexport const minioStorageExample = ObjectStorageConfigSchema.parse({\n name: 'minio_local',\n label: 'MinIO Local Storage',\n provider: 'minio',\n connection: {\n accessKeyId: 'minioadmin',\n secretAccessKey: 'minioadmin',\n endpoint: 'http://localhost:9000',\n useSSL: false,\n },\n buckets: [\n {\n name: 'development_files',\n label: 'Development Files',\n bucketName: 'dev-files',\n provider: 'minio',\n endpoint: 'http://localhost:9000',\n pathStyle: true,\n accessControl: {\n acl: 'private',\n },\n },\n ],\n defaultBucket: 'development_files',\n enabled: true,\n});\n\n/**\n * Example: Azure Blob Storage Configuration\n */\nexport const azureBlobStorageExample = ObjectStorageConfigSchema.parse({\n name: 'azure_blob_storage',\n label: 'Azure Blob Storage',\n provider: 'azure_blob',\n connection: {\n accountName: 'mystorageaccount',\n accountKey: '${AZURE_STORAGE_KEY}',\n endpoint: 'https://mystorageaccount.blob.core.windows.net',\n },\n buckets: [\n {\n name: 'media_files',\n label: 'Media Files',\n bucketName: 'media',\n provider: 'azure_blob',\n region: 'eastus',\n accessControl: {\n acl: 'public_read',\n publicAccess: {\n allowPublicRead: true,\n allowPublicWrite: false,\n allowPublicList: false,\n },\n },\n },\n ],\n defaultBucket: 'media_files',\n enabled: true,\n});\n\n/**\n * Example: Google Cloud Storage Configuration\n */\nexport const gcsStorageExample = ObjectStorageConfigSchema.parse({\n name: 'gcs_storage',\n label: 'Google Cloud Storage',\n provider: 'gcs',\n connection: {\n projectId: 'my-gcp-project',\n credentials: '${GCP_SERVICE_ACCOUNT_JSON}',\n },\n buckets: [\n {\n name: 'backup_storage',\n label: 'Backup Storage',\n bucketName: 'my-app-backups',\n region: 'us-central1',\n provider: 'gcs',\n lifecyclePolicy: {\n enabled: true,\n rules: [\n {\n id: 'delete_old_backups',\n enabled: true,\n action: 'delete',\n daysAfterCreation: 30,\n },\n ],\n },\n },\n ],\n defaultBucket: 'backup_storage',\n enabled: true,\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Full-text search protocol\n * Supports Elasticsearch, Algolia, Meilisearch, Typesense\n */\nexport const SearchProviderSchema = z.enum([\n 'elasticsearch',\n 'algolia',\n 'meilisearch',\n 'typesense',\n 'opensearch',\n]).describe('Supported full-text search engine provider');\n\nexport type SearchProvider = z.infer<typeof SearchProviderSchema>;\n\nexport const AnalyzerConfigSchema = z.object({\n type: z.enum(['standard', 'simple', 'whitespace', 'keyword', 'pattern', 'language']).describe('Text analyzer type'),\n language: z.string().optional().describe('Language for language-specific analysis'),\n stopwords: z.array(z.string()).optional().describe('Custom stopwords to filter during analysis'),\n customFilters: z.array(z.string()).optional().describe('Additional token filter names to apply'),\n}).describe('Text analyzer configuration for index tokenization and normalization');\n\nexport type AnalyzerConfig = z.infer<typeof AnalyzerConfigSchema>;\n\nexport const SearchIndexConfigSchema = z.object({\n indexName: z.string().describe('Name of the search index'),\n objectName: z.string().describe('Source ObjectQL object'),\n fields: z.array(z.object({\n name: z.string().describe('Field name to index'),\n type: z.enum(['text', 'keyword', 'number', 'date', 'boolean', 'geo']).describe('Index field data type'),\n analyzer: z.string().optional().describe('Named analyzer to use for this field'),\n searchable: z.boolean().default(true).describe('Include field in full-text search'),\n filterable: z.boolean().default(false).describe('Allow filtering on this field'),\n sortable: z.boolean().default(false).describe('Allow sorting by this field'),\n boost: z.number().default(1).describe('Relevance boost factor for this field'),\n })).describe('Fields to include in the search index'),\n replicas: z.number().default(1).describe('Number of index replicas for availability'),\n shards: z.number().default(1).describe('Number of index shards for distribution'),\n}).describe('Search index definition mapping an ObjectQL object to a search engine index');\n\nexport type SearchIndexConfig = z.infer<typeof SearchIndexConfigSchema>;\n\nexport const FacetConfigSchema = z.object({\n field: z.string().describe('Field name to generate facets from'),\n maxValues: z.number().default(10).describe('Maximum number of facet values to return'),\n sort: z.enum(['count', 'alpha']).default('count').describe('Facet value sort order'),\n}).describe('Faceted search configuration for a single field');\n\nexport type FacetConfig = z.infer<typeof FacetConfigSchema>;\n\nexport const SearchConfigSchema = z.object({\n provider: SearchProviderSchema.describe('Search engine backend provider'),\n indexes: z.array(SearchIndexConfigSchema).describe('Search index definitions'),\n analyzers: z.record(z.string(), AnalyzerConfigSchema).optional().describe('Named text analyzer configurations'),\n facets: z.array(FacetConfigSchema).optional().describe('Faceted search configurations'),\n typoTolerance: z.boolean().default(true).describe('Enable typo-tolerant search'),\n synonyms: z.record(z.string(), z.array(z.string())).optional().describe('Synonym mappings for search expansion'),\n ranking: z.array(z.enum(['typo', 'geo', 'words', 'filters', 'proximity', 'attribute', 'exact', 'custom'])).optional().describe('Custom ranking rule order'),\n}).describe('Top-level full-text search engine configuration');\n\nexport type SearchConfig = z.infer<typeof SearchConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Shared HTTP Schemas\n * \n * Common HTTP-related schemas used across API and System protocols.\n * These schemas ensure consistency across different parts of the stack.\n */\n\n// ==========================================\n// Basic HTTP Types\n// ==========================================\n\n/**\n * HTTP Method Enum\n */\nexport const HttpMethod = z.enum([\n 'GET', \n 'POST', \n 'PUT', \n 'DELETE', \n 'PATCH', \n 'HEAD', \n 'OPTIONS'\n]);\n\nexport type HttpMethod = z.infer<typeof HttpMethod>;\n\n/**\n * HTTP Method Schema (subset for UI/View data sources)\n * Common HTTP methods used in view data source configurations.\n * Migrated from ui/view.zod.ts to shared for reuse across modules.\n */\nexport const HttpMethodSchema = z.enum(['GET', 'POST', 'PUT', 'PATCH', 'DELETE']);\n\nexport type HttpMethodType = z.infer<typeof HttpMethodSchema>;\n\n/**\n * HTTP Request Configuration Schema\n * Defines a complete HTTP request configuration used by API data providers.\n * Migrated from ui/view.zod.ts to shared for reuse across modules.\n */\nexport const HttpRequestSchema = z.object({\n url: z.string().describe('API endpoint URL'),\n method: HttpMethodSchema.optional().default('GET').describe('HTTP method'),\n headers: z.record(z.string(), z.string()).optional().describe('Custom HTTP headers'),\n params: z.record(z.string(), z.unknown()).optional().describe('Query parameters'),\n body: z.unknown().optional().describe('Request body for POST/PUT/PATCH'),\n});\n\nexport type HttpRequest = z.infer<typeof HttpRequestSchema>;\n\n// ==========================================\n// CORS Configuration\n// ==========================================\n\n/**\n * CORS Configuration Schema\n * Cross-Origin Resource Sharing configuration\n * \n * Used by:\n * - api/router.zod.ts (RouterConfigSchema)\n * - system/http-server.zod.ts (HttpServerConfigSchema)\n * \n * @example\n * {\n * \"enabled\": true,\n * \"origins\": [\"http://localhost:3000\", \"https://app.example.com\"],\n * \"methods\": [\"GET\", \"POST\", \"PUT\", \"DELETE\"],\n * \"credentials\": true,\n * \"maxAge\": 86400\n * }\n */\nexport const CorsConfigSchema = z.object({\n /**\n * Enable CORS\n */\n enabled: z.boolean().default(true).describe('Enable CORS'),\n \n /**\n * Allowed origins (* for all)\n */\n origins: z.union([\n z.string(),\n z.array(z.string())\n ]).default('*').describe('Allowed origins (* for all)'),\n \n /**\n * Allowed HTTP methods\n */\n methods: z.array(HttpMethod).optional().describe('Allowed HTTP methods'),\n \n /**\n * Allow credentials (cookies, authorization headers)\n */\n credentials: z.boolean().default(false).describe('Allow credentials (cookies, authorization headers)'),\n \n /**\n * Preflight cache duration in seconds\n */\n maxAge: z.number().int().optional().describe('Preflight cache duration in seconds'),\n});\n\nexport type CorsConfig = z.infer<typeof CorsConfigSchema>;\n\n// ==========================================\n// Rate Limiting\n// ==========================================\n\n/**\n * Rate Limit Configuration Schema\n * \n * Used by:\n * - api/endpoint.zod.ts (ApiEndpointSchema)\n * - system/http-server.zod.ts (HttpServerConfigSchema)\n * \n * @example\n * {\n * \"enabled\": true,\n * \"windowMs\": 60000,\n * \"maxRequests\": 100\n * }\n */\nexport const RateLimitConfigSchema = z.object({\n /**\n * Enable rate limiting\n */\n enabled: z.boolean().default(false).describe('Enable rate limiting'),\n \n /**\n * Time window in milliseconds\n */\n windowMs: z.number().int().default(60000).describe('Time window in milliseconds'),\n \n /**\n * Max requests per window\n */\n maxRequests: z.number().int().default(100).describe('Max requests per window'),\n});\n\nexport type RateLimitConfig = z.infer<typeof RateLimitConfigSchema>;\n\n// ==========================================\n// Static File Serving\n// ==========================================\n\n/**\n * Static Mount Configuration Schema\n * Configuration for serving static files\n * \n * Used by:\n * - api/router.zod.ts (RouterConfigSchema)\n * - system/http-server.zod.ts (HttpServerConfigSchema)\n * \n * @example\n * {\n * \"path\": \"/static\",\n * \"directory\": \"./public\",\n * \"cacheControl\": \"public, max-age=31536000\"\n * }\n */\nexport const StaticMountSchema = z.object({\n /**\n * URL path to serve from\n */\n path: z.string().describe('URL path to serve from'),\n \n /**\n * Physical directory to serve\n */\n directory: z.string().describe('Physical directory to serve'),\n \n /**\n * Cache-Control header value\n */\n cacheControl: z.string().optional().describe('Cache-Control header value'),\n});\n\nexport type StaticMount = z.infer<typeof StaticMountSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { HttpMethod, CorsConfigSchema, RateLimitConfigSchema, StaticMountSchema } from '../shared/http.zod';\n\n/**\n * HTTP Server Protocol\n * \n * Defines the runtime HTTP server configuration and capabilities.\n * Provides abstractions for HTTP server implementations (Express, Fastify, Hono, etc.)\n * \n * Architecture alignment:\n * - Kubernetes: Service and Ingress resources\n * - AWS: API Gateway configuration\n * - Spring Boot: Application properties\n */\n\n// ==========================================\n// Server Configuration\n// ==========================================\n\n/**\n * HTTP Server Configuration Schema\n * Core configuration for HTTP server instances\n * \n * @example\n * {\n * \"port\": 3000,\n * \"host\": \"0.0.0.0\",\n * \"cors\": {\n * \"enabled\": true,\n * \"origins\": [\"http://localhost:3000\"]\n * },\n * \"compression\": true,\n * \"requestTimeout\": 30000\n * }\n */\nexport const HttpServerConfigSchema = z.object({\n /**\n * Server port number\n */\n port: z.number().int().min(1).max(65535).default(3000).describe('Port number to listen on'),\n \n /**\n * Server host address\n */\n host: z.string().default('0.0.0.0').describe('Host address to bind to'),\n \n /**\n * CORS configuration\n */\n cors: CorsConfigSchema.optional().describe('CORS configuration'),\n \n /**\n * Request handling options\n */\n requestTimeout: z.number().int().default(30000).describe('Request timeout in milliseconds'),\n bodyLimit: z.string().default('10mb').describe('Maximum request body size'),\n \n /**\n * Compression settings\n */\n compression: z.boolean().default(true).describe('Enable response compression'),\n \n /**\n * Security headers\n */\n security: z.object({\n helmet: z.boolean().default(true).describe('Enable security headers via helmet'),\n rateLimit: RateLimitConfigSchema.optional().describe('Global rate limiting configuration'),\n }).optional().describe('Security configuration'),\n \n /**\n * Static file serving\n */\n static: z.array(StaticMountSchema).optional().describe('Static file serving configuration'),\n \n /**\n * Trust proxy settings\n */\n trustProxy: z.boolean().default(false).describe('Trust X-Forwarded-* headers'),\n});\n\nexport type HttpServerConfig = z.infer<typeof HttpServerConfigSchema>;\nexport type HttpServerConfigInput = z.input<typeof HttpServerConfigSchema>;\n\n// ==========================================\n// Route Registration\n// ==========================================\n\n/**\n * Route Handler Metadata Schema\n * Metadata for route handlers used in registration\n */\nexport const RouteHandlerMetadataSchema = z.object({\n /**\n * HTTP method\n */\n method: HttpMethod.describe('HTTP method'),\n \n /**\n * URL path pattern (supports parameters like /api/users/:id)\n */\n path: z.string().describe('URL path pattern'),\n \n /**\n * Handler function name or identifier\n */\n handler: z.string().describe('Handler identifier or name'),\n \n /**\n * Route metadata\n */\n metadata: z.object({\n summary: z.string().optional().describe('Route summary for documentation'),\n description: z.string().optional().describe('Route description'),\n tags: z.array(z.string()).optional().describe('Tags for grouping'),\n operationId: z.string().optional().describe('Unique operation identifier'),\n }).optional(),\n \n /**\n * Security requirements\n */\n security: z.object({\n authRequired: z.boolean().default(true).describe('Require authentication'),\n permissions: z.array(z.string()).optional().describe('Required permissions'),\n rateLimit: z.string().optional().describe('Rate limit policy override'),\n }).optional(),\n});\n\nexport type RouteHandlerMetadata = z.infer<typeof RouteHandlerMetadataSchema>;\nexport type RouteHandlerMetadataInput = z.input<typeof RouteHandlerMetadataSchema>;\n\n// ==========================================\n// Middleware Configuration\n// ==========================================\n\n/**\n * Middleware Type Enum\n */\nexport const MiddlewareType = z.enum([\n 'authentication', // Authentication middleware\n 'authorization', // Authorization/permission checks\n 'logging', // Request/response logging\n 'validation', // Input validation\n 'transformation', // Request/response transformation\n 'error', // Error handling\n 'custom', // Custom middleware\n]);\n\nexport type MiddlewareType = z.infer<typeof MiddlewareType>;\n\n/**\n * Middleware Configuration Schema\n * Defines middleware execution order and configuration\n * \n * @example\n * {\n * \"name\": \"auth_middleware\",\n * \"type\": \"authentication\",\n * \"enabled\": true,\n * \"order\": 10,\n * \"config\": {\n * \"jwtSecret\": \"secret\",\n * \"excludePaths\": [\"/health\", \"/metrics\"]\n * }\n * }\n */\nexport const MiddlewareConfigSchema = z.object({\n /**\n * Middleware identifier\n */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Middleware name (snake_case)'),\n \n /**\n * Middleware type\n */\n type: MiddlewareType.describe('Middleware type'),\n \n /**\n * Enable/disable middleware\n */\n enabled: z.boolean().default(true).describe('Whether middleware is enabled'),\n \n /**\n * Execution order (lower numbers execute first)\n */\n order: z.number().int().default(100).describe('Execution order priority'),\n \n /**\n * Middleware-specific configuration\n */\n config: z.record(z.string(), z.unknown()).optional().describe('Middleware configuration object'),\n \n /**\n * Path patterns to apply middleware to\n */\n paths: z.object({\n include: z.array(z.string()).optional().describe('Include path patterns (glob)'),\n exclude: z.array(z.string()).optional().describe('Exclude path patterns (glob)'),\n }).optional().describe('Path filtering'),\n});\n\nexport type MiddlewareConfig = z.infer<typeof MiddlewareConfigSchema>;\nexport type MiddlewareConfigInput = z.input<typeof MiddlewareConfigSchema>;\n\n// ==========================================\n// Server Lifecycle Events\n// ==========================================\n\n/**\n * Server Event Type Enum\n */\nexport const ServerEventType = z.enum([\n 'starting', // Server is starting\n 'started', // Server has started and is listening\n 'stopping', // Server is stopping\n 'stopped', // Server has stopped\n 'request', // Request received\n 'response', // Response sent\n 'error', // Error occurred\n]);\n\nexport type ServerEventType = z.infer<typeof ServerEventType>;\n\n/**\n * Server Event Schema\n * Events emitted by the HTTP server during lifecycle\n */\nexport const ServerEventSchema = z.object({\n /**\n * Event type\n */\n type: ServerEventType.describe('Event type'),\n \n /**\n * Timestamp\n */\n timestamp: z.string().datetime().describe('Event timestamp (ISO 8601)'),\n \n /**\n * Event payload\n */\n data: z.record(z.string(), z.unknown()).optional().describe('Event-specific data'),\n});\n\nexport type ServerEvent = z.infer<typeof ServerEventSchema>;\n\n// ==========================================\n// Server Capability Declaration\n// ==========================================\n\n/**\n * Server Capabilities Schema\n * Declares what features a server implementation supports\n */\nexport const ServerCapabilitiesSchema = z.object({\n /**\n * Supported HTTP versions\n */\n httpVersions: z.array(z.enum(['1.0', '1.1', '2.0', '3.0'])).default(['1.1']).describe('Supported HTTP versions'),\n \n /**\n * WebSocket support\n */\n websocket: z.boolean().default(false).describe('WebSocket support'),\n \n /**\n * Server-Sent Events support\n */\n sse: z.boolean().default(false).describe('Server-Sent Events support'),\n \n /**\n * HTTP/2 Server Push\n */\n serverPush: z.boolean().default(false).describe('HTTP/2 Server Push support'),\n \n /**\n * Streaming support\n */\n streaming: z.boolean().default(true).describe('Response streaming support'),\n \n /**\n * Middleware support\n */\n middleware: z.boolean().default(true).describe('Middleware chain support'),\n \n /**\n * Route parameterization\n */\n routeParams: z.boolean().default(true).describe('URL parameter support (/users/:id)'),\n \n /**\n * Built-in compression\n */\n compression: z.boolean().default(true).describe('Built-in compression support'),\n});\n\nexport type ServerCapabilities = z.infer<typeof ServerCapabilitiesSchema>;\nexport type ServerCapabilitiesInput = z.input<typeof ServerCapabilitiesSchema>;\n\n// ==========================================\n// Server Status & Metrics\n// ==========================================\n\n/**\n * Server Status Schema\n * Current operational status of the server\n */\nexport const ServerStatusSchema = z.object({\n /**\n * Server state\n */\n state: z.enum(['stopped', 'starting', 'running', 'stopping', 'error']).describe('Current server state'),\n \n /**\n * Uptime in milliseconds\n */\n uptime: z.number().int().optional().describe('Server uptime in milliseconds'),\n \n /**\n * Server information\n */\n server: z.object({\n port: z.number().int().describe('Listening port'),\n host: z.string().describe('Bound host'),\n url: z.string().optional().describe('Full server URL'),\n }).optional(),\n \n /**\n * Connection metrics\n */\n connections: z.object({\n active: z.number().int().describe('Active connections'),\n total: z.number().int().describe('Total connections handled'),\n }).optional(),\n \n /**\n * Request metrics\n */\n requests: z.object({\n total: z.number().int().describe('Total requests processed'),\n success: z.number().int().describe('Successful requests'),\n errors: z.number().int().describe('Failed requests'),\n }).optional(),\n});\n\nexport type ServerStatus = z.infer<typeof ServerStatusSchema>;\n\n// ==========================================\n// Helper Functions\n// ==========================================\n\n/**\n * Helper to create HTTP server configuration\n */\nexport const HttpServerConfig = Object.assign(HttpServerConfigSchema, {\n create: <T extends z.input<typeof HttpServerConfigSchema>>(config: T) => config,\n});\n\n/**\n * Helper to create middleware configuration\n */\nexport const MiddlewareConfig = Object.assign(MiddlewareConfigSchema, {\n create: <T extends z.input<typeof MiddlewareConfigSchema>>(config: T) => config,\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Audit Log Architecture\n * \n * Comprehensive audit logging system for compliance and security.\n * Supports SOX, HIPAA, GDPR, and other regulatory requirements.\n * \n * Features:\n * - Records all CRUD operations on data\n * - Tracks authentication events (login, logout, password reset)\n * - Monitors authorization changes (permissions, roles)\n * - Configurable retention policies (180-day GDPR requirement)\n * - Suspicious activity detection and alerting\n */\n\n/**\n * Audit Event Type Enum\n * Categorizes different types of auditable events in the system\n */\nexport const AuditEventType = z.enum([\n // Data Operations (CRUD)\n 'data.create', // Record creation\n 'data.read', // Record retrieval/viewing\n 'data.update', // Record modification\n 'data.delete', // Record deletion\n 'data.export', // Data export operations\n 'data.import', // Data import operations\n 'data.bulk_update', // Bulk update operations\n 'data.bulk_delete', // Bulk delete operations\n \n // Authentication Events\n 'auth.login', // Successful login\n 'auth.login_failed', // Failed login attempt\n 'auth.logout', // User logout\n 'auth.session_created', // New session created\n 'auth.session_expired', // Session expiration\n 'auth.password_reset', // Password reset initiated\n 'auth.password_changed', // Password successfully changed\n 'auth.email_verified', // Email verification completed\n 'auth.mfa_enabled', // Multi-factor auth enabled\n 'auth.mfa_disabled', // Multi-factor auth disabled\n 'auth.account_locked', // Account locked (too many failures)\n 'auth.account_unlocked', // Account unlocked\n \n // Authorization Events\n 'authz.permission_granted', // Permission granted to user\n 'authz.permission_revoked', // Permission revoked from user\n 'authz.role_assigned', // Role assigned to user\n 'authz.role_removed', // Role removed from user\n 'authz.role_created', // New role created\n 'authz.role_updated', // Role permissions modified\n 'authz.role_deleted', // Role deleted\n 'authz.policy_created', // Security policy created\n 'authz.policy_updated', // Security policy updated\n 'authz.policy_deleted', // Security policy deleted\n \n // System Events\n 'system.config_changed', // System configuration modified\n 'system.plugin_installed', // Plugin installed\n 'system.plugin_uninstalled', // Plugin uninstalled\n 'system.backup_created', // Backup created\n 'system.backup_restored', // Backup restored\n 'system.integration_added', // External integration added\n 'system.integration_removed',// External integration removed\n \n // Security Events\n 'security.access_denied', // Access denied (authorization failure)\n 'security.suspicious_activity', // Suspicious activity detected\n 'security.data_breach', // Potential data breach detected\n 'security.api_key_created', // API key created\n 'security.api_key_revoked', // API key revoked\n]);\n\nexport type AuditEventType = z.infer<typeof AuditEventType>;\n\n/**\n * Audit Event Severity Level\n * Indicates the importance/criticality of an audit event\n */\nexport const AuditEventSeverity = z.enum([\n 'debug', // Diagnostic information\n 'info', // Informational events (normal operations)\n 'notice', // Normal but significant events\n 'warning', // Warning conditions\n 'error', // Error conditions\n 'critical', // Critical conditions requiring immediate attention\n 'alert', // Action must be taken immediately\n 'emergency', // System is unusable\n]);\n\nexport type AuditEventSeverity = z.infer<typeof AuditEventSeverity>;\n\n/**\n * Audit Event Actor Schema\n * Identifies who/what performed the action\n */\nexport const AuditEventActorSchema = z.object({\n /**\n * Actor type (user, system, service, api_client, etc.)\n */\n type: z.enum(['user', 'system', 'service', 'api_client', 'integration']).describe('Actor type'),\n \n /**\n * Unique identifier for the actor\n */\n id: z.string().describe('Actor identifier'),\n \n /**\n * Display name of the actor\n */\n name: z.string().optional().describe('Actor display name'),\n \n /**\n * Email address (for user actors)\n */\n email: z.string().email().optional().describe('Actor email address'),\n \n /**\n * IP address of the actor\n */\n ipAddress: z.string().optional().describe('Actor IP address'),\n \n /**\n * User agent string (for web/API requests)\n */\n userAgent: z.string().optional().describe('User agent string'),\n});\n\nexport type AuditEventActor = z.infer<typeof AuditEventActorSchema>;\n\n/**\n * Audit Event Target Schema\n * Identifies what was acted upon\n */\nexport const AuditEventTargetSchema = z.object({\n /**\n * Target type (e.g., 'object', 'record', 'user', 'role', 'config')\n */\n type: z.string().describe('Target type'),\n \n /**\n * Unique identifier for the target\n */\n id: z.string().describe('Target identifier'),\n \n /**\n * Display name of the target\n */\n name: z.string().optional().describe('Target display name'),\n \n /**\n * Additional metadata about the target\n */\n metadata: z.record(z.string(), z.unknown()).optional().describe('Target metadata'),\n});\n\nexport type AuditEventTarget = z.infer<typeof AuditEventTargetSchema>;\n\n/**\n * Audit Event Change Schema\n * Describes what changed (for update operations)\n */\nexport const AuditEventChangeSchema = z.object({\n /**\n * Field/property that changed\n */\n field: z.string().describe('Changed field name'),\n \n /**\n * Value before the change\n */\n oldValue: z.unknown().optional().describe('Previous value'),\n \n /**\n * Value after the change\n */\n newValue: z.unknown().optional().describe('New value'),\n});\n\nexport type AuditEventChange = z.infer<typeof AuditEventChangeSchema>;\n\n/**\n * Audit Event Schema\n * Complete audit event record\n */\nexport const AuditEventSchema = z.object({\n /**\n * Unique identifier for this audit event\n */\n id: z.string().describe('Audit event ID'),\n \n /**\n * Type of event being audited\n */\n eventType: AuditEventType.describe('Event type'),\n \n /**\n * Severity level of the event\n */\n severity: AuditEventSeverity.default('info').describe('Event severity'),\n \n /**\n * Timestamp when the event occurred (ISO 8601)\n */\n timestamp: z.string().datetime().describe('Event timestamp'),\n \n /**\n * Who/what performed the action\n */\n actor: AuditEventActorSchema.describe('Event actor'),\n \n /**\n * What was acted upon\n */\n target: AuditEventTargetSchema.optional().describe('Event target'),\n \n /**\n * Human-readable description of the action\n */\n description: z.string().describe('Event description'),\n \n /**\n * Detailed changes (for update operations)\n */\n changes: z.array(AuditEventChangeSchema).optional().describe('List of changes'),\n \n /**\n * Result of the action (success, failure, partial)\n */\n result: z.enum(['success', 'failure', 'partial']).default('success').describe('Action result'),\n \n /**\n * Error message (if result is failure)\n */\n errorMessage: z.string().optional().describe('Error message'),\n \n /**\n * Tenant identifier (for multi-tenant systems)\n */\n tenantId: z.string().optional().describe('Tenant identifier'),\n \n /**\n * Request/trace ID for correlation\n */\n requestId: z.string().optional().describe('Request ID for tracing'),\n \n /**\n * Additional context and metadata\n */\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata'),\n \n /**\n * Geographic location (if available)\n */\n location: z.object({\n country: z.string().optional(),\n region: z.string().optional(),\n city: z.string().optional(),\n }).optional().describe('Geographic location'),\n});\n\nexport type AuditEvent = z.infer<typeof AuditEventSchema>;\n\n/**\n * Audit Retention Policy Schema\n * Defines how long audit logs are retained\n */\nexport const AuditRetentionPolicySchema = z.object({\n /**\n * Retention period in days\n * Default: 180 days (GDPR 6-month requirement)\n */\n retentionDays: z.number().int().min(1).default(180).describe('Retention period in days'),\n \n /**\n * Whether to archive logs after retention period\n * If true, logs are moved to cold storage; if false, they are deleted\n */\n archiveAfterRetention: z.boolean().default(true).describe('Archive logs after retention period'),\n \n /**\n * Archive storage configuration\n */\n archiveStorage: z.object({\n type: z.enum(['s3', 'gcs', 'azure_blob', 'filesystem']).describe('Archive storage type'),\n endpoint: z.string().optional().describe('Storage endpoint URL'),\n bucket: z.string().optional().describe('Storage bucket/container name'),\n path: z.string().optional().describe('Storage path prefix'),\n credentials: z.record(z.string(), z.unknown()).optional().describe('Storage credentials'),\n }).optional().describe('Archive storage configuration'),\n \n /**\n * Event types that have different retention periods\n * Overrides the default retentionDays for specific event types\n */\n customRetention: z.record(z.string(), z.number().int().positive()).optional().describe('Custom retention by event type'),\n \n /**\n * Minimum retention period for compliance\n * Prevents accidental deletion below compliance requirements\n */\n minimumRetentionDays: z.number().int().positive().optional().describe('Minimum retention for compliance'),\n});\n\nexport type AuditRetentionPolicy = z.infer<typeof AuditRetentionPolicySchema>;\n\n/**\n * Suspicious Activity Rule Schema\n * Defines rules for detecting suspicious activities\n */\nexport const SuspiciousActivityRuleSchema = z.object({\n /**\n * Unique identifier for the rule\n */\n id: z.string().describe('Rule identifier'),\n \n /**\n * Rule name\n */\n name: z.string().describe('Rule name'),\n \n /**\n * Rule description\n */\n description: z.string().optional().describe('Rule description'),\n \n /**\n * Whether the rule is enabled\n */\n enabled: z.boolean().default(true).describe('Rule enabled status'),\n \n /**\n * Event types to monitor\n */\n eventTypes: z.array(AuditEventType).describe('Event types to monitor'),\n \n /**\n * Detection condition\n */\n condition: z.object({\n /**\n * Number of events that trigger the rule\n */\n threshold: z.number().int().positive().describe('Event threshold'),\n \n /**\n * Time window in seconds\n */\n windowSeconds: z.number().int().positive().describe('Time window in seconds'),\n \n /**\n * Grouping criteria (e.g., by actor.id, by ipAddress)\n */\n groupBy: z.array(z.string()).optional().describe('Grouping criteria'),\n \n /**\n * Additional filters\n */\n filters: z.record(z.string(), z.unknown()).optional().describe('Additional filters'),\n }).describe('Detection condition'),\n \n /**\n * Actions to take when rule is triggered\n */\n actions: z.array(z.enum([\n 'alert', // Send alert notification\n 'lock_account', // Lock the user account\n 'block_ip', // Block the IP address\n 'require_mfa', // Require multi-factor authentication\n 'log_critical', // Log as critical event\n 'webhook', // Call webhook\n ])).describe('Actions to take'),\n \n /**\n * Severity level for triggered alerts\n */\n alertSeverity: AuditEventSeverity.default('warning').describe('Alert severity'),\n \n /**\n * Notification configuration\n */\n notifications: z.object({\n /**\n * Email addresses to notify\n */\n email: z.array(z.string().email()).optional().describe('Email recipients'),\n \n /**\n * Slack webhook URL\n */\n slack: z.string().url().optional().describe('Slack webhook URL'),\n \n /**\n * Custom webhook URL\n */\n webhook: z.string().url().optional().describe('Custom webhook URL'),\n }).optional().describe('Notification configuration'),\n});\n\nexport type SuspiciousActivityRule = z.infer<typeof SuspiciousActivityRuleSchema>;\n\n/**\n * Audit Log Storage Configuration\n * Defines where and how audit logs are stored\n */\nexport const AuditStorageConfigSchema = z.object({\n /**\n * Storage backend type\n */\n type: z.enum([\n 'database', // Store in database (PostgreSQL, MySQL, etc.)\n 'elasticsearch', // Store in Elasticsearch\n 'mongodb', // Store in MongoDB\n 'clickhouse', // Store in ClickHouse (for analytics)\n 's3', // Store in S3-compatible storage\n 'gcs', // Store in Google Cloud Storage\n 'azure_blob', // Store in Azure Blob Storage\n 'custom', // Custom storage implementation\n ]).describe('Storage backend type'),\n \n /**\n * Connection string or configuration\n */\n connectionString: z.string().optional().describe('Connection string'),\n \n /**\n * Storage configuration\n */\n config: z.record(z.string(), z.unknown()).optional().describe('Storage-specific configuration'),\n \n /**\n * Whether to enable buffering/batching\n */\n bufferEnabled: z.boolean().default(true).describe('Enable buffering'),\n \n /**\n * Buffer size (number of events before flush)\n */\n bufferSize: z.number().int().positive().default(100).describe('Buffer size'),\n \n /**\n * Buffer flush interval in seconds\n */\n flushIntervalSeconds: z.number().int().positive().default(5).describe('Flush interval in seconds'),\n \n /**\n * Whether to compress stored data\n */\n compression: z.boolean().default(true).describe('Enable compression'),\n});\n\nexport type AuditStorageConfig = z.infer<typeof AuditStorageConfigSchema>;\n\n/**\n * Audit Event Filter Schema\n * Defines filters for querying audit events\n */\nexport const AuditEventFilterSchema = z.object({\n /**\n * Filter by event types\n */\n eventTypes: z.array(AuditEventType).optional().describe('Event types to include'),\n \n /**\n * Filter by severity levels\n */\n severities: z.array(AuditEventSeverity).optional().describe('Severity levels to include'),\n \n /**\n * Filter by actor ID\n */\n actorId: z.string().optional().describe('Actor identifier'),\n \n /**\n * Filter by tenant ID\n */\n tenantId: z.string().optional().describe('Tenant identifier'),\n \n /**\n * Filter by time range\n */\n timeRange: z.object({\n from: z.string().datetime().describe('Start time'),\n to: z.string().datetime().describe('End time'),\n }).optional().describe('Time range filter'),\n \n /**\n * Filter by result status\n */\n result: z.enum(['success', 'failure', 'partial']).optional().describe('Result status'),\n \n /**\n * Search query (full-text search)\n */\n searchQuery: z.string().optional().describe('Search query'),\n \n /**\n * Custom filters\n */\n customFilters: z.record(z.string(), z.unknown()).optional().describe('Custom filters'),\n});\n\nexport type AuditEventFilter = z.infer<typeof AuditEventFilterSchema>;\n\n/**\n * Complete Audit Configuration Schema\n * Main configuration for the audit system\n */\nexport const AuditConfigSchema = z.object({\n /**\n * Unique identifier for this audit configuration\n * Must be in snake_case following ObjectStack conventions\n * Maximum length: 64 characters\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .max(64)\n .describe('Configuration name (snake_case, max 64 chars)'),\n \n /**\n * Human-readable label\n */\n label: z.string().describe('Display label'),\n \n /**\n * Whether audit logging is enabled\n */\n enabled: z.boolean().default(true).describe('Enable audit logging'),\n \n /**\n * Event types to audit\n * If not specified, all event types are audited\n */\n eventTypes: z.array(AuditEventType).optional().describe('Event types to audit'),\n \n /**\n * Event types to exclude from auditing\n */\n excludeEventTypes: z.array(AuditEventType).optional().describe('Event types to exclude'),\n \n /**\n * Minimum severity level to log\n * Events below this level are not logged\n */\n minimumSeverity: AuditEventSeverity.default('info').describe('Minimum severity level'),\n \n /**\n * Storage configuration\n */\n storage: AuditStorageConfigSchema.describe('Storage configuration'),\n \n /**\n * Retention policy\n */\n retentionPolicy: AuditRetentionPolicySchema.optional().describe('Retention policy'),\n \n /**\n * Suspicious activity detection rules\n */\n suspiciousActivityRules: z.array(SuspiciousActivityRuleSchema).default([]).describe('Suspicious activity rules'),\n \n /**\n * Whether to include sensitive data in audit logs\n * If false, sensitive fields are redacted/masked\n */\n includeSensitiveData: z.boolean().default(false).describe('Include sensitive data'),\n \n /**\n * Fields to redact from audit logs\n */\n redactFields: z.array(z.string()).default([\n 'password',\n 'passwordHash',\n 'token',\n 'apiKey',\n 'secret',\n 'creditCard',\n 'ssn',\n ]).describe('Fields to redact'),\n \n /**\n * Whether to log successful read operations\n * Can be disabled to reduce log volume\n */\n logReads: z.boolean().default(false).describe('Log read operations'),\n \n /**\n * Sampling rate for read operations (0.0 to 1.0)\n * Only applies if logReads is true\n */\n readSamplingRate: z.number().min(0).max(1).default(0.1).describe('Read sampling rate'),\n \n /**\n * Whether to log system/internal operations\n */\n logSystemEvents: z.boolean().default(true).describe('Log system events'),\n \n /**\n * Custom audit event handlers\n * Note: Function handlers are for runtime configuration only and will not be serialized to JSON Schema\n */\n customHandlers: z.array(z.object({\n eventType: AuditEventType.describe('Event type to handle'),\n handlerId: z.string().describe('Unique identifier for the handler'),\n })).optional().describe('Custom event handler references'),\n \n /**\n * Compliance mode configuration\n */\n compliance: z.object({\n /**\n * Compliance standards to enforce\n */\n standards: z.array(z.enum([\n 'sox', // Sarbanes-Oxley Act\n 'hipaa', // Health Insurance Portability and Accountability Act\n 'gdpr', // General Data Protection Regulation\n 'pci_dss', // Payment Card Industry Data Security Standard\n 'iso_27001',// ISO/IEC 27001\n 'fedramp', // Federal Risk and Authorization Management Program\n ])).optional().describe('Compliance standards'),\n \n /**\n * Whether to enforce immutable audit logs\n */\n immutableLogs: z.boolean().default(true).describe('Enforce immutable logs'),\n \n /**\n * Whether to require cryptographic signing\n */\n requireSigning: z.boolean().default(false).describe('Require log signing'),\n \n /**\n * Signing key configuration\n */\n signingKey: z.string().optional().describe('Signing key'),\n }).optional().describe('Compliance configuration'),\n});\n\nexport type AuditConfig = z.infer<typeof AuditConfigSchema>;\n\n/**\n * Default suspicious activity rules\n * Common security patterns to detect\n */\nexport const DEFAULT_SUSPICIOUS_ACTIVITY_RULES: SuspiciousActivityRule[] = [\n {\n id: 'multiple_failed_logins',\n name: 'Multiple Failed Login Attempts',\n description: 'Detects multiple failed login attempts from the same user or IP',\n enabled: true,\n eventTypes: ['auth.login_failed'],\n condition: {\n threshold: 5,\n windowSeconds: 600, // 10 minutes\n groupBy: ['actor.id', 'actor.ipAddress'],\n },\n actions: ['alert', 'lock_account'],\n alertSeverity: 'warning',\n },\n {\n id: 'bulk_data_export',\n name: 'Bulk Data Export',\n description: 'Detects large data export operations',\n enabled: true,\n eventTypes: ['data.export'],\n condition: {\n threshold: 3,\n windowSeconds: 3600, // 1 hour\n groupBy: ['actor.id'],\n },\n actions: ['alert', 'log_critical'],\n alertSeverity: 'warning',\n },\n {\n id: 'suspicious_permission_changes',\n name: 'Rapid Permission Changes',\n description: 'Detects rapid permission or role changes',\n enabled: true,\n eventTypes: ['authz.permission_granted', 'authz.role_assigned'],\n condition: {\n threshold: 10,\n windowSeconds: 300, // 5 minutes\n groupBy: ['actor.id'],\n },\n actions: ['alert', 'log_critical'],\n alertSeverity: 'critical',\n },\n {\n id: 'after_hours_access',\n name: 'After Hours Access',\n description: 'Detects access during non-business hours',\n enabled: false, // Disabled by default, requires time zone configuration\n eventTypes: ['auth.login'],\n condition: {\n threshold: 1,\n windowSeconds: 86400, // 24 hours\n },\n actions: ['alert'],\n alertSeverity: 'notice',\n },\n];\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Logging Protocol - Comprehensive Observability Logging\n * \n * Unified logging protocol that combines:\n * - Basic kernel logging (LoggerConfig)\n * - Enterprise-grade features (LoggingConfig)\n * - Multiple log destinations (file, console, external services)\n * - Structured logging with enrichment\n * - Log aggregation and forwarding\n * - Integration with external log management systems\n */\n\n// ============================================================================\n// Basic Logger Protocol (formerly from logger.zod.ts)\n// ============================================================================\n\n/**\n * Log Level Enum\n * Standard RFC 5424 severity levels (simplified)\n */\nexport const LogLevel = z.enum([\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'fatal',\n 'silent'\n]).describe('Log severity level');\n\nexport type LogLevel = z.infer<typeof LogLevel>;\n\n/**\n * Log Format Enum\n */\nexport const LogFormat = z.enum([\n 'json', // Structured JSON for machine parsing\n 'text', // Simple text format\n 'pretty' // Colored human-readable output for CLI/console\n]).describe('Log output format');\n\nexport type LogFormat = z.infer<typeof LogFormat>;\n\n/**\n * Logger Configuration Schema\n * Configuration for the Kernel's internal logger\n */\nexport const LoggerConfigSchema = z.object({\n /**\n * Logger name\n */\n name: z.string().optional().describe('Logger name identifier'),\n\n /**\n * Minimum level to log\n */\n level: LogLevel.optional().default('info'),\n\n /**\n * Output format\n */\n format: LogFormat.optional().default('json'),\n\n /**\n * Redact sensitive keys\n */\n redact: z.array(z.string()).optional().default(['password', 'token', 'secret', 'key'])\n .describe('Keys to redact from log context'),\n\n /**\n * Enable source location (file/line)\n */\n sourceLocation: z.boolean().optional().default(false)\n .describe('Include file and line number'),\n\n /**\n * Log to file (optional)\n */\n file: z.string().optional().describe('Path to log file'),\n\n /**\n * Log rotation config (if file is set)\n */\n rotation: z.object({\n maxSize: z.string().optional().default('10m'),\n maxFiles: z.number().optional().default(5)\n }).optional()\n});\n\nexport type LoggerConfig = z.infer<typeof LoggerConfigSchema>;\n\n/**\n * Log Entry Schema\n * The shape of a structured log record\n */\nexport const LogEntrySchema = z.object({\n timestamp: z.string().datetime().describe('ISO 8601 timestamp'),\n level: LogLevel,\n message: z.string().describe('Log message'),\n context: z.record(z.string(), z.unknown()).optional().describe('Structured context data'),\n error: z.record(z.string(), z.unknown()).optional().describe('Error object if present'),\n \n /** Tracing */\n traceId: z.string().optional().describe('Distributed trace ID'),\n spanId: z.string().optional().describe('Span ID'),\n \n /** Source */\n service: z.string().optional().describe('Service name'),\n component: z.string().optional().describe('Component name (e.g. plugin id)'),\n});\n\nexport type LogEntry = z.infer<typeof LogEntrySchema>;\n\n// ============================================================================\n// Extended Logging Protocol (enterprise features)\n// ============================================================================\n\n/**\n * Extended Log Level Enum\n * Standard RFC 5424 severity levels with trace\n */\nexport const ExtendedLogLevel = z.enum([\n 'trace', // Very detailed debugging information\n 'debug', // Debugging information\n 'info', // Informational messages\n 'warn', // Warning messages\n 'error', // Error messages\n 'fatal', // Fatal errors causing shutdown\n]).describe('Extended log severity level');\n\nexport type ExtendedLogLevel = z.infer<typeof ExtendedLogLevel>;\n\n/**\n * Log Destination Type Enum\n * Where logs can be sent\n */\nexport const LogDestinationType = z.enum([\n 'console', // Standard output/error\n 'file', // File system\n 'syslog', // System logger\n 'elasticsearch', // Elasticsearch\n 'cloudwatch', // AWS CloudWatch\n 'stackdriver', // Google Cloud Logging\n 'azure_monitor', // Azure Monitor\n 'datadog', // Datadog\n 'splunk', // Splunk\n 'loki', // Grafana Loki\n 'http', // HTTP endpoint\n 'kafka', // Apache Kafka\n 'redis', // Redis streams\n 'custom', // Custom implementation\n]).describe('Log destination type');\n\nexport type LogDestinationType = z.infer<typeof LogDestinationType>;\n\n/**\n * Console Destination Configuration\n */\nexport const ConsoleDestinationConfigSchema = z.object({\n /**\n * Output stream\n */\n stream: z.enum(['stdout', 'stderr']).optional().default('stdout'),\n\n /**\n * Enable colored output\n */\n colors: z.boolean().optional().default(true),\n\n /**\n * Pretty print JSON\n */\n prettyPrint: z.boolean().optional().default(false),\n}).describe('Console destination configuration');\n\nexport type ConsoleDestinationConfig = z.infer<typeof ConsoleDestinationConfigSchema>;\n\n/**\n * File Destination Configuration\n */\nexport const FileDestinationConfigSchema = z.object({\n /**\n * File path\n */\n path: z.string().describe('Log file path'),\n\n /**\n * Enable log rotation\n */\n rotation: z.object({\n /**\n * Maximum file size before rotation (e.g., '10m', '100k', '1g')\n */\n maxSize: z.string().optional().default('10m'),\n\n /**\n * Maximum number of files to keep\n */\n maxFiles: z.number().int().positive().optional().default(5),\n\n /**\n * Compress rotated files\n */\n compress: z.boolean().optional().default(true),\n\n /**\n * Rotation interval (e.g., 'daily', 'weekly')\n */\n interval: z.enum(['hourly', 'daily', 'weekly', 'monthly']).optional(),\n }).optional(),\n\n /**\n * File encoding\n */\n encoding: z.string().optional().default('utf8'),\n\n /**\n * Append to existing file\n */\n append: z.boolean().optional().default(true),\n}).describe('File destination configuration');\n\nexport type FileDestinationConfig = z.infer<typeof FileDestinationConfigSchema>;\n\n/**\n * HTTP Destination Configuration\n */\nexport const HttpDestinationConfigSchema = z.object({\n /**\n * HTTP endpoint URL\n */\n url: z.string().url().describe('HTTP endpoint URL'),\n\n /**\n * HTTP method\n */\n method: z.enum(['POST', 'PUT']).optional().default('POST'),\n\n /**\n * Headers to include\n */\n headers: z.record(z.string(), z.string()).optional(),\n\n /**\n * Authentication\n */\n auth: z.object({\n type: z.enum(['basic', 'bearer', 'api_key']).describe('Auth type'),\n username: z.string().optional(),\n password: z.string().optional(),\n token: z.string().optional(),\n apiKey: z.string().optional(),\n apiKeyHeader: z.string().optional().default('X-API-Key'),\n }).optional(),\n\n /**\n * Batch configuration\n */\n batch: z.object({\n /**\n * Maximum batch size\n */\n maxSize: z.number().int().positive().optional().default(100),\n\n /**\n * Flush interval in milliseconds\n */\n flushInterval: z.number().int().positive().optional().default(5000),\n }).optional(),\n\n /**\n * Retry configuration\n */\n retry: z.object({\n /**\n * Maximum retry attempts\n */\n maxAttempts: z.number().int().positive().optional().default(3),\n\n /**\n * Initial retry delay in milliseconds\n */\n initialDelay: z.number().int().positive().optional().default(1000),\n\n /**\n * Backoff multiplier\n */\n backoffMultiplier: z.number().positive().optional().default(2),\n }).optional(),\n\n /**\n * Timeout in milliseconds\n */\n timeout: z.number().int().positive().optional().default(30000),\n}).describe('HTTP destination configuration');\n\nexport type HttpDestinationConfig = z.infer<typeof HttpDestinationConfigSchema>;\n\n/**\n * External Service Destination Configuration\n * Generic configuration for cloud logging services\n */\nexport const ExternalServiceDestinationConfigSchema = z.object({\n /**\n * Service-specific endpoint\n */\n endpoint: z.string().url().optional(),\n\n /**\n * Region (for cloud services)\n */\n region: z.string().optional(),\n\n /**\n * Credentials\n */\n credentials: z.object({\n accessKeyId: z.string().optional(),\n secretAccessKey: z.string().optional(),\n apiKey: z.string().optional(),\n projectId: z.string().optional(),\n }).optional(),\n\n /**\n * Log group/stream/index name\n */\n logGroup: z.string().optional(),\n logStream: z.string().optional(),\n index: z.string().optional(),\n\n /**\n * Service-specific configuration\n */\n config: z.record(z.string(), z.unknown()).optional(),\n}).describe('External service destination configuration');\n\nexport type ExternalServiceDestinationConfig = z.infer<typeof ExternalServiceDestinationConfigSchema>;\n\n/**\n * Log Destination Schema\n * Configuration for a single log destination\n */\nexport const LogDestinationSchema = z.object({\n /**\n * Destination name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('Destination name (snake_case)'),\n\n /**\n * Destination type\n */\n type: LogDestinationType.describe('Destination type'),\n\n /**\n * Minimum log level for this destination\n */\n level: ExtendedLogLevel.optional().default('info'),\n\n /**\n * Enabled flag\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Console configuration\n */\n console: ConsoleDestinationConfigSchema.optional(),\n\n /**\n * File configuration\n */\n file: FileDestinationConfigSchema.optional(),\n\n /**\n * HTTP configuration\n */\n http: HttpDestinationConfigSchema.optional(),\n\n /**\n * External service configuration\n */\n externalService: ExternalServiceDestinationConfigSchema.optional(),\n\n /**\n * Format for this destination\n */\n format: z.enum(['json', 'text', 'pretty']).optional().default('json'),\n\n /**\n * Filter function reference (runtime only)\n */\n filterId: z.string().optional().describe('Filter function identifier'),\n}).describe('Log destination configuration');\n\nexport type LogDestination = z.infer<typeof LogDestinationSchema>;\n\n/**\n * Log Enrichment Configuration\n * Add contextual data to all log entries\n */\nexport const LogEnrichmentConfigSchema = z.object({\n /**\n * Static fields to add to all logs\n */\n staticFields: z.record(z.string(), z.unknown()).optional().describe('Static fields added to every log'),\n\n /**\n * Dynamic field enrichers (runtime only)\n * References to functions that add dynamic context\n */\n dynamicEnrichers: z.array(z.string()).optional().describe('Dynamic enricher function IDs'),\n\n /**\n * Add hostname\n */\n addHostname: z.boolean().optional().default(true),\n\n /**\n * Add process ID\n */\n addProcessId: z.boolean().optional().default(true),\n\n /**\n * Add environment info\n */\n addEnvironment: z.boolean().optional().default(true),\n\n /**\n * Add timestamp in additional formats\n */\n addTimestampFormats: z.object({\n unix: z.boolean().optional().default(false),\n iso: z.boolean().optional().default(true),\n }).optional(),\n\n /**\n * Add caller information (file, line, function)\n */\n addCaller: z.boolean().optional().default(false),\n\n /**\n * Add correlation IDs\n */\n addCorrelationIds: z.boolean().optional().default(true),\n}).describe('Log enrichment configuration');\n\nexport type LogEnrichmentConfig = z.infer<typeof LogEnrichmentConfigSchema>;\n\n/**\n * Structured Log Entry Schema\n * Enhanced structured log record with enrichment\n */\nexport const StructuredLogEntrySchema = z.object({\n /**\n * Timestamp (ISO 8601)\n */\n timestamp: z.string().datetime().describe('ISO 8601 timestamp'),\n\n /**\n * Log level\n */\n level: ExtendedLogLevel.describe('Log severity level'),\n\n /**\n * Log message\n */\n message: z.string().describe('Log message'),\n\n /**\n * Structured context data\n */\n context: z.record(z.string(), z.unknown()).optional().describe('Structured context'),\n\n /**\n * Error information\n */\n error: z.object({\n name: z.string().optional(),\n message: z.string().optional(),\n stack: z.string().optional(),\n code: z.string().optional(),\n details: z.record(z.string(), z.unknown()).optional(),\n }).optional().describe('Error details'),\n\n /**\n * Trace context\n */\n trace: z.object({\n traceId: z.string().describe('Trace ID'),\n spanId: z.string().describe('Span ID'),\n parentSpanId: z.string().optional().describe('Parent span ID'),\n traceFlags: z.number().int().optional().describe('Trace flags'),\n }).optional().describe('Distributed tracing context'),\n\n /**\n * Source information\n */\n source: z.object({\n service: z.string().optional().describe('Service name'),\n component: z.string().optional().describe('Component name'),\n file: z.string().optional().describe('Source file'),\n line: z.number().int().optional().describe('Line number'),\n function: z.string().optional().describe('Function name'),\n }).optional().describe('Source information'),\n\n /**\n * Host information\n */\n host: z.object({\n hostname: z.string().optional(),\n pid: z.number().int().optional(),\n ip: z.string().optional(),\n }).optional().describe('Host information'),\n\n /**\n * Environment\n */\n environment: z.string().optional().describe('Environment (e.g., production, staging)'),\n\n /**\n * User information\n */\n user: z.object({\n id: z.string().optional(),\n username: z.string().optional(),\n email: z.string().optional(),\n }).optional().describe('User context'),\n\n /**\n * Request information\n */\n request: z.object({\n id: z.string().optional(),\n method: z.string().optional(),\n path: z.string().optional(),\n userAgent: z.string().optional(),\n ip: z.string().optional(),\n }).optional().describe('Request context'),\n\n /**\n * Custom labels/tags\n */\n labels: z.record(z.string(), z.string()).optional().describe('Custom labels'),\n\n /**\n * Additional metadata\n */\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata'),\n}).describe('Structured log entry');\n\nexport type StructuredLogEntry = z.infer<typeof StructuredLogEntrySchema>;\n\n/**\n * Logging Configuration Schema\n * Main configuration for the logging system\n */\nexport const LoggingConfigSchema = z.object({\n /**\n * Configuration name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .max(64)\n .describe('Configuration name (snake_case, max 64 chars)'),\n\n /**\n * Display label\n */\n label: z.string().describe('Display label'),\n\n /**\n * Enable logging\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Global minimum log level\n */\n level: ExtendedLogLevel.optional().default('info'),\n\n /**\n * Default logger configuration\n * Basic logger config for the kernel\n */\n default: LoggerConfigSchema.optional().describe('Default logger configuration'),\n\n /**\n * Named logger configurations\n * Map of logger name to logger config for different components/modules\n */\n loggers: z.record(z.string(), LoggerConfigSchema).optional().describe('Named logger configurations'),\n\n /**\n * Log destinations\n */\n destinations: z.array(LogDestinationSchema).describe('Log destinations'),\n\n /**\n * Log enrichment configuration\n */\n enrichment: LogEnrichmentConfigSchema.optional(),\n\n /**\n * Fields to redact from logs\n */\n redact: z.array(z.string()).optional().default([\n 'password',\n 'passwordHash',\n 'token',\n 'apiKey',\n 'secret',\n 'creditCard',\n 'ssn',\n 'authorization',\n ]).describe('Fields to redact'),\n\n /**\n * Sampling configuration\n */\n sampling: z.object({\n /**\n * Enable sampling\n */\n enabled: z.boolean().optional().default(false),\n\n /**\n * Sample rate (0.0 to 1.0)\n */\n rate: z.number().min(0).max(1).optional().default(1.0),\n\n /**\n * Sample rate by level\n */\n rateByLevel: z.record(z.string(), z.number().min(0).max(1)).optional(),\n }).optional(),\n\n /**\n * Buffer configuration\n */\n buffer: z.object({\n /**\n * Enable buffering\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Buffer size\n */\n size: z.number().int().positive().optional().default(1000),\n\n /**\n * Flush interval in milliseconds\n */\n flushInterval: z.number().int().positive().optional().default(1000),\n\n /**\n * Flush on shutdown\n */\n flushOnShutdown: z.boolean().optional().default(true),\n }).optional(),\n\n /**\n * Performance configuration\n */\n performance: z.object({\n /**\n * Async logging\n */\n async: z.boolean().optional().default(true),\n\n /**\n * Worker threads for async logging\n */\n workers: z.number().int().positive().optional().default(1),\n }).optional(),\n}).describe('Logging configuration');\n\nexport type LoggingConfig = z.infer<typeof LoggingConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Metrics Protocol - Performance and Operational Metrics\n * \n * Comprehensive metrics collection and monitoring:\n * - Counter, Gauge, Histogram, Summary metric types\n * - Time-series data collection\n * - SLI/SLO definitions\n * - Metric aggregation and export\n * - Integration with monitoring systems (Prometheus, etc.)\n */\n\n/**\n * Metric Type Enum\n * Standard Prometheus metric types\n */\nexport const MetricType = z.enum([\n 'counter', // Monotonically increasing value\n 'gauge', // Value that can go up and down\n 'histogram', // Observations bucketed by configurable ranges\n 'summary', // Observations with quantiles\n]).describe('Metric type');\n\nexport type MetricType = z.infer<typeof MetricType>;\n\n/**\n * Metric Unit Enum\n * Standard units for metrics\n */\nexport const MetricUnit = z.enum([\n // Time units\n 'nanoseconds',\n 'microseconds',\n 'milliseconds',\n 'seconds',\n 'minutes',\n 'hours',\n 'days',\n\n // Size units\n 'bytes',\n 'kilobytes',\n 'megabytes',\n 'gigabytes',\n 'terabytes',\n\n // Rate units\n 'requests_per_second',\n 'events_per_second',\n 'bytes_per_second',\n\n // Percentage\n 'percent',\n 'ratio',\n\n // Count\n 'count',\n 'operations',\n\n // Custom\n 'custom',\n]).describe('Metric unit');\n\nexport type MetricUnit = z.infer<typeof MetricUnit>;\n\n/**\n * Metric Aggregation Type\n */\nexport const MetricAggregationType = z.enum([\n 'sum', // Sum of all values\n 'avg', // Average of all values\n 'min', // Minimum value\n 'max', // Maximum value\n 'count', // Count of observations\n 'p50', // 50th percentile (median)\n 'p75', // 75th percentile\n 'p90', // 90th percentile\n 'p95', // 95th percentile\n 'p99', // 99th percentile\n 'p999', // 99.9th percentile\n 'rate', // Rate of change\n 'stddev', // Standard deviation\n]).describe('Metric aggregation type');\n\nexport type MetricAggregationType = z.infer<typeof MetricAggregationType>;\n\n/**\n * Histogram Bucket Configuration\n */\nexport const HistogramBucketConfigSchema = z.object({\n /**\n * Bucket type\n */\n type: z.enum(['linear', 'exponential', 'explicit']).describe('Bucket type'),\n\n /**\n * Linear bucket configuration\n */\n linear: z.object({\n start: z.number().describe('Start value'),\n width: z.number().positive().describe('Bucket width'),\n count: z.number().int().positive().describe('Number of buckets'),\n }).optional(),\n\n /**\n * Exponential bucket configuration\n */\n exponential: z.object({\n start: z.number().positive().describe('Start value'),\n factor: z.number().positive().describe('Growth factor'),\n count: z.number().int().positive().describe('Number of buckets'),\n }).optional(),\n\n /**\n * Explicit bucket boundaries\n */\n explicit: z.object({\n boundaries: z.array(z.number()).describe('Bucket boundaries'),\n }).optional(),\n}).describe('Histogram bucket configuration');\n\nexport type HistogramBucketConfig = z.infer<typeof HistogramBucketConfigSchema>;\n\n/**\n * Metric Labels Schema\n * Key-value pairs for metric dimensions\n */\nexport const MetricLabelsSchema = z.record(z.string(), z.string()).describe('Metric labels');\n\nexport type MetricLabels = z.infer<typeof MetricLabelsSchema>;\n\n/**\n * Metric Definition Schema\n */\nexport const MetricDefinitionSchema = z.object({\n /**\n * Metric name (snake_case)\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('Metric name (snake_case)'),\n\n /**\n * Display label\n */\n label: z.string().optional().describe('Display label'),\n\n /**\n * Metric type\n */\n type: MetricType.describe('Metric type'),\n\n /**\n * Metric unit\n */\n unit: MetricUnit.optional().describe('Metric unit'),\n\n /**\n * Description\n */\n description: z.string().optional().describe('Metric description'),\n\n /**\n * Label names for this metric\n */\n labelNames: z.array(z.string()).optional().default([]).describe('Label names'),\n\n /**\n * Histogram configuration (for histogram type)\n */\n histogram: HistogramBucketConfigSchema.optional(),\n\n /**\n * Summary configuration (for summary type)\n */\n summary: z.object({\n /**\n * Quantiles to track\n */\n quantiles: z.array(z.number().min(0).max(1)).optional().default([0.5, 0.9, 0.99]),\n\n /**\n * Max age of observations in seconds\n */\n maxAge: z.number().int().positive().optional().default(600),\n\n /**\n * Number of age buckets\n */\n ageBuckets: z.number().int().positive().optional().default(5),\n }).optional(),\n\n /**\n * Enabled flag\n */\n enabled: z.boolean().optional().default(true),\n}).describe('Metric definition');\n\nexport type MetricDefinition = z.infer<typeof MetricDefinitionSchema>;\n\n/**\n * Metric Data Point Schema\n * A single metric observation\n */\nexport const MetricDataPointSchema = z.object({\n /**\n * Metric name\n */\n name: z.string().describe('Metric name'),\n\n /**\n * Metric type\n */\n type: MetricType.describe('Metric type'),\n\n /**\n * Timestamp (ISO 8601)\n */\n timestamp: z.string().datetime().describe('Observation timestamp'),\n\n /**\n * Value (for counter and gauge)\n */\n value: z.number().optional().describe('Metric value'),\n\n /**\n * Labels\n */\n labels: MetricLabelsSchema.optional().describe('Metric labels'),\n\n /**\n * Histogram data\n */\n histogram: z.object({\n count: z.number().int().nonnegative().describe('Total count'),\n sum: z.number().describe('Sum of all values'),\n buckets: z.array(z.object({\n upperBound: z.number().describe('Upper bound of bucket'),\n count: z.number().int().nonnegative().describe('Count in bucket'),\n })).describe('Histogram buckets'),\n }).optional(),\n\n /**\n * Summary data\n */\n summary: z.object({\n count: z.number().int().nonnegative().describe('Total count'),\n sum: z.number().describe('Sum of all values'),\n quantiles: z.array(z.object({\n quantile: z.number().min(0).max(1).describe('Quantile (0-1)'),\n value: z.number().describe('Quantile value'),\n })).describe('Summary quantiles'),\n }).optional(),\n}).describe('Metric data point');\n\nexport type MetricDataPoint = z.infer<typeof MetricDataPointSchema>;\n\n/**\n * Time Series Data Point Schema\n */\nexport const TimeSeriesDataPointSchema = z.object({\n /**\n * Timestamp (ISO 8601)\n */\n timestamp: z.string().datetime().describe('Timestamp'),\n\n /**\n * Value\n */\n value: z.number().describe('Value'),\n\n /**\n * Labels/tags\n */\n labels: z.record(z.string(), z.string()).optional().describe('Labels'),\n}).describe('Time series data point');\n\nexport type TimeSeriesDataPoint = z.infer<typeof TimeSeriesDataPointSchema>;\n\n/**\n * Time Series Schema\n */\nexport const TimeSeriesSchema = z.object({\n /**\n * Series name\n */\n name: z.string().describe('Series name'),\n\n /**\n * Series labels\n */\n labels: z.record(z.string(), z.string()).optional().describe('Series labels'),\n\n /**\n * Data points\n */\n dataPoints: z.array(TimeSeriesDataPointSchema).describe('Data points'),\n\n /**\n * Start time\n */\n startTime: z.string().datetime().optional().describe('Start time'),\n\n /**\n * End time\n */\n endTime: z.string().datetime().optional().describe('End time'),\n}).describe('Time series');\n\nexport type TimeSeries = z.infer<typeof TimeSeriesSchema>;\n\n/**\n * Metric Aggregation Configuration\n */\nexport const MetricAggregationConfigSchema = z.object({\n /**\n * Aggregation type\n */\n type: MetricAggregationType.describe('Aggregation type'),\n\n /**\n * Time window for aggregation\n */\n window: z.object({\n /**\n * Window size in seconds\n */\n size: z.number().int().positive().describe('Window size in seconds'),\n\n /**\n * Sliding window (true) or tumbling window (false)\n */\n sliding: z.boolean().optional().default(false),\n\n /**\n * Slide interval for sliding windows\n */\n slideInterval: z.number().int().positive().optional(),\n }).optional(),\n\n /**\n * Group by labels\n */\n groupBy: z.array(z.string()).optional().describe('Group by label names'),\n\n /**\n * Filters\n */\n filters: z.record(z.string(), z.unknown()).optional().describe('Filter criteria'),\n}).describe('Metric aggregation configuration');\n\nexport type MetricAggregationConfig = z.infer<typeof MetricAggregationConfigSchema>;\n\n/**\n * Service Level Indicator (SLI) Schema\n */\nexport const ServiceLevelIndicatorSchema = z.object({\n /**\n * SLI name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('SLI name (snake_case)'),\n\n /**\n * Display label\n */\n label: z.string().describe('Display label'),\n\n /**\n * Description\n */\n description: z.string().optional().describe('SLI description'),\n\n /**\n * Metric name this SLI is based on\n */\n metric: z.string().describe('Base metric name'),\n\n /**\n * SLI type\n */\n type: z.enum([\n 'availability', // Percentage of successful requests\n 'latency', // Response time percentile\n 'throughput', // Requests per second\n 'error_rate', // Error percentage\n 'saturation', // Resource utilization\n 'custom', // Custom calculation\n ]).describe('SLI type'),\n\n /**\n * Success criteria\n */\n successCriteria: z.object({\n /**\n * Threshold value\n */\n threshold: z.number().describe('Threshold value'),\n\n /**\n * Comparison operator\n */\n operator: z.enum(['lt', 'lte', 'gt', 'gte', 'eq']).describe('Comparison operator'),\n\n /**\n * Percentile (for latency SLIs)\n */\n percentile: z.number().min(0).max(1).optional().describe('Percentile (0-1)'),\n }).describe('Success criteria'),\n\n /**\n * Measurement window\n */\n window: z.object({\n /**\n * Window size in seconds\n */\n size: z.number().int().positive().describe('Window size in seconds'),\n\n /**\n * Rolling window (true) or calendar-aligned (false)\n */\n rolling: z.boolean().optional().default(true),\n }).describe('Measurement window'),\n\n /**\n * Enabled flag\n */\n enabled: z.boolean().optional().default(true),\n}).describe('Service Level Indicator');\n\nexport type ServiceLevelIndicator = z.infer<typeof ServiceLevelIndicatorSchema>;\n\n/**\n * Service Level Objective (SLO) Schema\n */\nexport const ServiceLevelObjectiveSchema = z.object({\n /**\n * SLO name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .describe('SLO name (snake_case)'),\n\n /**\n * Display label\n */\n label: z.string().describe('Display label'),\n\n /**\n * Description\n */\n description: z.string().optional().describe('SLO description'),\n\n /**\n * SLI this SLO is based on\n */\n sli: z.string().describe('SLI name'),\n\n /**\n * Target percentage (0-100)\n */\n target: z.number().min(0).max(100).describe('Target percentage'),\n\n /**\n * Time period for SLO\n */\n period: z.object({\n /**\n * Period type\n */\n type: z.enum(['rolling', 'calendar']).describe('Period type'),\n\n /**\n * Duration in seconds (for rolling)\n */\n duration: z.number().int().positive().optional().describe('Duration in seconds'),\n\n /**\n * Calendar period (for calendar)\n */\n calendar: z.enum(['daily', 'weekly', 'monthly', 'quarterly', 'yearly']).optional(),\n }).describe('Time period'),\n\n /**\n * Error budget configuration\n */\n errorBudget: z.object({\n /**\n * Auto-calculated budget (1 - target)\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Alert when budget consumed percentage exceeds threshold\n */\n alertThreshold: z.number().min(0).max(100).optional().default(80),\n\n /**\n * Burn rate alert windows\n */\n burnRateWindows: z.array(z.object({\n /**\n * Window size in seconds\n */\n window: z.number().int().positive().describe('Window size'),\n\n /**\n * Burn rate multiplier threshold\n */\n threshold: z.number().positive().describe('Burn rate threshold'),\n })).optional(),\n }).optional(),\n\n /**\n * Alert configuration\n */\n alerts: z.array(z.object({\n /**\n * Alert name\n */\n name: z.string().describe('Alert name'),\n\n /**\n * Severity\n */\n severity: z.enum(['info', 'warning', 'critical']).describe('Alert severity'),\n\n /**\n * Condition\n */\n condition: z.object({\n type: z.enum(['slo_breach', 'error_budget', 'burn_rate']).describe('Condition type'),\n threshold: z.number().optional().describe('Threshold value'),\n }).describe('Alert condition'),\n })).optional().default([]),\n\n /**\n * Enabled flag\n */\n enabled: z.boolean().optional().default(true),\n}).describe('Service Level Objective');\n\nexport type ServiceLevelObjective = z.infer<typeof ServiceLevelObjectiveSchema>;\n\n/**\n * Metric Export Configuration\n */\nexport const MetricExportConfigSchema = z.object({\n /**\n * Export type\n */\n type: z.enum([\n 'prometheus', // Prometheus exposition format\n 'openmetrics', // OpenMetrics format\n 'graphite', // Graphite plaintext protocol\n 'statsd', // StatsD protocol\n 'influxdb', // InfluxDB line protocol\n 'datadog', // Datadog agent\n 'cloudwatch', // AWS CloudWatch\n 'stackdriver', // Google Cloud Monitoring\n 'azure_monitor', // Azure Monitor\n 'http', // HTTP push\n 'custom', // Custom exporter\n ]).describe('Export type'),\n\n /**\n * Endpoint configuration\n */\n endpoint: z.string().optional().describe('Export endpoint'),\n\n /**\n * Export interval in seconds\n */\n interval: z.number().int().positive().optional().default(60),\n\n /**\n * Batch configuration\n */\n batch: z.object({\n enabled: z.boolean().optional().default(true),\n size: z.number().int().positive().optional().default(1000),\n }).optional(),\n\n /**\n * Authentication\n */\n auth: z.object({\n type: z.enum(['none', 'basic', 'bearer', 'api_key']).describe('Auth type'),\n username: z.string().optional(),\n password: z.string().optional(),\n token: z.string().optional(),\n apiKey: z.string().optional(),\n }).optional(),\n\n /**\n * Additional configuration\n */\n config: z.record(z.string(), z.unknown()).optional().describe('Additional configuration'),\n}).describe('Metric export configuration');\n\nexport type MetricExportConfig = z.infer<typeof MetricExportConfigSchema>;\n\n/**\n * Metrics Configuration Schema\n */\nexport const MetricsConfigSchema = z.object({\n /**\n * Configuration name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .max(64)\n .describe('Configuration name (snake_case, max 64 chars)'),\n\n /**\n * Display label\n */\n label: z.string().describe('Display label'),\n\n /**\n * Enable metrics collection\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Metric definitions\n */\n metrics: z.array(MetricDefinitionSchema).optional().default([]),\n\n /**\n * Default labels applied to all metrics\n */\n defaultLabels: MetricLabelsSchema.optional().default({}),\n\n /**\n * Aggregation configurations\n */\n aggregations: z.array(MetricAggregationConfigSchema).optional().default([]),\n\n /**\n * Service Level Indicators\n */\n slis: z.array(ServiceLevelIndicatorSchema).optional().default([]),\n\n /**\n * Service Level Objectives\n */\n slos: z.array(ServiceLevelObjectiveSchema).optional().default([]),\n\n /**\n * Export configurations\n */\n exports: z.array(MetricExportConfigSchema).optional().default([]),\n\n /**\n * Collection interval in seconds\n */\n collectionInterval: z.number().int().positive().optional().default(15),\n\n /**\n * Retention configuration\n */\n retention: z.object({\n /**\n * Retention period in seconds\n */\n period: z.number().int().positive().optional().default(604800), // 7 days\n\n /**\n * Downsampling configuration\n */\n downsampling: z.array(z.object({\n /**\n * After this duration, downsample to this resolution\n */\n afterSeconds: z.number().int().positive().describe('Downsample after seconds'),\n\n /**\n * Resolution in seconds\n */\n resolution: z.number().int().positive().describe('Downsampled resolution'),\n })).optional(),\n }).optional(),\n\n /**\n * Cardinality limits\n */\n cardinalityLimits: z.object({\n /**\n * Maximum unique label combinations per metric\n */\n maxLabelCombinations: z.number().int().positive().optional().default(10000),\n\n /**\n * Action when limit exceeded\n */\n onLimitExceeded: z.enum(['drop', 'sample', 'alert']).optional().default('alert'),\n }).optional(),\n}).describe('Metrics configuration');\n\nexport type MetricsConfig = z.infer<typeof MetricsConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Tracing Protocol - Distributed Tracing & Observability\n * \n * Comprehensive distributed tracing based on OpenTelemetry standards:\n * - Trace context propagation\n * - Span creation and management\n * - Sampling strategies\n * - Integration with tracing backends (Jaeger, Zipkin, etc.)\n * - W3C Trace Context standard compliance\n */\n\n/**\n * Trace State Schema\n * W3C Trace Context tracestate header\n */\nexport const TraceStateSchema = z.object({\n /**\n * Vendor-specific key-value pairs\n */\n entries: z.record(z.string(), z.string()).describe('Trace state entries'),\n}).describe('Trace state');\n\nexport type TraceState = z.infer<typeof TraceStateSchema>;\n\n/**\n * Trace Flags Enum\n * W3C Trace Context trace flags\n */\nexport const TraceFlagsSchema = z.number().int().min(0).max(255).describe('Trace flags bitmap');\n\nexport type TraceFlags = z.infer<typeof TraceFlagsSchema>;\n\n/**\n * Trace Context Schema\n * W3C Trace Context standard\n */\nexport const TraceContextSchema = z.object({\n /**\n * Trace ID (128-bit identifier, 32 hex chars)\n */\n traceId: z.string()\n .regex(/^[0-9a-f]{32}$/)\n .describe('Trace ID (32 hex chars)'),\n\n /**\n * Span ID (64-bit identifier, 16 hex chars)\n */\n spanId: z.string()\n .regex(/^[0-9a-f]{16}$/)\n .describe('Span ID (16 hex chars)'),\n\n /**\n * Trace flags (8-bit)\n */\n traceFlags: TraceFlagsSchema.optional().default(1),\n\n /**\n * Trace state (vendor-specific)\n */\n traceState: TraceStateSchema.optional(),\n\n /**\n * Parent span ID\n */\n parentSpanId: z.string()\n .regex(/^[0-9a-f]{16}$/)\n .optional()\n .describe('Parent span ID (16 hex chars)'),\n\n /**\n * Is sampled\n */\n sampled: z.boolean().optional().default(true),\n\n /**\n * Remote context (from incoming request)\n */\n remote: z.boolean().optional().default(false),\n}).describe('Trace context (W3C Trace Context)');\n\nexport type TraceContext = z.infer<typeof TraceContextSchema>;\n\n/**\n * Span Kind Enum\n * OpenTelemetry span kinds\n */\nexport const SpanKind = z.enum([\n 'internal', // Internal operation\n 'server', // Server-side request handling\n 'client', // Client-side request\n 'producer', // Message producer\n 'consumer', // Message consumer\n]).describe('Span kind');\n\nexport type SpanKind = z.infer<typeof SpanKind>;\n\n/**\n * Span Status Enum\n * OpenTelemetry span status\n */\nexport const SpanStatus = z.enum([\n 'unset', // Default status\n 'ok', // Successful operation\n 'error', // Error occurred\n]).describe('Span status');\n\nexport type SpanStatus = z.infer<typeof SpanStatus>;\n\n/**\n * Span Attribute Value Schema\n */\nexport const SpanAttributeValueSchema = z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.array(z.string()),\n z.array(z.number()),\n z.array(z.boolean()),\n]).describe('Span attribute value');\n\nexport type SpanAttributeValue = z.infer<typeof SpanAttributeValueSchema>;\n\n/**\n * Span Attributes Schema\n * OpenTelemetry semantic conventions\n */\nexport const SpanAttributesSchema = z.record(z.string(), SpanAttributeValueSchema).describe('Span attributes');\n\nexport type SpanAttributes = z.infer<typeof SpanAttributesSchema>;\n\n/**\n * Span Event Schema\n */\nexport const SpanEventSchema = z.object({\n /**\n * Event name\n */\n name: z.string().describe('Event name'),\n\n /**\n * Event timestamp (ISO 8601)\n */\n timestamp: z.string().datetime().describe('Event timestamp'),\n\n /**\n * Event attributes\n */\n attributes: SpanAttributesSchema.optional().describe('Event attributes'),\n}).describe('Span event');\n\nexport type SpanEvent = z.infer<typeof SpanEventSchema>;\n\n/**\n * Span Link Schema\n * Links to other spans\n */\nexport const SpanLinkSchema = z.object({\n /**\n * Linked trace context\n */\n context: TraceContextSchema.describe('Linked trace context'),\n\n /**\n * Link attributes\n */\n attributes: SpanAttributesSchema.optional().describe('Link attributes'),\n}).describe('Span link');\n\nexport type SpanLink = z.infer<typeof SpanLinkSchema>;\n\n/**\n * Span Schema\n * OpenTelemetry span representation\n */\nexport const SpanSchema = z.object({\n /**\n * Trace context\n */\n context: TraceContextSchema.describe('Trace context'),\n\n /**\n * Span name\n */\n name: z.string().describe('Span name'),\n\n /**\n * Span kind\n */\n kind: SpanKind.optional().default('internal'),\n\n /**\n * Start time (ISO 8601)\n */\n startTime: z.string().datetime().describe('Span start time'),\n\n /**\n * End time (ISO 8601)\n */\n endTime: z.string().datetime().optional().describe('Span end time'),\n\n /**\n * Duration in milliseconds\n */\n duration: z.number().nonnegative().optional().describe('Duration in milliseconds'),\n\n /**\n * Span status\n */\n status: z.object({\n code: SpanStatus.describe('Status code'),\n message: z.string().optional().describe('Status message'),\n }).optional(),\n\n /**\n * Span attributes\n */\n attributes: SpanAttributesSchema.optional().default({}),\n\n /**\n * Span events\n */\n events: z.array(SpanEventSchema).optional().default([]),\n\n /**\n * Span links\n */\n links: z.array(SpanLinkSchema).optional().default([]),\n\n /**\n * Resource attributes\n */\n resource: SpanAttributesSchema.optional().describe('Resource attributes'),\n\n /**\n * Instrumentation library\n */\n instrumentationLibrary: z.object({\n name: z.string().describe('Library name'),\n version: z.string().optional().describe('Library version'),\n }).optional(),\n}).describe('OpenTelemetry span');\n\nexport type Span = z.infer<typeof SpanSchema>;\n\n/**\n * Sampling Decision Enum\n */\nexport const SamplingDecision = z.enum([\n 'drop', // Do not record or export\n 'record_only', // Record but do not export\n 'record_and_sample', // Record and export\n]).describe('Sampling decision');\n\nexport type SamplingDecision = z.infer<typeof SamplingDecision>;\n\n/**\n * Sampling Strategy Type Enum\n */\nexport const SamplingStrategyType = z.enum([\n 'always_on', // Always sample\n 'always_off', // Never sample\n 'trace_id_ratio', // Sample based on trace ID ratio\n 'rate_limiting', // Rate-limited sampling\n 'parent_based', // Respect parent span sampling decision\n 'probability', // Probability-based sampling\n 'composite', // Combine multiple strategies\n 'custom', // Custom sampling logic\n]).describe('Sampling strategy type');\n\nexport type SamplingStrategyType = z.infer<typeof SamplingStrategyType>;\n\n/**\n * Trace Sampling Configuration Schema\n */\nexport const TraceSamplingConfigSchema = z.object({\n /**\n * Sampling strategy type\n */\n type: SamplingStrategyType.describe('Sampling strategy'),\n\n /**\n * Sample ratio (0.0 to 1.0) for trace_id_ratio and probability strategies\n */\n ratio: z.number().min(0).max(1).optional().describe('Sample ratio (0-1)'),\n\n /**\n * Rate limit (traces per second) for rate_limiting strategy\n */\n rateLimit: z.number().positive().optional().describe('Traces per second'),\n\n /**\n * Parent-based configuration\n */\n parentBased: z.object({\n /**\n * Sampler to use when parent is sampled\n */\n whenParentSampled: SamplingStrategyType.optional().default('always_on'),\n\n /**\n * Sampler to use when parent is not sampled\n */\n whenParentNotSampled: SamplingStrategyType.optional().default('always_off'),\n\n /**\n * Sampler to use when there is no parent (root span)\n */\n root: SamplingStrategyType.optional().default('trace_id_ratio'),\n\n /**\n * Root sampler ratio\n */\n rootRatio: z.number().min(0).max(1).optional().default(0.1),\n }).optional(),\n\n /**\n * Composite sampling (multiple strategies)\n */\n composite: z.array(z.object({\n strategy: SamplingStrategyType.describe('Strategy type'),\n ratio: z.number().min(0).max(1).optional(),\n condition: z.record(z.string(), z.unknown()).optional().describe('Condition for this strategy'),\n })).optional(),\n\n /**\n * Sampling rules\n */\n rules: z.array(z.object({\n /**\n * Rule name\n */\n name: z.string().describe('Rule name'),\n\n /**\n * Match condition\n */\n match: z.object({\n /**\n * Service name pattern\n */\n service: z.string().optional(),\n\n /**\n * Span name pattern (regex)\n */\n spanName: z.string().optional(),\n\n /**\n * Attribute filters\n */\n attributes: z.record(z.string(), z.unknown()).optional(),\n }).optional(),\n\n /**\n * Sampling decision for matching spans\n */\n decision: SamplingDecision.describe('Sampling decision'),\n\n /**\n * Sample rate for this rule\n */\n rate: z.number().min(0).max(1).optional(),\n })).optional().default([]),\n\n /**\n * Custom sampler ID (for custom strategy)\n */\n customSamplerId: z.string().optional().describe('Custom sampler identifier'),\n}).describe('Trace sampling configuration');\n\nexport type TraceSamplingConfig = z.infer<typeof TraceSamplingConfigSchema>;\n\n/**\n * Trace Context Propagation Format Enum\n */\nexport const TracePropagationFormat = z.enum([\n 'w3c', // W3C Trace Context\n 'b3', // Zipkin B3 (single header)\n 'b3_multi', // Zipkin B3 (multi header)\n 'jaeger', // Jaeger propagation\n 'xray', // AWS X-Ray\n 'ottrace', // OpenTracing\n 'custom', // Custom format\n]).describe('Trace propagation format');\n\nexport type TracePropagationFormat = z.infer<typeof TracePropagationFormat>;\n\n/**\n * Trace Context Propagation Schema\n */\nexport const TraceContextPropagationSchema = z.object({\n /**\n * Propagation formats (in priority order)\n */\n formats: z.array(TracePropagationFormat).optional().default(['w3c']),\n\n /**\n * Extract context from incoming requests\n */\n extract: z.boolean().optional().default(true),\n\n /**\n * Inject context into outgoing requests\n */\n inject: z.boolean().optional().default(true),\n\n /**\n * Custom header mappings\n */\n headers: z.object({\n /**\n * Trace ID header name\n */\n traceId: z.string().optional(),\n\n /**\n * Span ID header name\n */\n spanId: z.string().optional(),\n\n /**\n * Trace flags header name\n */\n traceFlags: z.string().optional(),\n\n /**\n * Trace state header name\n */\n traceState: z.string().optional(),\n }).optional(),\n\n /**\n * Baggage propagation\n */\n baggage: z.object({\n /**\n * Enable baggage propagation\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Maximum baggage size in bytes\n */\n maxSize: z.number().int().positive().optional().default(8192),\n\n /**\n * Allowed baggage keys (whitelist)\n */\n allowedKeys: z.array(z.string()).optional(),\n }).optional(),\n}).describe('Trace context propagation');\n\nexport type TraceContextPropagation = z.infer<typeof TraceContextPropagationSchema>;\n\n/**\n * OpenTelemetry Exporter Type Enum\n */\nexport const OtelExporterType = z.enum([\n 'otlp_http', // OTLP over HTTP\n 'otlp_grpc', // OTLP over gRPC\n 'jaeger', // Jaeger\n 'zipkin', // Zipkin\n 'console', // Console (for debugging)\n 'datadog', // Datadog\n 'honeycomb', // Honeycomb\n 'lightstep', // Lightstep\n 'newrelic', // New Relic\n 'custom', // Custom exporter\n]).describe('OpenTelemetry exporter type');\n\nexport type OtelExporterType = z.infer<typeof OtelExporterType>;\n\n/**\n * OpenTelemetry Compatibility Schema\n */\nexport const OpenTelemetryCompatibilitySchema = z.object({\n /**\n * OpenTelemetry SDK version\n */\n sdkVersion: z.string().optional().describe('OTel SDK version'),\n\n /**\n * Exporter configuration\n */\n exporter: z.object({\n /**\n * Exporter type\n */\n type: OtelExporterType.describe('Exporter type'),\n\n /**\n * Endpoint URL\n */\n endpoint: z.string().url().optional().describe('Exporter endpoint'),\n\n /**\n * Protocol version\n */\n protocol: z.string().optional().describe('Protocol version'),\n\n /**\n * Headers\n */\n headers: z.record(z.string(), z.string()).optional().describe('HTTP headers'),\n\n /**\n * Timeout in milliseconds\n */\n timeout: z.number().int().positive().optional().default(10000),\n\n /**\n * Compression\n */\n compression: z.enum(['none', 'gzip']).optional().default('none'),\n\n /**\n * Batch configuration\n */\n batch: z.object({\n /**\n * Maximum batch size\n */\n maxBatchSize: z.number().int().positive().optional().default(512),\n\n /**\n * Maximum queue size\n */\n maxQueueSize: z.number().int().positive().optional().default(2048),\n\n /**\n * Export timeout in milliseconds\n */\n exportTimeout: z.number().int().positive().optional().default(30000),\n\n /**\n * Scheduled delay in milliseconds\n */\n scheduledDelay: z.number().int().positive().optional().default(5000),\n }).optional(),\n }).describe('Exporter configuration'),\n\n /**\n * Resource attributes (service identification)\n */\n resource: z.object({\n /**\n * Service name\n */\n serviceName: z.string().describe('Service name'),\n\n /**\n * Service version\n */\n serviceVersion: z.string().optional().describe('Service version'),\n\n /**\n * Service instance ID\n */\n serviceInstanceId: z.string().optional().describe('Service instance ID'),\n\n /**\n * Service namespace\n */\n serviceNamespace: z.string().optional().describe('Service namespace'),\n\n /**\n * Deployment environment\n */\n deploymentEnvironment: z.string().optional().describe('Deployment environment'),\n\n /**\n * Additional resource attributes\n */\n attributes: SpanAttributesSchema.optional().describe('Additional resource attributes'),\n }).describe('Resource attributes'),\n\n /**\n * Instrumentation configuration\n */\n instrumentation: z.object({\n /**\n * Auto-instrumentation enabled\n */\n autoInstrumentation: z.boolean().optional().default(true),\n\n /**\n * Instrumentation libraries to enable\n */\n libraries: z.array(z.string()).optional().describe('Enabled libraries'),\n\n /**\n * Instrumentation libraries to disable\n */\n disabledLibraries: z.array(z.string()).optional().describe('Disabled libraries'),\n }).optional(),\n\n /**\n * Semantic conventions version\n */\n semanticConventionsVersion: z.string().optional().describe('Semantic conventions version'),\n}).describe('OpenTelemetry compatibility configuration');\n\nexport type OpenTelemetryCompatibility = z.infer<typeof OpenTelemetryCompatibilitySchema>;\n\n/**\n * Tracing Configuration Schema\n */\nexport const TracingConfigSchema = z.object({\n /**\n * Configuration name\n */\n name: z.string()\n .regex(/^[a-z_][a-z0-9_]*$/)\n .max(64)\n .describe('Configuration name (snake_case, max 64 chars)'),\n\n /**\n * Display label\n */\n label: z.string().describe('Display label'),\n\n /**\n * Enable tracing\n */\n enabled: z.boolean().optional().default(true),\n\n /**\n * Sampling configuration\n */\n sampling: TraceSamplingConfigSchema.optional().default({ type: 'always_on', rules: [] }),\n\n /**\n * Context propagation\n */\n propagation: TraceContextPropagationSchema.optional().default({ formats: ['w3c'], extract: true, inject: true }),\n\n /**\n * OpenTelemetry configuration\n */\n openTelemetry: OpenTelemetryCompatibilitySchema.optional(),\n\n /**\n * Span limits\n */\n spanLimits: z.object({\n /**\n * Maximum number of attributes per span\n */\n maxAttributes: z.number().int().positive().optional().default(128),\n\n /**\n * Maximum number of events per span\n */\n maxEvents: z.number().int().positive().optional().default(128),\n\n /**\n * Maximum number of links per span\n */\n maxLinks: z.number().int().positive().optional().default(128),\n\n /**\n * Maximum attribute value length\n */\n maxAttributeValueLength: z.number().int().positive().optional().default(4096),\n }).optional(),\n\n /**\n * Trace ID generator\n */\n traceIdGenerator: z.enum(['random', 'uuid', 'custom']).optional().default('random'),\n\n /**\n * Custom trace ID generator ID\n */\n customTraceIdGeneratorId: z.string().optional().describe('Custom generator identifier'),\n\n /**\n * Performance configuration\n */\n performance: z.object({\n /**\n * Async span export\n */\n asyncExport: z.boolean().optional().default(true),\n\n /**\n * Background export interval in milliseconds\n */\n exportInterval: z.number().int().positive().optional().default(5000),\n }).optional(),\n}).describe('Tracing configuration');\n\nexport type TracingConfig = z.infer<typeof TracingConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Unified Security Context Protocol\n *\n * Provides a central governance layer that correlates and unifies\n * the four independent security subsystems:\n * - **Audit** (audit.zod.ts): Event logging and suspicious activity detection\n * - **Encryption** (encryption.zod.ts): Field-level encryption and key management\n * - **Compliance** (compliance.zod.ts): Regulatory framework enforcement (GDPR/HIPAA/SOX/PCI-DSS)\n * - **Masking** (masking.zod.ts): PII data masking and tokenization\n *\n * This schema enforces cross-cutting security policies, ensuring compliance\n * frameworks drive encryption requirements, masking rules respect role-based\n * audit visibility, and all security operations are correlated in a single\n * governance context.\n *\n * @see https://www.iso.org/standard/27001\n * @category Security\n */\n\n/**\n * Shared data classification enum used across security subsystems.\n * Defines the canonical set of data sensitivity labels.\n */\nexport const DataClassificationSchema = z.enum([\n 'pii', 'phi', 'pci', 'financial', 'confidential', 'internal', 'public',\n]).describe('Data classification level');\n\nexport type DataClassification = z.infer<typeof DataClassificationSchema>;\n\n/**\n * Shared compliance framework enum used across compliance and security schemas.\n * Defines the canonical set of regulatory frameworks.\n */\nexport const ComplianceFrameworkSchema = z.enum([\n 'gdpr', 'hipaa', 'sox', 'pci_dss', 'ccpa', 'iso27001',\n]).describe('Compliance framework identifier');\n\nexport type ComplianceFramework = z.infer<typeof ComplianceFrameworkSchema>;\n\n/**\n * Compliance-driven audit requirement.\n * Maps specific compliance frameworks to the audit event types that MUST be captured.\n */\nexport const ComplianceAuditRequirementSchema = z.object({\n framework: ComplianceFrameworkSchema\n .describe('Compliance framework identifier'),\n requiredEvents: z.array(z.string())\n .describe('Audit event types required by this framework (e.g., \"data.delete\", \"auth.login\")'),\n retentionDays: z.number().min(1)\n .describe('Minimum audit log retention period required by this framework (in days)'),\n alertOnMissing: z.boolean().default(true)\n .describe('Raise alert if a required audit event is not being captured'),\n}).describe('Compliance framework audit event requirements');\n\nexport type ComplianceAuditRequirement = z.infer<typeof ComplianceAuditRequirementSchema>;\n\n/**\n * Compliance-driven encryption requirement.\n * Maps compliance frameworks to encryption mandates for specific data classifications.\n */\nexport const ComplianceEncryptionRequirementSchema = z.object({\n framework: ComplianceFrameworkSchema\n .describe('Compliance framework identifier'),\n dataClassifications: z.array(DataClassificationSchema)\n .describe('Data classifications that must be encrypted under this framework'),\n minimumAlgorithm: z.enum(['aes-256-gcm', 'aes-256-cbc', 'chacha20-poly1305']).default('aes-256-gcm')\n .describe('Minimum encryption algorithm strength required'),\n keyRotationMaxDays: z.number().min(1).default(90)\n .describe('Maximum key rotation interval required (in days)'),\n}).describe('Compliance framework encryption requirements');\n\nexport type ComplianceEncryptionRequirement = z.infer<typeof ComplianceEncryptionRequirementSchema>;\n\n/**\n * Masking visibility rule.\n * Controls which roles can view unmasked data with audit trail enforcement.\n */\nexport const MaskingVisibilityRuleSchema = z.object({\n dataClassification: DataClassificationSchema\n .describe('Data classification this rule applies to'),\n defaultMasked: z.boolean().default(true)\n .describe('Whether data is masked by default'),\n unmaskRoles: z.array(z.string()).optional()\n .describe('Roles allowed to view unmasked data'),\n auditUnmask: z.boolean().default(true)\n .describe('Log an audit event when data is unmasked'),\n requireApproval: z.boolean().default(false)\n .describe('Require explicit approval before unmasking'),\n approvalRoles: z.array(z.string()).optional()\n .describe('Roles that can approve unmasking requests'),\n}).describe('Masking visibility and audit rule per data classification');\n\nexport type MaskingVisibilityRule = z.infer<typeof MaskingVisibilityRuleSchema>;\n\n/**\n * Security Event Correlation Schema.\n * Defines how security events from different subsystems are correlated.\n */\nexport const SecurityEventCorrelationSchema = z.object({\n enabled: z.boolean().default(true)\n .describe('Enable cross-subsystem security event correlation'),\n correlationId: z.boolean().default(true)\n .describe('Inject a shared correlation ID into audit, encryption, and masking events'),\n linkAuthToAudit: z.boolean().default(true)\n .describe('Link authentication events to subsequent data operation audit trails'),\n linkEncryptionToAudit: z.boolean().default(true)\n .describe('Log encryption/decryption operations in the audit trail'),\n linkMaskingToAudit: z.boolean().default(true)\n .describe('Log masking/unmasking operations in the audit trail'),\n}).describe('Cross-subsystem security event correlation configuration');\n\nexport type SecurityEventCorrelation = z.infer<typeof SecurityEventCorrelationSchema>;\n\n/**\n * Data Classification Policy Schema.\n * Assigns classification labels to fields/objects for unified security enforcement.\n */\nexport const DataClassificationPolicySchema = z.object({\n classification: DataClassificationSchema\n .describe('Data classification level'),\n requireEncryption: z.boolean().default(false)\n .describe('Encryption required for this classification'),\n requireMasking: z.boolean().default(false)\n .describe('Masking required for this classification'),\n requireAudit: z.boolean().default(false)\n .describe('Audit trail required for access to this classification'),\n retentionDays: z.number().optional()\n .describe('Data retention limit in days (for compliance)'),\n}).describe('Security policy for a specific data classification level');\n\nexport type DataClassificationPolicy = z.infer<typeof DataClassificationPolicySchema>;\n\n/**\n * Security Context Configuration Schema\n *\n * Top-level unified security governance context that ties together\n * audit, encryption, compliance, and masking subsystems.\n */\nexport const SecurityContextConfigSchema = z.object({\n enabled: z.boolean().default(true)\n .describe('Enable unified security context governance'),\n\n complianceAuditRequirements: z.array(ComplianceAuditRequirementSchema).optional()\n .describe('Compliance-driven audit event requirements'),\n\n complianceEncryptionRequirements: z.array(ComplianceEncryptionRequirementSchema).optional()\n .describe('Compliance-driven encryption requirements by data classification'),\n\n maskingVisibility: z.array(MaskingVisibilityRuleSchema).optional()\n .describe('Masking visibility rules per data classification'),\n\n dataClassifications: z.array(DataClassificationPolicySchema).optional()\n .describe('Data classification policies for unified security enforcement'),\n\n eventCorrelation: SecurityEventCorrelationSchema.optional()\n .describe('Cross-subsystem security event correlation settings'),\n\n enforceOnWrite: z.boolean().default(true)\n .describe('Enforce encryption and masking requirements on data write operations'),\n\n enforceOnRead: z.boolean().default(true)\n .describe('Enforce masking and audit requirements on data read operations'),\n\n failOpen: z.boolean().default(false)\n .describe('When false (default), deny access if security context cannot be evaluated'),\n}).describe('Unified security context governance configuration');\n\nexport type SecurityContextConfig = z.infer<typeof SecurityContextConfigSchema>;\nexport type SecurityContextConfigInput = z.input<typeof SecurityContextConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { DataClassificationSchema } from './security-context.zod';\n\n/**\n * Change Type Enum\n * \n * Classification of change requests based on risk and approval requirements.\n * Follows ITIL change management best practices.\n */\nexport const ChangeTypeSchema = z.enum([\n 'standard', // Pre-approved, low-risk changes\n 'normal', // Requires standard approval process\n 'emergency', // Fast-track approval for critical issues\n 'major', // Requires CAB (Change Advisory Board) approval\n]);\n\n/**\n * Change Priority Enum\n * \n * Priority level for change request processing.\n */\nexport const ChangePrioritySchema = z.enum([\n 'critical',\n 'high',\n 'medium',\n 'low',\n]);\n\n/**\n * Change Status Enum\n * \n * Current status of a change request in its lifecycle.\n */\nexport const ChangeStatusSchema = z.enum([\n 'draft',\n 'submitted',\n 'in-review',\n 'approved',\n 'scheduled',\n 'in-progress',\n 'completed',\n 'failed',\n 'rolled-back',\n 'cancelled',\n]);\n\n/**\n * Change Impact Schema\n * \n * Assessment of the impact and scope of a change request.\n * Used for risk evaluation and approval routing.\n * \n * @example\n * ```json\n * {\n * \"level\": \"high\",\n * \"affectedSystems\": [\"crm-api\", \"customer-portal\"],\n * \"affectedUsers\": 5000,\n * \"downtime\": {\n * \"required\": true,\n * \"durationMinutes\": 30\n * }\n * }\n * ```\n */\nexport const ChangeImpactSchema = z.object({\n /**\n * Overall impact level of the change\n */\n level: z.enum(['low', 'medium', 'high', 'critical']).describe('Impact level'),\n\n /**\n * List of systems affected by this change\n */\n affectedSystems: z.array(z.string()).describe('Affected systems'),\n\n /**\n * Estimated number of users affected\n */\n affectedUsers: z.number().optional().describe('Affected user count'),\n\n /**\n * Downtime requirements\n */\n downtime: z.object({\n /**\n * Whether downtime is required\n */\n required: z.boolean().describe('Downtime required'),\n\n /**\n * Duration of downtime in minutes\n */\n durationMinutes: z.number().optional().describe('Downtime duration'),\n }).optional().describe('Downtime information'),\n});\n\n/**\n * Rollback Plan Schema\n * \n * Detailed procedure for reverting changes if implementation fails.\n * Required for all non-standard changes.\n * \n * @example\n * ```json\n * {\n * \"description\": \"Revert database schema to previous version\",\n * \"steps\": [\n * {\n * \"order\": 1,\n * \"description\": \"Stop application servers\",\n * \"estimatedMinutes\": 5\n * },\n * {\n * \"order\": 2,\n * \"description\": \"Restore database backup\",\n * \"estimatedMinutes\": 15\n * }\n * ],\n * \"testProcedure\": \"Verify application login and basic functionality\"\n * }\n * ```\n */\nexport const RollbackPlanSchema = z.object({\n /**\n * High-level description of the rollback approach\n */\n description: z.string().describe('Rollback description'),\n\n /**\n * Sequential steps to execute rollback\n */\n steps: z.array(z.object({\n /**\n * Step execution order\n */\n order: z.number().describe('Step order'),\n\n /**\n * Detailed description of this step\n */\n description: z.string().describe('Step description'),\n\n /**\n * Estimated time to complete this step\n */\n estimatedMinutes: z.number().describe('Estimated duration'),\n })).describe('Rollback steps'),\n\n /**\n * Testing procedure to verify successful rollback\n */\n testProcedure: z.string().optional().describe('Test procedure'),\n});\n\n/**\n * Change Request Schema\n * \n * Comprehensive change management protocol for IT governance.\n * Supports change requests, deployment tracking, and ITIL compliance.\n * \n * @example\n * ```json\n * {\n * \"id\": \"CHG-2024-001\",\n * \"title\": \"Upgrade CRM Database Schema\",\n * \"description\": \"Migrate customer database to new schema version 2.0\",\n * \"type\": \"normal\",\n * \"priority\": \"high\",\n * \"status\": \"approved\",\n * \"requestedBy\": \"user_123\",\n * \"requestedAt\": 1704067200000,\n * \"impact\": {\n * \"level\": \"high\",\n * \"affectedSystems\": [\"crm-api\", \"customer-portal\"],\n * \"affectedUsers\": 5000,\n * \"downtime\": {\n * \"required\": true,\n * \"durationMinutes\": 30\n * }\n * },\n * \"implementation\": {\n * \"description\": \"Execute database migration scripts\",\n * \"steps\": [\n * {\n * \"order\": 1,\n * \"description\": \"Backup current database\",\n * \"estimatedMinutes\": 10\n * }\n * ],\n * \"testing\": \"Run integration test suite\"\n * },\n * \"rollbackPlan\": {\n * \"description\": \"Restore from backup\",\n * \"steps\": [\n * {\n * \"order\": 1,\n * \"description\": \"Restore backup\",\n * \"estimatedMinutes\": 15\n * }\n * ]\n * },\n * \"schedule\": {\n * \"plannedStart\": 1704153600000,\n * \"plannedEnd\": 1704155400000\n * }\n * }\n * ```\n */\nexport const ChangeRequestSchema = z.object({\n /**\n * Unique change request identifier\n */\n id: z.string().describe('Change request ID'),\n\n /**\n * Short descriptive title of the change\n */\n title: z.string().describe('Change title'),\n\n /**\n * Detailed description of the change and its purpose\n */\n description: z.string().describe('Change description'),\n\n /**\n * Change classification type\n */\n type: ChangeTypeSchema.describe('Change type'),\n\n /**\n * Priority level for processing\n */\n priority: ChangePrioritySchema.describe('Change priority'),\n\n /**\n * Current status in the change lifecycle\n */\n status: ChangeStatusSchema.describe('Change status'),\n\n /**\n * User ID of the change requester\n */\n requestedBy: z.string().describe('Requester user ID'),\n\n /**\n * Timestamp when change was requested (Unix milliseconds)\n */\n requestedAt: z.number().describe('Request timestamp'),\n\n /**\n * Impact assessment of the change\n */\n impact: ChangeImpactSchema.describe('Impact assessment'),\n\n /**\n * Implementation plan and procedures\n */\n implementation: z.object({\n /**\n * High-level implementation description\n */\n description: z.string().describe('Implementation description'),\n\n /**\n * Sequential implementation steps\n */\n steps: z.array(z.object({\n /**\n * Step execution order\n */\n order: z.number().describe('Step order'),\n\n /**\n * Detailed description of this step\n */\n description: z.string().describe('Step description'),\n\n /**\n * Estimated time to complete this step\n */\n estimatedMinutes: z.number().describe('Estimated duration'),\n })).describe('Implementation steps'),\n\n /**\n * Testing procedures to verify successful implementation\n */\n testing: z.string().optional().describe('Testing procedure'),\n }).describe('Implementation plan'),\n\n /**\n * Rollback plan in case of failure\n */\n rollbackPlan: RollbackPlanSchema.describe('Rollback plan'),\n\n /**\n * Change schedule and timing\n */\n schedule: z.object({\n /**\n * Planned start time (Unix milliseconds)\n */\n plannedStart: z.number().describe('Planned start time'),\n\n /**\n * Planned end time (Unix milliseconds)\n */\n plannedEnd: z.number().describe('Planned end time'),\n\n /**\n * Actual start time (Unix milliseconds)\n */\n actualStart: z.number().optional().describe('Actual start time'),\n\n /**\n * Actual end time (Unix milliseconds)\n */\n actualEnd: z.number().optional().describe('Actual end time'),\n }).optional().describe('Schedule'),\n\n /**\n * Security impact assessment for the change (A.8.32)\n */\n securityImpact: z.object({\n /**\n * Whether a security impact assessment has been performed\n */\n assessed: z.boolean().describe('Whether security impact has been assessed'),\n\n /**\n * Security risk level of this change\n */\n riskLevel: z.enum(['none', 'low', 'medium', 'high', 'critical']).optional()\n .describe('Security risk level'),\n\n /**\n * Data classifications affected by this change\n */\n affectedDataClassifications: z.array(DataClassificationSchema)\n .optional().describe('Affected data classifications'),\n\n /**\n * Whether the change requires security team approval\n */\n requiresSecurityApproval: z.boolean().default(false)\n .describe('Whether security team approval is required'),\n\n /**\n * Security reviewer user ID\n */\n reviewedBy: z.string().optional()\n .describe('Security reviewer user ID'),\n\n /**\n * Security review completion timestamp (Unix milliseconds)\n */\n reviewedAt: z.number().optional()\n .describe('Security review timestamp'),\n\n /**\n * Security review notes or conditions\n */\n reviewNotes: z.string().optional()\n .describe('Security review notes or conditions'),\n }).optional().describe('Security impact assessment per ISO 27001:2022 A.8.32'),\n\n /**\n * Approval workflow configuration\n */\n approval: z.object({\n /**\n * Whether approval is required for this change\n */\n required: z.boolean().describe('Approval required'),\n\n /**\n * List of approvers and their approval status\n */\n approvers: z.array(z.object({\n /**\n * Approver user ID\n */\n userId: z.string().describe('Approver user ID'),\n\n /**\n * Timestamp when approval was granted (Unix milliseconds)\n */\n approvedAt: z.number().optional().describe('Approval timestamp'),\n\n /**\n * Comments from the approver\n */\n comments: z.string().optional().describe('Approver comments'),\n })).describe('Approvers'),\n }).optional().describe('Approval workflow'),\n\n /**\n * Supporting documentation and files\n */\n attachments: z.array(z.object({\n /**\n * Attachment file name\n */\n name: z.string().describe('Attachment name'),\n\n /**\n * URL to download the attachment\n */\n url: z.string().url().describe('Attachment URL'),\n })).optional().describe('Attachments'),\n\n /**\n * Custom metadata key-value pairs for extensibility\n */\n metadata: z.record(z.string(), z.unknown()).optional().describe('Custom metadata key-value pairs for extensibility'),\n});\n\n// Type exports\nexport type ChangeRequest = z.infer<typeof ChangeRequestSchema>;\nexport type ChangeType = z.infer<typeof ChangeTypeSchema>;\nexport type ChangeStatus = z.infer<typeof ChangeStatusSchema>;\nexport type ChangePriority = z.infer<typeof ChangePrioritySchema>;\nexport type ChangeImpact = z.infer<typeof ChangeImpactSchema>;\nexport type RollbackPlan = z.infer<typeof RollbackPlanSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Field-level encryption protocol\n * GDPR/HIPAA/PCI-DSS compliant\n */\nexport const EncryptionAlgorithmSchema = z.enum([\n 'aes-256-gcm',\n 'aes-256-cbc',\n 'chacha20-poly1305',\n]).describe('Supported encryption algorithm');\n\nexport type EncryptionAlgorithm = z.infer<typeof EncryptionAlgorithmSchema>;\n\nexport const KeyManagementProviderSchema = z.enum([\n 'local',\n 'aws-kms',\n 'azure-key-vault',\n 'gcp-kms',\n 'hashicorp-vault',\n]).describe('Key management service provider');\n\nexport type KeyManagementProvider = z.infer<typeof KeyManagementProviderSchema>;\n\nexport const KeyRotationPolicySchema = z.object({\n enabled: z.boolean().default(false).describe('Enable automatic key rotation'),\n frequencyDays: z.number().min(1).default(90).describe('Rotation frequency in days'),\n retainOldVersions: z.number().default(3).describe('Number of old key versions to retain'),\n autoRotate: z.boolean().default(true).describe('Automatically rotate without manual approval'),\n}).describe('Policy for automatic encryption key rotation');\n\nexport type KeyRotationPolicy = z.infer<typeof KeyRotationPolicySchema>;\nexport type KeyRotationPolicyInput = z.input<typeof KeyRotationPolicySchema>;\n\nexport const EncryptionConfigSchema = z.object({\n enabled: z.boolean().default(false).describe('Enable field-level encryption'),\n algorithm: EncryptionAlgorithmSchema.default('aes-256-gcm').describe('Encryption algorithm'),\n keyManagement: z.object({\n provider: KeyManagementProviderSchema.describe('Key management service provider'),\n keyId: z.string().optional().describe('Key identifier in the provider'),\n rotationPolicy: KeyRotationPolicySchema.optional().describe('Key rotation policy'),\n }).describe('Key management configuration'),\n scope: z.enum(['field', 'record', 'table', 'database']).describe('Encryption scope level'),\n deterministicEncryption: z.boolean().default(false).describe('Allows equality queries on encrypted data'),\n searchableEncryption: z.boolean().default(false).describe('Allows search on encrypted data'),\n}).describe('Field-level encryption configuration');\n\nexport type EncryptionConfig = z.infer<typeof EncryptionConfigSchema>;\nexport type EncryptionConfigInput = z.input<typeof EncryptionConfigSchema>;\n\nexport const FieldEncryptionSchema = z.object({\n fieldName: z.string().describe('Name of the field to encrypt'),\n encryptionConfig: EncryptionConfigSchema.describe('Encryption settings for this field'),\n indexable: z.boolean().default(false).describe('Allow indexing on encrypted field'),\n}).describe('Per-field encryption assignment');\n\nexport type FieldEncryption = z.infer<typeof FieldEncryptionSchema>;\nexport type FieldEncryptionInput = z.input<typeof FieldEncryptionSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Data masking protocol for PII protection\n */\nexport const MaskingStrategySchema = z.enum([\n 'redact', // Complete redaction: ****\n 'partial', // Partial masking: 138****5678\n 'hash', // Hash value: sha256(value)\n 'tokenize', // Tokenization: token-12345\n 'randomize', // Randomize: generate random value\n 'nullify', // Null value: null\n 'substitute', // Substitute with dummy data\n]).describe('Data masking strategy for PII protection');\n\nexport type MaskingStrategy = z.infer<typeof MaskingStrategySchema>;\n\nexport const MaskingRuleSchema = z.object({\n field: z.string().describe('Field name to apply masking to'),\n strategy: MaskingStrategySchema.describe('Masking strategy to use'),\n pattern: z.string().optional().describe('Regex pattern for partial masking'),\n preserveFormat: z.boolean().default(true).describe('Keep the original data format after masking'),\n preserveLength: z.boolean().default(true).describe('Keep the original data length after masking'),\n roles: z.array(z.string()).optional().describe('Roles that see masked data'),\n exemptRoles: z.array(z.string()).optional().describe('Roles that see unmasked data'),\n}).describe('Masking rule for a single field');\n\nexport type MaskingRule = z.infer<typeof MaskingRuleSchema>;\nexport type MaskingRuleInput = z.input<typeof MaskingRuleSchema>;\n\nexport const MaskingConfigSchema = z.object({\n enabled: z.boolean().default(false).describe('Enable data masking'),\n rules: z.array(MaskingRuleSchema).describe('List of field-level masking rules'),\n auditUnmasking: z.boolean().default(true).describe('Log when masked data is accessed unmasked'),\n}).describe('Top-level data masking configuration for PII protection');\n\nexport type MaskingConfig = z.infer<typeof MaskingConfigSchema>;\nexport type MaskingConfigInput = z.input<typeof MaskingConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SystemIdentifierSchema } from '../shared/identifiers.zod';\nimport { EncryptionConfigSchema } from '../system/encryption.zod';\nimport { MaskingRuleSchema } from '../system/masking.zod';\n\n/**\n * Field Type Enum\n */\nexport const FieldType = z.enum([\n // Core Text\n 'text', 'textarea', 'email', 'url', 'phone', 'password',\n // Rich Content\n 'markdown', 'html', 'richtext',\n // Numbers\n 'number', 'currency', 'percent', \n // Date & Time\n 'date', 'datetime', 'time',\n // Logic\n 'boolean', 'toggle', // Toggle is a distinct UI from checkbox\n // Selection\n 'select', // Single select dropdown\n 'multiselect', // Multi select (often tags)\n 'radio', // Radio group\n 'checkboxes', // Checkbox group\n // Relational\n 'lookup', 'master_detail', // Dynamic reference\n 'tree', // Hierarchical reference\n // Media\n 'image', 'file', 'avatar', 'video', 'audio',\n // Calculated / System\n 'formula', 'summary', 'autonumber',\n // Enhanced Types\n 'location', // GPS coordinates\n 'address', // Structured address\n 'code', // Code editor (JSON/SQL/JS)\n 'json', // Structured JSON data\n 'color', // Color picker\n 'rating', // Star rating\n 'slider', // Numeric slider\n 'signature', // Digital signature\n 'qrcode', // QR code / Barcode\n 'progress', // Progress bar\n 'tags', // Simple tag list\n // AI/ML Types\n 'vector', // Vector embeddings for AI/ML (semantic search, RAG)\n]);\n\nexport type FieldType = z.infer<typeof FieldType>;\n\n/**\n * Select Option Schema\n * \n * Defines option values for select/picklist fields.\n * \n * **CRITICAL RULE**: The `value` field is a machine identifier that gets stored in the database.\n * It MUST be lowercase to avoid case-sensitivity issues in queries and comparisons.\n * \n * @example Good\n * { label: 'New', value: 'new' }\n * { label: 'In Progress', value: 'in_progress' }\n * { label: 'Closed Won', value: 'closed_won' }\n * \n * @example Bad (will be rejected)\n * { label: 'New', value: 'New' } // uppercase\n * { label: 'In Progress', value: 'In Progress' } // spaces and uppercase\n * { label: 'Closed Won', value: 'Closed_Won' } // mixed case\n */\nexport const SelectOptionSchema = z.object({\n label: z.string().describe('Display label (human-readable, any case allowed)'),\n value: SystemIdentifierSchema.describe('Stored value (lowercase machine identifier)'),\n color: z.string().optional().describe('Color code for badges/charts'),\n default: z.boolean().optional().describe('Is default option'),\n});\n\n/**\n * Location Coordinates Schema\n * GPS coordinates for location field type\n */\nexport const LocationCoordinatesSchema = z.object({\n latitude: z.number().min(-90).max(90).describe('Latitude coordinate'),\n longitude: z.number().min(-180).max(180).describe('Longitude coordinate'),\n altitude: z.number().optional().describe('Altitude in meters'),\n accuracy: z.number().optional().describe('Accuracy in meters'),\n});\n\n/**\n * Currency Configuration Schema\n * Configuration for currency field type supporting multi-currency\n * \n * Note: Currency codes are validated by length only (3 characters) to support:\n * - Standard ISO 4217 codes (USD, EUR, CNY, etc.)\n * - Cryptocurrency codes (BTC, ETH, etc.)\n * - Custom business-specific codes\n * Stricter validation can be implemented at the application layer based on business requirements.\n */\nexport const CurrencyConfigSchema = z.object({\n precision: z.number().int().min(0).max(10).default(2).describe('Decimal precision (default: 2)'),\n currencyMode: z.enum(['dynamic', 'fixed']).default('dynamic').describe('Currency mode: dynamic (user selectable) or fixed (single currency)'),\n defaultCurrency: z.string().length(3).default('CNY').describe('Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)'),\n});\n\n/**\n * Currency Value Schema\n * Runtime value structure for currency fields\n * \n * Note: Currency codes are validated by length only (3 characters) to support flexibility.\n * See CurrencyConfigSchema for details on currency code validation strategy.\n */\nexport const CurrencyValueSchema = z.object({\n value: z.number().describe('Monetary amount'),\n currency: z.string().length(3).describe('Currency code (ISO 4217)'),\n});\n\n/**\n * Address Schema\n * Structured address for address field type\n */\nexport const AddressSchema = z.object({\n street: z.string().optional().describe('Street address'),\n city: z.string().optional().describe('City name'),\n state: z.string().optional().describe('State/Province'),\n postalCode: z.string().optional().describe('Postal/ZIP code'),\n country: z.string().optional().describe('Country name or code'),\n countryCode: z.string().optional().describe('ISO country code (e.g., US, GB)'),\n formatted: z.string().optional().describe('Formatted address string'),\n});\n\n/**\n * Vector Configuration Schema\n * Configuration for vector field type supporting AI/ML embeddings\n * \n * Vector fields store numerical embeddings for semantic search, similarity matching,\n * and Retrieval-Augmented Generation (RAG) workflows.\n * \n * @example\n * // Text embeddings for semantic search\n * {\n * dimensions: 1536, // OpenAI text-embedding-ada-002\n * distanceMetric: 'cosine',\n * indexed: true\n * }\n * \n * @example\n * // Image embeddings with normalization\n * {\n * dimensions: 512, // ResNet-50\n * distanceMetric: 'euclidean',\n * normalized: true,\n * indexed: true\n * }\n */\nexport const VectorConfigSchema = z.object({\n dimensions: z.number().int().min(1).max(10000).describe('Vector dimensionality (e.g., 1536 for OpenAI embeddings)'),\n distanceMetric: z.enum(['cosine', 'euclidean', 'dotProduct', 'manhattan']).default('cosine').describe('Distance/similarity metric for vector search'),\n normalized: z.boolean().default(false).describe('Whether vectors are normalized (unit length)'),\n indexed: z.boolean().default(true).describe('Whether to create a vector index for fast similarity search'),\n indexType: z.enum(['hnsw', 'ivfflat', 'flat']).optional().describe('Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets)'),\n});\n\n/**\n * File Attachment Configuration Schema\n * Configuration for file and attachment field types\n * \n * Provides comprehensive file upload capabilities with:\n * - File type restrictions (allowed/blocked)\n * - File size limits (min/max)\n * - Virus scanning integration\n * - Storage provider integration\n * - Image-specific features (dimensions, thumbnails)\n * \n * @example Basic file upload with size limit\n * {\n * maxSize: 10485760, // 10MB\n * allowedTypes: ['.pdf', '.docx', '.xlsx'],\n * virusScan: true\n * }\n * \n * @example Image upload with validation\n * {\n * maxSize: 5242880, // 5MB\n * allowedTypes: ['.jpg', '.jpeg', '.png', '.webp'],\n * imageValidation: {\n * maxWidth: 4096,\n * maxHeight: 4096,\n * generateThumbnails: true\n * }\n * }\n */\nexport const FileAttachmentConfigSchema = z.object({\n /** File Size Limits */\n minSize: z.number().min(0).optional().describe('Minimum file size in bytes'),\n maxSize: z.number().min(1).optional().describe('Maximum file size in bytes (e.g., 10485760 = 10MB)'),\n \n /** File Type Restrictions */\n allowedTypes: z.array(z.string()).optional().describe('Allowed file extensions (e.g., [\".pdf\", \".docx\", \".jpg\"])'),\n blockedTypes: z.array(z.string()).optional().describe('Blocked file extensions (e.g., [\".exe\", \".bat\", \".sh\"])'),\n allowedMimeTypes: z.array(z.string()).optional().describe('Allowed MIME types (e.g., [\"image/jpeg\", \"application/pdf\"])'),\n blockedMimeTypes: z.array(z.string()).optional().describe('Blocked MIME types'),\n \n /** Virus Scanning */\n virusScan: z.boolean().default(false).describe('Enable virus scanning for uploaded files'),\n virusScanProvider: z.enum(['clamav', 'virustotal', 'metadefender', 'custom']).optional().describe('Virus scanning service provider'),\n virusScanOnUpload: z.boolean().default(true).describe('Scan files immediately on upload'),\n quarantineOnThreat: z.boolean().default(true).describe('Quarantine files if threat detected'),\n \n /** Storage Configuration */\n storageProvider: z.string().optional().describe('Object storage provider name (references ObjectStorageConfig)'),\n storageBucket: z.string().optional().describe('Target bucket name'),\n storagePrefix: z.string().optional().describe('Storage path prefix (e.g., \"uploads/documents/\")'),\n \n /** Image-Specific Validation */\n imageValidation: z.object({\n minWidth: z.number().min(1).optional().describe('Minimum image width in pixels'),\n maxWidth: z.number().min(1).optional().describe('Maximum image width in pixels'),\n minHeight: z.number().min(1).optional().describe('Minimum image height in pixels'),\n maxHeight: z.number().min(1).optional().describe('Maximum image height in pixels'),\n aspectRatio: z.string().optional().describe('Required aspect ratio (e.g., \"16:9\", \"1:1\")'),\n generateThumbnails: z.boolean().default(false).describe('Auto-generate thumbnails'),\n thumbnailSizes: z.array(z.object({\n name: z.string().describe('Thumbnail variant name (e.g., \"small\", \"medium\", \"large\")'),\n width: z.number().min(1).describe('Thumbnail width in pixels'),\n height: z.number().min(1).describe('Thumbnail height in pixels'),\n crop: z.boolean().default(false).describe('Crop to exact dimensions'),\n })).optional().describe('Thumbnail size configurations'),\n preserveMetadata: z.boolean().default(false).describe('Preserve EXIF metadata'),\n autoRotate: z.boolean().default(true).describe('Auto-rotate based on EXIF orientation'),\n }).optional().describe('Image-specific validation rules'),\n \n /** Upload Behavior */\n allowMultiple: z.boolean().default(false).describe('Allow multiple file uploads (overrides field.multiple)'),\n allowReplace: z.boolean().default(true).describe('Allow replacing existing files'),\n allowDelete: z.boolean().default(true).describe('Allow deleting uploaded files'),\n requireUpload: z.boolean().default(false).describe('Require at least one file when field is required'),\n \n /** Metadata Extraction */\n extractMetadata: z.boolean().default(true).describe('Extract file metadata (name, size, type, etc.)'),\n extractText: z.boolean().default(false).describe('Extract text content from documents (OCR/parsing)'),\n \n /** Versioning */\n versioningEnabled: z.boolean().default(false).describe('Keep previous versions of replaced files'),\n maxVersions: z.number().min(1).optional().describe('Maximum number of versions to retain'),\n \n /** Access Control */\n publicRead: z.boolean().default(false).describe('Allow public read access to uploaded files'),\n presignedUrlExpiry: z.number().min(60).max(604800).default(3600).describe('Presigned URL expiration in seconds (default: 1 hour)'),\n}).refine((data) => {\n // Validate minSize is less than or equal to maxSize\n if (data.minSize !== undefined && data.maxSize !== undefined && data.minSize > data.maxSize) {\n return false;\n }\n return true;\n}, {\n message: 'minSize must be less than or equal to maxSize',\n}).refine((data) => {\n // Validate virusScanProvider requires virusScan to be enabled\n if (data.virusScanProvider !== undefined && data.virusScan !== true) {\n return false;\n }\n return true;\n}, {\n message: 'virusScanProvider requires virusScan to be enabled',\n});\n\n/**\n * Data Quality Rules Schema\n * Defines data quality validation and monitoring for fields\n * \n * @example Unique SSN field with completeness requirement\n * {\n * uniqueness: true,\n * completeness: 0.95, // 95% of records must have this field\n * accuracy: {\n * source: 'government_db',\n * threshold: 0.98\n * }\n * }\n */\nexport const DataQualityRulesSchema = z.object({\n /** Enforce uniqueness constraint */\n uniqueness: z.boolean().default(false).describe('Enforce unique values across all records'),\n \n /** Completeness ratio (0-1) indicating minimum percentage of non-null values */\n completeness: z.number().min(0).max(1).default(0).describe('Minimum ratio of non-null values (0-1, default: 0 = no requirement)'),\n \n /** Accuracy validation against authoritative source */\n accuracy: z.object({\n source: z.string().describe('Reference data source for validation (e.g., \"api.verify.com\", \"master_data\")'),\n threshold: z.number().min(0).max(1).describe('Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)'),\n }).optional().describe('Accuracy validation configuration'),\n});\n\n/**\n * Computed Field Caching Schema\n * Configuration for caching computed/formula field results\n * \n * @example Cache product price with 1-hour TTL, invalidate on inventory changes\n * {\n * enabled: true,\n * ttl: 3600,\n * invalidateOn: ['inventory.quantity', 'pricing.discount']\n * }\n */\nexport const ComputedFieldCacheSchema = z.object({\n /** Enable caching for this computed field */\n enabled: z.boolean().describe('Enable caching for computed field results'),\n \n /** Time-to-live in seconds */\n ttl: z.number().min(0).describe('Cache TTL in seconds (0 = no expiration)'),\n \n /** Array of field paths that trigger cache invalidation when changed */\n invalidateOn: z.array(z.string()).describe('Field paths that invalidate cache (e.g., [\"inventory.quantity\", \"pricing.base_price\"])'),\n});\n\n/**\n * Field Schema - Best Practice Enterprise Pattern\n */\n/**\n * Field Definition Schema\n * Defines the properties, type, and behavior of a single field (column) on an object.\n * \n * @example Lookup Field\n * {\n * name: \"account_id\",\n * label: \"Account\",\n * type: \"lookup\",\n * reference: \"accounts\",\n * required: true\n * }\n * \n * @example Select Field\n * {\n * name: \"status\",\n * label: \"Status\",\n * type: \"select\",\n * options: [\n * { label: \"Open\", value: \"open\" },\n * { label: \"Closed\", value: \"closed\" }\n * ],\n * defaultValue: \"open\"\n * }\n */\nexport const FieldSchema = z.object({\n /** Identity */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Machine name (snake_case)').optional(),\n label: z.string().optional().describe('Human readable label'),\n type: FieldType.describe('Field Data Type'),\n description: z.string().optional().describe('Tooltip/Help text'),\n format: z.string().optional().describe('Format string (e.g. email, phone)'),\n\n /** Storage Layer Mapping */\n columnName: z.string().optional().describe('Physical column name in the target datasource. Defaults to the field key when not set.'),\n\n /** Database Constraints */\n required: z.boolean().default(false).describe('Is required'),\n searchable: z.boolean().default(false).describe('Is searchable'),\n multiple: z.boolean().default(false).describe('Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image.'),\n unique: z.boolean().default(false).describe('Is unique constraint'),\n defaultValue: z.unknown().optional().describe('Default value'),\n \n /** Text/String Constraints */\n maxLength: z.number().optional().describe('Max character length'),\n minLength: z.number().optional().describe('Min character length'),\n \n /** Number Constraints */\n precision: z.number().optional().describe('Total digits'),\n scale: z.number().optional().describe('Decimal places'),\n min: z.number().optional().describe('Minimum value'),\n max: z.number().optional().describe('Maximum value'),\n\n /** Selection Options */\n options: z.array(SelectOptionSchema).optional().describe('Static options for select/multiselect'),\n\n /** Relationship Config */\n reference: z.string().optional().describe('Target Object Name'),\n referenceFilters: z.array(z.string()).optional().describe('Filters applied to lookup dialogs (e.g. \"active = true\")'),\n writeRequiresMasterRead: z.boolean().optional().describe('If true, user needs read access to master record to edit this field'),\n deleteBehavior: z.enum(['set_null', 'cascade', 'restrict']).optional().default('set_null').describe('What happens if referenced record is deleted'),\n\n /** Calculation */\n expression: z.string().optional().describe('Formula expression'),\n summaryOperations: z.object({\n object: z.string().describe('Source child object name for roll-up'),\n field: z.string().describe('Field on child object to aggregate'),\n function: z.enum(['count', 'sum', 'min', 'max', 'avg']).describe('Aggregation function to apply'),\n }).optional().describe('Roll-up summary definition'),\n\n /** Enhanced Field Type Configurations */\n // Code field config\n language: z.string().optional().describe('Programming language for syntax highlighting (e.g., javascript, python, sql)'),\n theme: z.string().optional().describe('Code editor theme (e.g., dark, light, monokai)'),\n lineNumbers: z.boolean().optional().describe('Show line numbers in code editor'),\n \n // Rating field config\n maxRating: z.number().optional().describe('Maximum rating value (default: 5)'),\n allowHalf: z.boolean().optional().describe('Allow half-star ratings'),\n \n // Location field config\n displayMap: z.boolean().optional().describe('Display map widget for location field'),\n allowGeocoding: z.boolean().optional().describe('Allow address-to-coordinate conversion'),\n \n // Address field config\n addressFormat: z.enum(['us', 'uk', 'international']).optional().describe('Address format template'),\n \n // Color field config\n colorFormat: z.enum(['hex', 'rgb', 'rgba', 'hsl']).optional().describe('Color value format'),\n allowAlpha: z.boolean().optional().describe('Allow transparency/alpha channel'),\n presetColors: z.array(z.string()).optional().describe('Preset color options'),\n \n // Slider field config\n step: z.number().optional().describe('Step increment for slider (default: 1)'),\n showValue: z.boolean().optional().describe('Display current value on slider'),\n marks: z.record(z.string(), z.string()).optional().describe('Custom marks/labels at specific values (e.g., {0: \"Low\", 50: \"Medium\", 100: \"High\"})'),\n \n // QR Code / Barcode field config\n // Note: qrErrorCorrection is only applicable when barcodeFormat='qr'\n // Runtime validation should enforce this constraint\n barcodeFormat: z.enum(['qr', 'ean13', 'ean8', 'code128', 'code39', 'upca', 'upce']).optional().describe('Barcode format type'),\n qrErrorCorrection: z.enum(['L', 'M', 'Q', 'H']).optional().describe('QR code error correction level (L=7%, M=15%, Q=25%, H=30%). Only applicable when barcodeFormat is \"qr\"'),\n displayValue: z.boolean().optional().describe('Display human-readable value below barcode/QR code'),\n allowScanning: z.boolean().optional().describe('Enable camera scanning for barcode/QR code input'),\n\n // Currency field config\n currencyConfig: CurrencyConfigSchema.optional().describe('Configuration for currency field type'),\n\n // Vector field config\n vectorConfig: VectorConfigSchema.optional().describe('Configuration for vector field type (AI/ML embeddings)'),\n\n // File attachment field config\n fileAttachmentConfig: FileAttachmentConfigSchema.optional().describe('Configuration for file and attachment field types'),\n\n /** Enhanced Security & Compliance */\n // Encryption configuration\n encryptionConfig: EncryptionConfigSchema.optional().describe('Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS)'),\n \n // Data masking rules\n maskingRule: MaskingRuleSchema.optional().describe('Data masking rules for PII protection'),\n \n // Audit trail\n auditTrail: z.boolean().default(false).describe('Enable detailed audit trail for this field (tracks all changes with user and timestamp)'),\n \n /** Field Dependencies & Relationships */\n // Field dependencies\n dependencies: z.array(z.string()).optional().describe('Array of field names that this field depends on (for formulas, visibility rules, etc.)'),\n \n /** Computed Field Optimization */\n // Computed field caching\n cached: ComputedFieldCacheSchema.optional().describe('Caching configuration for computed/formula fields'),\n \n /** Data Quality & Governance */\n // Data quality rules\n dataQuality: DataQualityRulesSchema.optional().describe('Data quality validation and monitoring rules'),\n\n /** Layout & Grouping */\n group: z.string().optional().describe('Field group name for organizing fields in forms and layouts (e.g., \"contact_info\", \"billing\", \"system\")'),\n\n /** Conditional Requirements */\n conditionalRequired: z.string().optional().describe('Formula expression that makes this field required when TRUE (e.g., \"status = \\'closed_won\\'\")'),\n\n /** Security & Visibility */\n hidden: z.boolean().default(false).describe('Hidden from default UI'),\n readonly: z.boolean().default(false).describe('Read-only in UI'),\n sortable: z.boolean().optional().default(true).describe('Whether field is sortable in list views'),\n inlineHelpText: z.string().optional().describe('Help text displayed below the field in forms'),\n trackFeedHistory: z.boolean().optional().describe('Track field changes in Chatter/activity feed (Salesforce pattern)'),\n caseSensitive: z.boolean().optional().describe('Whether text comparisons are case-sensitive'),\n autonumberFormat: z.string().optional().describe('Auto-number display format pattern (e.g., \"CASE-{0000}\")'),\n /** Indexing */\n index: z.boolean().default(false).describe('Create standard database index'),\n externalId: z.boolean().default(false).describe('Is external ID for upsert operations'),\n});\n\nexport type Field = z.infer<typeof FieldSchema>;\nexport type SelectOption = z.infer<typeof SelectOptionSchema>;\nexport type LocationCoordinates = z.infer<typeof LocationCoordinatesSchema>;\nexport type Address = z.infer<typeof AddressSchema>;\nexport type CurrencyConfig = z.infer<typeof CurrencyConfigSchema>;\nexport type CurrencyConfigInput = z.input<typeof CurrencyConfigSchema>;\nexport type CurrencyValue = z.infer<typeof CurrencyValueSchema>;\nexport type VectorConfig = z.infer<typeof VectorConfigSchema>;\nexport type VectorConfigInput = z.input<typeof VectorConfigSchema>;\nexport type FileAttachmentConfig = z.infer<typeof FileAttachmentConfigSchema>;\nexport type FileAttachmentConfigInput = z.input<typeof FileAttachmentConfigSchema>;\nexport type DataQualityRules = z.infer<typeof DataQualityRulesSchema>;\nexport type DataQualityRulesInput = z.input<typeof DataQualityRulesSchema>;\nexport type ComputedFieldCache = z.infer<typeof ComputedFieldCacheSchema>;\n\n/**\n * Field Factory Helper\n */\nexport type FieldInput = Omit<Partial<Field>, 'type'>;\n\nexport const Field = {\n text: (config: FieldInput = {}) => ({ type: 'text', ...config } as const),\n textarea: (config: FieldInput = {}) => ({ type: 'textarea', ...config } as const),\n number: (config: FieldInput = {}) => ({ type: 'number', ...config } as const),\n boolean: (config: FieldInput = {}) => ({ type: 'boolean', ...config } as const),\n date: (config: FieldInput = {}) => ({ type: 'date', ...config } as const),\n datetime: (config: FieldInput = {}) => ({ type: 'datetime', ...config } as const),\n currency: (config: FieldInput = {}) => ({ type: 'currency', ...config } as const),\n percent: (config: FieldInput = {}) => ({ type: 'percent', ...config } as const),\n url: (config: FieldInput = {}) => ({ type: 'url', ...config } as const),\n email: (config: FieldInput = {}) => ({ type: 'email', ...config } as const),\n phone: (config: FieldInput = {}) => ({ type: 'phone', ...config } as const),\n image: (config: FieldInput = {}) => ({ type: 'image', ...config } as const),\n file: (config: FieldInput = {}) => ({ type: 'file', ...config } as const),\n avatar: (config: FieldInput = {}) => ({ type: 'avatar', ...config } as const),\n formula: (config: FieldInput = {}) => ({ type: 'formula', ...config } as const),\n summary: (config: FieldInput = {}) => ({ type: 'summary', ...config } as const),\n autonumber: (config: FieldInput = {}) => ({ type: 'autonumber', ...config } as const),\n markdown: (config: FieldInput = {}) => ({ type: 'markdown', ...config } as const),\n html: (config: FieldInput = {}) => ({ type: 'html', ...config } as const),\n password: (config: FieldInput = {}) => ({ type: 'password', ...config } as const),\n \n /**\n * Select field helper with backward-compatible API\n * \n * Automatically converts option values to lowercase to enforce naming conventions.\n * \n * @example Old API (array first) - auto-converts to lowercase\n * Field.select(['High', 'Low'], { label: 'Priority' })\n * // Results in: [{ label: 'High', value: 'high' }, { label: 'Low', value: 'low' }]\n * \n * @example New API (config object) - enforces lowercase\n * Field.select({ options: [{label: 'High', value: 'high'}], label: 'Priority' })\n * \n * @example Multi-word values - converts to snake_case\n * Field.select(['In Progress', 'Closed Won'], { label: 'Status' })\n * // Results in: [{ label: 'In Progress', value: 'in_progress' }, { label: 'Closed Won', value: 'closed_won' }]\n */\n select: (optionsOrConfig: SelectOption[] | string[] | FieldInput & { options: SelectOption[] | string[] }, config?: FieldInput) => {\n // Helper function to convert string to lowercase snake_case\n const toSnakeCase = (str: string): string => {\n return str\n .toLowerCase()\n .replace(/\\s+/g, '_') // Replace spaces with underscores\n .replace(/[^a-z0-9_]/g, ''); // Remove invalid characters (keeping underscores only)\n };\n\n // Support both old and new signatures:\n // Old: Field.select(['a', 'b'], { label: 'X' })\n // New: Field.select({ options: [{label: 'A', value: 'a'}], label: 'X' })\n let options: SelectOption[];\n let finalConfig: FieldInput;\n \n if (Array.isArray(optionsOrConfig)) {\n // Old signature: array as first param\n options = optionsOrConfig.map(o => \n typeof o === 'string' \n ? { label: o, value: toSnakeCase(o) } // Auto-convert string to snake_case\n : { ...o, value: o.value.toLowerCase() } // Ensure value is lowercase\n );\n finalConfig = config || {};\n } else {\n // New signature: config object with options\n options = (optionsOrConfig.options || []).map(o => \n typeof o === 'string' \n ? { label: o, value: toSnakeCase(o) } // Auto-convert string to snake_case\n : { ...o, value: o.value.toLowerCase() } // Ensure value is lowercase\n );\n // Remove options from config to avoid confusion\n const { options: _, ...restConfig } = optionsOrConfig;\n finalConfig = restConfig;\n }\n \n return { type: 'select', options, ...finalConfig } as const;\n },\n\n \n lookup: (reference: string, config: FieldInput = {}) => ({ \n type: 'lookup', \n reference, \n ...config \n } as const),\n \n masterDetail: (reference: string, config: FieldInput = {}) => ({ \n type: 'master_detail', \n reference, \n ...config \n } as const),\n\n // Enhanced Field Type Helpers\n location: (config: FieldInput = {}) => ({ \n type: 'location', \n ...config \n } as const),\n \n address: (config: FieldInput = {}) => ({ \n type: 'address', \n ...config \n } as const),\n \n richtext: (config: FieldInput = {}) => ({ \n type: 'richtext', \n ...config \n } as const),\n \n code: (language?: string, config: FieldInput = {}) => ({ \n type: 'code', \n language,\n ...config \n } as const),\n \n color: (config: FieldInput = {}) => ({ \n type: 'color', \n ...config \n } as const),\n \n rating: (maxRating: number = 5, config: FieldInput = {}) => ({ \n type: 'rating', \n maxRating,\n ...config \n } as const),\n \n signature: (config: FieldInput = {}) => ({ \n type: 'signature', \n ...config \n } as const),\n \n slider: (config: FieldInput = {}) => ({ \n type: 'slider', \n ...config \n } as const),\n \n qrcode: (config: FieldInput = {}) => ({ \n type: 'qrcode', \n ...config \n } as const),\n \n vector: (dimensions: number, config: FieldInput = {}) => ({ \n type: 'vector', \n vectorConfig: {\n dimensions,\n distanceMetric: 'cosine' as const,\n normalized: false,\n indexed: true,\n ...config.vectorConfig\n },\n ...config \n } as const),\n};\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * # ObjectStack Validation Protocol\n * \n * This module defines the validation schema protocol for ObjectStack, providing a comprehensive\n * type-safe validation system similar to Salesforce's validation rules but with enhanced capabilities.\n * \n * ## Overview\n * \n * Validation rules are applied at the data layer to ensure data integrity and enforce business logic.\n * The system supports multiple validation types:\n * \n * 1. **Script Validation**: Formula-based validation using expressions\n * 2. **Uniqueness Validation**: Enforce unique constraints across fields\n * 3. **State Machine Validation**: Control allowed state transitions\n * 4. **Format Validation**: Validate field formats (email, URL, regex, etc.)\n * 5. **Cross-Field Validation**: Validate relationships between multiple fields\n * 6. **Async Validation**: Remote validation via API calls\n * 7. **Custom Validation**: User-defined validation functions\n * 8. **Conditional Validation**: Apply validations based on conditions\n * \n * ## Salesforce Comparison\n * \n * ObjectStack validation rules are inspired by Salesforce validation rules but enhanced:\n * - Salesforce: Formula-based validation with `Error Condition Formula`\n * - ObjectStack: Multiple validation types with composable rules\n * \n * Example Salesforce validation rule:\n * ```\n * Rule Name: Discount_Cannot_Exceed_40_Percent\n * Error Condition Formula: Discount_Percent__c > 0.40\n * Error Message: Discount cannot exceed 40%.\n * ```\n * \n * Equivalent ObjectStack rule:\n * ```typescript\n * {\n * type: 'script',\n * name: 'discount_cannot_exceed_40_percent',\n * condition: 'discount_percent > 0.40',\n * message: 'Discount cannot exceed 40%',\n * severity: 'error'\n * }\n * ```\n */\n\n/**\n * Base Validation Rule\n * \n * All validation rules extend from this base schema with common properties.\n * \n * ## Industry Standard Enhancements\n * - **Label/Description**: Essential for governance in large systems with thousands of rules.\n * - **Events**: granular control over validation timing (Context-aware validation).\n * - **Tags**: categorization for reporting and management.\n */\nconst BaseValidationSchema = z.object({\n // Identification\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Unique rule name (snake_case)'),\n label: z.string().optional().describe('Human-readable label for the rule listing'),\n description: z.string().optional().describe('Administrative notes explaining the business reason'),\n \n // Execution Control\n active: z.boolean().default(true),\n events: z.array(z.enum(['insert', 'update', 'delete'])).default(['insert', 'update']).describe('Validation contexts'),\n priority: z.number().int().min(0).max(9999).default(100).describe('Execution priority (lower runs first, default: 100)'),\n \n // Classification\n tags: z.array(z.string()).optional().describe('Categorization tags (e.g., \"compliance\", \"billing\")'),\n \n // Feedback\n severity: z.enum(['error', 'warning', 'info']).default('error'),\n message: z.string().describe('Error message to display to the user'),\n});\n\n/**\n * 1. Script/Expression Validation\n * Generic formula-based validation.\n */\nexport const ScriptValidationSchema = BaseValidationSchema.extend({\n type: z.literal('script'),\n condition: z.string().describe('Formula expression. If TRUE, validation fails. (e.g. amount < 0)'),\n});\n\n/**\n * 2. Uniqueness Validation\n * specialized optimized check for unique constraints.\n */\nexport const UniquenessValidationSchema = BaseValidationSchema.extend({\n type: z.literal('unique'),\n fields: z.array(z.string()).describe('Fields that must be combined unique'),\n scope: z.string().optional().describe('Formula condition for scope (e.g. active = true)'),\n caseSensitive: z.boolean().default(true),\n});\n\n/**\n * 3. State Machine Validation\n * State transition logic.\n */\nexport const StateMachineValidationSchema = BaseValidationSchema.extend({\n type: z.literal('state_machine'),\n field: z.string().describe('State field (e.g. status)'),\n transitions: z.record(z.string(), z.array(z.string())).describe('Map of { OldState: [AllowedNewStates] }'),\n});\n\n/**\n * 4. Value Format Validation\n * Regex or specialized formats.\n */\nexport const FormatValidationSchema = BaseValidationSchema.extend({\n type: z.literal('format'),\n field: z.string(),\n regex: z.string().optional(),\n format: z.enum(['email', 'url', 'phone', 'json']).optional(),\n});\n\n/**\n * 5. Cross-Field Validation\n * Validates relationships between multiple fields.\n * \n * ## Use Cases\n * - Date range validations (end_date > start_date)\n * - Amount comparisons (discount < total)\n * - Complex business rules involving multiple fields\n * \n * ## Salesforce Examples\n * \n * ### Example 1: Close Date Must Be In Current or Future Month\n * **Salesforce Formula:**\n * ```\n * MONTH(CloseDate) < MONTH(TODAY()) ||\n * YEAR(CloseDate) < YEAR(TODAY())\n * ```\n * \n * **ObjectStack Equivalent:**\n * ```typescript\n * {\n * type: 'cross_field',\n * name: 'close_date_future',\n * condition: 'MONTH(close_date) >= MONTH(TODAY()) AND YEAR(close_date) >= YEAR(TODAY())',\n * fields: ['close_date'],\n * message: 'Close Date must be in the current or a future month'\n * }\n * ```\n * \n * ### Example 2: Discount Validation\n * **Salesforce Formula:**\n * ```\n * Discount__c > (Amount__c * 0.40)\n * ```\n * \n * **ObjectStack Equivalent:**\n * ```typescript\n * {\n * type: 'cross_field',\n * name: 'discount_limit',\n * condition: 'discount > (amount * 0.40)',\n * fields: ['discount', 'amount'],\n * message: 'Discount cannot exceed 40% of the amount'\n * }\n * ```\n * \n * ### Example 3: Opportunity Must Have Products\n * **Salesforce Formula:**\n * ```\n * ISBLANK(Products__c) && ISPICKVAL(StageName, \"Closed Won\")\n * ```\n * \n * **ObjectStack Equivalent:**\n * ```typescript\n * {\n * type: 'cross_field',\n * name: 'products_required_for_won',\n * condition: 'products = null AND stage = \"closed_won\"',\n * fields: ['products', 'stage'],\n * message: 'Opportunity must have products to be marked as Closed Won'\n * }\n * ```\n */\nexport const CrossFieldValidationSchema = BaseValidationSchema.extend({\n type: z.literal('cross_field'),\n condition: z.string().describe('Formula expression comparing fields (e.g. \"end_date > start_date\")'),\n fields: z.array(z.string()).describe('Fields involved in the validation'),\n});\n\n/**\n * 6. JSON Structure Validation\n * Validates JSON fields against a JSON Schema.\n * \n * ## Use Cases\n * - Validating configuration objects stored in JSON fields\n * - Enforcing API payload structures\n * - Complex nested data validation\n */\nexport const JSONValidationSchema = BaseValidationSchema.extend({\n type: z.literal('json_schema'),\n field: z.string().describe('JSON field to validate'),\n schema: z.record(z.string(), z.unknown()).describe('JSON Schema object definition'),\n});\n\n/**\n * 7. Async Validation\n * Remote validation via API call or database query.\n * \n * ## Use Cases\n * \n * ### 1. Email Uniqueness Check\n * Check if an email address is already registered in the system.\n * ```typescript\n * {\n * type: 'async',\n * name: 'unique_email',\n * field: 'email',\n * validatorUrl: '/api/users/check-email',\n * message: 'This email address is already registered',\n * debounce: 500, // Wait 500ms after user stops typing\n * timeout: 3000\n * }\n * ```\n * \n * ### 2. Username Availability\n * Verify username is available before form submission.\n * ```typescript\n * {\n * type: 'async',\n * name: 'username_available',\n * field: 'username',\n * validatorUrl: '/api/users/check-username',\n * message: 'This username is already taken',\n * debounce: 300,\n * timeout: 2000\n * }\n * ```\n * \n * ### 3. Tax ID Validation\n * Validate tax ID with government API (e.g., IRS, HMRC).\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_tax_id',\n * field: 'tax_id',\n * validatorFunction: 'validateTaxIdWithIRS',\n * message: 'Invalid Tax ID number',\n * timeout: 10000, // Government APIs may be slow\n * params: { country: 'US', format: 'EIN' }\n * }\n * ```\n * \n * ### 4. Credit Card Validation\n * Verify credit card with payment gateway without charging.\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_card',\n * field: 'card_number',\n * validatorUrl: 'https://api.stripe.com/v1/tokens/validate',\n * message: 'Invalid credit card number',\n * timeout: 5000,\n * params: { \n * mode: 'validate_only',\n * checkFunds: false \n * }\n * }\n * ```\n * \n * ### 5. Address Validation\n * Validate and standardize addresses using geocoding services.\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_address',\n * field: 'street_address',\n * validatorFunction: 'validateAddressWithGoogleMaps',\n * message: 'Unable to verify address',\n * timeout: 4000,\n * params: {\n * includeFields: ['city', 'state', 'zip'],\n * strictMode: true,\n * country: 'US'\n * }\n * }\n * ```\n * \n * ### 6. Domain Name Availability\n * Check if domain name is available for registration.\n * ```typescript\n * {\n * type: 'async',\n * name: 'domain_available',\n * field: 'domain_name',\n * validatorUrl: '/api/domains/check-availability',\n * message: 'This domain is already taken or reserved',\n * debounce: 500,\n * timeout: 2000\n * }\n * ```\n * \n * ### 7. Coupon Code Validation\n * Verify coupon code is valid and not expired.\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_coupon',\n * field: 'coupon_code',\n * validatorUrl: '/api/coupons/validate',\n * message: 'Invalid or expired coupon code',\n * timeout: 2000,\n * params: {\n * checkExpiration: true,\n * checkUsageLimit: true,\n * userId: '{{current_user_id}}'\n * }\n * }\n * ```\n */\nexport const AsyncValidationSchema = BaseValidationSchema.extend({\n type: z.literal('async'),\n field: z.string().describe('Field to validate'),\n validatorUrl: z.string().optional().describe('External API endpoint for validation'),\n method: z.enum(['GET', 'POST']).default('GET').describe('HTTP method for external call'),\n headers: z.record(z.string(), z.string()).optional().describe('Custom headers for the request'),\n validatorFunction: z.string().optional().describe('Reference to custom validator function'),\n timeout: z.number().optional().default(5000).describe('Timeout in milliseconds'),\n debounce: z.number().optional().describe('Debounce delay in milliseconds'),\n params: z.record(z.string(), z.unknown()).optional().describe('Additional parameters to pass to validator'),\n});\n\n/**\n * 8. Custom Validator Function\n * User-defined validation logic with code reference.\n */\nexport const CustomValidatorSchema = BaseValidationSchema.extend({\n type: z.literal('custom'),\n handler: z.string().describe('Name of the custom validation function registered in the system'),\n params: z.record(z.string(), z.unknown()).optional().describe('Parameters passed to the custom handler'),\n});\n\n/**\n * 9. Master Validation Rule Schema\n */\n/** Base type for validation rules - used for z.lazy() recursive type annotation */\nexport interface BaseValidationRuleShape {\n type: string;\n name: string;\n message: string;\n label?: string;\n description?: string;\n active?: boolean;\n events?: ('insert' | 'update' | 'delete')[];\n priority?: number;\n tags?: string[];\n severity?: 'error' | 'warning' | 'info';\n [key: string]: unknown;\n}\n\nexport const ValidationRuleSchema: z.ZodType<BaseValidationRuleShape> = z.lazy(() =>\n z.discriminatedUnion('type', [\n ScriptValidationSchema,\n UniquenessValidationSchema,\n StateMachineValidationSchema,\n FormatValidationSchema,\n CrossFieldValidationSchema,\n JSONValidationSchema,\n AsyncValidationSchema,\n CustomValidatorSchema,\n ConditionalValidationSchema,\n ])\n);\n\n/**\n * 8. Conditional Validation\n * Validation that only applies when a condition is met.\n * \n * ## Overview\n * Conditional validations follow the pattern: \"Validate X only if Y is true\"\n * This allows for context-aware validation rules that adapt to different scenarios.\n * \n * ## Use Cases\n * \n * ### 1. Validate Based on Record Type\n * Apply different validation rules based on the type of record.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'enterprise_approval_required',\n * when: 'account_type = \"enterprise\"',\n * message: 'Enterprise validation',\n * then: {\n * type: 'script',\n * name: 'require_approval',\n * message: 'Enterprise accounts require manager approval',\n * condition: 'approval_status = null'\n * }\n * }\n * ```\n * \n * ### 2. Conditional Field Requirements\n * Require certain fields only when specific conditions are met.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'shipping_address_when_required',\n * when: 'requires_shipping = true',\n * message: 'Shipping validation',\n * then: {\n * type: 'script',\n * name: 'shipping_address_required',\n * message: 'Shipping address is required for physical products',\n * condition: 'shipping_address = null OR shipping_address = \"\"'\n * }\n * }\n * ```\n * \n * ### 3. Amount-Based Validation\n * Apply different rules based on transaction amount.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'high_value_approval',\n * when: 'order_total > 10000',\n * message: 'High value order validation',\n * then: {\n * type: 'script',\n * name: 'manager_approval_required',\n * message: 'Orders over $10,000 require manager approval',\n * condition: 'manager_approval_id = null'\n * },\n * otherwise: {\n * type: 'script',\n * name: 'standard_validation',\n * message: 'Payment method is required',\n * condition: 'payment_method = null'\n * }\n * }\n * ```\n * \n * ### 4. Regional Compliance\n * Apply region-specific validation rules.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'regional_compliance',\n * when: 'region = \"EU\"',\n * message: 'EU compliance validation',\n * then: {\n * type: 'script',\n * name: 'gdpr_consent',\n * message: 'GDPR consent is required for EU customers',\n * condition: 'gdpr_consent_given = false'\n * },\n * otherwise: {\n * type: 'script',\n * name: 'tos_acceptance',\n * message: 'Terms of Service acceptance required',\n * condition: 'tos_accepted = false'\n * }\n * }\n * ```\n * \n * ### 5. Nested Conditional Validation\n * Create complex validation logic with nested conditions.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'country_state_validation',\n * when: 'country = \"US\"',\n * message: 'US-specific validation',\n * then: {\n * type: 'conditional',\n * name: 'california_validation',\n * when: 'state = \"CA\"',\n * message: 'California-specific validation',\n * then: {\n * type: 'script',\n * name: 'ca_tax_id_required',\n * message: 'California requires a valid tax ID',\n * condition: 'tax_id = null OR NOT(REGEX(tax_id, \"^\\\\d{2}-\\\\d{7}$\"))'\n * }\n * }\n * }\n * ```\n * \n * ### 6. Tax Validation for Taxable Items\n * Only validate tax fields when the item is taxable.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'tax_field_validation',\n * when: 'is_taxable = true',\n * message: 'Tax validation',\n * then: {\n * type: 'script',\n * name: 'tax_code_required',\n * message: 'Tax code is required for taxable items',\n * condition: 'tax_code = null OR tax_code = \"\"'\n * }\n * }\n * ```\n * \n * ### 7. Role-Based Validation\n * Apply validation based on user role.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'role_based_approval_limit',\n * when: 'user_role = \"manager\"',\n * message: 'Manager approval limits',\n * then: {\n * type: 'script',\n * name: 'manager_limit',\n * message: 'Managers can approve up to $50,000',\n * condition: 'approval_amount > 50000'\n * }\n * }\n * ```\n * \n * ## Salesforce Pattern Comparison\n * \n * Salesforce doesn't have explicit \"conditional validation\" rules but achieves similar\n * behavior using formula logic. ObjectStack makes this pattern explicit and composable.\n * \n * **Salesforce Approach:**\n * ```\n * IF(\n * ISPICKVAL(Type, \"Enterprise\"),\n * AND(Amount > 100000, ISBLANK(Approval__c)),\n * FALSE\n * )\n * ```\n * \n * **ObjectStack Approach:**\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'enterprise_high_value',\n * when: 'type = \"enterprise\"',\n * then: {\n * type: 'cross_field',\n * name: 'amount_approval',\n * condition: 'amount > 100000 AND approval = null',\n * fields: ['amount', 'approval']\n * }\n * }\n * ```\n */\nexport const ConditionalValidationSchema = BaseValidationSchema.extend({\n type: z.literal('conditional'),\n when: z.string().describe('Condition formula (e.g. \"type = \\'enterprise\\'\")'),\n then: ValidationRuleSchema.describe('Validation rule to apply when condition is true'),\n otherwise: ValidationRuleSchema.optional().describe('Validation rule to apply when condition is false'),\n});\n\nexport type ValidationRule = z.infer<typeof ValidationRuleSchema>;\nexport type ScriptValidation = z.infer<typeof ScriptValidationSchema>;\nexport type UniquenessValidation = z.infer<typeof UniquenessValidationSchema>;\nexport type StateMachineValidation = z.infer<typeof StateMachineValidationSchema>;\nexport type FormatValidation = z.infer<typeof FormatValidationSchema>;\nexport type CrossFieldValidation = z.infer<typeof CrossFieldValidationSchema>;\nexport type JSONValidation = z.infer<typeof JSONValidationSchema>;\nexport type AsyncValidation = z.infer<typeof AsyncValidationSchema>;\nexport type CustomValidation = z.infer<typeof CustomValidatorSchema>;\nexport type ConditionalValidation = z.infer<typeof ConditionalValidationSchema>;","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SnakeCaseIdentifierSchema } from '../shared/identifiers.zod';\n\n/**\n * XState-inspired State Machine Protocol\n * Used to define strict business logic constraints and lifecycle management.\n * Prevent AI \"hallucinations\" by enforcing valid valid transitions.\n */\n\n// --- Primitives ---\n\n/**\n * References a named action (side effect)\n * Can be a script, a webhook, or a field update.\n */\nexport const ActionRefSchema = z.union([\n z.string().describe('Action Name'),\n z.object({\n type: z.string(), // e.g., 'xstate.assign', 'log', 'email'\n params: z.record(z.string(), z.unknown()).optional()\n })\n]);\n\n/**\n * References a named condition (guard)\n * Must evaluate to true for the transition to occur.\n */\nexport const GuardRefSchema = z.union([\n z.string().describe('Guard Name (e.g., \"isManager\", \"amountGT1000\")'),\n z.object({\n type: z.string(),\n params: z.record(z.string(), z.unknown()).optional()\n })\n]);\n\n// --- Core Structure ---\n\n/**\n * State Transition Definition\n * \"When EVENT happens, if GUARD is true, go to TARGET and run ACTIONS\"\n */\nexport const TransitionSchema = z.object({\n target: z.string().optional().describe('Target State ID'),\n cond: GuardRefSchema.optional().describe('Condition (Guard) required to take this path'),\n actions: z.array(ActionRefSchema).optional().describe('Actions to execute during transition'),\n description: z.string().optional().describe('Human readable description of this rule'),\n});\n\n/**\n * Event Definition (Signals)\n */\nexport const EventSchema = z.object({\n type: z.string().describe('Event Type (e.g. \"APPROVE\", \"REJECT\", \"Submit\")'),\n // Payload validation schema could go here if we want deep validation\n schema: z.record(z.string(), z.unknown()).optional().describe('Expected event payload structure'),\n});\n\nexport type ActionRef = z.infer<typeof ActionRefSchema>;\nexport type Transition = z.infer<typeof TransitionSchema>;\n\nexport type StateNodeConfig = {\n type?: 'atomic' | 'compound' | 'parallel' | 'final' | 'history';\n entry?: ActionRef[];\n exit?: ActionRef[];\n on?: Record<string, string | Transition | Transition[]>;\n always?: Transition[];\n initial?: string;\n states?: Record<string, StateNodeConfig>;\n meta?: {\n label?: string;\n description?: string;\n color?: string;\n aiInstructions?: string;\n };\n};\n\n/**\n * State Node Definition\n */\nexport const StateNodeSchema: z.ZodType<StateNodeConfig> = z.lazy(() => z.object({\n /** Type of state */\n type: z.enum(['atomic', 'compound', 'parallel', 'final', 'history']).default('atomic'),\n \n /** Entry/Exit Actions */\n entry: z.array(ActionRefSchema).optional().describe('Actions to run when entering this state'),\n exit: z.array(ActionRefSchema).optional().describe('Actions to run when leaving this state'),\n \n /** Transitions (Events) */\n on: z.record(z.string(), z.union([\n z.string(), // Shorthand target\n TransitionSchema, \n z.array(TransitionSchema)\n ])).optional().describe('Map of Event Type -> Transition Definition'),\n \n /** Always Transitions (Eventless) */\n always: z.array(TransitionSchema).optional(),\n\n /** Nesting (Hierarchical States) */\n initial: z.string().optional().describe('Initial child state (if compound)'),\n states: z.record(z.string(), StateNodeSchema).optional(),\n \n /** Metadata for UI/AI */\n meta: z.object({\n label: z.string().optional(),\n description: z.string().optional(),\n color: z.string().optional(), // For UI diagrams\n // Instructions for AI Agent when in this state\n aiInstructions: z.string().optional().describe('Specific instructions for AI when in this state'),\n }).optional(),\n}));\n\n/**\n * Top-Level State Machine Definition\n */\nexport const StateMachineSchema = z.object({\n id: SnakeCaseIdentifierSchema.describe('Unique Machine ID'),\n description: z.string().optional(),\n \n /** Context (Memory) Schema */\n contextSchema: z.record(z.string(), z.unknown()).optional().describe('Zod Schema for the machine context/memory'),\n \n /** Initial State */\n initial: z.string().describe('Initial State ID'),\n \n /** State Definitions */\n states: z.record(z.string(), StateNodeSchema).describe('State Nodes'),\n \n /** Global Listeners */\n on: z.record(z.string(), z.union([z.string(), TransitionSchema, z.array(TransitionSchema)])).optional(),\n});\n\nexport type StateMachineConfig = z.infer<typeof StateMachineSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { FieldSchema } from './field.zod';\nimport { ValidationRuleSchema } from './validation.zod';\nimport { StateMachineSchema } from '../automation/state-machine.zod';\n\n/**\n * API Operations Enum\n */\nexport const ApiMethod = z.enum([\n 'get', 'list', // Read\n 'create', 'update', 'delete', // Write\n 'upsert', // Idempotent Write\n 'bulk', // Batch operations\n 'aggregate', // Analytics (count, sum)\n 'history', // Audit access\n 'search', // Search access\n 'restore', 'purge', // Trash management\n 'import', 'export', // Data portability\n]);\nexport type ApiMethod = z.infer<typeof ApiMethod>;\n\n/**\n * Capability Flags\n * Defines what system features are enabled for this object.\n * \n * Optimized based on industry standards (Salesforce, ServiceNow):\n * - Added `activities` (Tasks/Events)\n * - Added `mru` (Recent Items)\n * - Added `feeds` (Social/Chatter)\n * - Grouped API permissions\n * \n * @example\n * {\n * trackHistory: true,\n * searchable: true,\n * apiEnabled: true,\n * files: true\n * }\n */\nexport const ObjectCapabilities = z.object({\n /** Enable history tracking (Audit Trail) */\n trackHistory: z.boolean().default(false).describe('Enable field history tracking for audit compliance'),\n \n /** Enable global search indexing */\n searchable: z.boolean().default(true).describe('Index records for global search'),\n \n /** Enable REST/GraphQL API access */\n apiEnabled: z.boolean().default(true).describe('Expose object via automatic APIs'),\n\n /** \n * API Supported Operations\n * Granular control over API exposure.\n */\n apiMethods: z.array(ApiMethod).optional().describe('Whitelist of allowed API operations'),\n \n /** Enable standard attachments/files engine */\n files: z.boolean().default(false).describe('Enable file attachments and document management'),\n \n /** Enable social collaboration (Comments, Mentions, Feeds) */\n feeds: z.boolean().default(false).describe('Enable social feed, comments, and mentions (Chatter-like)'),\n \n /** Enable standard Activity suite (Tasks, Calendars, Events) */\n activities: z.boolean().default(false).describe('Enable standard tasks and events tracking'),\n \n /** Enable Recycle Bin / Soft Delete */\n trash: z.boolean().default(true).describe('Enable soft-delete with restore capability'),\n\n /** Enable \"Recently Viewed\" tracking */\n mru: z.boolean().default(true).describe('Track Most Recently Used (MRU) list for users'),\n \n /** Allow cloning records */\n clone: z.boolean().default(true).describe('Allow record deep cloning'),\n});\n\n/**\n * Schema for database indexes.\n * Enhanced with additional index types and configuration options\n * \n * @example\n * {\n * name: \"idx_account_name\",\n * fields: [\"name\"],\n * type: \"btree\",\n * unique: true\n * }\n */\nexport const IndexSchema = z.object({\n name: z.string().optional().describe('Index name (auto-generated if not provided)'),\n fields: z.array(z.string()).describe('Fields included in the index'),\n type: z.enum(['btree', 'hash', 'gin', 'gist', 'fulltext']).optional().default('btree').describe('Index algorithm type'),\n unique: z.boolean().optional().default(false).describe('Whether the index enforces uniqueness'),\n partial: z.string().optional().describe('Partial index condition (SQL WHERE clause for conditional indexes)'),\n});\n\n/**\n * Search Configuration\n * Defines how this object behaves in search results.\n * \n * @example\n * {\n * fields: [\"name\", \"email\", \"phone\"],\n * displayFields: [\"name\", \"title\"],\n * filters: [\"status = 'active'\"]\n * }\n */\nexport const SearchConfigSchema = z.object({\n fields: z.array(z.string()).describe('Fields to index for full-text search weighting'),\n displayFields: z.array(z.string()).optional().describe('Fields to display in search result cards'),\n filters: z.array(z.string()).optional().describe('Default filters for search results'),\n});\n\n/**\n * Multi-Tenancy Configuration Schema\n * Configures tenant isolation strategy for SaaS applications\n * \n * @example Shared database with tenant_id isolation\n * {\n * enabled: true,\n * strategy: 'shared',\n * tenantField: 'tenant_id',\n * crossTenantAccess: false\n * }\n */\nexport const TenancyConfigSchema = z.object({\n enabled: z.boolean().describe('Enable multi-tenancy for this object'),\n strategy: z.enum(['shared', 'isolated', 'hybrid']).describe('Tenant isolation strategy: shared (single DB, row-level), isolated (separate DB per tenant), hybrid (mix)'),\n tenantField: z.string().default('tenant_id').describe('Field name for tenant identifier'),\n crossTenantAccess: z.boolean().default(false).describe('Allow cross-tenant data access (with explicit permission)'),\n});\n\n/**\n * Soft Delete Configuration Schema\n * Implements recycle bin / trash functionality\n * \n * @example Standard soft delete with cascade\n * {\n * enabled: true,\n * field: 'deleted_at',\n * cascadeDelete: true\n * }\n */\nexport const SoftDeleteConfigSchema = z.object({\n enabled: z.boolean().describe('Enable soft delete (trash/recycle bin)'),\n field: z.string().default('deleted_at').describe('Field name for soft delete timestamp'),\n cascadeDelete: z.boolean().default(false).describe('Cascade soft delete to related records'),\n});\n\n/**\n * Versioning Configuration Schema\n * Implements record versioning and history tracking\n * \n * @example Snapshot versioning with 90-day retention\n * {\n * enabled: true,\n * strategy: 'snapshot',\n * retentionDays: 90,\n * versionField: 'version'\n * }\n */\nexport const VersioningConfigSchema = z.object({\n enabled: z.boolean().describe('Enable record versioning'),\n strategy: z.enum(['snapshot', 'delta', 'event-sourcing']).describe('Versioning strategy: snapshot (full copy), delta (changes only), event-sourcing (event log)'),\n retentionDays: z.number().min(1).optional().describe('Number of days to retain old versions (undefined = infinite)'),\n versionField: z.string().default('version').describe('Field name for version number/timestamp'),\n});\n\n/**\n * Partitioning Strategy Schema\n * Configures table partitioning for performance at scale\n * \n * @example Range partitioning by date (monthly)\n * {\n * enabled: true,\n * strategy: 'range',\n * key: 'created_at',\n * interval: '1 month'\n * }\n */\nexport const PartitioningConfigSchema = z.object({\n enabled: z.boolean().describe('Enable table partitioning'),\n strategy: z.enum(['range', 'hash', 'list']).describe('Partitioning strategy: range (date ranges), hash (consistent hashing), list (predefined values)'),\n key: z.string().describe('Field name to partition by'),\n interval: z.string().optional().describe('Partition interval for range strategy (e.g., \"1 month\", \"1 year\")'),\n}).refine((data) => {\n // If strategy is 'range', interval must be provided\n if (data.strategy === 'range' && !data.interval) {\n return false;\n }\n return true;\n}, {\n message: 'interval is required when strategy is \"range\"',\n});\n\n/**\n * Change Data Capture (CDC) Configuration Schema\n * Enables real-time data streaming to external systems\n * \n * @example Stream all changes to Kafka\n * {\n * enabled: true,\n * events: ['insert', 'update', 'delete'],\n * destination: 'kafka://events.objectstack'\n * }\n */\nexport const CDCConfigSchema = z.object({\n enabled: z.boolean().describe('Enable Change Data Capture'),\n events: z.array(z.enum(['insert', 'update', 'delete'])).describe('Event types to capture'),\n destination: z.string().describe('Destination endpoint (e.g., \"kafka://topic\", \"webhook://url\")'),\n});\n\n/**\n * Base Object Schema Definition\n * \n * The Blueprint of a Business Object.\n * Represents a table, a collection, or a virtual entity.\n * \n * @example\n * ```yaml\n * name: project_task\n * label: Project Task\n * icon: task\n * fields:\n * project:\n * type: lookup\n * reference: project\n * status:\n * type: select\n * options: [todo, in_progress, done]\n * enable:\n * trackHistory: true\n * files: true\n * ```\n */\nconst ObjectSchemaBase = z.object({\n /** \n * Identity & Metadata \n */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Machine unique key (snake_case). Immutable.'),\n label: z.string().optional().describe('Human readable singular label (e.g. \"Account\")'),\n pluralLabel: z.string().optional().describe('Human readable plural label (e.g. \"Accounts\")'),\n description: z.string().optional().describe('Developer documentation / description'),\n icon: z.string().optional().describe('Icon name (Lucide/Material) for UI representation'),\n \n /**\n * Taxonomy & Organization\n */\n tags: z.array(z.string()).optional().describe('Categorization tags (e.g. \"sales\", \"system\", \"reference\")'),\n active: z.boolean().optional().default(true).describe('Is the object active and usable'),\n isSystem: z.boolean().optional().default(false).describe('Is system object (protected from deletion)'),\n abstract: z.boolean().optional().default(false).describe('Is abstract base object (cannot be instantiated)'),\n\n /** \n * Storage & Virtualization \n */\n datasource: z.string().optional().default('default').describe('Target Datasource ID. \"default\" is the primary DB.'),\n tableName: z.string().optional().describe('Physical table/collection name in the target datasource'),\n \n /** \n * Data Model \n */\n fields: z.record(z.string().regex(/^[a-z_][a-z0-9_]*$/, {\n message: 'Field names must be lowercase snake_case (e.g., \"first_name\", \"company\", \"annual_revenue\")',\n }), FieldSchema).describe('Field definitions map. Keys must be snake_case identifiers.'),\n indexes: z.array(IndexSchema).optional().describe('Database performance indexes'),\n \n /**\n * Advanced Data Management\n */\n \n // Multi-tenancy configuration\n tenancy: TenancyConfigSchema.optional().describe('Multi-tenancy configuration for SaaS applications'),\n \n // Soft delete configuration\n softDelete: SoftDeleteConfigSchema.optional().describe('Soft delete (trash/recycle bin) configuration'),\n \n // Versioning configuration\n versioning: VersioningConfigSchema.optional().describe('Record versioning and history tracking configuration'),\n \n // Partitioning strategy\n partitioning: PartitioningConfigSchema.optional().describe('Table partitioning configuration for performance'),\n \n // Change Data Capture\n cdc: CDCConfigSchema.optional().describe('Change Data Capture (CDC) configuration for real-time data streaming'),\n \n /**\n * Logic & Validation (Co-located)\n * Best Practice: Define rules close to data.\n */\n validations: z.array(ValidationRuleSchema).optional().describe('Object-level validation rules'),\n \n /**\n * State Machine(s)\n * Named record of state machines, where each key is a unique machine identifier.\n * Multiple machines allow parallel lifecycles (e.g., status + payment_status + approval_status).\n * \n * @example stateMachines: { lifecycle: {...}, payment: {...}, approval: {...} }\n */\n stateMachines: z.record(z.string(), StateMachineSchema).optional().describe('Named state machines for parallel lifecycles (e.g., status, payment, approval)'),\n\n /** \n * Display & UI Hints (Data-Layer)\n */\n displayNameField: z.string().optional().describe('Field to use as the record display name (e.g., \"name\", \"title\"). Defaults to \"name\" if present.'),\n recordName: z.object({\n type: z.enum(['text', 'autonumber']).describe('Record name type: text (user-entered) or autonumber (system-generated)'),\n displayFormat: z.string().optional().describe('Auto-number format pattern (e.g., \"CASE-{0000}\", \"INV-{YYYY}-{0000}\")'),\n startNumber: z.number().int().min(0).optional().describe('Starting number for autonumber (default: 1)'),\n }).optional().describe('Record name generation configuration (Salesforce pattern)'),\n titleFormat: z.string().optional().describe('Title expression (e.g. \"{name} - {code}\"). Overrides displayNameField.'),\n compactLayout: z.array(z.string()).optional().describe('Primary fields for hover/cards/lookups'),\n \n /** \n * Search Engine Config \n */\n search: SearchConfigSchema.optional().describe('Search engine configuration'),\n \n /** \n * System Capabilities \n */\n enable: ObjectCapabilities.optional().describe('Enabled system features modules'),\n\n /** Record Types */\n recordTypes: z.array(z.string()).optional().describe('Record type names for this object'),\n\n /** Sharing Model */\n sharingModel: z.enum(['private', 'read', 'read_write', 'full']).optional().describe('Default sharing model'),\n\n /** Key Prefix */\n keyPrefix: z.string().max(5).optional().describe('Short prefix for record IDs (e.g., \"001\" for Account)'),\n});\n\n/**\n * Converts a snake_case name to a human-readable Title Case label.\n * @example snakeCaseToLabel('project_task') → 'Project Task'\n */\nfunction snakeCaseToLabel(name: string): string {\n return name\n .split('_')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n}\n\n/**\n * Enhanced ObjectSchema with Factory\n */\nexport const ObjectSchema = Object.assign(ObjectSchemaBase, {\n /**\n * Type-safe factory for creating business object definitions.\n * \n * Enhancements over raw schema:\n * - **Auto-label**: Generates `label` from `name` if not provided (snake_case → Title Case).\n * - **Validation**: Runs Zod `.parse()` to validate the config at creation time.\n * \n * @example\n * ```ts\n * const Task = ObjectSchema.create({\n * name: 'project_task',\n * // label auto-generated as 'Project Task'\n * fields: {\n * subject: { type: 'text', label: 'Subject', required: true },\n * },\n * });\n * ```\n */\n create: (config: z.input<typeof ObjectSchemaBase>): ServiceObject => {\n const withDefaults = {\n ...config,\n label: config.label ?? snakeCaseToLabel(config.name),\n };\n return ObjectSchemaBase.parse(withDefaults);\n },\n});\n\nexport type ServiceObject = z.infer<typeof ObjectSchemaBase>;\nexport type ServiceObjectInput = z.input<typeof ObjectSchemaBase>;\nexport type ObjectCapabilities = z.infer<typeof ObjectCapabilities>;\nexport type ObjectIndex = z.infer<typeof IndexSchema>;\nexport type TenancyConfig = z.infer<typeof TenancyConfigSchema>;\nexport type SoftDeleteConfig = z.infer<typeof SoftDeleteConfigSchema>;\nexport type VersioningConfig = z.infer<typeof VersioningConfigSchema>;\nexport type PartitioningConfig = z.infer<typeof PartitioningConfigSchema>;\nexport type CDCConfig = z.infer<typeof CDCConfigSchema>;\n\n// =================================================================\n// Object Ownership Model\n// =================================================================\n\n/**\n * How a package relates to an object it references.\n * \n * - `own`: This package is the original author/owner of the object.\n * Only one package may own a given object name. The owner defines\n * the base schema (table name, primary key, core fields).\n * \n * - `extend`: This package adds fields, views, or actions to an\n * existing object owned by another package. Multiple packages\n * may extend the same object. Extensions are merged at boot time.\n * \n * Follows Salesforce/ServiceNow patterns:\n * object name = database table name, globally unique, no namespace prefix.\n */\nexport const ObjectOwnershipEnum = z.enum(['own', 'extend']);\nexport type ObjectOwnership = z.infer<typeof ObjectOwnershipEnum>;\n\n/**\n * Object Extension Entry — used in `objectExtensions` array.\n * Declares fields/config to merge into an existing object owned by another package.\n * \n * @example\n * ```ts\n * objectExtensions: [{\n * extend: 'contact', // target object FQN\n * fields: { sales_stage: Field.select([...]) },\n * }]\n * ```\n */\nexport const ObjectExtensionSchema = z.object({\n /** The target object name (FQN) to extend */\n extend: z.string().describe('Target object name (FQN) to extend'),\n \n /** Fields to merge into the target object (additive) */\n fields: z.record(z.string(), FieldSchema).optional().describe('Fields to add/override'),\n \n /** Override label */\n label: z.string().optional().describe('Override label for the extended object'),\n \n /** Override plural label */\n pluralLabel: z.string().optional().describe('Override plural label for the extended object'),\n \n /** Override description */\n description: z.string().optional().describe('Override description for the extended object'),\n \n /** Additional validation rules to add */\n validations: z.array(ValidationRuleSchema).optional().describe('Additional validation rules to merge into the target object'),\n \n /** Additional indexes to add */\n indexes: z.array(IndexSchema).optional().describe('Additional indexes to merge into the target object'),\n \n /** Merge priority. Higher number applied later (wins on conflict). Default: 200 */\n priority: z.number().int().min(0).max(999).default(200).describe('Merge priority (higher = applied later)'),\n});\n\nexport type ObjectExtension = z.infer<typeof ObjectExtensionSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { FieldSchema } from '../data/field.zod';\nimport { ObjectSchema } from '../data/object.zod';\n\n// --- Atomic Operations ---\n\nexport const AddFieldOperation = z.object({\n type: z.literal('add_field'),\n objectName: z.string().describe('Target object name'),\n fieldName: z.string().describe('Name of the field to add'),\n field: FieldSchema.describe('Full field definition to add')\n}).describe('Add a new field to an existing object');\n\nexport const ModifyFieldOperation = z.object({\n type: z.literal('modify_field'),\n objectName: z.string().describe('Target object name'),\n fieldName: z.string().describe('Name of the field to modify'),\n changes: z.record(z.string(), z.unknown()).describe('Partial field definition updates')\n}).describe('Modify properties of an existing field');\n\nexport const RemoveFieldOperation = z.object({\n type: z.literal('remove_field'),\n objectName: z.string().describe('Target object name'),\n fieldName: z.string().describe('Name of the field to remove')\n}).describe('Remove a field from an existing object');\n\nexport const CreateObjectOperation = z.object({\n type: z.literal('create_object'),\n object: ObjectSchema.describe('Full object definition to create')\n}).describe('Create a new object');\n\nexport const RenameObjectOperation = z.object({\n type: z.literal('rename_object'),\n oldName: z.string().describe('Current object name'),\n newName: z.string().describe('New object name')\n}).describe('Rename an existing object');\n\nexport const DeleteObjectOperation = z.object({\n type: z.literal('delete_object'),\n objectName: z.string().describe('Name of the object to delete')\n}).describe('Delete an existing object');\n\nexport const ExecuteSqlOperation = z.object({\n type: z.literal('execute_sql'),\n sql: z.string().describe('Raw SQL statement to execute'),\n description: z.string().optional().describe('Human-readable description of the SQL')\n}).describe('Execute a raw SQL statement');\n\n// Union of all possible operations\nexport const MigrationOperationSchema = z.discriminatedUnion('type', [\n AddFieldOperation,\n ModifyFieldOperation,\n RemoveFieldOperation,\n CreateObjectOperation,\n RenameObjectOperation,\n DeleteObjectOperation,\n ExecuteSqlOperation\n]);\n\n// --- Migration & ChangeSet ---\n\nexport const MigrationDependencySchema = z.object({\n migrationId: z.string().describe('ID of the migration this depends on'),\n package: z.string().optional().describe('Package that owns the dependency migration')\n}).describe('Dependency reference to another migration that must run first');\n\nexport const ChangeSetSchema = z.object({\n id: z.string().uuid().describe('Unique identifier for this change set'),\n name: z.string().describe('Human readable name for the migration'),\n description: z.string().optional().describe('Detailed description of what this migration does'),\n author: z.string().optional().describe('Author who created this migration'),\n createdAt: z.string().datetime().optional().describe('ISO 8601 timestamp when the migration was created'),\n \n // Dependencies ensure migrations run in order\n dependencies: z.array(MigrationDependencySchema).optional().describe('Migrations that must run before this one'),\n \n // The actual atomic operations\n operations: z.array(MigrationOperationSchema).describe('Ordered list of atomic migration operations'),\n \n // Rollback operations (AI should generate these too)\n rollback: z.array(MigrationOperationSchema).optional().describe('Operations to reverse this migration')\n}).describe('A versioned set of atomic schema migration operations');\n\nexport type ChangeSet = z.infer<typeof ChangeSetSchema>;\nexport type MigrationOperation = z.infer<typeof MigrationOperationSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Better-Auth Configuration Protocol\n * \n * Defines the configuration required to initialize the Better-Auth kernel.\n * Used in server-side configuration injection.\n */\n\nexport const AuthProviderConfigSchema = z.object({\n id: z.string().describe('Provider ID (github, google)'),\n clientId: z.string().describe('OAuth Client ID'),\n clientSecret: z.string().describe('OAuth Client Secret'),\n scope: z.array(z.string()).optional().describe('Requested permissions'),\n});\n\nexport const AuthPluginConfigSchema = z.object({\n organization: z.boolean().default(false).describe('Enable Organization/Teams support'),\n twoFactor: z.boolean().default(false).describe('Enable 2FA'),\n passkeys: z.boolean().default(false).describe('Enable Passkey support'),\n magicLink: z.boolean().default(false).describe('Enable Magic Link login'),\n});\n\n/**\n * Mutual TLS (mTLS) Configuration Schema\n * \n * Enables client certificate authentication for zero-trust architectures.\n */\nexport const MutualTLSConfigSchema = z.object({\n /** Enable mutual TLS authentication */\n enabled: z.boolean()\n .default(false)\n .describe('Enable mutual TLS authentication'),\n\n /** Require client certificates for all connections */\n clientCertRequired: z.boolean()\n .default(false)\n .describe('Require client certificates for all connections'),\n\n /** PEM-encoded CA certificates or file paths for trust validation */\n trustedCAs: z.array(z.string())\n .describe('PEM-encoded CA certificates or file paths'),\n\n /** Certificate Revocation List URL */\n crlUrl: z.string()\n .optional()\n .describe('Certificate Revocation List (CRL) URL'),\n\n /** Online Certificate Status Protocol URL */\n ocspUrl: z.string()\n .optional()\n .describe('Online Certificate Status Protocol (OCSP) URL'),\n\n /** Certificate validation strictness level */\n certificateValidation: z.enum(['strict', 'relaxed', 'none'])\n .describe('Certificate validation strictness level'),\n\n /** Allowed Common Names on client certificates */\n allowedCNs: z.array(z.string())\n .optional()\n .describe('Allowed Common Names (CN) on client certificates'),\n\n /** Allowed Organizational Units on client certificates */\n allowedOUs: z.array(z.string())\n .optional()\n .describe('Allowed Organizational Units (OU) on client certificates'),\n\n /** Certificate pinning configuration */\n pinning: z.object({\n /** Enable certificate pinning */\n enabled: z.boolean().describe('Enable certificate pinning'),\n /** Array of pinned certificate hashes */\n pins: z.array(z.string()).describe('Pinned certificate hashes'),\n })\n .optional()\n .describe('Certificate pinning configuration'),\n});\n\nexport type MutualTLSConfig = z.infer<typeof MutualTLSConfigSchema>;\n\nexport const AuthConfigSchema = z.object({\n secret: z.string().optional().describe('Encryption secret'),\n baseUrl: z.string().optional().describe('Base URL for auth routes'),\n databaseUrl: z.string().optional().describe('Database connection string'),\n providers: z.array(AuthProviderConfigSchema).optional(),\n plugins: AuthPluginConfigSchema.optional(),\n session: z.object({\n expiresIn: z.number().default(60 * 60 * 24 * 7).describe('Session duration in seconds'),\n updateAge: z.number().default(60 * 60 * 24).describe('Session update frequency'),\n }).optional(),\n mutualTls: MutualTLSConfigSchema.optional().describe('Mutual TLS (mTLS) configuration'),\n}).catchall(z.unknown());\n\nexport type AuthProviderConfig = z.infer<typeof AuthProviderConfigSchema>;\nexport type AuthPluginConfig = z.infer<typeof AuthPluginConfigSchema>;\nexport type AuthConfig = z.infer<typeof AuthConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { ComplianceFrameworkSchema } from './security-context.zod';\n\n/**\n * Compliance protocol for GDPR, CCPA, HIPAA, SOX, PCI-DSS\n */\nexport const GDPRConfigSchema = z.object({\n enabled: z.boolean().describe('Enable GDPR compliance controls'),\n dataSubjectRights: z.object({\n rightToAccess: z.boolean().default(true).describe('Allow data subjects to access their data'),\n rightToRectification: z.boolean().default(true).describe('Allow data subjects to correct their data'),\n rightToErasure: z.boolean().default(true).describe('Allow data subjects to request deletion'),\n rightToRestriction: z.boolean().default(true).describe('Allow data subjects to restrict processing'),\n rightToPortability: z.boolean().default(true).describe('Allow data subjects to export their data'),\n rightToObjection: z.boolean().default(true).describe('Allow data subjects to object to processing'),\n }).describe('Data subject rights configuration per GDPR Articles 15-21'),\n legalBasis: z.enum([\n 'consent',\n 'contract',\n 'legal-obligation',\n 'vital-interests',\n 'public-task',\n 'legitimate-interests',\n ]).describe('Legal basis for data processing under GDPR Article 6'),\n consentTracking: z.boolean().default(true).describe('Track and record user consent'),\n dataRetentionDays: z.number().optional().describe('Maximum data retention period in days'),\n dataProcessingAgreement: z.string().optional().describe('URL or reference to the data processing agreement'),\n}).describe('GDPR (General Data Protection Regulation) compliance configuration');\n\nexport type GDPRConfig = z.infer<typeof GDPRConfigSchema>;\nexport type GDPRConfigInput = z.input<typeof GDPRConfigSchema>;\n\nexport const HIPAAConfigSchema = z.object({\n enabled: z.boolean().describe('Enable HIPAA compliance controls'),\n phi: z.object({\n encryption: z.boolean().default(true).describe('Encrypt Protected Health Information at rest'),\n accessControl: z.boolean().default(true).describe('Enforce role-based access to PHI'),\n auditTrail: z.boolean().default(true).describe('Log all PHI access events'),\n backupAndRecovery: z.boolean().default(true).describe('Enable PHI backup and disaster recovery'),\n }).describe('Protected Health Information safeguards'),\n businessAssociateAgreement: z.boolean().default(false).describe('BAA is in place with third-party processors'),\n}).describe('HIPAA (Health Insurance Portability and Accountability Act) compliance configuration');\n\nexport type HIPAAConfig = z.infer<typeof HIPAAConfigSchema>;\nexport type HIPAAConfigInput = z.input<typeof HIPAAConfigSchema>;\n\nexport const PCIDSSConfigSchema = z.object({\n enabled: z.boolean().describe('Enable PCI-DSS compliance controls'),\n level: z.enum(['1', '2', '3', '4']).describe('PCI-DSS compliance level (1 = highest)'),\n cardDataFields: z.array(z.string()).describe('Field names containing cardholder data'),\n tokenization: z.boolean().default(true).describe('Replace card data with secure tokens'),\n encryptionInTransit: z.boolean().default(true).describe('Encrypt cardholder data during transmission'),\n encryptionAtRest: z.boolean().default(true).describe('Encrypt stored cardholder data'),\n}).describe('PCI-DSS (Payment Card Industry Data Security Standard) compliance configuration');\n\nexport type PCIDSSConfig = z.infer<typeof PCIDSSConfigSchema>;\nexport type PCIDSSConfigInput = z.input<typeof PCIDSSConfigSchema>;\n\nexport const AuditLogConfigSchema = z.object({\n enabled: z.boolean().default(true).describe('Enable audit logging'),\n retentionDays: z.number().default(365).describe('Number of days to retain audit logs'),\n immutable: z.boolean().default(true).describe('Prevent modification or deletion of audit logs'),\n signLogs: z.boolean().default(false).describe('Cryptographically sign log entries for tamper detection'),\n events: z.array(z.enum([\n 'create',\n 'read',\n 'update',\n 'delete',\n 'export',\n 'permission-change',\n 'login',\n 'logout',\n 'failed-login',\n ])).describe('Event types to capture in the audit log'),\n}).describe('Audit log configuration for compliance and security monitoring');\n\nexport type AuditLogConfig = z.infer<typeof AuditLogConfigSchema>;\nexport type AuditLogConfigInput = z.input<typeof AuditLogConfigSchema>;\n\n/**\n * Audit Finding Severity Schema\n *\n * Severity classification for audit findings.\n */\nexport const AuditFindingSeveritySchema = z.enum([\n 'critical', // Immediate remediation required\n 'major', // Significant non-conformity\n 'minor', // Minor non-conformity\n 'observation', // Improvement opportunity\n]);\n\n/**\n * Audit Finding Status Schema\n *\n * Lifecycle status of an audit finding.\n */\nexport const AuditFindingStatusSchema = z.enum([\n 'open', // Finding identified, not yet addressed\n 'in_remediation', // Remediation in progress\n 'remediated', // Remediation completed, pending verification\n 'verified', // Remediation verified and accepted\n 'accepted_risk', // Risk accepted by management\n 'closed', // Finding closed\n]);\n\n/**\n * Audit Finding Schema (A.5.35)\n *\n * Individual finding from a compliance or security audit.\n * Supports tracking from discovery through remediation and verification.\n *\n * @example\n * ```json\n * {\n * \"id\": \"FIND-2024-001\",\n * \"title\": \"Insufficient access logging\",\n * \"description\": \"PHI access events are not being logged for HIPAA compliance\",\n * \"severity\": \"major\",\n * \"status\": \"in_remediation\",\n * \"controlReference\": \"A.8.15\",\n * \"framework\": \"iso27001\",\n * \"identifiedAt\": 1704067200000,\n * \"identifiedBy\": \"external_auditor\",\n * \"remediationPlan\": \"Implement audit logging for all PHI access events\",\n * \"remediationDeadline\": 1706745600000\n * }\n * ```\n */\nexport const AuditFindingSchema = z.object({\n /**\n * Unique finding identifier\n */\n id: z.string().describe('Unique finding identifier'),\n\n /**\n * Short descriptive title\n */\n title: z.string().describe('Finding title'),\n\n /**\n * Detailed description of the finding\n */\n description: z.string().describe('Finding description'),\n\n /**\n * Finding severity\n */\n severity: AuditFindingSeveritySchema.describe('Finding severity'),\n\n /**\n * Current status\n */\n status: AuditFindingStatusSchema.describe('Finding status'),\n\n /**\n * ISO 27001 control reference (e.g., \"A.5.35\", \"A.8.15\")\n */\n controlReference: z.string().optional().describe('ISO 27001 control reference'),\n\n /**\n * Compliance framework\n */\n framework: ComplianceFrameworkSchema.optional()\n .describe('Related compliance framework'),\n\n /**\n * Timestamp when finding was identified (Unix milliseconds)\n */\n identifiedAt: z.number().describe('Identification timestamp'),\n\n /**\n * User or entity who identified the finding\n */\n identifiedBy: z.string().describe('Identifier (auditor name or system)'),\n\n /**\n * Planned remediation actions\n */\n remediationPlan: z.string().optional().describe('Remediation plan'),\n\n /**\n * Remediation deadline (Unix milliseconds)\n */\n remediationDeadline: z.number().optional().describe('Remediation deadline timestamp'),\n\n /**\n * Timestamp when remediation was verified (Unix milliseconds)\n */\n verifiedAt: z.number().optional().describe('Verification timestamp'),\n\n /**\n * Verifier name or role\n */\n verifiedBy: z.string().optional().describe('Verifier name or role'),\n\n /**\n * Notes or comments\n */\n notes: z.string().optional().describe('Additional notes'),\n}).describe('Audit finding with remediation tracking per ISO 27001:2022 A.5.35');\n\nexport type AuditFinding = z.infer<typeof AuditFindingSchema>;\n\n/**\n * Audit Schedule Schema (A.5.35)\n *\n * Defines audit scheduling for independent information security reviews.\n * Supports recurring audits, scope definition, and assessor assignment.\n *\n * @example\n * ```json\n * {\n * \"id\": \"AUDIT-2024-Q1\",\n * \"title\": \"Q1 ISO 27001 Internal Audit\",\n * \"scope\": [\"access_control\", \"encryption\", \"incident_response\"],\n * \"framework\": \"iso27001\",\n * \"scheduledAt\": 1711929600000,\n * \"assessor\": \"internal_audit_team\",\n * \"recurrenceMonths\": 3\n * }\n * ```\n */\nexport const AuditScheduleSchema = z.object({\n /**\n * Unique audit schedule identifier\n */\n id: z.string().describe('Unique audit schedule identifier'),\n\n /**\n * Audit title or name\n */\n title: z.string().describe('Audit title'),\n\n /**\n * Scope of areas to audit\n */\n scope: z.array(z.string()).describe('Audit scope areas'),\n\n /**\n * Target compliance framework\n */\n framework: ComplianceFrameworkSchema\n .describe('Target compliance framework'),\n\n /**\n * Scheduled audit date (Unix milliseconds)\n */\n scheduledAt: z.number().describe('Scheduled audit timestamp'),\n\n /**\n * Actual completion date (Unix milliseconds)\n */\n completedAt: z.number().optional().describe('Completion timestamp'),\n\n /**\n * Assessor name, team, or external firm\n */\n assessor: z.string().describe('Assessor or audit team'),\n\n /**\n * Whether this is an external (independent) audit\n */\n isExternal: z.boolean().default(false).describe('Whether this is an external audit'),\n\n /**\n * Recurrence interval in months (0 = one-time)\n */\n recurrenceMonths: z.number().default(0).describe('Recurrence interval in months (0 = one-time)'),\n\n /**\n * Findings from this audit\n */\n findings: z.array(AuditFindingSchema).optional().describe('Audit findings'),\n}).describe('Audit schedule for independent security reviews per ISO 27001:2022 A.5.35');\n\nexport type AuditSchedule = z.infer<typeof AuditScheduleSchema>;\n\nexport const ComplianceConfigSchema = z.object({\n gdpr: GDPRConfigSchema.optional().describe('GDPR compliance settings'),\n hipaa: HIPAAConfigSchema.optional().describe('HIPAA compliance settings'),\n pciDss: PCIDSSConfigSchema.optional().describe('PCI-DSS compliance settings'),\n auditLog: AuditLogConfigSchema.describe('Audit log configuration'),\n auditSchedules: z.array(AuditScheduleSchema).optional()\n .describe('Scheduled compliance audits (A.5.35)'),\n}).describe('Unified compliance configuration spanning GDPR, HIPAA, PCI-DSS, and audit governance');\n\nexport type ComplianceConfig = z.infer<typeof ComplianceConfigSchema>;\nexport type ComplianceConfigInput = z.input<typeof ComplianceConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { DataClassificationSchema } from './security-context.zod';\n\n/**\n * Incident Response Protocol — ISO 27001:2022 (A.5.24–A.5.28)\n *\n * Defines schemas for information security event management including\n * incident classification, severity grading, response procedures,\n * and notification matrices.\n *\n * @see https://www.iso.org/standard/27001\n * @category Security\n */\n\n/**\n * Incident Severity Schema\n *\n * Severity grading for security incidents following ISO 27001 guidelines.\n * Determines response urgency and escalation requirements.\n */\nexport const IncidentSeveritySchema = z.enum([\n 'critical', // Immediate threat to business operations or data integrity\n 'high', // Significant impact requiring urgent response\n 'medium', // Moderate impact with controlled response timeline\n 'low', // Minor impact with standard response procedures\n]);\n\n/**\n * Incident Category Schema\n *\n * Classification of security incidents by type (A.5.25).\n * Used for routing, reporting, and trend analysis.\n */\nexport const IncidentCategorySchema = z.enum([\n 'data_breach', // Unauthorized access or disclosure of data\n 'malware', // Malicious software detection\n 'unauthorized_access', // Unauthorized system or data access\n 'denial_of_service', // Service availability attack\n 'social_engineering', // Phishing, pretexting, or manipulation\n 'insider_threat', // Threat originating from internal actors\n 'physical_security', // Physical security breach\n 'configuration_error', // Security misconfiguration\n 'vulnerability_exploit', // Exploitation of known vulnerability\n 'policy_violation', // Violation of security policies\n 'other', // Other security incidents\n]);\n\n/**\n * Incident Status Schema\n *\n * Current status of a security incident in its lifecycle.\n */\nexport const IncidentStatusSchema = z.enum([\n 'reported', // Initial report received\n 'triaged', // Severity and category assessed\n 'investigating', // Active investigation in progress\n 'containing', // Containment measures being applied\n 'eradicating', // Root cause being removed\n 'recovering', // Systems being restored to normal\n 'resolved', // Incident resolved\n 'closed', // Post-incident review complete\n]);\n\n/**\n * Incident Response Phase Schema\n *\n * Defines structured response phases per NIST SP 800-61 / ISO 27001 (A.5.26).\n */\nexport const IncidentResponsePhaseSchema = z.object({\n /**\n * Phase name identifier\n */\n phase: z.enum([\n 'identification',\n 'containment',\n 'eradication',\n 'recovery',\n 'lessons_learned',\n ]).describe('Response phase name'),\n\n /**\n * Phase description and objectives\n */\n description: z.string().describe('Phase description and objectives'),\n\n /**\n * Responsible team or role for this phase\n */\n assignedTo: z.string().describe('Responsible team or role'),\n\n /**\n * Target completion time in hours from incident start\n */\n targetHours: z.number().min(0).describe('Target completion time in hours'),\n\n /**\n * Actual completion timestamp (Unix milliseconds)\n */\n completedAt: z.number().optional().describe('Actual completion timestamp'),\n\n /**\n * Notes and findings during this phase\n */\n notes: z.string().optional().describe('Phase notes and findings'),\n}).describe('Incident response phase with timing and assignment');\n\nexport type IncidentResponsePhase = z.infer<typeof IncidentResponsePhaseSchema>;\n\n/**\n * Notification Rule Schema\n *\n * Defines who must be notified and when, based on severity (A.5.27).\n */\nexport const IncidentNotificationRuleSchema = z.object({\n /**\n * Minimum severity level that triggers this notification\n */\n severity: IncidentSeveritySchema.describe('Minimum severity to trigger notification'),\n\n /**\n * Notification channels to use\n */\n channels: z.array(z.enum([\n 'email',\n 'sms',\n 'slack',\n 'pagerduty',\n 'webhook',\n ])).describe('Notification channels'),\n\n /**\n * Roles or teams to notify\n */\n recipients: z.array(z.string()).describe('Roles or teams to notify'),\n\n /**\n * Maximum time in minutes to send notification after incident detection\n */\n withinMinutes: z.number().min(1).describe('Notification deadline in minutes from detection'),\n\n /**\n * Whether to notify external regulators (for data breaches)\n */\n notifyRegulators: z.boolean().default(false)\n .describe('Whether to notify regulatory authorities'),\n\n /**\n * Regulatory notification deadline in hours (e.g., GDPR 72h)\n */\n regulatorDeadlineHours: z.number().optional()\n .describe('Regulatory notification deadline in hours'),\n}).describe('Incident notification rule per severity level');\n\nexport type IncidentNotificationRule = z.infer<typeof IncidentNotificationRuleSchema>;\n\n/**\n * Notification Matrix Schema\n *\n * Complete notification matrix mapping severity levels to stakeholder groups (A.5.27).\n */\nexport const IncidentNotificationMatrixSchema = z.object({\n /**\n * Notification rules ordered by severity\n */\n rules: z.array(IncidentNotificationRuleSchema)\n .describe('Notification rules by severity level'),\n\n /**\n * Default escalation timeout in minutes before auto-escalation\n */\n escalationTimeoutMinutes: z.number().default(30)\n .describe('Auto-escalation timeout in minutes'),\n\n /**\n * Escalation chain: ordered list of roles to escalate to\n */\n escalationChain: z.array(z.string()).default([])\n .describe('Ordered escalation chain of roles'),\n}).describe('Incident notification matrix with escalation policies');\n\nexport type IncidentNotificationMatrix = z.infer<typeof IncidentNotificationMatrixSchema>;\n\n/**\n * Incident Schema\n *\n * Comprehensive security incident record following ISO 27001:2022 (A.5.24–A.5.28).\n * Tracks the full incident lifecycle from detection through post-incident review.\n *\n * @example\n * ```json\n * {\n * \"id\": \"INC-2024-001\",\n * \"title\": \"Unauthorized API Access Detected\",\n * \"description\": \"Multiple failed authentication attempts from unknown IP range\",\n * \"severity\": \"high\",\n * \"category\": \"unauthorized_access\",\n * \"status\": \"investigating\",\n * \"reportedBy\": \"monitoring_system\",\n * \"reportedAt\": 1704067200000,\n * \"affectedSystems\": [\"api-gateway\", \"auth-service\"],\n * \"affectedDataClassifications\": [\"pii\", \"confidential\"],\n * \"responsePhases\": [\n * {\n * \"phase\": \"identification\",\n * \"description\": \"Identify scope of unauthorized access\",\n * \"assignedTo\": \"security_team\",\n * \"targetHours\": 2\n * }\n * ]\n * }\n * ```\n */\nexport const IncidentSchema = z.object({\n /**\n * Unique incident identifier\n */\n id: z.string().describe('Unique incident identifier'),\n\n /**\n * Short descriptive title of the incident\n */\n title: z.string().describe('Incident title'),\n\n /**\n * Detailed description of the security event\n */\n description: z.string().describe('Detailed incident description'),\n\n /**\n * Severity classification\n */\n severity: IncidentSeveritySchema.describe('Incident severity level'),\n\n /**\n * Incident category / type\n */\n category: IncidentCategorySchema.describe('Incident category'),\n\n /**\n * Current status in the incident lifecycle\n */\n status: IncidentStatusSchema.describe('Current incident status'),\n\n /**\n * User or system that reported the incident\n */\n reportedBy: z.string().describe('Reporter user ID or system name'),\n\n /**\n * Timestamp when the incident was reported (Unix milliseconds)\n */\n reportedAt: z.number().describe('Report timestamp'),\n\n /**\n * Timestamp when the incident was detected (may differ from reported)\n */\n detectedAt: z.number().optional().describe('Detection timestamp'),\n\n /**\n * Timestamp when the incident was resolved\n */\n resolvedAt: z.number().optional().describe('Resolution timestamp'),\n\n /**\n * Systems affected by the incident\n */\n affectedSystems: z.array(z.string()).describe('Affected systems'),\n\n /**\n * Data classifications affected (for data breach assessment)\n */\n affectedDataClassifications: z.array(DataClassificationSchema)\n .optional().describe('Affected data classifications'),\n\n /**\n * Structured response phases tracking\n */\n responsePhases: z.array(IncidentResponsePhaseSchema).optional()\n .describe('Incident response phases'),\n\n /**\n * Root cause analysis (completed post-incident)\n */\n rootCause: z.string().optional().describe('Root cause analysis'),\n\n /**\n * Corrective actions taken or planned\n */\n correctiveActions: z.array(z.string()).optional()\n .describe('Corrective actions taken or planned'),\n\n /**\n * Lessons learned from the incident (A.5.28)\n */\n lessonsLearned: z.string().optional()\n .describe('Lessons learned from the incident'),\n\n /**\n * Related change request IDs (if changes resulted from incident)\n */\n relatedChangeRequestIds: z.array(z.string()).optional()\n .describe('Related change request IDs'),\n\n /**\n * Custom metadata for extensibility\n */\n metadata: z.record(z.string(), z.unknown()).optional()\n .describe('Custom metadata key-value pairs'),\n}).describe('Security incident record per ISO 27001:2022 A.5.24–A.5.28');\n\n/**\n * Incident Response Policy Schema\n *\n * Organization-level incident response policy configuration (A.5.24).\n */\nexport const IncidentResponsePolicySchema = z.object({\n /**\n * Whether incident response is enabled\n */\n enabled: z.boolean().default(true)\n .describe('Enable incident response management'),\n\n /**\n * Notification matrix configuration\n */\n notificationMatrix: IncidentNotificationMatrixSchema\n .describe('Notification and escalation matrix'),\n\n /**\n * Default response team or role\n */\n defaultResponseTeam: z.string()\n .describe('Default incident response team or role'),\n\n /**\n * Maximum time in hours to begin initial triage\n */\n triageDeadlineHours: z.number().default(1)\n .describe('Maximum hours to begin triage after detection'),\n\n /**\n * Whether to require post-incident review for all incidents\n */\n requirePostIncidentReview: z.boolean().default(true)\n .describe('Require post-incident review for all incidents'),\n\n /**\n * Minimum severity level that requires regulatory notification\n */\n regulatoryNotificationThreshold: IncidentSeveritySchema.default('high')\n .describe('Minimum severity requiring regulatory notification'),\n\n /**\n * Retention period for incident records in days\n */\n retentionDays: z.number().default(2555)\n .describe('Incident record retention period in days (default ~7 years)'),\n}).describe('Organization-level incident response policy per ISO 27001:2022');\n\n// Type exports\nexport type IncidentSeverity = z.infer<typeof IncidentSeveritySchema>;\nexport type IncidentCategory = z.infer<typeof IncidentCategorySchema>;\nexport type IncidentStatus = z.infer<typeof IncidentStatusSchema>;\nexport type Incident = z.infer<typeof IncidentSchema>;\nexport type IncidentResponsePolicy = z.infer<typeof IncidentResponsePolicySchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { DataClassificationSchema } from './security-context.zod';\n\n/**\n * Supplier Security Protocol — ISO 27001:2022 (A.5.19–A.5.22)\n *\n * Defines schemas for supplier information security management including\n * risk assessment, security requirements, monitoring, and change control.\n *\n * @see https://www.iso.org/standard/27001\n * @category Security\n */\n\n/**\n * Supplier Risk Level Schema\n *\n * Risk classification for supplier relationships based on data access\n * and service criticality.\n */\nexport const SupplierRiskLevelSchema = z.enum([\n 'critical', // Direct access to sensitive data or core infrastructure\n 'high', // Significant data processing or service dependency\n 'medium', // Limited data access with moderate dependency\n 'low', // Minimal data access and low service dependency\n]);\n\n/**\n * Supplier Assessment Status Schema\n *\n * Current status of a supplier security assessment.\n */\nexport const SupplierAssessmentStatusSchema = z.enum([\n 'pending', // Assessment not yet started\n 'in_progress', // Assessment currently underway\n 'completed', // Assessment completed\n 'expired', // Assessment past its validity period\n 'failed', // Supplier did not meet security requirements\n]);\n\n/**\n * Supplier Security Requirement Schema\n *\n * Individual security requirement to assess against a supplier (A.5.20).\n */\nexport const SupplierSecurityRequirementSchema = z.object({\n /**\n * Requirement identifier\n */\n id: z.string().describe('Requirement identifier'),\n\n /**\n * Requirement description\n */\n description: z.string().describe('Requirement description'),\n\n /**\n * ISO 27001 control reference (e.g., \"A.5.19\")\n */\n controlReference: z.string().optional()\n .describe('ISO 27001 control reference'),\n\n /**\n * Whether this requirement is mandatory\n */\n mandatory: z.boolean().default(true)\n .describe('Whether this requirement is mandatory'),\n\n /**\n * Compliance status\n */\n compliant: z.boolean().optional()\n .describe('Whether the supplier meets this requirement'),\n\n /**\n * Evidence or notes for compliance assessment\n */\n evidence: z.string().optional()\n .describe('Compliance evidence or assessment notes'),\n}).describe('Individual supplier security requirement');\n\nexport type SupplierSecurityRequirement = z.infer<typeof SupplierSecurityRequirementSchema>;\n\n/**\n * Supplier Security Assessment Schema\n *\n * Comprehensive supplier security assessment record (A.5.19–A.5.21).\n *\n * @example\n * ```json\n * {\n * \"supplierId\": \"SUP-001\",\n * \"supplierName\": \"Cloud Provider Inc.\",\n * \"riskLevel\": \"critical\",\n * \"status\": \"completed\",\n * \"assessedBy\": \"security_team\",\n * \"assessedAt\": 1704067200000,\n * \"validUntil\": 1735689600000,\n * \"requirements\": [\n * {\n * \"id\": \"REQ-001\",\n * \"description\": \"Data encryption at rest using AES-256\",\n * \"controlReference\": \"A.8.24\",\n * \"mandatory\": true,\n * \"compliant\": true\n * }\n * ],\n * \"overallCompliant\": true,\n * \"dataClassificationsShared\": [\"pii\", \"confidential\"]\n * }\n * ```\n */\nexport const SupplierSecurityAssessmentSchema = z.object({\n /**\n * Unique supplier identifier\n */\n supplierId: z.string().describe('Unique supplier identifier'),\n\n /**\n * Supplier name\n */\n supplierName: z.string().describe('Supplier display name'),\n\n /**\n * Risk classification\n */\n riskLevel: SupplierRiskLevelSchema.describe('Supplier risk classification'),\n\n /**\n * Assessment status\n */\n status: SupplierAssessmentStatusSchema.describe('Assessment status'),\n\n /**\n * User or team who performed the assessment\n */\n assessedBy: z.string().describe('Assessor user ID or team'),\n\n /**\n * Assessment completion timestamp (Unix milliseconds)\n */\n assessedAt: z.number().describe('Assessment timestamp'),\n\n /**\n * Assessment validity expiry (Unix milliseconds)\n */\n validUntil: z.number().describe('Assessment validity expiry timestamp'),\n\n /**\n * Security requirements assessed\n */\n requirements: z.array(SupplierSecurityRequirementSchema)\n .describe('Security requirements and their compliance status'),\n\n /**\n * Overall compliance result\n */\n overallCompliant: z.boolean().describe('Whether supplier meets all mandatory requirements'),\n\n /**\n * Data classifications shared with this supplier\n */\n dataClassificationsShared: z.array(DataClassificationSchema)\n .optional().describe('Data classifications shared with supplier'),\n\n /**\n * Services provided by the supplier\n */\n servicesProvided: z.array(z.string()).optional()\n .describe('Services provided by this supplier'),\n\n /**\n * Certifications held by the supplier\n */\n certifications: z.array(z.string()).optional()\n .describe('Supplier certifications (e.g., ISO 27001, SOC 2)'),\n\n /**\n * Remediation items for non-compliant requirements\n */\n remediationItems: z.array(z.object({\n requirementId: z.string().describe('Non-compliant requirement ID'),\n action: z.string().describe('Required remediation action'),\n deadline: z.number().describe('Remediation deadline timestamp'),\n status: z.enum(['pending', 'in_progress', 'completed']).default('pending')\n .describe('Remediation status'),\n })).optional().describe('Remediation items for non-compliant requirements'),\n\n /**\n * Custom metadata\n */\n metadata: z.record(z.string(), z.unknown()).optional()\n .describe('Custom metadata key-value pairs'),\n}).describe('Supplier security assessment record per ISO 27001:2022 A.5.19–A.5.21');\n\n/**\n * Supplier Security Policy Schema\n *\n * Organization-level supplier security management policy (A.5.22).\n */\nexport const SupplierSecurityPolicySchema = z.object({\n /**\n * Whether supplier security management is enabled\n */\n enabled: z.boolean().default(true)\n .describe('Enable supplier security management'),\n\n /**\n * Reassessment interval in days\n */\n reassessmentIntervalDays: z.number().default(365)\n .describe('Supplier reassessment interval in days'),\n\n /**\n * Whether to require supplier security assessment before onboarding\n */\n requirePreOnboardingAssessment: z.boolean().default(true)\n .describe('Require security assessment before supplier onboarding'),\n\n /**\n * Minimum risk level that requires formal assessment\n */\n formalAssessmentThreshold: SupplierRiskLevelSchema.default('medium')\n .describe('Minimum risk level requiring formal assessment'),\n\n /**\n * Whether to monitor supplier security changes (A.5.22)\n */\n monitorChanges: z.boolean().default(true)\n .describe('Monitor supplier security posture changes'),\n\n /**\n * Required certifications for critical suppliers\n */\n requiredCertifications: z.array(z.string()).default([])\n .describe('Required certifications for critical-risk suppliers'),\n}).describe('Organization-level supplier security management policy per ISO 27001:2022');\n\n// Type exports\nexport type SupplierRiskLevel = z.infer<typeof SupplierRiskLevelSchema>;\nexport type SupplierAssessmentStatus = z.infer<typeof SupplierAssessmentStatusSchema>;\nexport type SupplierSecurityAssessment = z.infer<typeof SupplierSecurityAssessmentSchema>;\nexport type SupplierSecurityPolicy = z.infer<typeof SupplierSecurityPolicySchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Information Security Training Protocol — ISO 27001:2022 (A.6.3)\n *\n * Defines schemas for security awareness and training management including\n * course definitions, completion tracking, and organizational training plans.\n *\n * @see https://www.iso.org/standard/27001\n * @category Security\n */\n\n/**\n * Training Category Schema\n *\n * Classification of training content by domain.\n */\nexport const TrainingCategorySchema = z.enum([\n 'security_awareness', // General security awareness\n 'data_protection', // Data handling and privacy\n 'incident_response', // Incident reporting and response\n 'access_control', // Access management best practices\n 'phishing_awareness', // Phishing and social engineering\n 'compliance', // Regulatory compliance (GDPR, HIPAA, etc.)\n 'secure_development', // Secure coding and development practices\n 'physical_security', // Physical security awareness\n 'business_continuity', // Business continuity and disaster recovery\n 'other', // Other training categories\n]);\n\n/**\n * Training Completion Status Schema\n */\nexport const TrainingCompletionStatusSchema = z.enum([\n 'not_started', // Training not yet begun\n 'in_progress', // Training currently underway\n 'completed', // Training completed successfully\n 'failed', // Training assessment not passed\n 'expired', // Training certification has expired\n]);\n\n/**\n * Training Course Schema\n *\n * Definition of a security training course or module.\n *\n * @example\n * ```json\n * {\n * \"id\": \"COURSE-SEC-001\",\n * \"title\": \"Information Security Fundamentals\",\n * \"description\": \"Annual security awareness training for all employees\",\n * \"category\": \"security_awareness\",\n * \"durationMinutes\": 60,\n * \"mandatory\": true,\n * \"targetRoles\": [\"all_employees\"],\n * \"validityDays\": 365,\n * \"passingScore\": 80\n * }\n * ```\n */\nexport const TrainingCourseSchema = z.object({\n /**\n * Unique course identifier\n */\n id: z.string().describe('Unique course identifier'),\n\n /**\n * Course title\n */\n title: z.string().describe('Course title'),\n\n /**\n * Course description and objectives\n */\n description: z.string().describe('Course description and learning objectives'),\n\n /**\n * Training category\n */\n category: TrainingCategorySchema.describe('Training category'),\n\n /**\n * Estimated duration in minutes\n */\n durationMinutes: z.number().min(1).describe('Estimated course duration in minutes'),\n\n /**\n * Whether this training is mandatory\n */\n mandatory: z.boolean().default(false).describe('Whether training is mandatory'),\n\n /**\n * Target roles or groups for this training\n */\n targetRoles: z.array(z.string()).describe('Target roles or groups'),\n\n /**\n * Validity period in days before recertification is needed\n */\n validityDays: z.number().optional().describe('Certification validity period in days'),\n\n /**\n * Minimum passing score (percentage) for assessment\n */\n passingScore: z.number().min(0).max(100).optional()\n .describe('Minimum passing score percentage'),\n\n /**\n * Course version for tracking content updates\n */\n version: z.string().optional().describe('Course content version'),\n}).describe('Security training course definition');\n\n/**\n * Training Record Schema\n *\n * Individual employee training completion record.\n */\nexport const TrainingRecordSchema = z.object({\n /**\n * Reference to the course ID\n */\n courseId: z.string().describe('Training course identifier'),\n\n /**\n * User who completed (or is assigned) the training\n */\n userId: z.string().describe('User identifier'),\n\n /**\n * Completion status\n */\n status: TrainingCompletionStatusSchema.describe('Training completion status'),\n\n /**\n * Training assignment date (Unix milliseconds)\n */\n assignedAt: z.number().describe('Assignment timestamp'),\n\n /**\n * Training completion date (Unix milliseconds)\n */\n completedAt: z.number().optional().describe('Completion timestamp'),\n\n /**\n * Assessment score (percentage)\n */\n score: z.number().min(0).max(100).optional().describe('Assessment score percentage'),\n\n /**\n * Certification expiry date (Unix milliseconds)\n */\n expiresAt: z.number().optional().describe('Certification expiry timestamp'),\n\n /**\n * Notes or comments from instructor or system\n */\n notes: z.string().optional().describe('Training notes or comments'),\n}).describe('Individual training completion record');\n\n/**\n * Training Plan Schema\n *\n * Organizational training plan defining schedule and requirements (A.6.3).\n */\nexport const TrainingPlanSchema = z.object({\n /**\n * Whether training management is enabled\n */\n enabled: z.boolean().default(true).describe('Enable training management'),\n\n /**\n * Training courses in the plan\n */\n courses: z.array(TrainingCourseSchema).describe('Training courses'),\n\n /**\n * Default recertification interval in days\n */\n recertificationIntervalDays: z.number().default(365)\n .describe('Default recertification interval in days'),\n\n /**\n * Whether to track training completion for compliance reporting\n */\n trackCompletion: z.boolean().default(true)\n .describe('Track training completion for compliance'),\n\n /**\n * Grace period in days after expiry before non-compliance escalation\n */\n gracePeriodDays: z.number().default(30)\n .describe('Grace period in days after certification expiry'),\n\n /**\n * Whether to send reminders for upcoming training deadlines\n */\n sendReminders: z.boolean().default(true)\n .describe('Send reminders for upcoming training deadlines'),\n\n /**\n * Days before deadline to send first reminder\n */\n reminderDaysBefore: z.number().default(14)\n .describe('Days before deadline to send first reminder'),\n}).describe('Organizational training plan per ISO 27001:2022 A.6.3');\n\n// Type exports\nexport type TrainingCategory = z.infer<typeof TrainingCategorySchema>;\nexport type TrainingCompletionStatus = z.infer<typeof TrainingCompletionStatusSchema>;\nexport type TrainingCourse = z.infer<typeof TrainingCourseSchema>;\nexport type TrainingRecord = z.infer<typeof TrainingRecordSchema>;\nexport type TrainingPlan = z.infer<typeof TrainingPlanSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Cron Schedule Schema\n * Schedule jobs using cron expressions\n */\nexport const CronScheduleSchema = z.object({\n type: z.literal('cron'),\n expression: z.string().describe('Cron expression (e.g., \"0 0 * * *\" for daily at midnight)'),\n timezone: z.string().optional().default('UTC').describe('Timezone for cron execution (e.g., \"America/New_York\")'),\n});\n\n/**\n * Interval Schedule Schema\n * Schedule jobs at fixed intervals\n */\nexport const IntervalScheduleSchema = z.object({\n type: z.literal('interval'),\n intervalMs: z.number().int().positive().describe('Interval in milliseconds'),\n});\n\n/**\n * Once Schedule Schema\n * Schedule a job to run once at a specific time\n */\nexport const OnceScheduleSchema = z.object({\n type: z.literal('once'),\n at: z.string().datetime().describe('ISO 8601 datetime when to execute'),\n});\n\n/**\n * Schedule Schema\n * Discriminated union of all schedule types\n */\nexport const ScheduleSchema = z.discriminatedUnion('type', [\n CronScheduleSchema,\n IntervalScheduleSchema,\n OnceScheduleSchema,\n]);\n\nexport type Schedule = z.infer<typeof ScheduleSchema>;\nexport type CronSchedule = z.infer<typeof CronScheduleSchema>;\nexport type IntervalSchedule = z.infer<typeof IntervalScheduleSchema>;\nexport type OnceSchedule = z.infer<typeof OnceScheduleSchema>;\nexport type JobSchedule = Schedule; // Alias for backwards compatibility\n\n/**\n * Retry Policy Schema\n * Configuration for job retry behavior with exponential backoff\n */\nexport const RetryPolicySchema = z.object({\n maxRetries: z.number().int().min(0).default(3).describe('Maximum number of retry attempts'),\n backoffMs: z.number().int().positive().default(1000).describe('Initial backoff delay in milliseconds'),\n backoffMultiplier: z.number().positive().default(2).describe('Multiplier for exponential backoff'),\n});\n\nexport type RetryPolicy = z.infer<typeof RetryPolicySchema>;\n\n/**\n * Job Schema\n * Defines a scheduled job that executes background logic.\n * \n * @example Metadata Sync Job (Cron)\n * {\n * id: \"job_sync_meta\",\n * name: \"sync_metadata_nightly\",\n * schedule: {\n * type: \"cron\",\n * expression: \"0 0 * * *\", // Midnight\n * timezone: \"UTC\"\n * },\n * handler: \"services/syncStatus.ts:syncAll\", \n * retryPolicy: {\n * maxRetries: 3,\n * backoffMs: 5000\n * }\n * }\n */\nexport const JobSchema = z.object({\n id: z.string().describe('Unique job identifier'),\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Job name (snake_case)'),\n schedule: ScheduleSchema.describe('Job schedule configuration'),\n handler: z.string().describe('Handler path (e.g. \"path/to/file:functionName\") or script ID'),\n retryPolicy: RetryPolicySchema.optional().describe('Retry policy configuration'),\n timeout: z.number().int().positive().optional().describe('Timeout in milliseconds'),\n enabled: z.boolean().default(true).describe('Whether the job is enabled'),\n});\n\nexport type Job = z.infer<typeof JobSchema>;\n\n/**\n * Job Execution Status Enum\n * Status of job execution\n */\nexport const JobExecutionStatus = z.enum([\n 'running',\n 'success',\n 'failed',\n 'timeout',\n]);\n\nexport type JobExecutionStatus = z.infer<typeof JobExecutionStatus>;\n\n/**\n * Job Execution Schema\n * Logs for job execution\n */\nexport const JobExecutionSchema = z.object({\n jobId: z.string().describe('Job identifier'),\n startedAt: z.string().datetime().describe('ISO 8601 datetime when execution started'),\n completedAt: z.string().datetime().optional().describe('ISO 8601 datetime when execution completed'),\n status: JobExecutionStatus.describe('Execution status'),\n error: z.string().optional().describe('Error message if failed'),\n duration: z.number().int().optional().describe('Execution duration in milliseconds'),\n});\n\nexport type JobExecution = z.infer<typeof JobExecutionSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Worker System Protocol\n * \n * Background task processing system with queues, priorities, and retry logic.\n * Provides a robust foundation for async task execution similar to:\n * - Sidekiq (Ruby)\n * - Celery (Python)\n * - Bull/BullMQ (Node.js)\n * - AWS SQS/Lambda\n * \n * Features:\n * - Task queues with priorities\n * - Task scheduling and retry logic\n * - Batch processing\n * - Dead letter queues\n * - Task monitoring and logging\n * \n * @example Basic task\n * ```typescript\n * const task: Task = {\n * id: 'task-123',\n * type: 'send_email',\n * payload: { to: 'user@example.com', subject: 'Welcome' },\n * queue: 'notifications',\n * priority: 5\n * };\n * ```\n */\n\n// ==========================================\n// Task Priority\n// ==========================================\n\n/**\n * Task Priority Enum\n * Lower numbers = higher priority\n */\nexport const TaskPriority = z.enum([\n 'critical', // 0 - Must execute immediately\n 'high', // 1 - Execute soon\n 'normal', // 2 - Default priority\n 'low', // 3 - Execute when resources available\n 'background', // 4 - Execute during low-traffic periods\n]);\n\nexport type TaskPriority = z.infer<typeof TaskPriority>;\n\n/**\n * Task Priority Mapping\n * Maps priority names to numeric values for sorting\n */\nexport const TASK_PRIORITY_VALUES: Record<TaskPriority, number> = {\n critical: 0,\n high: 1,\n normal: 2,\n low: 3,\n background: 4,\n};\n\n// ==========================================\n// Task Status\n// ==========================================\n\n/**\n * Task Status Enum\n * Lifecycle states of a task\n */\nexport const TaskStatus = z.enum([\n 'pending', // Waiting to be processed\n 'queued', // In queue, ready for worker\n 'processing', // Currently being executed\n 'completed', // Successfully completed\n 'failed', // Failed (may retry)\n 'cancelled', // Manually cancelled\n 'timeout', // Exceeded execution timeout\n 'dead', // Moved to dead letter queue\n]);\n\nexport type TaskStatus = z.infer<typeof TaskStatus>;\n\n// ==========================================\n// Task Schema\n// ==========================================\n\n/**\n * Task Retry Policy Schema\n * Configuration for task retry behavior\n */\nexport const TaskRetryPolicySchema = z.object({\n maxRetries: z.number().int().min(0).default(3).describe('Maximum retry attempts'),\n backoffStrategy: z.enum(['fixed', 'linear', 'exponential']).default('exponential')\n .describe('Backoff strategy between retries'),\n initialDelayMs: z.number().int().positive().default(1000).describe('Initial retry delay in milliseconds'),\n maxDelayMs: z.number().int().positive().default(60000).describe('Maximum retry delay in milliseconds'),\n backoffMultiplier: z.number().positive().default(2).describe('Multiplier for exponential backoff'),\n});\n\nexport type TaskRetryPolicy = z.infer<typeof TaskRetryPolicySchema>;\nexport type TaskRetryPolicyInput = z.input<typeof TaskRetryPolicySchema>;\n\n/**\n * Task Schema\n * Represents a background task to be executed\n * \n * @example\n * {\n * \"id\": \"task-abc123\",\n * \"type\": \"send_email\",\n * \"payload\": { \"to\": \"user@example.com\", \"template\": \"welcome\" },\n * \"queue\": \"notifications\",\n * \"priority\": \"high\",\n * \"retryPolicy\": {\n * \"maxRetries\": 3,\n * \"backoffStrategy\": \"exponential\"\n * }\n * }\n */\nexport const TaskSchema = z.object({\n /**\n * Unique task identifier\n */\n id: z.string().describe('Unique task identifier'),\n \n /**\n * Task type (handler identifier)\n */\n type: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Task type (snake_case)'),\n \n /**\n * Task payload data\n */\n payload: z.unknown().describe('Task payload data'),\n \n /**\n * Queue name\n */\n queue: z.string().default('default').describe('Queue name'),\n \n /**\n * Task priority\n */\n priority: TaskPriority.default('normal').describe('Task priority level'),\n \n /**\n * Retry policy\n */\n retryPolicy: TaskRetryPolicySchema.optional().describe('Retry policy configuration'),\n \n /**\n * Execution timeout in milliseconds\n */\n timeoutMs: z.number().int().positive().optional().describe('Task timeout in milliseconds'),\n \n /**\n * Scheduled execution time\n */\n scheduledAt: z.string().datetime().optional().describe('ISO 8601 datetime to execute task'),\n \n /**\n * Maximum execution attempts\n */\n attempts: z.number().int().min(0).default(0).describe('Number of execution attempts'),\n \n /**\n * Task status\n */\n status: TaskStatus.default('pending').describe('Current task status'),\n \n /**\n * Task metadata\n */\n metadata: z.object({\n createdAt: z.string().datetime().optional().describe('When task was created'),\n updatedAt: z.string().datetime().optional().describe('Last update time'),\n createdBy: z.string().optional().describe('User who created task'),\n tags: z.array(z.string()).optional().describe('Task tags for filtering'),\n }).optional().describe('Task metadata'),\n});\n\nexport type Task = z.infer<typeof TaskSchema>;\nexport type TaskInput = z.input<typeof TaskSchema>;\n\n// ==========================================\n// Task Execution Result\n// ==========================================\n\n/**\n * Task Execution Result Schema\n * Result of a task execution attempt\n */\nexport const TaskExecutionResultSchema = z.object({\n /**\n * Task identifier\n */\n taskId: z.string().describe('Task identifier'),\n \n /**\n * Execution status\n */\n status: TaskStatus.describe('Execution status'),\n \n /**\n * Execution result data\n */\n result: z.unknown().optional().describe('Execution result data'),\n \n /**\n * Error information\n */\n error: z.object({\n message: z.string().describe('Error message'),\n stack: z.string().optional().describe('Error stack trace'),\n code: z.string().optional().describe('Error code'),\n }).optional().describe('Error details if failed'),\n \n /**\n * Execution duration\n */\n durationMs: z.number().int().optional().describe('Execution duration in milliseconds'),\n \n /**\n * Execution timestamps\n */\n startedAt: z.string().datetime().describe('When execution started'),\n completedAt: z.string().datetime().optional().describe('When execution completed'),\n \n /**\n * Retry information\n */\n attempt: z.number().int().min(1).describe('Attempt number (1-indexed)'),\n willRetry: z.boolean().describe('Whether task will be retried'),\n});\n\nexport type TaskExecutionResult = z.infer<typeof TaskExecutionResultSchema>;\n\n// ==========================================\n// Queue Configuration\n// ==========================================\n\n/**\n * Queue Configuration Schema\n * Configuration for a task queue\n * \n * @example\n * {\n * \"name\": \"notifications\",\n * \"concurrency\": 10,\n * \"rateLimit\": {\n * \"max\": 100,\n * \"duration\": 60000\n * }\n * }\n */\nexport const QueueConfigSchema = z.object({\n /**\n * Queue name\n */\n name: z.string().describe('Queue name (snake_case)'),\n \n /**\n * Maximum concurrent workers\n */\n concurrency: z.number().int().min(1).default(5).describe('Max concurrent task executions'),\n \n /**\n * Rate limiting\n */\n rateLimit: z.object({\n max: z.number().int().positive().describe('Maximum tasks per duration'),\n duration: z.number().int().positive().describe('Duration in milliseconds'),\n }).optional().describe('Rate limit configuration'),\n \n /**\n * Default retry policy\n */\n defaultRetryPolicy: TaskRetryPolicySchema.optional().describe('Default retry policy for tasks'),\n \n /**\n * Dead letter queue\n */\n deadLetterQueue: z.string().optional().describe('Dead letter queue name'),\n \n /**\n * Queue priority\n */\n priority: z.number().int().min(0).default(0).describe('Queue priority (lower = higher priority)'),\n \n /**\n * Auto-scaling configuration\n */\n autoScale: z.object({\n enabled: z.boolean().default(false).describe('Enable auto-scaling'),\n minWorkers: z.number().int().min(1).default(1).describe('Minimum workers'),\n maxWorkers: z.number().int().min(1).default(10).describe('Maximum workers'),\n scaleUpThreshold: z.number().int().positive().default(100).describe('Queue size to scale up'),\n scaleDownThreshold: z.number().int().min(0).default(10).describe('Queue size to scale down'),\n }).optional().describe('Auto-scaling configuration'),\n});\n\nexport type QueueConfig = z.infer<typeof QueueConfigSchema>;\nexport type QueueConfigInput = z.input<typeof QueueConfigSchema>;\n\n// ==========================================\n// Batch Processing\n// ==========================================\n\n/**\n * Batch Task Schema\n * Configuration for batch processing multiple items\n * \n * @example\n * {\n * \"id\": \"batch-import-123\",\n * \"type\": \"import_records\",\n * \"items\": [{ \"name\": \"Item 1\" }, { \"name\": \"Item 2\" }],\n * \"batchSize\": 100,\n * \"queue\": \"batch_processing\"\n * }\n */\nexport const BatchTaskSchema = z.object({\n /**\n * Batch job identifier\n */\n id: z.string().describe('Unique batch job identifier'),\n \n /**\n * Task type for processing each item\n */\n type: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Task type (snake_case)'),\n \n /**\n * Items to process\n */\n items: z.array(z.unknown()).describe('Array of items to process'),\n \n /**\n * Batch size (items per task)\n */\n batchSize: z.number().int().min(1).default(100).describe('Number of items per batch'),\n \n /**\n * Queue name\n */\n queue: z.string().default('batch').describe('Queue for batch tasks'),\n \n /**\n * Priority\n */\n priority: TaskPriority.default('normal').describe('Batch task priority'),\n \n /**\n * Parallel processing\n */\n parallel: z.boolean().default(true).describe('Process batches in parallel'),\n \n /**\n * Stop on error\n */\n stopOnError: z.boolean().default(false).describe('Stop batch if any item fails'),\n \n /**\n * Progress callback\n * \n * Called after each batch completes to report progress.\n * Invoked asynchronously and should not throw errors.\n * If the callback throws, the error is logged but batch processing continues.\n * \n * @param progress - Object containing processed count, total count, and failed count\n */\n onProgress: z.function()\n .input(z.tuple([z.object({\n processed: z.number(),\n total: z.number(),\n failed: z.number(),\n })]))\n .output(z.void())\n .optional()\n .describe('Progress callback function (called after each batch)'),\n});\n\nexport type BatchTask = z.infer<typeof BatchTaskSchema>;\nexport type BatchTaskInput = z.input<typeof BatchTaskSchema>;\n\n/**\n * Batch Progress Schema\n * Tracks progress of a batch job\n */\nexport const BatchProgressSchema = z.object({\n /**\n * Batch job identifier\n */\n batchId: z.string().describe('Batch job identifier'),\n \n /**\n * Total items\n */\n total: z.number().int().min(0).describe('Total number of items'),\n \n /**\n * Processed items\n */\n processed: z.number().int().min(0).default(0).describe('Items processed'),\n \n /**\n * Successful items\n */\n succeeded: z.number().int().min(0).default(0).describe('Items succeeded'),\n \n /**\n * Failed items\n */\n failed: z.number().int().min(0).default(0).describe('Items failed'),\n \n /**\n * Progress percentage\n */\n percentage: z.number().min(0).max(100).describe('Progress percentage'),\n \n /**\n * Status\n */\n status: z.enum(['pending', 'running', 'completed', 'failed', 'cancelled']).describe('Batch status'),\n \n /**\n * Timestamps\n */\n startedAt: z.string().datetime().optional().describe('When batch started'),\n completedAt: z.string().datetime().optional().describe('When batch completed'),\n});\n\nexport type BatchProgress = z.infer<typeof BatchProgressSchema>;\nexport type BatchProgressInput = z.input<typeof BatchProgressSchema>;\n\n// ==========================================\n// Worker Configuration\n// ==========================================\n\n/**\n * Worker Configuration Schema\n * Configuration for a worker instance\n */\nexport const WorkerConfigSchema = z.object({\n /**\n * Worker name\n */\n name: z.string().describe('Worker name'),\n \n /**\n * Queues to process\n */\n queues: z.array(z.string()).min(1).describe('Queue names to process'),\n \n /**\n * Queue configurations\n */\n queueConfigs: z.array(QueueConfigSchema).optional().describe('Queue configurations'),\n \n /**\n * Polling interval\n */\n pollIntervalMs: z.number().int().positive().default(1000).describe('Queue polling interval in milliseconds'),\n \n /**\n * Visibility timeout\n */\n visibilityTimeoutMs: z.number().int().positive().default(30000)\n .describe('How long a task is invisible after being claimed'),\n \n /**\n * Task timeout\n */\n defaultTimeoutMs: z.number().int().positive().default(300000).describe('Default task timeout in milliseconds'),\n \n /**\n * Graceful shutdown timeout\n */\n shutdownTimeoutMs: z.number().int().positive().default(30000)\n .describe('Graceful shutdown timeout in milliseconds'),\n \n /**\n * Task handlers\n */\n handlers: z.record(z.string(), z.function()).optional().describe('Task type handlers'),\n});\n\nexport type WorkerConfig = z.infer<typeof WorkerConfigSchema>;\nexport type WorkerConfigInput = z.input<typeof WorkerConfigSchema>;\n\n// ==========================================\n// Worker Stats\n// ==========================================\n\n/**\n * Worker Stats Schema\n * Runtime statistics for a worker\n */\nexport const WorkerStatsSchema = z.object({\n /**\n * Worker name\n */\n workerName: z.string().describe('Worker name'),\n \n /**\n * Total tasks processed\n */\n totalProcessed: z.number().int().min(0).describe('Total tasks processed'),\n \n /**\n * Successful tasks\n */\n succeeded: z.number().int().min(0).describe('Successful tasks'),\n \n /**\n * Failed tasks\n */\n failed: z.number().int().min(0).describe('Failed tasks'),\n \n /**\n * Active tasks\n */\n active: z.number().int().min(0).describe('Currently active tasks'),\n \n /**\n * Average execution time\n */\n avgExecutionMs: z.number().min(0).optional().describe('Average execution time in milliseconds'),\n \n /**\n * Uptime\n */\n uptimeMs: z.number().int().min(0).describe('Worker uptime in milliseconds'),\n \n /**\n * Queue stats\n */\n queues: z.record(z.string(), z.object({\n pending: z.number().int().min(0).describe('Pending tasks'),\n active: z.number().int().min(0).describe('Active tasks'),\n completed: z.number().int().min(0).describe('Completed tasks'),\n failed: z.number().int().min(0).describe('Failed tasks'),\n })).optional().describe('Per-queue statistics'),\n});\n\nexport type WorkerStats = z.infer<typeof WorkerStatsSchema>;\n\n// ==========================================\n// Helper Functions\n// ==========================================\n\n/**\n * Helper to create a task\n */\nexport const Task = Object.assign(TaskSchema, {\n create: <T extends z.input<typeof TaskSchema>>(task: T) => task,\n});\n\n/**\n * Helper to create a queue config\n */\nexport const QueueConfig = Object.assign(QueueConfigSchema, {\n create: <T extends z.input<typeof QueueConfigSchema>>(config: T) => config,\n});\n\n/**\n * Helper to create a worker config\n */\nexport const WorkerConfig = Object.assign(WorkerConfigSchema, {\n create: <T extends z.input<typeof WorkerConfigSchema>>(config: T) => config,\n});\n\n/**\n * Helper to create a batch task\n */\nexport const BatchTask = Object.assign(BatchTaskSchema, {\n create: <T extends z.input<typeof BatchTaskSchema>>(batch: T) => batch,\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Email Template Schema\n * \n * Defines the structure and content of email notifications.\n * Supports variables for personalization and file attachments.\n * \n * @example\n * ```json\n * {\n * \"id\": \"welcome-email\",\n * \"subject\": \"Welcome to {{company_name}}\",\n * \"body\": \"<h1>Welcome {{user_name}}!</h1>\",\n * \"bodyType\": \"html\",\n * \"variables\": [\"company_name\", \"user_name\"],\n * \"attachments\": [\n * {\n * \"name\": \"guide.pdf\",\n * \"url\": \"https://example.com/guide.pdf\"\n * }\n * ]\n * }\n * ```\n */\nexport const EmailTemplateSchema = z.object({\n /**\n * Unique identifier for the email template\n */\n id: z.string().describe('Template identifier'),\n\n /**\n * Email subject line (supports variable interpolation)\n */\n subject: z.string().describe('Email subject'),\n\n /**\n * Email body content\n */\n body: z.string().describe('Email body content'),\n\n /**\n * Content type of the email body\n * @default 'html'\n */\n bodyType: z.enum(['text', 'html', 'markdown']).optional().default('html').describe('Body content type'),\n\n /**\n * List of template variables for dynamic content\n */\n variables: z.array(z.string()).optional().describe('Template variables'),\n\n /**\n * File attachments to include with the email\n */\n attachments: z.array(z.object({\n name: z.string().describe('Attachment filename'),\n url: z.string().url().describe('Attachment URL'),\n })).optional().describe('Email attachments'),\n});\n\n/**\n * SMS Template Schema\n * \n * Defines the structure of SMS text message notifications.\n * Includes character limits and variable support.\n * \n * @example\n * ```json\n * {\n * \"id\": \"verification-sms\",\n * \"message\": \"Your code is {{code}}\",\n * \"maxLength\": 160,\n * \"variables\": [\"code\"]\n * }\n * ```\n */\nexport const SMSTemplateSchema = z.object({\n /**\n * Unique identifier for the SMS template\n */\n id: z.string().describe('Template identifier'),\n\n /**\n * SMS message content (supports variable interpolation)\n */\n message: z.string().describe('SMS message content'),\n\n /**\n * Maximum character length for the SMS\n * @default 160\n */\n maxLength: z.number().optional().default(160).describe('Maximum message length'),\n\n /**\n * List of template variables for dynamic content\n */\n variables: z.array(z.string()).optional().describe('Template variables'),\n});\n\n/**\n * Push Notification Schema\n * \n * Defines mobile and web push notification structure.\n * Supports rich notifications with actions and badges.\n * \n * @example\n * ```json\n * {\n * \"title\": \"New Message\",\n * \"body\": \"You have a new message from John\",\n * \"icon\": \"https://example.com/icon.png\",\n * \"badge\": 5,\n * \"data\": {\"messageId\": \"msg_123\"},\n * \"actions\": [\n * {\"action\": \"view\", \"title\": \"View\"},\n * {\"action\": \"dismiss\", \"title\": \"Dismiss\"}\n * ]\n * }\n * ```\n */\nexport const PushNotificationSchema = z.object({\n /**\n * Notification title\n */\n title: z.string().describe('Notification title'),\n\n /**\n * Notification body text\n */\n body: z.string().describe('Notification body'),\n\n /**\n * Icon URL to display with notification\n */\n icon: z.string().url().optional().describe('Notification icon URL'),\n\n /**\n * Badge count to display on app icon\n */\n badge: z.number().optional().describe('Badge count'),\n\n /**\n * Custom data payload\n */\n data: z.record(z.string(), z.unknown()).optional().describe('Custom data'),\n\n /**\n * Action buttons for the notification\n */\n actions: z.array(z.object({\n action: z.string().describe('Action identifier'),\n title: z.string().describe('Action button title'),\n })).optional().describe('Notification actions'),\n});\n\n/**\n * In-App Notification Schema\n * \n * Defines in-application notification banners and toasts.\n * Includes severity levels and auto-dismiss settings.\n * \n * @example\n * ```json\n * {\n * \"title\": \"System Update\",\n * \"message\": \"New features are now available\",\n * \"type\": \"info\",\n * \"actionUrl\": \"/updates\",\n * \"dismissible\": true,\n * \"expiresAt\": 1704067200000\n * }\n * ```\n */\nexport const InAppNotificationSchema = z.object({\n /**\n * Notification title\n */\n title: z.string().describe('Notification title'),\n\n /**\n * Notification message content\n */\n message: z.string().describe('Notification message'),\n\n /**\n * Notification severity type\n */\n type: z.enum(['info', 'success', 'warning', 'error']).describe('Notification type'),\n\n /**\n * Optional URL to navigate to when clicked\n */\n actionUrl: z.string().optional().describe('Action URL'),\n\n /**\n * Whether the notification can be dismissed by the user\n * @default true\n */\n dismissible: z.boolean().optional().default(true).describe('User dismissible'),\n\n /**\n * Timestamp when notification expires (Unix milliseconds)\n */\n expiresAt: z.number().optional().describe('Expiration timestamp'),\n});\n\n/**\n * Notification Channel Enum\n * \n * Supported notification delivery channels.\n */\nexport const NotificationChannelSchema = z.enum([\n 'email',\n 'sms',\n 'push',\n 'in-app',\n 'slack',\n 'teams',\n 'webhook',\n]);\n\n/**\n * Notification Configuration Schema\n * \n * Unified notification management protocol supporting multiple channels.\n * Includes scheduling, retry policies, and delivery tracking.\n * \n * @example\n * ```json\n * {\n * \"id\": \"welcome-notification\",\n * \"name\": \"Welcome Email\",\n * \"channel\": \"email\",\n * \"template\": {\n * \"id\": \"tpl-001\",\n * \"subject\": \"Welcome!\",\n * \"body\": \"<h1>Welcome</h1>\",\n * \"bodyType\": \"html\"\n * },\n * \"recipients\": {\n * \"to\": [\"user@example.com\"],\n * \"cc\": [\"admin@example.com\"]\n * },\n * \"schedule\": {\n * \"type\": \"immediate\"\n * },\n * \"retryPolicy\": {\n * \"enabled\": true,\n * \"maxRetries\": 3,\n * \"backoffStrategy\": \"exponential\"\n * },\n * \"tracking\": {\n * \"trackOpens\": true,\n * \"trackClicks\": true,\n * \"trackDelivery\": true\n * }\n * }\n * ```\n */\nexport const NotificationConfigSchema = z.object({\n /**\n * Unique identifier for this notification configuration\n */\n id: z.string().describe('Notification ID'),\n\n /**\n * Human-readable name for this notification\n */\n name: z.string().describe('Notification name'),\n\n /**\n * Delivery channel for the notification\n */\n channel: NotificationChannelSchema.describe('Notification channel'),\n\n /**\n * Notification template based on channel type\n */\n template: z.union([\n EmailTemplateSchema,\n SMSTemplateSchema,\n PushNotificationSchema,\n InAppNotificationSchema,\n ]).describe('Notification template'),\n\n /**\n * Recipient configuration\n */\n recipients: z.object({\n /**\n * Primary recipients\n */\n to: z.array(z.string()).describe('Primary recipients'),\n\n /**\n * CC recipients (email only)\n */\n cc: z.array(z.string()).optional().describe('CC recipients'),\n\n /**\n * BCC recipients (email only)\n */\n bcc: z.array(z.string()).optional().describe('BCC recipients'),\n }).describe('Recipients'),\n\n /**\n * Scheduling configuration\n */\n schedule: z.object({\n /**\n * Scheduling type\n */\n type: z.enum(['immediate', 'delayed', 'scheduled']).describe('Schedule type'),\n\n /**\n * Delay in milliseconds (for delayed type)\n */\n delay: z.number().optional().describe('Delay in milliseconds'),\n\n /**\n * Scheduled send time (Unix timestamp in milliseconds)\n */\n scheduledAt: z.number().optional().describe('Scheduled timestamp'),\n }).optional().describe('Scheduling'),\n\n /**\n * Retry policy for failed deliveries\n */\n retryPolicy: z.object({\n /**\n * Enable automatic retries\n * @default true\n */\n enabled: z.boolean().optional().default(true).describe('Enable retries'),\n\n /**\n * Maximum number of retry attempts\n * @default 3\n */\n maxRetries: z.number().optional().default(3).describe('Max retry attempts'),\n\n /**\n * Backoff strategy for retries\n */\n backoffStrategy: z.enum(['exponential', 'linear', 'fixed']).describe('Backoff strategy'),\n }).optional().describe('Retry policy'),\n\n /**\n * Delivery tracking configuration\n */\n tracking: z.object({\n /**\n * Track when emails are opened\n * @default false\n */\n trackOpens: z.boolean().optional().default(false).describe('Track opens'),\n\n /**\n * Track when links are clicked\n * @default false\n */\n trackClicks: z.boolean().optional().default(false).describe('Track clicks'),\n\n /**\n * Track delivery status\n * @default true\n */\n trackDelivery: z.boolean().optional().default(true).describe('Track delivery'),\n }).optional().describe('Tracking configuration'),\n});\n\n// Type exports\nexport type NotificationConfig = z.infer<typeof NotificationConfigSchema>;\nexport type NotificationChannel = z.infer<typeof NotificationChannelSchema>;\nexport type EmailTemplate = z.infer<typeof EmailTemplateSchema>;\nexport type SMSTemplate = z.infer<typeof SMSTemplateSchema>;\nexport type PushNotification = z.infer<typeof PushNotificationSchema>;\nexport type InAppNotification = z.infer<typeof InAppNotificationSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n// ────────────────────────────────────────────────────────────────────────────\n// Locale\n// ────────────────────────────────────────────────────────────────────────────\n\nexport const LocaleSchema = z.string().describe('BCP-47 Language Tag (e.g. en-US, zh-CN)');\n\n// ────────────────────────────────────────────────────────────────────────────\n// Object-level Translation (per-object file)\n// ────────────────────────────────────────────────────────────────────────────\n\n/**\n * Field Translation Schema\n * Translation data for a single field.\n */\nexport const FieldTranslationSchema = z.object({\n label: z.string().optional().describe('Translated field label'),\n help: z.string().optional().describe('Translated help text'),\n options: z.record(z.string(), z.string()).optional().describe('Option value to translated label map'),\n}).describe('Translation data for a single field');\n\nexport type FieldTranslation = z.infer<typeof FieldTranslationSchema>;\n\n/**\n * Object Translation Data Schema\n *\n * Translation data for a **single object** in a **single locale**.\n * Use this schema to validate per-object translation files.\n *\n * File convention: `i18n/{locale}/{object_name}.json`\n *\n * @example\n * ```json\n * // i18n/en/account.json\n * {\n * \"label\": \"Account\",\n * \"pluralLabel\": \"Accounts\",\n * \"fields\": {\n * \"name\": { \"label\": \"Account Name\", \"help\": \"Legal name\" },\n * \"type\": { \"label\": \"Type\", \"options\": { \"customer\": \"Customer\" } }\n * }\n * }\n * ```\n */\nexport const ObjectTranslationDataSchema = z.object({\n /** Translated singular label for the object */\n label: z.string().describe('Translated singular label'),\n /** Translated plural label for the object */\n pluralLabel: z.string().optional().describe('Translated plural label'),\n /** Field-level translations keyed by field name (snake_case) */\n fields: z.record(z.string(), FieldTranslationSchema).optional().describe('Field-level translations'),\n}).describe('Translation data for a single object');\n\nexport type ObjectTranslationData = z.infer<typeof ObjectTranslationDataSchema>;\n\n// ────────────────────────────────────────────────────────────────────────────\n// Locale-level Translation Data (per-locale aggregate)\n// ────────────────────────────────────────────────────────────────────────────\n\n/**\n * Translation Data Schema\n * Supports i18n for labels, messages, and options within a single locale.\n * Example structure:\n * ```json\n * {\n * \"objects\": { \"account\": { \"label\": \"Account\" } },\n * \"apps\": { \"crm\": { \"label\": \"CRM\" } },\n * \"messages\": { \"common.save\": \"Save\" }\n * }\n * ```\n */\nexport const TranslationDataSchema = z.object({\n /** Object translations */\n objects: z.record(z.string(), ObjectTranslationDataSchema).optional().describe('Object translations keyed by object name'),\n \n /** App/Menu translations */\n apps: z.record(z.string(), z.object({\n label: z.string().describe('Translated app label'),\n description: z.string().optional().describe('Translated app description'),\n })).optional().describe('App translations keyed by app name'),\n\n /** UI Messages */\n messages: z.record(z.string(), z.string()).optional().describe('UI message translations keyed by message ID'),\n \n /** Validation Error Messages */\n validationMessages: z.record(z.string(), z.string()).optional().describe('Translatable validation error messages keyed by rule name (e.g., {\"discount_limit\": \"折扣不能超过40%\"})'),\n}).describe('Translation data for objects, apps, and UI messages');\n\nexport type TranslationData = z.infer<typeof TranslationDataSchema>;\n\n// ────────────────────────────────────────────────────────────────────────────\n// Translation Bundle (all locales)\n// ────────────────────────────────────────────────────────────────────────────\n\nexport const TranslationBundleSchema = z.record(LocaleSchema, TranslationDataSchema).describe('Map of locale codes to translation data');\n\nexport type TranslationBundle = z.infer<typeof TranslationBundleSchema>;\n\n// ────────────────────────────────────────────────────────────────────────────\n// File Organization Convention\n// ────────────────────────────────────────────────────────────────────────────\n\n/**\n * Translation File Organization Strategy\n *\n * Defines how translation files are organized on disk.\n *\n * - `bundled` — All locales in a single `TranslationBundle` file.\n * Best for small projects with few objects.\n * ```\n * src/translations/\n * crm.translation.ts # { en: {...}, \"zh-CN\": {...} }\n * ```\n *\n * - `per_locale` — One file per locale containing all namespaces.\n * Recommended when a single locale file stays under ~500 lines.\n * ```\n * src/translations/\n * en.ts # TranslationData for English\n * zh-CN.ts # TranslationData for Chinese\n * ```\n *\n * - `per_namespace` — One file per namespace (object) per locale.\n * Recommended for large projects with many objects/languages.\n * Aligns with Salesforce DX and ServiceNow conventions.\n * ```\n * i18n/\n * en/\n * account.json # ObjectTranslationData\n * contact.json\n * common.json # messages + app labels\n * zh-CN/\n * account.json\n * contact.json\n * common.json\n * ```\n */\nexport const TranslationFileOrganizationSchema = z.enum([\n 'bundled',\n 'per_locale',\n 'per_namespace',\n]).describe('Translation file organization strategy');\n\nexport type TranslationFileOrganization = z.infer<typeof TranslationFileOrganizationSchema>;\n\n// ────────────────────────────────────────────────────────────────────────────\n// Translation Configuration\n// ────────────────────────────────────────────────────────────────────────────\n\n/**\n * Translation Configuration Schema\n *\n * Defines internationalization settings for the stack.\n *\n * @example\n * ```typescript\n * export default defineStack({\n * i18n: {\n * defaultLocale: 'en',\n * supportedLocales: ['en', 'zh-CN', 'ja-JP'],\n * fallbackLocale: 'en',\n * fileOrganization: 'per_locale',\n * },\n * translations: [...],\n * });\n * ```\n */\nexport const TranslationConfigSchema = z.object({\n /** Default locale for the application */\n defaultLocale: LocaleSchema.describe('Default locale (e.g., \"en\")'),\n /** Supported BCP-47 locale codes */\n supportedLocales: z.array(LocaleSchema).describe('Supported BCP-47 locale codes'),\n /** Fallback locale when translation is not found */\n fallbackLocale: LocaleSchema.optional().describe('Fallback locale code'),\n /** How translation files are organized on disk */\n fileOrganization: TranslationFileOrganizationSchema.default('per_locale')\n .describe('File organization strategy'),\n /** Load translations on demand instead of eagerly */\n lazyLoad: z.boolean().default(false).describe('Load translations on demand'),\n /** Cache loaded translations in memory */\n cache: z.boolean().default(true).describe('Cache loaded translations'),\n}).describe('Internationalization configuration');\n\nexport type TranslationConfig = z.infer<typeof TranslationConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Real-Time Collaboration Protocol\n * \n * Defines schemas for real-time collaborative editing in ObjectStack.\n * Supports Operational Transformation (OT), CRDT (Conflict-free Replicated Data Types),\n * cursor sharing, and awareness state for collaborative applications.\n * \n * Industry alignment: Google Docs, Figma, VSCode Live Share, Yjs\n */\n\n// ==========================================\n// Operational Transformation (OT)\n// ==========================================\n\n/**\n * OT Operation Type Enum\n * Types of operations in Operational Transformation\n */\nexport const OTOperationType = z.enum([\n 'insert', // Insert characters at position\n 'delete', // Delete characters at position\n 'retain', // Keep characters (used for composing operations)\n]);\n\nexport type OTOperationType = z.infer<typeof OTOperationType>;\n\n/**\n * OT Operation Component\n * Single component of an OT operation\n */\nexport const OTComponentSchema = z.discriminatedUnion('type', [\n z.object({\n type: z.literal('insert'),\n text: z.string().describe('Text to insert'),\n attributes: z.record(z.string(), z.unknown()).optional().describe('Text formatting attributes (e.g., bold, italic)'),\n }),\n z.object({\n type: z.literal('delete'),\n count: z.number().int().positive().describe('Number of characters to delete'),\n }),\n z.object({\n type: z.literal('retain'),\n count: z.number().int().positive().describe('Number of characters to retain'),\n attributes: z.record(z.string(), z.unknown()).optional().describe('Attribute changes to apply'),\n }),\n]);\n\nexport type OTComponent = z.infer<typeof OTComponentSchema>;\n\n/**\n * OT Operation Schema\n * Represents a complete OT operation\n * Based on the OT algorithm used by Google Docs and other collaborative editors\n */\nexport const OTOperationSchema = z.object({\n operationId: z.string().uuid().describe('Unique operation identifier'),\n documentId: z.string().describe('Document identifier'),\n userId: z.string().describe('User who created the operation'),\n sessionId: z.string().uuid().describe('Session identifier'),\n components: z.array(OTComponentSchema).describe('Operation components'),\n baseVersion: z.number().int().nonnegative().describe('Document version this operation is based on'),\n timestamp: z.string().datetime().describe('ISO 8601 datetime when operation was created'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional operation metadata'),\n});\n\nexport type OTOperation = z.infer<typeof OTOperationSchema>;\n\n/**\n * OT Transform Result\n * Result of transforming one operation against another\n */\nexport const OTTransformResultSchema = z.object({\n operation: OTOperationSchema.describe('Transformed operation'),\n transformed: z.boolean().describe('Whether transformation was applied'),\n conflicts: z.array(z.string()).optional().describe('Conflict descriptions if any'),\n});\n\nexport type OTTransformResult = z.infer<typeof OTTransformResultSchema>;\n\n// ==========================================\n// CRDT (Conflict-free Replicated Data Types)\n// ==========================================\n\n/**\n * CRDT Type Enum\n * Types of CRDTs supported\n */\nexport const CRDTType = z.enum([\n 'lww-register', // Last-Write-Wins Register\n 'g-counter', // Grow-only Counter\n 'pn-counter', // Positive-Negative Counter\n 'g-set', // Grow-only Set\n 'or-set', // Observed-Remove Set\n 'lww-map', // Last-Write-Wins Map\n 'text', // CRDT-based Text (e.g., Yjs, Automerge)\n 'tree', // CRDT-based Tree structure\n 'json', // CRDT-based JSON (e.g., Automerge)\n]);\n\nexport type CRDTType = z.infer<typeof CRDTType>;\n\n/**\n * Vector Clock Schema\n * Tracks causality in distributed systems\n */\nexport const VectorClockSchema = z.object({\n clock: z.record(z.string(), z.number().int().nonnegative()).describe('Map of replica ID to logical timestamp'),\n});\n\nexport type VectorClock = z.infer<typeof VectorClockSchema>;\n\n/**\n * LWW-Register Schema\n * Last-Write-Wins Register CRDT\n */\nexport const LWWRegisterSchema = z.object({\n type: z.literal('lww-register'),\n value: z.unknown().describe('Current register value'),\n timestamp: z.string().datetime().describe('ISO 8601 datetime of last write'),\n replicaId: z.string().describe('ID of replica that performed last write'),\n vectorClock: VectorClockSchema.optional().describe('Optional vector clock for causality tracking'),\n});\n\nexport type LWWRegister = z.infer<typeof LWWRegisterSchema>;\n\n/**\n * Counter Operation Schema\n * Operations for Counter CRDTs\n */\nexport const CounterOperationSchema = z.object({\n replicaId: z.string().describe('Replica identifier'),\n delta: z.number().int().describe('Change amount (positive for increment, negative for decrement)'),\n timestamp: z.string().datetime().describe('ISO 8601 datetime of operation'),\n});\n\nexport type CounterOperation = z.infer<typeof CounterOperationSchema>;\n\n/**\n * G-Counter Schema\n * Grow-only Counter CRDT\n */\nexport const GCounterSchema = z.object({\n type: z.literal('g-counter'),\n counts: z.record(z.string(), z.number().int().nonnegative()).describe('Map of replica ID to count'),\n});\n\nexport type GCounter = z.infer<typeof GCounterSchema>;\n\n/**\n * PN-Counter Schema\n * Positive-Negative Counter CRDT (supports increment and decrement)\n */\nexport const PNCounterSchema = z.object({\n type: z.literal('pn-counter'),\n positive: z.record(z.string(), z.number().int().nonnegative()).describe('Positive increments per replica'),\n negative: z.record(z.string(), z.number().int().nonnegative()).describe('Negative increments per replica'),\n});\n\nexport type PNCounter = z.infer<typeof PNCounterSchema>;\n\n/**\n * OR-Set Element Schema\n * Element in an Observed-Remove Set\n */\nexport const ORSetElementSchema = z.object({\n value: z.unknown().describe('Element value'),\n timestamp: z.string().datetime().describe('Addition timestamp'),\n replicaId: z.string().describe('Replica that added the element'),\n uid: z.string().uuid().describe('Unique identifier for this addition'),\n removed: z.boolean().optional().default(false).describe('Whether element has been removed'),\n});\n\nexport type ORSetElement = z.infer<typeof ORSetElementSchema>;\n\n/**\n * OR-Set Schema\n * Observed-Remove Set CRDT\n */\nexport const ORSetSchema = z.object({\n type: z.literal('or-set'),\n elements: z.array(ORSetElementSchema).describe('Set elements with metadata'),\n});\n\nexport type ORSet = z.infer<typeof ORSetSchema>;\n\n/**\n * Text CRDT Operation Schema\n * Operations for text-based CRDTs (e.g., Yjs, Automerge)\n */\nexport const TextCRDTOperationSchema = z.object({\n operationId: z.string().uuid().describe('Unique operation identifier'),\n replicaId: z.string().describe('Replica identifier'),\n position: z.number().int().nonnegative().describe('Position in document'),\n insert: z.string().optional().describe('Text to insert'),\n delete: z.number().int().positive().optional().describe('Number of characters to delete'),\n timestamp: z.string().datetime().describe('ISO 8601 datetime of operation'),\n lamportTimestamp: z.number().int().nonnegative().describe('Lamport timestamp for ordering'),\n});\n\nexport type TextCRDTOperation = z.infer<typeof TextCRDTOperationSchema>;\n\n/**\n * Text CRDT State Schema\n * State of a text-based CRDT document\n */\nexport const TextCRDTStateSchema = z.object({\n type: z.literal('text'),\n documentId: z.string().describe('Document identifier'),\n content: z.string().describe('Current text content'),\n operations: z.array(TextCRDTOperationSchema).describe('History of operations'),\n lamportClock: z.number().int().nonnegative().describe('Current Lamport clock value'),\n vectorClock: VectorClockSchema.describe('Vector clock for causality'),\n});\n\nexport type TextCRDTState = z.infer<typeof TextCRDTStateSchema>;\n\n/**\n * CRDT State Union\n * Discriminated union of all CRDT types\n */\nexport const CRDTStateSchema = z.discriminatedUnion('type', [\n LWWRegisterSchema,\n GCounterSchema,\n PNCounterSchema,\n ORSetSchema,\n TextCRDTStateSchema,\n]);\n\nexport type CRDTState = z.infer<typeof CRDTStateSchema>;\n\n/**\n * CRDT Merge Schema\n * Result of merging two CRDT states\n */\nexport const CRDTMergeResultSchema = z.object({\n state: CRDTStateSchema.describe('Merged CRDT state'),\n conflicts: z.array(z.object({\n type: z.string().describe('Conflict type'),\n description: z.string().describe('Conflict description'),\n resolved: z.boolean().describe('Whether conflict was automatically resolved'),\n })).optional().describe('Conflicts encountered during merge'),\n});\n\nexport type CRDTMergeResult = z.infer<typeof CRDTMergeResultSchema>;\n\n// ==========================================\n// Cursor Sharing\n// ==========================================\n\n/**\n * Cursor Color Preset Enum\n * Standard color presets for cursor visualization\n */\nexport const CursorColorPreset = z.enum([\n 'blue',\n 'green',\n 'red',\n 'yellow',\n 'purple',\n 'orange',\n 'pink',\n 'teal',\n 'indigo',\n 'cyan',\n]);\n\nexport type CursorColorPreset = z.infer<typeof CursorColorPreset>;\n\n/**\n * Cursor Style Schema\n * Visual styling for collaborative cursors\n */\nexport const CursorStyleSchema = z.object({\n color: z.union([CursorColorPreset, z.string()]).describe('Cursor color (preset or custom hex)'),\n opacity: z.number().min(0).max(1).optional().default(1).describe('Cursor opacity (0-1)'),\n label: z.string().optional().describe('Label to display with cursor (usually username)'),\n showLabel: z.boolean().optional().default(true).describe('Whether to show label'),\n pulseOnUpdate: z.boolean().optional().default(true).describe('Whether to pulse when cursor moves'),\n});\n\nexport type CursorStyle = z.infer<typeof CursorStyleSchema>;\n\n/**\n * Cursor Selection Schema\n * Represents a text selection in collaborative editing\n */\nexport const CursorSelectionSchema = z.object({\n anchor: z.object({\n line: z.number().int().nonnegative().describe('Anchor line number'),\n column: z.number().int().nonnegative().describe('Anchor column number'),\n }).describe('Selection anchor (start point)'),\n focus: z.object({\n line: z.number().int().nonnegative().describe('Focus line number'),\n column: z.number().int().nonnegative().describe('Focus column number'),\n }).describe('Selection focus (end point)'),\n direction: z.enum(['forward', 'backward']).optional().describe('Selection direction'),\n});\n\nexport type CursorSelection = z.infer<typeof CursorSelectionSchema>;\n\n/**\n * Collaborative Cursor Schema\n * Complete cursor state for a collaborative user\n */\nexport const CollaborativeCursorSchema = z.object({\n userId: z.string().describe('User identifier'),\n sessionId: z.string().uuid().describe('Session identifier'),\n documentId: z.string().describe('Document identifier'),\n userName: z.string().describe('Display name of user'),\n position: z.object({\n line: z.number().int().nonnegative().describe('Cursor line number (0-indexed)'),\n column: z.number().int().nonnegative().describe('Cursor column number (0-indexed)'),\n }).describe('Current cursor position'),\n selection: CursorSelectionSchema.optional().describe('Current text selection'),\n style: CursorStyleSchema.describe('Visual style for this cursor'),\n isTyping: z.boolean().optional().default(false).describe('Whether user is currently typing'),\n lastUpdate: z.string().datetime().describe('ISO 8601 datetime of last cursor update'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional cursor metadata'),\n});\n\nexport type CollaborativeCursor = z.infer<typeof CollaborativeCursorSchema>;\n\n/**\n * Cursor Update Schema\n * Update to a collaborative cursor\n */\nexport const CursorUpdateSchema = z.object({\n position: z.object({\n line: z.number().int().nonnegative(),\n column: z.number().int().nonnegative(),\n }).optional().describe('Updated cursor position'),\n selection: CursorSelectionSchema.optional().describe('Updated selection'),\n isTyping: z.boolean().optional().describe('Updated typing state'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Updated metadata'),\n});\n\nexport type CursorUpdate = z.infer<typeof CursorUpdateSchema>;\n\n// ==========================================\n// Awareness State\n// ==========================================\n\n/**\n * User Activity Status Enum\n * User activity status for awareness\n */\nexport const UserActivityStatus = z.enum([\n 'active', // User is actively editing\n 'idle', // User is idle but connected\n 'viewing', // User is viewing but not editing\n 'disconnected', // User is disconnected\n]);\n\nexport type UserActivityStatus = z.infer<typeof UserActivityStatus>;\n\n/**\n * Awareness User State Schema\n * Tracks what a user is doing in the collaborative session\n */\nexport const AwarenessUserStateSchema = z.object({\n userId: z.string().describe('User identifier'),\n sessionId: z.string().uuid().describe('Session identifier'),\n userName: z.string().describe('Display name'),\n userAvatar: z.string().optional().describe('User avatar URL'),\n status: UserActivityStatus.describe('Current activity status'),\n currentDocument: z.string().optional().describe('Document ID user is currently editing'),\n currentView: z.string().optional().describe('Current view/page user is on'),\n lastActivity: z.string().datetime().describe('ISO 8601 datetime of last activity'),\n joinedAt: z.string().datetime().describe('ISO 8601 datetime when user joined session'),\n permissions: z.array(z.string()).optional().describe('User permissions in this session'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional user state metadata'),\n});\n\nexport type AwarenessUserState = z.infer<typeof AwarenessUserStateSchema>;\n\n/**\n * Awareness Session Schema\n * Represents the complete awareness state for a collaboration session\n */\nexport const AwarenessSessionSchema = z.object({\n sessionId: z.string().uuid().describe('Session identifier'),\n documentId: z.string().optional().describe('Document ID this session is for'),\n users: z.array(AwarenessUserStateSchema).describe('Active users in session'),\n startedAt: z.string().datetime().describe('ISO 8601 datetime when session started'),\n lastUpdate: z.string().datetime().describe('ISO 8601 datetime of last update'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Session metadata'),\n});\n\nexport type AwarenessSession = z.infer<typeof AwarenessSessionSchema>;\n\n/**\n * Awareness Update Schema\n * Update to awareness state\n */\nexport const AwarenessUpdateSchema = z.object({\n status: UserActivityStatus.optional().describe('Updated status'),\n currentDocument: z.string().optional().describe('Updated current document'),\n currentView: z.string().optional().describe('Updated current view'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Updated metadata'),\n});\n\nexport type AwarenessUpdate = z.infer<typeof AwarenessUpdateSchema>;\n\n/**\n * Awareness Event Schema\n * Events that occur in awareness tracking\n */\nexport const AwarenessEventSchema = z.object({\n eventId: z.string().uuid().describe('Event identifier'),\n sessionId: z.string().uuid().describe('Session identifier'),\n eventType: z.enum([\n 'user.joined',\n 'user.left',\n 'user.updated',\n 'session.created',\n 'session.ended',\n ]).describe('Type of awareness event'),\n userId: z.string().optional().describe('User involved in event'),\n timestamp: z.string().datetime().describe('ISO 8601 datetime of event'),\n payload: z.unknown().describe('Event payload'),\n});\n\nexport type AwarenessEvent = z.infer<typeof AwarenessEventSchema>;\n\n// ==========================================\n// Collaboration Session Management\n// ==========================================\n\n/**\n * Collaboration Mode Enum\n * Types of collaboration modes\n */\nexport const CollaborationMode = z.enum([\n 'ot', // Operational Transformation\n 'crdt', // CRDT-based\n 'lock', // Pessimistic locking (turn-based)\n 'hybrid', // Hybrid approach\n]);\n\nexport type CollaborationMode = z.infer<typeof CollaborationMode>;\n\n/**\n * Collaboration Session Config\n * Configuration for a collaboration session\n */\nexport const CollaborationSessionConfigSchema = z.object({\n mode: CollaborationMode.describe('Collaboration mode to use'),\n enableCursorSharing: z.boolean().optional().default(true).describe('Enable cursor sharing'),\n enablePresence: z.boolean().optional().default(true).describe('Enable presence tracking'),\n enableAwareness: z.boolean().optional().default(true).describe('Enable awareness state'),\n maxUsers: z.number().int().positive().optional().describe('Maximum concurrent users'),\n idleTimeout: z.number().int().positive().optional().default(300000).describe('Idle timeout in milliseconds'),\n conflictResolution: z.enum(['ot', 'crdt', 'manual']).optional().default('ot').describe('Conflict resolution strategy'),\n persistence: z.boolean().optional().default(true).describe('Enable operation persistence'),\n snapshot: z.object({\n enabled: z.boolean().describe('Enable periodic snapshots'),\n interval: z.number().int().positive().describe('Snapshot interval in milliseconds'),\n }).optional().describe('Snapshot configuration'),\n});\n\nexport type CollaborationSessionConfig = z.infer<typeof CollaborationSessionConfigSchema>;\n\n/**\n * Collaboration Session Schema\n * Complete collaboration session state\n */\nexport const CollaborationSessionSchema = z.object({\n sessionId: z.string().uuid().describe('Session identifier'),\n documentId: z.string().describe('Document identifier'),\n config: CollaborationSessionConfigSchema.describe('Session configuration'),\n users: z.array(AwarenessUserStateSchema).describe('Active users'),\n cursors: z.array(CollaborativeCursorSchema).describe('Active cursors'),\n version: z.number().int().nonnegative().describe('Current document version'),\n operations: z.array(z.union([OTOperationSchema, TextCRDTOperationSchema])).optional().describe('Recent operations'),\n createdAt: z.string().datetime().describe('ISO 8601 datetime when session was created'),\n lastActivity: z.string().datetime().describe('ISO 8601 datetime of last activity'),\n status: z.enum(['active', 'idle', 'ended']).describe('Session status'),\n});\n\nexport type CollaborationSession = z.infer<typeof CollaborationSessionSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Metadata Scope Enum\n * Defines the lifecycle and mutability of a metadata item.\n */\nexport const MetadataScopeSchema = z.enum([\n 'system', // Defined in Code (Files). Read-only at runtime. Upgraded via deployment.\n 'platform', // Defined in DB (Global). admin-configured. Overrides system.\n 'user', // Defined in DB (Personal). User-configured. Overrides platform/system.\n]);\n\n/**\n * Metadata Lifecycle State\n */\nexport const MetadataStateSchema = z.enum([\n 'draft', // Work in progress, not active\n 'active', // Live and running\n 'archived', // Soft deleted\n 'deprecated' // Running but flagged for removal\n]);\n\n/**\n * Unified Metadata Persistence Protocol\n * \n * Defines the standardized envelope for storing ANY metadata item (Object, View, Flow)\n * in the database (e.g. `_framework_metadata` or generic `metadata` table).\n * \n * This treats \"Metadata as Data\".\n */\nexport const MetadataRecordSchema = z.object({\n /** Primary Key (UUID) */\n id: z.string(),\n \n /** \n * Machine Name \n * The unique identifier used in code references (e.g. \"account_list_view\").\n */\n name: z.string(),\n \n /**\n * Metadata Type\n * e.g. \"object\", \"view\", \"permission_set\", \"flow\"\n */\n type: z.string(),\n \n /**\n * Namespace / Module\n * Groups metadata into packages (e.g. \"crm\", \"finance\", \"core\").\n */\n namespace: z.string().default('default'),\n\n /**\n * Package Ownership Reference\n * Links this metadata record to the package that delivered it.\n * When set, the record is \"managed\" by the package and should not be\n * directly edited — customizations go through the overlay system.\n * Null/undefined means the record was created independently (not from a package).\n */\n packageId: z.string().optional().describe('Package ID that owns/delivered this metadata'),\n\n /**\n * Managed By Indicator\n * Determines who controls this metadata record's lifecycle.\n * - \"package\": Delivered and upgraded by a plugin package (read-only base)\n * - \"platform\": Created by platform admin via UI\n * - \"user\": Created by end user\n */\n managedBy: z.enum(['package', 'platform', 'user']).optional()\n .describe('Who manages this metadata record lifecycle'),\n \n /**\n * Ownership differentiation\n */\n scope: MetadataScopeSchema.default('platform'),\n \n /**\n * The Payload\n * Stores the actual configuration JSON.\n * This field holds the value of `ViewSchema`, `ObjectSchema`, etc.\n */\n metadata: z.record(z.string(), z.unknown()),\n\n /**\n * Extension / Merge Strategy\n * If this record overrides a system record, how should it be applied?\n */\n extends: z.string().optional().describe('Name of the parent metadata to extend/override'),\n strategy: z.enum(['merge', 'replace']).default('merge'),\n\n /** Owner (for user-scope items) */\n owner: z.string().optional(),\n \n /** State */\n state: MetadataStateSchema.default('active'),\n\n /** Tenant ID for multi-tenant isolation */\n tenantId: z.string().optional().describe('Tenant identifier for multi-tenant isolation'),\n\n /** Version number for optimistic concurrency */\n version: z.number().default(1).describe('Record version for optimistic concurrency control'),\n\n /** Checksum for change detection */\n checksum: z.string().optional().describe('Content checksum for change detection'),\n\n /** Source origin marker */\n source: z.enum(['filesystem', 'database', 'api', 'migration']).optional().describe('Origin of this metadata record'),\n\n /** Classification tags */\n tags: z.array(z.string()).optional().describe('Classification tags for filtering and grouping'),\n \n /** Audit */\n createdBy: z.string().optional(),\n createdAt: z.string().datetime().optional().describe('Creation timestamp'),\n updatedBy: z.string().optional(),\n updatedAt: z.string().datetime().optional().describe('Last update timestamp'),\n});\n\nexport type MetadataRecord = z.infer<typeof MetadataRecordSchema>;\nexport type MetadataScope = z.infer<typeof MetadataScopeSchema>;\n\n/**\n * Metadata Format\n * Supported file formats for metadata serialization.\n */\nexport const MetadataFormatSchema = z.enum([\n 'json', 'yaml', 'yml', 'ts', 'js',\n 'typescript', 'javascript' // Aliases\n]);\n\n/**\n * Metadata Stats\n * Statistics about a metadata item.\n */\nexport const MetadataStatsSchema = z.object({\n path: z.string().optional(),\n size: z.number().optional(),\n mtime: z.string().datetime().optional(),\n hash: z.string().optional(),\n etag: z.string().optional(), // Required by local cache\n modifiedAt: z.string().datetime().optional(), // Alias for mtime\n format: MetadataFormatSchema.optional(), // Required for serialization\n});\n\n/**\n * Metadata Loader Contract\n * Describes the capabilities and identity of a metadata loader.\n */\nexport const MetadataLoaderContractSchema = z.object({\n name: z.string(),\n protocol: z.enum(['file:', 'http:', 's3:', 'datasource:', 'memory:']).describe('Loader protocol identifier'),\n description: z.string().optional(),\n supportedFormats: z.array(z.string()).optional(),\n supportsWatch: z.boolean().optional(),\n supportsWrite: z.boolean().optional(),\n supportsCache: z.boolean().optional(),\n capabilities: z.object({\n read: z.boolean().default(true),\n write: z.boolean().default(false),\n watch: z.boolean().default(false),\n list: z.boolean().default(true),\n }),\n});\n\n/**\n * Metadata Load Options\n */\nexport const MetadataLoadOptionsSchema = z.object({\n scope: MetadataScopeSchema.optional(),\n namespace: z.string().optional(),\n raw: z.boolean().optional().describe('Return raw file content instead of parsed JSON'),\n cache: z.boolean().optional(),\n useCache: z.boolean().optional(), // Alias for cache\n validate: z.boolean().optional(),\n ifNoneMatch: z.string().optional(), // For caching\n recursive: z.boolean().optional(),\n limit: z.number().optional(),\n patterns: z.array(z.string()).optional(),\n loader: z.string().optional().describe('Specific loader to use (e.g. filesystem, database)'),\n});\n\n/**\n * Metadata Load Result\n */\nexport const MetadataLoadResultSchema = z.object({\n data: z.unknown(),\n stats: MetadataStatsSchema.optional(),\n format: MetadataFormatSchema.optional(),\n source: z.string().optional(), // File path or URL\n fromCache: z.boolean().optional(),\n etag: z.string().optional(),\n notModified: z.boolean().optional(),\n loadTime: z.number().optional(),\n});\n\n/**\n * Metadata Save Options\n */\nexport const MetadataSaveOptionsSchema = z.object({\n format: MetadataFormatSchema.optional(),\n create: z.boolean().default(true),\n overwrite: z.boolean().default(true),\n path: z.string().optional(),\n prettify: z.boolean().optional(),\n indent: z.number().optional(),\n sortKeys: z.boolean().optional(),\n backup: z.boolean().optional(),\n atomic: z.boolean().optional(),\n loader: z.string().optional().describe('Specific loader to use (e.g. filesystem, database)'),\n});\n\n/**\n * Metadata Save Result\n */\nexport const MetadataSaveResultSchema = z.object({\n success: z.boolean(),\n path: z.string().optional(),\n stats: MetadataStatsSchema.optional(),\n etag: z.string().optional(),\n size: z.number().optional(),\n saveTime: z.number().optional(),\n backupPath: z.string().optional(),\n});\n\n/**\n * Metadata Watch Event\n */\nexport const MetadataWatchEventSchema = z.object({\n type: z.enum(['add', 'change', 'unlink', 'added', 'changed', 'deleted']),\n path: z.string(),\n name: z.string().optional(),\n stats: MetadataStatsSchema.optional(),\n metadataType: z.string().optional(),\n data: z.unknown().optional(),\n timestamp: z.string().datetime().optional(),\n});\n\n/**\n * Metadata Collection Info\n */\nexport const MetadataCollectionInfoSchema = z.object({\n type: z.string(),\n count: z.number(),\n namespaces: z.array(z.string()),\n});\n\n/**\n * Metadata Export/Import Options\n */\nexport const MetadataExportOptionsSchema = z.object({\n types: z.array(z.string()).optional(),\n namespaces: z.array(z.string()).optional(),\n output: z.string().describe('Output directory or file'),\n format: MetadataFormatSchema.default('json'),\n});\n\nexport const MetadataImportOptionsSchema = z.object({\n source: z.string().describe('Input directory or file'),\n strategy: z.enum(['merge', 'replace', 'skip']).default('merge'),\n validate: z.boolean().default(true),\n});\n\n/**\n * Metadata Fallback Strategy\n * Determines behavior when the primary datasource is unavailable.\n */\nexport const MetadataFallbackStrategySchema = z.enum([\n 'filesystem', // Fall back to filesystem-based loading\n 'memory', // Fall back to in-memory storage\n 'none', // No fallback — fail immediately\n]);\n\n/**\n * Metadata Source Origin\n * Indicates where a metadata record was loaded from.\n */\nexport const MetadataSourceSchema = z.enum([\n 'filesystem', // Loaded from local files\n 'database', // Loaded from database via datasource\n 'api', // Loaded from remote API\n 'migration', // Created during a migration process\n]);\n\n/**\n * Metadata Manager Config\n * \n * Unified configuration for the MetadataManager.\n * Supports datasource-backed persistence via `datasource` field,\n * which references a DatasourceSchema.name resolved at runtime.\n */\nexport const MetadataManagerConfigSchema = z.object({\n /**\n * Datasource Name Reference\n * References a DatasourceSchema.name (e.g. 'default').\n * At runtime, resolved from kernel service `driver.{name}` to obtain the actual driver.\n * When provided, metadata is persisted to a database table.\n */\n datasource: z.string().optional().describe('Datasource name reference for database persistence'),\n\n /**\n * Metadata Table Name\n * The database table used for metadata storage when datasource is configured.\n */\n tableName: z.string().default('sys_metadata').describe('Database table name for metadata storage'),\n\n /**\n * Fallback Strategy\n * Determines behavior when the primary datasource is unavailable.\n */\n fallback: MetadataFallbackStrategySchema.default('none').describe('Fallback strategy when datasource is unavailable'),\n\n /**\n * Root directory for metadata (for filesystem loaders)\n */\n rootDir: z.string().optional().describe('Root directory for filesystem-based metadata'),\n\n /**\n * Enabled serialization formats\n */\n formats: z.array(MetadataFormatSchema).optional().describe('Enabled metadata formats'),\n\n /**\n * Enable file watching\n */\n watch: z.boolean().optional().describe('Enable file watching for filesystem loaders'),\n\n /**\n * Cache configuration\n */\n cache: z.boolean().optional().describe('Enable metadata caching'),\n\n /**\n * Watch options\n */\n watchOptions: z.object({\n ignored: z.array(z.string()).optional().describe('Patterns to ignore'),\n persistent: z.boolean().default(true).describe('Keep process running'),\n }).optional().describe('File watcher options'),\n});\n\nexport type MetadataFormat = z.infer<typeof MetadataFormatSchema>;\nexport type MetadataStats = z.infer<typeof MetadataStatsSchema>;\nexport type MetadataLoaderContract = z.input<typeof MetadataLoaderContractSchema>;\nexport type MetadataLoadOptions = z.infer<typeof MetadataLoadOptionsSchema>;\nexport type MetadataLoadResult = z.infer<typeof MetadataLoadResultSchema>;\nexport type MetadataSaveOptions = z.infer<typeof MetadataSaveOptionsSchema>;\nexport type MetadataSaveResult = z.infer<typeof MetadataSaveResultSchema>;\nexport type MetadataWatchEvent = z.infer<typeof MetadataWatchEventSchema>;\nexport type MetadataCollectionInfo = z.infer<typeof MetadataCollectionInfoSchema>;\nexport type MetadataExportOptions = z.infer<typeof MetadataExportOptionsSchema>;\nexport type MetadataImportOptions = z.infer<typeof MetadataImportOptionsSchema>;\nexport type MetadataManagerConfig = z.input<typeof MetadataManagerConfigSchema>;\nexport type MetadataFallbackStrategy = z.infer<typeof MetadataFallbackStrategySchema>;\nexport type MetadataSource = z.infer<typeof MetadataSourceSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * # Service Registry Protocol\n * \n * Defines the standard built-in services that constitute the ObjectStack Kernel.\n * This registry is used by the `ObjectKernel` and `HttpDispatcher` to:\n * 1. Verify service availability.\n * 2. Route requests to the correct service handler.\n * 3. Type-check service interactions.\n */\n\n// ==========================================\n// Service Identifiers\n// ==========================================\n\nexport const CoreServiceName = z.enum([\n // Core Data & Metadata\n 'metadata', // Object/Field Definitions\n 'data', // CRUD & Query Engine\n 'auth', // Authentication & Identity\n \n // Infrastructure\n 'file-storage', // Storage Driver (Local/S3)\n 'search', // Search Engine (Elastic/Meili)\n 'cache', // Cache Driver (Redis/Memory)\n 'queue', // Job Queue (BullMQ/Redis)\n \n // Advanced Capabilities\n 'automation', // Flow & Script Engine\n 'graphql', // GraphQL API Engine\n 'analytics', // BI & Semantic Layer\n 'realtime', // WebSocket & PubSub\n 'job', // Background Job Manager\n 'notification', // Email/Push/SMS\n 'ai', // AI Engine (NLQ, Chat, Suggest, Insights)\n 'i18n', // Internationalization Service\n 'ui', // UI Metadata Service (View CRUD)\n 'workflow', // Workflow State Machine Engine\n]);\n\nexport type CoreServiceName = z.infer<typeof CoreServiceName>;\n\n/**\n * Service Criticality Level\n * Defines the startup behavior when a service is missing.\n */\nexport const ServiceCriticalitySchema = z.enum([\n 'required', // System fails to start if missing (Exit Code 1)\n 'core', // System warns if missing, functionality degraded (Warn)\n 'optional', // System ignores if missing, feature disabled (Info)\n]);\n\n/**\n * Service Requirement Definition\n */\nexport const ServiceRequirementDef = {\n // Required: The kernel cannot function without these\n metadata: 'required',\n data: 'required',\n\n // Core: Highly recommended, defaults to in-memory / no-op if missing\n auth: 'core',\n\n // Core: Highly recommended, defaults to in-memory if missing\n cache: 'core',\n queue: 'core',\n job: 'core',\n\n // Optional: Add-on capabilities\n 'file-storage': 'optional',\n search: 'optional',\n automation: 'optional',\n graphql: 'optional',\n analytics: 'optional',\n realtime: 'optional',\n notification: 'optional',\n ai: 'optional',\n i18n: 'optional',\n ui: 'optional',\n workflow: 'optional',\n} as const;\n\n// ==========================================\n// Service Capabilities\n// ==========================================\n\n/**\n * Describes the availability and health of a service\n */\nexport const ServiceStatusSchema = z.object({\n name: CoreServiceName,\n enabled: z.boolean(),\n status: z.enum(['running', 'stopped', 'degraded', 'initializing']),\n version: z.string().optional(),\n provider: z.string().optional().describe('Implementation provider (e.g. \"s3\" for storage)'),\n features: z.array(z.string()).optional().describe('List of supported sub-features'),\n});\n\n/**\n * The Contract definition for what the Kernel MUST expose\n * map<ServiceName, ServiceInstance>\n */\nexport const KernelServiceMapSchema = z.record(\n CoreServiceName, \n z.unknown().describe('Service Instance implementing the protocol interface')\n);\n\n// ==========================================\n// Service Interfaces (Stub definitions)\n// ==========================================\n// Ideally, we would define strict Typescript interfaces here \n// for what methods each service must expose to the Registry.\n// For Zod, we primarily validate configuration and status.\n\n// e.g.\nexport const ServiceConfigSchema = z.object({\n id: z.string(),\n name: CoreServiceName,\n options: z.record(z.string(), z.unknown()).optional(),\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { 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 * Database Provider Enum\n * Defines which database backend is used for the tenant\n */\nexport const DatabaseProviderSchema = z.enum([\n 'turso', // Turso/libSQL (DB-per-Tenant, edge-native)\n 'postgres', // PostgreSQL (traditional, self-hosted or managed)\n 'memory', // In-memory (testing/development only)\n]).describe('Database provider for tenant data');\n\nexport type DatabaseProvider = z.infer<typeof DatabaseProviderSchema>;\n\n/**\n * Tenant Connection Config Schema\n * Stores the database connection details for a tenant (encrypted at rest)\n */\nexport const TenantConnectionConfigSchema = z.object({\n /** Database connection URL */\n url: z.string().min(1).describe('Database connection URL'),\n /** Authentication token (JWT for Turso, password for Postgres) */\n authToken: z.string().optional().describe('Database auth token (encrypted at rest)'),\n /** Turso database group name */\n group: z.string().optional().describe('Turso database group name'),\n}).describe('Tenant database connection configuration');\n\nexport type TenantConnectionConfig = z.infer<typeof TenantConnectionConfigSchema>;\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 /**\n * Maximum number of custom objects the tenant can create\n */\n maxObjects: z.number().int().positive().optional().describe('Maximum number of custom objects'),\n\n /**\n * Maximum records per object/table\n */\n maxRecordsPerObject: z.number().int().positive().optional().describe('Maximum records per object'),\n\n /**\n * Maximum deployments allowed per day\n */\n maxDeploymentsPerDay: z.number().int().positive().optional().describe('Maximum deployments per day'),\n\n /**\n * Maximum storage in bytes\n */\n maxStorageBytes: z.number().int().positive().optional().describe('Maximum storage in bytes'),\n});\n\nexport type TenantQuota = z.infer<typeof TenantQuotaSchema>;\n\n/**\n * Tenant Usage Schema\n * Tracks current resource usage for quota enforcement\n */\nexport const TenantUsageSchema = z.object({\n /** Current number of custom objects */\n currentObjectCount: z.number().int().min(0).default(0).describe('Current number of custom objects'),\n /** Current total record count across all objects */\n currentRecordCount: z.number().int().min(0).default(0).describe('Total records across all objects'),\n /** Current storage usage in bytes */\n currentStorageBytes: z.number().int().min(0).default(0).describe('Current storage usage in bytes'),\n /** Deployments executed today */\n deploymentsToday: z.number().int().min(0).default(0).describe('Deployments executed today'),\n /** Current number of active users */\n currentUsers: z.number().int().min(0).default(0).describe('Current number of active users'),\n /** API requests in the current minute */\n apiRequestsThisMinute: z.number().int().min(0).default(0).describe('API requests in the current minute'),\n /** Last updated timestamp (ISO 8601) */\n lastUpdatedAt: z.string().datetime().optional().describe('Last usage update time'),\n}).describe('Current tenant resource usage');\n\nexport type TenantUsage = z.infer<typeof TenantUsageSchema>;\n\n/**\n * Quota Enforcement Result\n * Result of checking whether an operation would exceed tenant quotas\n */\nexport const QuotaEnforcementResultSchema = z.object({\n /** Whether the operation is allowed */\n allowed: z.boolean().describe('Whether the operation is within quota'),\n /** Quota that would be exceeded (if not allowed) */\n exceededQuota: z.string().optional().describe('Name of the exceeded quota'),\n /** Current usage value */\n currentUsage: z.number().optional().describe('Current usage value'),\n /** Quota limit value */\n limit: z.number().optional().describe('Quota limit'),\n /** Human-readable message */\n message: z.string().optional().describe('Human-readable quota message'),\n}).describe('Quota enforcement check result');\n\nexport type QuotaEnforcementResult = z.infer<typeof QuotaEnforcementResultSchema>;\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 * Database provider for this tenant\n */\n databaseProvider: DatabaseProviderSchema.optional().describe('Database provider'),\n\n /**\n * Database connection configuration (encrypted at rest)\n */\n connectionConfig: TenantConnectionConfigSchema.optional().describe('Database connection config'),\n\n /**\n * Current provisioning status\n */\n provisioningStatus: z.enum([\n 'provisioning', 'active', 'suspended', 'failed', 'destroying',\n ]).optional().describe('Current provisioning lifecycle status'),\n\n /**\n * Tenant subscription plan\n */\n plan: z.enum(['free', 'pro', 'enterprise']).optional().describe('Subscription plan'),\n \n /**\n * Custom configuration values\n */\n customizations: z.record(z.string(), z.unknown()).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>;\nexport type RowLevelIsolationStrategyInput = z.input<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>;\nexport type SchemaLevelIsolationStrategyInput = z.input<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>;\nexport type DatabaseLevelIsolationStrategyInput = z.input<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>;\nexport type TenantSecurityPolicyInput = z.input<typeof TenantSecurityPolicySchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Metric Type Classification\n */\nexport const LicenseMetricType = 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]).describe('License metric type');\nexport type LicenseMetricType = z.infer<typeof LicenseMetricType>;\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: LicenseMetricType.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 FeatureInput = z.input<typeof FeatureSchema>;\nexport type Plan = z.infer<typeof PlanSchema>;\nexport type PlanInput = z.input<typeof PlanSchema>;\nexport type License = z.infer<typeof LicenseSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { 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.unknown()).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","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Tenant Provisioning Protocol\n *\n * Defines the schemas for the \"Register → Instant ObjectOS\" provisioning pipeline:\n * 1. User registers → ProvisioningRequest created\n * 2. Turso database created → Schema synced → Seed data applied\n * 3. Tenant status transitions: provisioning → active\n *\n * Provisioning is designed to be:\n * - **Idempotent**: Re-running the same request produces the same result\n * - **Observable**: Each step has explicit status tracking\n * - **Fast**: Target 2-5 seconds for complete provisioning\n */\n\n// ==========================================================================\n// 1. Enums & Constants\n// ==========================================================================\n\n/**\n * Tenant provisioning lifecycle status.\n */\nexport const TenantProvisioningStatusEnum = z.enum([\n 'provisioning', // Database creation in progress\n 'active', // Fully provisioned and operational\n 'suspended', // Temporarily disabled (billing, policy)\n 'failed', // Provisioning failed (requires retry or manual intervention)\n 'destroying', // Deletion in progress\n]).describe('Tenant provisioning lifecycle status');\n\nexport type TenantProvisioningStatus = z.infer<typeof TenantProvisioningStatusEnum>;\n\n/**\n * Tenant subscription plan.\n */\nexport const TenantPlanSchema = z.enum([\n 'free', // Free tier with limited quotas\n 'pro', // Professional tier with higher quotas\n 'enterprise', // Enterprise tier with custom quotas and SLAs\n]).describe('Tenant subscription plan');\n\nexport type TenantPlan = z.infer<typeof TenantPlanSchema>;\n\n/**\n * Available deployment regions.\n */\nexport const TenantRegionSchema = z.enum([\n 'us-east', // US East (Virginia)\n 'us-west', // US West (Oregon)\n 'eu-west', // EU West (Ireland)\n 'eu-central', // EU Central (Frankfurt)\n 'ap-southeast',// Asia Pacific (Singapore)\n 'ap-northeast',// Asia Pacific (Tokyo)\n]).describe('Available deployment region');\n\nexport type TenantRegion = z.infer<typeof TenantRegionSchema>;\n\n// ==========================================================================\n// 2. Provisioning Step Tracking\n// ==========================================================================\n\n/**\n * Individual provisioning step status.\n * Tracks the progress of each step in the provisioning pipeline.\n */\nexport const ProvisioningStepSchema = z.object({\n /** Step identifier */\n name: z.string().min(1).describe('Step name (e.g., create_database, sync_schema)'),\n\n /** Step execution status */\n status: z.enum(['pending', 'running', 'completed', 'failed', 'skipped']).describe('Step status'),\n\n /** When the step started (ISO 8601) */\n startedAt: z.string().datetime().optional().describe('Step start time'),\n\n /** When the step completed (ISO 8601) */\n completedAt: z.string().datetime().optional().describe('Step completion time'),\n\n /** Duration in milliseconds */\n durationMs: z.number().int().min(0).optional().describe('Step duration in ms'),\n\n /** Error message if the step failed */\n error: z.string().optional().describe('Error message on failure'),\n}).describe('Individual provisioning step status');\n\nexport type ProvisioningStep = z.infer<typeof ProvisioningStepSchema>;\n\n// ==========================================================================\n// 3. Provisioning Request & Result\n// ==========================================================================\n\n/**\n * Tenant Provisioning Request.\n * Input for creating a new tenant with its isolated database.\n */\nexport const TenantProvisioningRequestSchema = z.object({\n /** Organization ID that owns this tenant */\n orgId: z.string().min(1).describe('Organization ID'),\n\n /** Requested subscription plan */\n plan: TenantPlanSchema.default('free'),\n\n /** Preferred deployment region */\n region: TenantRegionSchema.default('us-east'),\n\n /** Optional tenant display name */\n displayName: z.string().optional().describe('Tenant display name'),\n\n /** Optional initial admin user email */\n adminEmail: z.string().email().optional().describe('Initial admin user email'),\n\n /** Optional metadata to attach to the tenant */\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata'),\n}).describe('Tenant provisioning request');\n\nexport type TenantProvisioningRequest = z.infer<typeof TenantProvisioningRequestSchema>;\n\n/**\n * Tenant Provisioning Result.\n * Output after provisioning completes (or fails).\n */\nexport const TenantProvisioningResultSchema = z.object({\n /** Unique tenant identifier */\n tenantId: z.string().min(1).describe('Provisioned tenant ID'),\n\n /** Database connection URL (libsql:// or https://) */\n connectionUrl: z.string().min(1).describe('Database connection URL'),\n\n /** Current provisioning status */\n status: TenantProvisioningStatusEnum,\n\n /** Deployment region */\n region: TenantRegionSchema,\n\n /** Active subscription plan */\n plan: TenantPlanSchema,\n\n /** Provisioning pipeline steps with status */\n steps: z.array(ProvisioningStepSchema).default([]).describe('Pipeline step statuses'),\n\n /** Total provisioning duration in milliseconds */\n totalDurationMs: z.number().int().min(0).optional().describe('Total provisioning duration'),\n\n /** Provisioned timestamp (ISO 8601) */\n provisionedAt: z.string().datetime().optional().describe('Provisioning completion time'),\n\n /** Error message if provisioning failed */\n error: z.string().optional().describe('Error message on failure'),\n}).describe('Tenant provisioning result');\n\nexport type TenantProvisioningResult = z.infer<typeof TenantProvisioningResultSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * Deploy Bundle Protocol\n *\n * Defines the schemas for metadata-driven deployment:\n * Schema Push → Zod Validate → Diff → DDL Sync → Register\n *\n * This eliminates traditional CI/CD pipelines for schema changes.\n * A \"deploy\" is a bundle of metadata (objects, views, flows, permissions)\n * that is validated, diffed against the current state, and applied\n * as DDL migrations directly to the tenant database.\n *\n * Target: 2-5 second deploys vs. 2-15 minute traditional Docker/CI/CD.\n */\n\n// ==========================================================================\n// 1. Deploy Status\n// ==========================================================================\n\n/**\n * Deployment lifecycle status.\n */\nexport const DeployStatusEnum = z.enum([\n 'validating', // Zod schema validation in progress\n 'diffing', // Comparing desired state vs current state\n 'migrating', // Executing DDL statements\n 'registering', // Updating metadata registry\n 'ready', // Deployment complete and live\n 'failed', // Deployment failed at some stage\n 'rolling_back', // Rollback in progress\n]).describe('Deployment lifecycle status');\n\nexport type DeployStatus = z.infer<typeof DeployStatusEnum>;\n\n// ==========================================================================\n// 2. Deploy Diff\n// ==========================================================================\n\n/**\n * Schema change descriptor for a single entity (object/field).\n */\nexport const SchemaChangeSchema = z.object({\n /** Type of entity being changed */\n entityType: z.enum(['object', 'field', 'index', 'view', 'flow', 'permission']).describe('Entity type'),\n\n /** Name of the entity */\n entityName: z.string().min(1).describe('Entity name'),\n\n /** Parent entity name (e.g., object name for a field change) */\n parentEntity: z.string().optional().describe('Parent entity name'),\n\n /** Type of change */\n changeType: z.enum(['added', 'modified', 'removed']).describe('Change type'),\n\n /** Previous value (for modified/removed) */\n oldValue: z.unknown().optional().describe('Previous value'),\n\n /** New value (for added/modified) */\n newValue: z.unknown().optional().describe('New value'),\n}).describe('Individual schema change');\n\nexport type SchemaChange = z.infer<typeof SchemaChangeSchema>;\n\n/**\n * Deploy Diff — what changed between current and desired state.\n */\nexport const DeployDiffSchema = z.object({\n /** List of all schema changes */\n changes: z.array(SchemaChangeSchema).default([]).describe('List of schema changes'),\n\n /** Summary counts */\n summary: z.object({\n added: z.number().int().min(0).default(0).describe('Number of added entities'),\n modified: z.number().int().min(0).default(0).describe('Number of modified entities'),\n removed: z.number().int().min(0).default(0).describe('Number of removed entities'),\n }).describe('Change summary counts'),\n\n /** Whether the diff contains breaking changes (e.g., column removal) */\n hasBreakingChanges: z.boolean().default(false).describe('Whether diff contains breaking changes'),\n}).describe('Schema diff between current and desired state');\n\nexport type DeployDiff = z.infer<typeof DeployDiffSchema>;\n\n// ==========================================================================\n// 3. Migration Plan\n// ==========================================================================\n\n/**\n * A single DDL migration statement.\n */\nexport const MigrationStatementSchema = z.object({\n /** SQL DDL statement to execute */\n sql: z.string().min(1).describe('SQL DDL statement'),\n\n /** Whether this statement is reversible */\n reversible: z.boolean().default(true).describe('Whether the statement can be reversed'),\n\n /** Reverse SQL statement (for rollback) */\n rollbackSql: z.string().optional().describe('Reverse SQL for rollback'),\n\n /** Execution order (lower = earlier) */\n order: z.number().int().min(0).describe('Execution order'),\n}).describe('Single DDL migration statement');\n\nexport type MigrationStatement = z.infer<typeof MigrationStatementSchema>;\n\n/**\n * Migration Plan — ordered list of DDL statements to execute.\n */\nexport const MigrationPlanSchema = z.object({\n /** Ordered list of migration statements */\n statements: z.array(MigrationStatementSchema).default([]).describe('Ordered DDL statements'),\n\n /** SQL dialect the statements are written for */\n dialect: z.string().min(1).describe('Target SQL dialect'),\n\n /** Whether the entire plan is reversible */\n reversible: z.boolean().default(true).describe('Whether the plan can be fully rolled back'),\n\n /** Estimated execution time in milliseconds */\n estimatedDurationMs: z.number().int().min(0).optional().describe('Estimated execution time'),\n}).describe('Ordered migration plan');\n\nexport type MigrationPlan = z.infer<typeof MigrationPlanSchema>;\n\n// ==========================================================================\n// 4. Deploy Validation\n// ==========================================================================\n\n/**\n * Validation issue found during bundle validation.\n */\nexport const DeployValidationIssueSchema = z.object({\n /** Severity of the issue */\n severity: z.enum(['error', 'warning', 'info']).describe('Issue severity'),\n\n /** Entity path where the issue was found */\n path: z.string().describe('Entity path (e.g., objects.project_task.fields.name)'),\n\n /** Human-readable issue description */\n message: z.string().describe('Issue description'),\n\n /** Zod error code if applicable */\n code: z.string().optional().describe('Validation error code'),\n}).describe('Validation issue');\n\nexport type DeployValidationIssue = z.infer<typeof DeployValidationIssueSchema>;\n\n/**\n * Zod validation result for the entire deploy bundle.\n */\nexport const DeployValidationResultSchema = z.object({\n /** Whether the bundle passed validation */\n valid: z.boolean().describe('Whether the bundle is valid'),\n\n /** List of validation issues */\n issues: z.array(DeployValidationIssueSchema).default([]).describe('Validation issues'),\n\n /** Number of errors */\n errorCount: z.number().int().min(0).default(0).describe('Number of errors'),\n\n /** Number of warnings */\n warningCount: z.number().int().min(0).default(0).describe('Number of warnings'),\n}).describe('Bundle validation result');\n\nexport type DeployValidationResult = z.infer<typeof DeployValidationResultSchema>;\n\n// ==========================================================================\n// 5. Deploy Bundle & Manifest\n// ==========================================================================\n\n/**\n * Deploy Manifest — metadata about the deployment.\n */\nexport const DeployManifestSchema = z.object({\n /** Deployment version (semver) */\n version: z.string().min(1).describe('Deployment version'),\n\n /** SHA256 checksum of the bundle contents */\n checksum: z.string().optional().describe('SHA256 checksum'),\n\n /** Object definitions included in this deployment */\n objects: z.array(z.string()).default([]).describe('Object names included'),\n\n /** View definitions included */\n views: z.array(z.string()).default([]).describe('View names included'),\n\n /** Flow definitions included */\n flows: z.array(z.string()).default([]).describe('Flow names included'),\n\n /** Permission definitions included */\n permissions: z.array(z.string()).default([]).describe('Permission names included'),\n\n /** Timestamp of bundle creation (ISO 8601) */\n createdAt: z.string().datetime().optional().describe('Bundle creation time'),\n}).describe('Deployment manifest');\n\nexport type DeployManifest = z.infer<typeof DeployManifestSchema>;\n\n/**\n * Deploy Bundle — container for all metadata being deployed.\n * This is the primary input to the deploy pipeline.\n */\nexport const DeployBundleSchema = z.object({\n /** Bundle manifest with version and contents list */\n manifest: DeployManifestSchema,\n\n /** Object definitions (JSON-serialized ObjectStack objects) */\n objects: z.array(z.record(z.string(), z.unknown())).default([]).describe('Object definitions'),\n\n /** View definitions */\n views: z.array(z.record(z.string(), z.unknown())).default([]).describe('View definitions'),\n\n /** Flow definitions */\n flows: z.array(z.record(z.string(), z.unknown())).default([]).describe('Flow definitions'),\n\n /** Permission definitions */\n permissions: z.array(z.record(z.string(), z.unknown())).default([]).describe('Permission definitions'),\n\n /** Seed data records to populate after schema migration */\n seedData: z.array(z.record(z.string(), z.unknown())).default([]).describe('Seed data records'),\n}).describe('Deploy bundle containing all metadata for deployment');\n\nexport type DeployBundle = z.infer<typeof DeployBundleSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * App Installation Protocol\n *\n * Defines the schemas for installing marketplace apps into tenant databases.\n * An \"app install\" injects metadata (objects, views, flows) + schema sync\n * into a tenant's isolated database.\n *\n * Install pipeline:\n * 1. Check compatibility (kernel version, existing objects, conflicts)\n * 2. Validate app manifest\n * 3. Apply schema changes (via deploy pipeline)\n * 4. Seed initial data\n * 5. Register app in tenant's metadata registry\n */\n\n// ==========================================================================\n// 1. App Manifest\n// ==========================================================================\n\n/**\n * App Manifest — describes an installable app package.\n */\nexport const AppManifestSchema = z.object({\n /** Unique app identifier (snake_case) */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('App identifier (snake_case)'),\n\n /** Display label for the app */\n label: z.string().min(1).describe('App display label'),\n\n /** App version (semver) */\n version: z.string().min(1).describe('App version (semver)'),\n\n /** App description */\n description: z.string().optional().describe('App description'),\n\n /** Minimum kernel version required */\n minKernelVersion: z.string().optional().describe('Minimum required kernel version'),\n\n /** Object definitions provided by this app */\n objects: z.array(z.string()).default([]).describe('Object names provided'),\n\n /** View definitions provided */\n views: z.array(z.string()).default([]).describe('View names provided'),\n\n /** Flow definitions provided */\n flows: z.array(z.string()).default([]).describe('Flow names provided'),\n\n /** Whether seed data is included */\n hasSeedData: z.boolean().default(false).describe('Whether app includes seed data'),\n\n /** Seed data records to populate on install */\n seedData: z.array(z.record(z.string(), z.unknown())).default([]).describe('Seed data records'),\n\n /** App dependencies (other apps that must be installed first) */\n dependencies: z.array(z.string()).default([]).describe('Required app dependencies'),\n}).describe('App manifest for marketplace installation');\n\nexport type AppManifest = z.infer<typeof AppManifestSchema>;\n\n// ==========================================================================\n// 2. Compatibility Check\n// ==========================================================================\n\n/**\n * App Compatibility Check Result.\n */\nexport const AppCompatibilityCheckSchema = z.object({\n /** Whether the app is compatible with the current environment */\n compatible: z.boolean().describe('Whether the app is compatible'),\n\n /** Compatibility issues found */\n issues: z.array(z.object({\n /** Issue severity */\n severity: z.enum(['error', 'warning']).describe('Issue severity'),\n /** Issue description */\n message: z.string().describe('Issue description'),\n /** Issue category */\n category: z.enum([\n 'kernel_version', // Kernel version mismatch\n 'object_conflict', // Object name already exists\n 'dependency_missing', // Required dependency not installed\n 'quota_exceeded', // Tenant quota would be exceeded\n ]).describe('Issue category'),\n })).default([]).describe('Compatibility issues'),\n}).describe('App compatibility check result');\n\nexport type AppCompatibilityCheck = z.infer<typeof AppCompatibilityCheckSchema>;\n\n// ==========================================================================\n// 3. Install Request & Result\n// ==========================================================================\n\n/**\n * App Install Request.\n */\nexport const AppInstallRequestSchema = z.object({\n /** Target tenant ID */\n tenantId: z.string().min(1).describe('Target tenant ID'),\n\n /** App identifier to install */\n appId: z.string().min(1).describe('App identifier'),\n\n /** Optional configuration overrides */\n configOverrides: z.record(z.string(), z.unknown()).optional().describe('Configuration overrides'),\n\n /** Whether to skip seed data */\n skipSeedData: z.boolean().default(false).describe('Skip seed data population'),\n}).describe('App install request');\n\nexport type AppInstallRequest = z.infer<typeof AppInstallRequestSchema>;\n\n/**\n * App Install Result.\n */\nexport const AppInstallResultSchema = z.object({\n /** Whether the installation succeeded */\n success: z.boolean().describe('Whether installation succeeded'),\n\n /** App identifier that was installed */\n appId: z.string().describe('Installed app identifier'),\n\n /** App version installed */\n version: z.string().describe('Installed app version'),\n\n /** Objects created or updated */\n installedObjects: z.array(z.string()).default([]).describe('Objects created/updated'),\n\n /** Tables created in the database */\n createdTables: z.array(z.string()).default([]).describe('Database tables created'),\n\n /** Number of seed records inserted */\n seededRecords: z.number().int().min(0).default(0).describe('Seed records inserted'),\n\n /** Installation duration in milliseconds */\n durationMs: z.number().int().min(0).optional().describe('Installation duration'),\n\n /** Error message if installation failed */\n error: z.string().optional().describe('Error message on failure'),\n}).describe('App install result');\n\nexport type AppInstallResult = z.infer<typeof AppInstallResultSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\n/**\n * Package conventions and directory structure constants.\n * These define the \"Law of Location\" - where things must be in ObjectStack packages.\n * \n * These paths are the source of truth used by:\n * - ObjectOS Runtime (to locate package components)\n * - ObjectStack CLI (to scaffold and validate packages)\n * - ObjectStudio IDE (to provide intelligent navigation and validation)\n */\nexport const PKG_CONVENTIONS = {\n /**\n * Standard directories within ObjectStack packages.\n * All packages MUST follow these conventions for the runtime to locate resources.\n */\n DIRS: {\n /** \n * Location for schema definitions (Zod schemas, JSON schemas).\n * Path: src/schemas\n */\n SCHEMA: 'src/schemas',\n \n /** \n * Location for server-side code and triggers.\n * Path: src/server\n */\n SERVER: 'src/server',\n \n /** \n * Location for server-side trigger functions.\n * Path: src/triggers\n */\n TRIGGERS: 'src/triggers',\n \n /** \n * Location for client-side code.\n * Path: src/client\n */\n CLIENT: 'src/client',\n \n /** \n * Location for client-side page components.\n * Path: src/client/pages\n */\n PAGES: 'src/client/pages',\n \n /** \n * Location for static assets (images, fonts, etc.).\n * Path: assets\n */\n ASSETS: 'assets',\n },\n \n /**\n * Standard file names within ObjectStack packages.\n */\n FILES: {\n /** \n * Package manifest configuration file.\n * File: objectstack.config.ts\n */\n MANIFEST: 'objectstack.config.ts',\n \n /** \n * Main entry point for the package.\n * File: src/index.ts\n */\n ENTRY: 'src/index.ts',\n },\n} as const;\n\n/**\n * Type helper to extract directory path values.\n */\nexport type PackageDirectory = typeof PKG_CONVENTIONS.DIRS[keyof typeof PKG_CONVENTIONS.DIRS];\n\n/**\n * Type helper to extract file path values.\n */\nexport type PackageFile = typeof PKG_CONVENTIONS.FILES[keyof typeof PKG_CONVENTIONS.FILES];\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\n/**\n * System Object Names — Protocol Layer Constants\n *\n * These constants define the canonical, protocol-level names for system objects.\n * All API calls, SDK references, permissions checks, and metadata lookups MUST use\n * these names instead of hardcoded strings or physical table names.\n *\n * The actual storage table name may differ via `ObjectSchema.tableName`.\n * The mapping between protocol name and storage name is handled by the\n * ObjectQL Engine / Driver layer.\n *\n * @example\n * ```ts\n * import { SystemObjectName } from '@objectstack/spec/system';\n *\n * // Always use the constant for API / SDK / permission references\n * const users = await engine.find(SystemObjectName.USER, { ... });\n * ```\n */\nexport const SystemObjectName = {\n /** Authentication: user identity */\n USER: 'sys_user',\n /** Authentication: active session */\n SESSION: 'sys_session',\n /** Authentication: OAuth / credential account */\n ACCOUNT: 'sys_account',\n /** Authentication: email / phone verification */\n VERIFICATION: 'sys_verification',\n /** System metadata storage */\n METADATA: 'sys_metadata',\n} as const;\n\n/** Union type of all system object names */\nexport type SystemObjectName = typeof SystemObjectName[keyof typeof SystemObjectName];\n\n/**\n * System Field Names — Protocol Layer Constants\n *\n * These constants define the canonical, protocol-level names for common system fields.\n * All API calls, SDK references, and permission checks MUST use these constants\n * instead of hardcoded strings or physical column names.\n *\n * The actual storage column name may differ via `FieldSchema.columnName`.\n *\n * @example\n * ```ts\n * import { SystemFieldName } from '@objectstack/spec/system';\n *\n * // Use the constant to reference the owner field in queries\n * const myRecords = await engine.find('project', {\n * filters: [SystemFieldName.OWNER_ID, '=', currentUserId],\n * });\n * ```\n */\nexport const SystemFieldName = {\n /** Primary key */\n ID: 'id',\n /** Record creation timestamp */\n CREATED_AT: 'created_at',\n /** Record last-updated timestamp */\n UPDATED_AT: 'updated_at',\n /** Record owner (lookup to user) */\n OWNER_ID: 'owner_id',\n /** Tenant isolation key */\n TENANT_ID: 'tenant_id',\n /** Foreign key to user on session / account objects */\n USER_ID: 'user_id',\n /** Soft-delete timestamp */\n DELETED_AT: 'deleted_at',\n} as const;\n\n/** Union type of all system field names */\nexport type SystemFieldName = typeof SystemFieldName[keyof typeof SystemFieldName];\n\n/**\n * Storage Name Mapping — Protocol ↔ Physical Name Resolution\n *\n * Provides pure utility functions for resolving protocol-level names to\n * physical storage names and vice-versa.\n *\n * These helpers are intended for use inside the ObjectQL Engine and Driver layers.\n * They are intentionally stateless — they receive the object definition and return\n * the resolved name.\n */\nexport const StorageNameMapping = {\n /**\n * Resolve the physical table name for an object.\n * Falls back to `object.name` when `tableName` is not set.\n *\n * @param object - Object definition (at minimum `{ name: string; tableName?: string }`)\n * @returns The physical table / collection name to use in storage operations.\n */\n resolveTableName(object: { name: string; tableName?: string }): string {\n return object.tableName ?? object.name;\n },\n\n /**\n * Resolve the physical column name for a field.\n * Falls back to `fieldKey` when `columnName` is not set on the field.\n *\n * @param fieldKey - The protocol-level field key (snake_case identifier).\n * @param field - Field definition (at minimum `{ columnName?: string }`).\n * @returns The physical column name to use in storage operations.\n */\n resolveColumnName(fieldKey: string, field: { columnName?: string }): string {\n return field.columnName ?? fieldKey;\n },\n\n /**\n * Build a complete field-key → column-name map for an entire object.\n *\n * @param fields - The fields record from an ObjectSchema.\n * @returns A record mapping every protocol field key to its physical column name.\n */\n buildColumnMap(fields: Record<string, { columnName?: string }>): Record<string, string> {\n const map: Record<string, string> = {};\n for (const key of Object.keys(fields)) {\n map[key] = fields[key].columnName ?? key;\n }\n return map;\n },\n\n /**\n * Build a reverse column-name → field-key map for an entire object.\n * Useful for translating storage-layer results back to protocol-level field keys.\n *\n * @param fields - The fields record from an ObjectSchema.\n * @returns A record mapping every physical column name back to its protocol field key.\n */\n buildReverseColumnMap(fields: Record<string, { columnName?: string }>): Record<string, string> {\n const map: Record<string, string> = {};\n for (const key of Object.keys(fields)) {\n const col = fields[key].columnName ?? key;\n map[col] = key;\n }\n return map;\n },\n} as const;\n"]}