@objectstack/spec 6.7.0 → 6.8.0

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 (1747) hide show
  1. package/LICENSE +202 -0
  2. package/dist/ai/index.d.mts +308 -8
  3. package/dist/ai/index.d.ts +308 -8
  4. package/dist/ai/index.js +1211 -37
  5. package/dist/ai/index.js.map +1 -1
  6. package/dist/ai/index.mjs +1209 -38
  7. package/dist/ai/index.mjs.map +1 -1
  8. package/dist/api/index.d.mts +846 -967
  9. package/dist/api/index.d.ts +846 -967
  10. package/dist/api/index.js +5537 -5334
  11. package/dist/api/index.js.map +1 -1
  12. package/dist/api/index.mjs +5537 -5334
  13. package/dist/api/index.mjs.map +1 -1
  14. package/dist/{app.zod-nPfH1TcS.d.ts → app.zod-CLlpb0AH.d.ts} +290 -259
  15. package/dist/{app.zod-D7fgbn5Z.d.mts → app.zod-DvMDoI87.d.mts} +290 -259
  16. package/dist/automation/index.d.mts +332 -31
  17. package/dist/automation/index.d.ts +332 -31
  18. package/dist/automation/index.js +1184 -1
  19. package/dist/automation/index.js.map +1 -1
  20. package/dist/automation/index.mjs +1182 -2
  21. package/dist/automation/index.mjs.map +1 -1
  22. package/dist/cloud/index.d.mts +361 -192
  23. package/dist/cloud/index.d.ts +361 -192
  24. package/dist/cloud/index.js +261 -93
  25. package/dist/cloud/index.js.map +1 -1
  26. package/dist/cloud/index.mjs +256 -94
  27. package/dist/cloud/index.mjs.map +1 -1
  28. package/dist/contracts/index.d.mts +25 -3
  29. package/dist/contracts/index.d.ts +25 -3
  30. package/dist/data/index.d.mts +304 -3
  31. package/dist/data/index.d.ts +304 -3
  32. package/dist/data/index.js +285 -3
  33. package/dist/data/index.js.map +1 -1
  34. package/dist/data/index.mjs +283 -4
  35. package/dist/data/index.mjs.map +1 -1
  36. package/dist/{field.zod-Bqhc6_7G.d.mts → field.zod-BGr7R7KU.d.mts} +4 -0
  37. package/dist/{field.zod-Bqhc6_7G.d.ts → field.zod-BGr7R7KU.d.ts} +4 -0
  38. package/dist/identity/index.d.mts +117 -15
  39. package/dist/identity/index.d.ts +117 -15
  40. package/dist/identity/index.js +1093 -1
  41. package/dist/identity/index.js.map +1 -1
  42. package/dist/identity/index.mjs +1093 -2
  43. package/dist/identity/index.mjs.map +1 -1
  44. package/dist/index.d.mts +280 -286
  45. package/dist/index.d.ts +280 -286
  46. package/dist/index.js +71 -3
  47. package/dist/index.js.map +1 -1
  48. package/dist/index.mjs +71 -4
  49. package/dist/index.mjs.map +1 -1
  50. package/dist/kernel/index.js +15 -15
  51. package/dist/kernel/index.js.map +1 -1
  52. package/dist/kernel/index.mjs +15 -15
  53. package/dist/kernel/index.mjs.map +1 -1
  54. package/dist/{object.zod-rhReSd7V.d.mts → object.zod-C1mmiCDL.d.mts} +22 -4
  55. package/dist/{object.zod-BntYUReb.d.ts → object.zod-D4gYbFv4.d.ts} +22 -4
  56. package/dist/security/index.d.mts +108 -1
  57. package/dist/security/index.d.ts +108 -1
  58. package/dist/security/index.js +1080 -2
  59. package/dist/security/index.js.map +1 -1
  60. package/dist/security/index.mjs +1080 -3
  61. package/dist/security/index.mjs.map +1 -1
  62. package/dist/shared/index.js +6 -1
  63. package/dist/shared/index.js.map +1 -1
  64. package/dist/shared/index.mjs +6 -1
  65. package/dist/shared/index.mjs.map +1 -1
  66. package/dist/system/index.d.mts +193 -18
  67. package/dist/system/index.d.ts +193 -18
  68. package/dist/system/index.js +109 -3
  69. package/dist/system/index.js.map +1 -1
  70. package/dist/system/index.mjs +109 -4
  71. package/dist/system/index.mjs.map +1 -1
  72. package/dist/ui/index.d.mts +603 -9
  73. package/dist/ui/index.d.ts +603 -9
  74. package/dist/ui/index.js +1791 -1335
  75. package/dist/ui/index.js.map +1 -1
  76. package/dist/ui/index.mjs +1784 -1336
  77. package/dist/ui/index.mjs.map +1 -1
  78. package/json-schema/ai/AIKnowledge.json +2 -2
  79. package/json-schema/ai/AIModelConfig.json +2 -2
  80. package/json-schema/ai/AITool.json +2 -2
  81. package/json-schema/ai/AIUsageRecord.json +2 -2
  82. package/json-schema/ai/Agent.json +2 -2
  83. package/json-schema/ai/CodeContent.json +2 -2
  84. package/json-schema/ai/ConversationAnalytics.json +2 -2
  85. package/json-schema/ai/ConversationContext.json +2 -2
  86. package/json-schema/ai/ConversationMessage.json +2 -2
  87. package/json-schema/ai/ConversationSession.json +2 -2
  88. package/json-schema/ai/ConversationSummary.json +2 -2
  89. package/json-schema/ai/EmbeddingModel.json +2 -2
  90. package/json-schema/ai/FileContent.json +2 -2
  91. package/json-schema/ai/FileKnowledgeSource.json +2 -2
  92. package/json-schema/ai/FunctionCall.json +2 -2
  93. package/json-schema/ai/HttpKnowledgeSource.json +2 -2
  94. package/json-schema/ai/ImageContent.json +2 -2
  95. package/json-schema/ai/KnowledgeChunk.json +2 -2
  96. package/json-schema/ai/KnowledgeDocument.json +2 -2
  97. package/json-schema/ai/KnowledgeHit.json +2 -2
  98. package/json-schema/ai/KnowledgeRefreshPolicy.json +2 -2
  99. package/json-schema/ai/KnowledgeSource.json +2 -2
  100. package/json-schema/ai/KnowledgeSourceKind.json +2 -2
  101. package/json-schema/ai/MCPApprovalPolicy.json +2 -2
  102. package/json-schema/ai/MCPServerRef.json +2 -2
  103. package/json-schema/ai/MCPToolBinding.json +2 -2
  104. package/json-schema/ai/MCPTransport.json +2 -2
  105. package/json-schema/ai/MessageContent.json +2 -2
  106. package/json-schema/ai/MessageContentType.json +2 -2
  107. package/json-schema/ai/MessagePruningEvent.json +2 -2
  108. package/json-schema/ai/MessageRole.json +2 -2
  109. package/json-schema/ai/ModelCapability.json +2 -2
  110. package/json-schema/ai/ModelConfig.json +2 -2
  111. package/json-schema/ai/ModelLimits.json +2 -2
  112. package/json-schema/ai/ModelPricing.json +2 -2
  113. package/json-schema/ai/ModelProvider.json +2 -2
  114. package/json-schema/ai/ModelRegistryEntry.json +2 -2
  115. package/json-schema/ai/ModelSelectionCriteria.json +2 -2
  116. package/json-schema/ai/ObjectKnowledgeSource.json +2 -2
  117. package/json-schema/ai/PromptVariable.json +2 -2
  118. package/json-schema/ai/Skill.json +2 -2
  119. package/json-schema/ai/SkillTriggerCondition.json +2 -2
  120. package/json-schema/ai/StructuredOutputConfig.json +2 -2
  121. package/json-schema/ai/StructuredOutputFormat.json +2 -2
  122. package/json-schema/ai/TextContent.json +2 -2
  123. package/json-schema/ai/TokenBudgetConfig.json +2 -2
  124. package/json-schema/ai/TokenBudgetStrategy.json +2 -2
  125. package/json-schema/ai/TokenUsage.json +2 -2
  126. package/json-schema/ai/TokenUsageStats.json +2 -2
  127. package/json-schema/ai/Tool.json +2 -2
  128. package/json-schema/ai/ToolCall.json +2 -2
  129. package/json-schema/ai/ToolCategory.json +2 -2
  130. package/json-schema/ai/TransformPipelineStep.json +2 -2
  131. package/json-schema/ai/VectorStore.json +2 -2
  132. package/json-schema/ai/VectorStoreProvider.json +2 -2
  133. package/json-schema/api/AckMessage.json +2 -2
  134. package/json-schema/api/AddReactionRequest.json +2 -2
  135. package/json-schema/api/AddReactionResponse.json +2 -2
  136. package/json-schema/api/AiInsightsRequest.json +2 -2
  137. package/json-schema/api/AiInsightsResponse.json +2 -2
  138. package/json-schema/api/AiNlqRequest.json +2 -2
  139. package/json-schema/api/AiNlqResponse.json +2 -2
  140. package/json-schema/api/AiSuggestRequest.json +2 -2
  141. package/json-schema/api/AiSuggestResponse.json +2 -2
  142. package/json-schema/api/AnalyticsEndpoint.json +2 -2
  143. package/json-schema/api/AnalyticsMetadataResponse.json +2 -2
  144. package/json-schema/api/AnalyticsQueryRequest.json +2 -2
  145. package/json-schema/api/AnalyticsResultResponse.json +2 -2
  146. package/json-schema/api/AnalyticsSqlResponse.json +2 -2
  147. package/json-schema/api/ApiChangelogEntry.json +2 -2
  148. package/json-schema/api/ApiDiscoveryQuery.json +2 -2
  149. package/json-schema/api/ApiDiscoveryResponse.json +2 -2
  150. package/json-schema/api/ApiDocumentationConfig.json +2 -2
  151. package/json-schema/api/ApiEndpoint.json +2 -2
  152. package/json-schema/api/ApiEndpointRegistration.json +2 -2
  153. package/json-schema/api/ApiError.json +2 -2
  154. package/json-schema/api/ApiMapping.json +2 -2
  155. package/json-schema/api/ApiMetadata.json +2 -2
  156. package/json-schema/api/ApiParameter.json +2 -2
  157. package/json-schema/api/ApiProtocolType.json +2 -2
  158. package/json-schema/api/ApiRegistry.json +2 -2
  159. package/json-schema/api/ApiRegistryEntry.json +2 -2
  160. package/json-schema/api/ApiResponse.json +2 -2
  161. package/json-schema/api/ApiRoutes.json +2 -2
  162. package/json-schema/api/ApiTestCollection.json +2 -2
  163. package/json-schema/api/ApiTestRequest.json +2 -2
  164. package/json-schema/api/ApiTestingUiConfig.json +2 -2
  165. package/json-schema/api/ApiTestingUiType.json +2 -2
  166. package/json-schema/api/AuthEndpoint.json +2 -2
  167. package/json-schema/api/AuthFeaturesConfig.json +2 -2
  168. package/json-schema/api/AuthProvider.json +2 -2
  169. package/json-schema/api/AuthProviderInfo.json +2 -2
  170. package/json-schema/api/AutomationApiErrorCode.json +2 -2
  171. package/json-schema/api/AutomationFlowPathParams.json +2 -2
  172. package/json-schema/api/AutomationRunPathParams.json +2 -2
  173. package/json-schema/api/AutomationTriggerRequest.json +2 -2
  174. package/json-schema/api/AutomationTriggerResponse.json +2 -2
  175. package/json-schema/api/BasePresence.json +2 -2
  176. package/json-schema/api/BaseResponse.json +2 -2
  177. package/json-schema/api/BatchConfig.json +2 -2
  178. package/json-schema/api/BatchDataRequest.json +2 -2
  179. package/json-schema/api/BatchDataResponse.json +2 -2
  180. package/json-schema/api/BatchEndpointsConfig.json +2 -2
  181. package/json-schema/api/BatchLoadingStrategy.json +2 -2
  182. package/json-schema/api/BatchOperationResult.json +2 -2
  183. package/json-schema/api/BatchOperationType.json +2 -2
  184. package/json-schema/api/BatchOptions.json +2 -2
  185. package/json-schema/api/BatchRecord.json +2 -2
  186. package/json-schema/api/BatchUpdateRequest.json +2 -2
  187. package/json-schema/api/BatchUpdateResponse.json +2 -2
  188. package/json-schema/api/BulkRequest.json +2 -2
  189. package/json-schema/api/BulkResponse.json +2 -2
  190. package/json-schema/api/CacheControl.json +2 -2
  191. package/json-schema/api/CacheDirective.json +2 -2
  192. package/json-schema/api/CacheInvalidationRequest.json +2 -2
  193. package/json-schema/api/CacheInvalidationResponse.json +2 -2
  194. package/json-schema/api/CacheInvalidationTarget.json +2 -2
  195. package/json-schema/api/Callback.json +2 -2
  196. package/json-schema/api/ChangelogEntry.json +2 -2
  197. package/json-schema/api/CheckPermissionRequest.json +2 -2
  198. package/json-schema/api/CheckPermissionResponse.json +2 -2
  199. package/json-schema/api/CodeGenerationTemplate.json +2 -2
  200. package/json-schema/api/CompleteChunkedUploadRequest.json +2 -2
  201. package/json-schema/api/CompleteChunkedUploadResponse.json +2 -2
  202. package/json-schema/api/CompleteUploadRequest.json +2 -2
  203. package/json-schema/api/ConceptListResponse.json +2 -2
  204. package/json-schema/api/ConflictResolutionStrategy.json +2 -2
  205. package/json-schema/api/CreateDataRequest.json +2 -2
  206. package/json-schema/api/CreateDataResponse.json +2 -2
  207. package/json-schema/api/CreateExportJobRequest.json +2 -2
  208. package/json-schema/api/CreateExportJobResponse.json +2 -2
  209. package/json-schema/api/CreateFeedItemRequest.json +2 -2
  210. package/json-schema/api/CreateFeedItemResponse.json +2 -2
  211. package/json-schema/api/CreateManyDataRequest.json +2 -2
  212. package/json-schema/api/CreateManyDataResponse.json +2 -2
  213. package/json-schema/api/CreateRequest.json +2 -2
  214. package/json-schema/api/CrudEndpointPattern.json +2 -2
  215. package/json-schema/api/CrudEndpointsConfig.json +2 -2
  216. package/json-schema/api/CrudOperation.json +2 -2
  217. package/json-schema/api/CursorMessage.json +2 -2
  218. package/json-schema/api/CursorPosition.json +2 -2
  219. package/json-schema/api/DataEvent.json +2 -2
  220. package/json-schema/api/DataEventType.json +2 -2
  221. package/json-schema/api/DataLoaderConfig.json +2 -2
  222. package/json-schema/api/DeduplicationStrategy.json +2 -2
  223. package/json-schema/api/DeleteDataRequest.json +2 -2
  224. package/json-schema/api/DeleteDataResponse.json +2 -2
  225. package/json-schema/api/DeleteFeedItemRequest.json +2 -2
  226. package/json-schema/api/DeleteFeedItemResponse.json +2 -2
  227. package/json-schema/api/DeleteFlowRequest.json +2 -2
  228. package/json-schema/api/DeleteFlowResponse.json +2 -2
  229. package/json-schema/api/DeleteManyDataRequest.json +2 -2
  230. package/json-schema/api/DeleteManyDataResponse.json +2 -2
  231. package/json-schema/api/DeleteManyRequest.json +2 -2
  232. package/json-schema/api/DeleteMetaItemRequest.json +2 -2
  233. package/json-schema/api/DeleteMetaItemResponse.json +2 -2
  234. package/json-schema/api/DeleteResponse.json +2 -2
  235. package/json-schema/api/DeleteViewRequest.json +2 -2
  236. package/json-schema/api/DeleteViewResponse.json +2 -2
  237. package/json-schema/api/DeviceRequestResponse.json +2 -2
  238. package/json-schema/api/DeviceTokenResponse.json +2 -2
  239. package/json-schema/api/DisablePackageRequest.json +2 -2
  240. package/json-schema/api/DisablePackageResponse.json +2 -2
  241. package/json-schema/api/Discovery.json +2 -2
  242. package/json-schema/api/DispatcherConfig.json +2 -2
  243. package/json-schema/api/DispatcherErrorCode.json +2 -2
  244. package/json-schema/api/DispatcherErrorResponse.json +2 -2
  245. package/json-schema/api/DispatcherRoute.json +2 -2
  246. package/json-schema/api/DocumentState.json +2 -2
  247. package/json-schema/api/ETag.json +2 -2
  248. package/json-schema/api/EditMessage.json +2 -2
  249. package/json-schema/api/EditOperation.json +2 -2
  250. package/json-schema/api/EditOperationType.json +2 -2
  251. package/json-schema/api/EmailPasswordConfigPublic.json +2 -2
  252. package/json-schema/api/EnablePackageRequest.json +2 -2
  253. package/json-schema/api/EnablePackageResponse.json +2 -2
  254. package/json-schema/api/EndpointRegistry.json +2 -2
  255. package/json-schema/api/EnhancedApiError.json +2 -2
  256. package/json-schema/api/ErrorCategory.json +2 -2
  257. package/json-schema/api/ErrorHandlingConfig.json +2 -2
  258. package/json-schema/api/ErrorMessage.json +2 -2
  259. package/json-schema/api/ErrorResponse.json +2 -2
  260. package/json-schema/api/EventFilter.json +2 -2
  261. package/json-schema/api/EventFilterCondition.json +2 -2
  262. package/json-schema/api/EventMessage.json +2 -2
  263. package/json-schema/api/EventPattern.json +2 -2
  264. package/json-schema/api/EventSubscription.json +2 -2
  265. package/json-schema/api/ExportFormat.json +2 -2
  266. package/json-schema/api/ExportImportTemplate.json +2 -2
  267. package/json-schema/api/ExportJobProgress.json +2 -2
  268. package/json-schema/api/ExportJobStatus.json +2 -2
  269. package/json-schema/api/ExportJobSummary.json +2 -2
  270. package/json-schema/api/ExportRequest.json +2 -2
  271. package/json-schema/api/FederationEntity.json +2 -2
  272. package/json-schema/api/FederationEntityKey.json +2 -2
  273. package/json-schema/api/FederationExternalField.json +2 -2
  274. package/json-schema/api/FederationGateway.json +2 -2
  275. package/json-schema/api/FederationProvides.json +2 -2
  276. package/json-schema/api/FederationRequires.json +2 -2
  277. package/json-schema/api/FeedApiErrorCode.json +2 -2
  278. package/json-schema/api/FeedItemPathParams.json +2 -2
  279. package/json-schema/api/FeedListFilterType.json +2 -2
  280. package/json-schema/api/FeedPathParams.json +2 -2
  281. package/json-schema/api/FeedUnsubscribeRequest.json +2 -2
  282. package/json-schema/api/FieldError.json +2 -2
  283. package/json-schema/api/FieldMappingEntry.json +2 -2
  284. package/json-schema/api/FileTypeValidation.json +2 -2
  285. package/json-schema/api/FileUploadResponse.json +2 -2
  286. package/json-schema/api/FilterOperator.json +2 -2
  287. package/json-schema/api/FindDataRequest.json +2 -2
  288. package/json-schema/api/FindDataResponse.json +2 -2
  289. package/json-schema/api/FlowSummary.json +2 -2
  290. package/json-schema/api/GeneratedApiDocumentation.json +2 -2
  291. package/json-schema/api/GeneratedEndpoint.json +2 -2
  292. package/json-schema/api/GetAnalyticsMetaRequest.json +2 -2
  293. package/json-schema/api/GetAuthConfigResponse.json +2 -2
  294. package/json-schema/api/GetChangelogRequest.json +2 -2
  295. package/json-schema/api/GetChangelogResponse.json +2 -2
  296. package/json-schema/api/GetDataRequest.json +2 -2
  297. package/json-schema/api/GetDataResponse.json +2 -2
  298. package/json-schema/api/GetDiscoveryRequest.json +2 -2
  299. package/json-schema/api/GetDiscoveryResponse.json +2 -2
  300. package/json-schema/api/GetEffectivePermissionsRequest.json +2 -2
  301. package/json-schema/api/GetEffectivePermissionsResponse.json +2 -2
  302. package/json-schema/api/GetExportJobDownloadRequest.json +2 -2
  303. package/json-schema/api/GetExportJobDownloadResponse.json +2 -2
  304. package/json-schema/api/GetFeedRequest.json +2 -2
  305. package/json-schema/api/GetFeedResponse.json +2 -2
  306. package/json-schema/api/GetFieldLabelsRequest.json +2 -2
  307. package/json-schema/api/GetFieldLabelsResponse.json +2 -2
  308. package/json-schema/api/GetFlowRequest.json +2 -2
  309. package/json-schema/api/GetInstalledPackageRequest.json +2 -2
  310. package/json-schema/api/GetInstalledPackageResponse.json +2 -2
  311. package/json-schema/api/GetLocalesRequest.json +2 -2
  312. package/json-schema/api/GetLocalesResponse.json +2 -2
  313. package/json-schema/api/GetMetaItemCachedRequest.json +2 -2
  314. package/json-schema/api/GetMetaItemCachedResponse.json +2 -2
  315. package/json-schema/api/GetMetaItemRequest.json +2 -2
  316. package/json-schema/api/GetMetaItemResponse.json +2 -2
  317. package/json-schema/api/GetMetaItemsRequest.json +2 -2
  318. package/json-schema/api/GetMetaItemsResponse.json +2 -2
  319. package/json-schema/api/GetMetaTypesRequest.json +2 -2
  320. package/json-schema/api/GetMetaTypesResponse.json +90 -2
  321. package/json-schema/api/GetNotificationPreferencesRequest.json +2 -2
  322. package/json-schema/api/GetNotificationPreferencesResponse.json +2 -2
  323. package/json-schema/api/GetObjectPermissionsRequest.json +2 -2
  324. package/json-schema/api/GetObjectPermissionsResponse.json +2 -2
  325. package/json-schema/api/GetPackageRequest.json +2 -2
  326. package/json-schema/api/GetPackageResponse.json +2 -2
  327. package/json-schema/api/GetPresenceRequest.json +2 -2
  328. package/json-schema/api/GetPresenceResponse.json +2 -2
  329. package/json-schema/api/GetPresignedUrlRequest.json +2 -2
  330. package/json-schema/api/GetRunRequest.json +2 -2
  331. package/json-schema/api/GetRunResponse.json +2 -2
  332. package/json-schema/api/GetTranslationsRequest.json +2 -2
  333. package/json-schema/api/GetTranslationsResponse.json +2 -2
  334. package/json-schema/api/GetUiViewRequest.json +2 -2
  335. package/json-schema/api/GetViewRequest.json +2 -2
  336. package/json-schema/api/GetWorkflowConfigRequest.json +2 -2
  337. package/json-schema/api/GetWorkflowStateRequest.json +2 -2
  338. package/json-schema/api/GetWorkflowStateResponse.json +2 -2
  339. package/json-schema/api/GraphQLDataLoaderConfig.json +2 -2
  340. package/json-schema/api/GraphQLDirectiveConfig.json +2 -2
  341. package/json-schema/api/GraphQLDirectiveLocation.json +2 -2
  342. package/json-schema/api/GraphQLMutationConfig.json +2 -2
  343. package/json-schema/api/GraphQLPersistedQuery.json +2 -2
  344. package/json-schema/api/GraphQLQueryAdapter.json +2 -2
  345. package/json-schema/api/GraphQLQueryComplexity.json +2 -2
  346. package/json-schema/api/GraphQLQueryDepthLimit.json +2 -2
  347. package/json-schema/api/GraphQLRateLimit.json +2 -2
  348. package/json-schema/api/GraphQLScalarType.json +2 -2
  349. package/json-schema/api/GraphQLSubscriptionConfig.json +2 -2
  350. package/json-schema/api/GraphQLTypeConfig.json +2 -2
  351. package/json-schema/api/HandlerStatus.json +2 -2
  352. package/json-schema/api/HttpFindQueryParams.json +2 -2
  353. package/json-schema/api/HttpMethod.json +2 -2
  354. package/json-schema/api/HttpStatusCode.json +2 -2
  355. package/json-schema/api/IdRequest.json +2 -2
  356. package/json-schema/api/ImportValidationConfig.json +2 -2
  357. package/json-schema/api/ImportValidationMode.json +2 -2
  358. package/json-schema/api/ImportValidationResult.json +2 -2
  359. package/json-schema/api/InitiateChunkedUploadRequest.json +2 -2
  360. package/json-schema/api/InitiateChunkedUploadResponse.json +2 -2
  361. package/json-schema/api/InstallPackageRequest.json +2 -2
  362. package/json-schema/api/InstallPackageResponse.json +2 -2
  363. package/json-schema/api/ListExportJobsRequest.json +2 -2
  364. package/json-schema/api/ListExportJobsResponse.json +2 -2
  365. package/json-schema/api/ListFlowsRequest.json +2 -2
  366. package/json-schema/api/ListFlowsResponse.json +2 -2
  367. package/json-schema/api/ListInstalledPackagesRequest.json +2 -2
  368. package/json-schema/api/ListInstalledPackagesResponse.json +2 -2
  369. package/json-schema/api/ListNotificationsRequest.json +2 -2
  370. package/json-schema/api/ListNotificationsResponse.json +2 -2
  371. package/json-schema/api/ListPackagesRequest.json +2 -2
  372. package/json-schema/api/ListPackagesResponse.json +2 -2
  373. package/json-schema/api/ListRecordResponse.json +2 -2
  374. package/json-schema/api/ListRunsRequest.json +2 -2
  375. package/json-schema/api/ListRunsResponse.json +2 -2
  376. package/json-schema/api/ListViewsRequest.json +2 -2
  377. package/json-schema/api/LoginRequest.json +2 -2
  378. package/json-schema/api/LoginType.json +2 -2
  379. package/json-schema/api/MarkAllNotificationsReadRequest.json +2 -2
  380. package/json-schema/api/MarkAllNotificationsReadResponse.json +2 -2
  381. package/json-schema/api/MarkNotificationsReadRequest.json +2 -2
  382. package/json-schema/api/MarkNotificationsReadResponse.json +2 -2
  383. package/json-schema/api/MetadataBulkRegisterRequest.json +2 -2
  384. package/json-schema/api/MetadataBulkResponse.json +2 -2
  385. package/json-schema/api/MetadataBulkUnregisterRequest.json +2 -2
  386. package/json-schema/api/MetadataCacheRequest.json +2 -2
  387. package/json-schema/api/MetadataCacheResponse.json +2 -2
  388. package/json-schema/api/MetadataDeleteResponse.json +2 -2
  389. package/json-schema/api/MetadataDependenciesResponse.json +2 -2
  390. package/json-schema/api/MetadataDependentsResponse.json +2 -2
  391. package/json-schema/api/MetadataEffectiveResponse.json +2 -2
  392. package/json-schema/api/MetadataEndpointsConfig.json +2 -2
  393. package/json-schema/api/MetadataEvent.json +2 -2
  394. package/json-schema/api/MetadataEventType.json +2 -2
  395. package/json-schema/api/MetadataExistsResponse.json +2 -2
  396. package/json-schema/api/MetadataExportRequest.json +2 -2
  397. package/json-schema/api/MetadataExportResponse.json +2 -2
  398. package/json-schema/api/MetadataImportRequest.json +2 -2
  399. package/json-schema/api/MetadataImportResponse.json +2 -2
  400. package/json-schema/api/MetadataItemResponse.json +2 -2
  401. package/json-schema/api/MetadataListResponse.json +2 -2
  402. package/json-schema/api/MetadataNamesResponse.json +2 -2
  403. package/json-schema/api/MetadataOverlayResponse.json +2 -2
  404. package/json-schema/api/MetadataOverlaySaveRequest.json +2 -2
  405. package/json-schema/api/MetadataQueryRequest.json +2 -2
  406. package/json-schema/api/MetadataQueryResponse.json +2 -2
  407. package/json-schema/api/MetadataRegisterRequest.json +2 -2
  408. package/json-schema/api/MetadataTypeInfoResponse.json +2 -2
  409. package/json-schema/api/MetadataTypesResponse.json +2 -2
  410. package/json-schema/api/MetadataValidateRequest.json +2 -2
  411. package/json-schema/api/MetadataValidateResponse.json +2 -2
  412. package/json-schema/api/ModificationResult.json +2 -2
  413. package/json-schema/api/Notification.json +2 -2
  414. package/json-schema/api/NotificationPreferences.json +2 -2
  415. package/json-schema/api/ODataConfig.json +2 -2
  416. package/json-schema/api/ODataError.json +2 -2
  417. package/json-schema/api/ODataFilterFunction.json +2 -2
  418. package/json-schema/api/ODataFilterOperator.json +2 -2
  419. package/json-schema/api/ODataMetadata.json +2 -2
  420. package/json-schema/api/ODataQuery.json +2 -2
  421. package/json-schema/api/ODataQueryAdapter.json +2 -2
  422. package/json-schema/api/ODataResponse.json +2 -2
  423. package/json-schema/api/ObjectQLReference.json +2 -2
  424. package/json-schema/api/OpenApi31Extensions.json +2 -2
  425. package/json-schema/api/OpenApiGenerationConfig.json +2 -2
  426. package/json-schema/api/OpenApiSecurityScheme.json +2 -2
  427. package/json-schema/api/OpenApiServer.json +2 -2
  428. package/json-schema/api/OpenApiSpec.json +2 -2
  429. package/json-schema/api/OperatorMapping.json +2 -2
  430. package/json-schema/api/PackageApiErrorCode.json +2 -2
  431. package/json-schema/api/PackageInstallRequest.json +2 -2
  432. package/json-schema/api/PackageInstallResponse.json +2 -2
  433. package/json-schema/api/PackagePathParams.json +2 -2
  434. package/json-schema/api/PackageRollbackRequest.json +2 -2
  435. package/json-schema/api/PackageRollbackResponse.json +2 -2
  436. package/json-schema/api/PackageUpgradeRequest.json +2 -2
  437. package/json-schema/api/PackageUpgradeResponse.json +2 -2
  438. package/json-schema/api/PinFeedItemRequest.json +2 -2
  439. package/json-schema/api/PinFeedItemResponse.json +2 -2
  440. package/json-schema/api/PingMessage.json +2 -2
  441. package/json-schema/api/PongMessage.json +2 -2
  442. package/json-schema/api/PresenceMessage.json +2 -2
  443. package/json-schema/api/PresenceState.json +2 -2
  444. package/json-schema/api/PresenceStatus.json +2 -2
  445. package/json-schema/api/PresenceUpdate.json +2 -2
  446. package/json-schema/api/PresignedUrlResponse.json +2 -2
  447. package/json-schema/api/QueryAdapterConfig.json +2 -2
  448. package/json-schema/api/QueryAdapterTarget.json +2 -2
  449. package/json-schema/api/QueryOptimizationConfig.json +2 -2
  450. package/json-schema/api/RealtimeConfig.json +2 -2
  451. package/json-schema/api/RealtimeConnectRequest.json +2 -2
  452. package/json-schema/api/RealtimeConnectResponse.json +2 -2
  453. package/json-schema/api/RealtimeDisconnectRequest.json +2 -2
  454. package/json-schema/api/RealtimeDisconnectResponse.json +2 -2
  455. package/json-schema/api/RealtimeEvent.json +2 -2
  456. package/json-schema/api/RealtimeEventType.json +2 -2
  457. package/json-schema/api/RealtimePresence.json +2 -2
  458. package/json-schema/api/RealtimeRecordAction.json +2 -2
  459. package/json-schema/api/RealtimeSubscribeRequest.json +2 -2
  460. package/json-schema/api/RealtimeSubscribeResponse.json +2 -2
  461. package/json-schema/api/RealtimeUnsubscribeRequest.json +2 -2
  462. package/json-schema/api/RealtimeUnsubscribeResponse.json +2 -2
  463. package/json-schema/api/RecordData.json +2 -2
  464. package/json-schema/api/RefreshTokenRequest.json +2 -2
  465. package/json-schema/api/RegisterDeviceRequest.json +2 -2
  466. package/json-schema/api/RegisterDeviceResponse.json +2 -2
  467. package/json-schema/api/RegisterRequest.json +2 -2
  468. package/json-schema/api/RemoveReactionRequest.json +2 -2
  469. package/json-schema/api/RemoveReactionResponse.json +2 -2
  470. package/json-schema/api/RequestValidationConfig.json +2 -2
  471. package/json-schema/api/ResolveDependenciesRequest.json +2 -2
  472. package/json-schema/api/ResolveDependenciesResponse.json +2 -2
  473. package/json-schema/api/ResponseEnvelopeConfig.json +2 -2
  474. package/json-schema/api/RestApiConfig.json +2 -2
  475. package/json-schema/api/RestApiEndpoint.json +2 -2
  476. package/json-schema/api/RestApiPluginConfig.json +2 -2
  477. package/json-schema/api/RestApiRouteCategory.json +2 -2
  478. package/json-schema/api/RestApiRouteRegistration.json +2 -2
  479. package/json-schema/api/RestQueryAdapter.json +2 -2
  480. package/json-schema/api/RestServerConfig.json +2 -2
  481. package/json-schema/api/RetryStrategy.json +2 -2
  482. package/json-schema/api/RouteCategory.json +2 -2
  483. package/json-schema/api/RouteCoverageEntry.json +2 -2
  484. package/json-schema/api/RouteCoverageReport.json +2 -2
  485. package/json-schema/api/RouteDefinition.json +2 -2
  486. package/json-schema/api/RouteGenerationConfig.json +2 -2
  487. package/json-schema/api/RouteHealthEntry.json +2 -2
  488. package/json-schema/api/RouteHealthReport.json +2 -2
  489. package/json-schema/api/RouterConfig.json +2 -2
  490. package/json-schema/api/SaveMetaItemRequest.json +2 -2
  491. package/json-schema/api/SaveMetaItemResponse.json +2 -2
  492. package/json-schema/api/ScheduleExportResponse.json +2 -2
  493. package/json-schema/api/SchemaDefinition.json +2 -2
  494. package/json-schema/api/SearchFeedRequest.json +2 -2
  495. package/json-schema/api/SearchFeedResponse.json +2 -2
  496. package/json-schema/api/ServiceInfo.json +2 -2
  497. package/json-schema/api/ServiceStatus.json +2 -2
  498. package/json-schema/api/Session.json +2 -2
  499. package/json-schema/api/SessionResponse.json +2 -2
  500. package/json-schema/api/SessionUser.json +2 -2
  501. package/json-schema/api/SetPresenceRequest.json +2 -2
  502. package/json-schema/api/SetPresenceResponse.json +2 -2
  503. package/json-schema/api/SimpleCursorPosition.json +2 -2
  504. package/json-schema/api/SimplePresenceState.json +2 -2
  505. package/json-schema/api/SingleRecordResponse.json +2 -2
  506. package/json-schema/api/StandardErrorCode.json +2 -2
  507. package/json-schema/api/StarFeedItemRequest.json +2 -2
  508. package/json-schema/api/StarFeedItemResponse.json +2 -2
  509. package/json-schema/api/SubgraphConfig.json +2 -2
  510. package/json-schema/api/SubscribeMessage.json +2 -2
  511. package/json-schema/api/SubscribeRequest.json +2 -2
  512. package/json-schema/api/SubscribeResponse.json +2 -2
  513. package/json-schema/api/Subscription.json +2 -2
  514. package/json-schema/api/SubscriptionEvent.json +2 -2
  515. package/json-schema/api/ToggleFlowRequest.json +2 -2
  516. package/json-schema/api/ToggleFlowResponse.json +2 -2
  517. package/json-schema/api/TransportProtocol.json +2 -2
  518. package/json-schema/api/TriggerFlowRequest.json +2 -2
  519. package/json-schema/api/TriggerFlowResponse.json +2 -2
  520. package/json-schema/api/UninstallPackageApiRequest.json +2 -2
  521. package/json-schema/api/UninstallPackageApiResponse.json +2 -2
  522. package/json-schema/api/UninstallPackageRequest.json +2 -2
  523. package/json-schema/api/UninstallPackageResponse.json +2 -2
  524. package/json-schema/api/UnpinFeedItemRequest.json +2 -2
  525. package/json-schema/api/UnpinFeedItemResponse.json +2 -2
  526. package/json-schema/api/UnregisterDeviceRequest.json +2 -2
  527. package/json-schema/api/UnregisterDeviceResponse.json +2 -2
  528. package/json-schema/api/UnstarFeedItemRequest.json +2 -2
  529. package/json-schema/api/UnstarFeedItemResponse.json +2 -2
  530. package/json-schema/api/UnsubscribeMessage.json +2 -2
  531. package/json-schema/api/UnsubscribeRequest.json +2 -2
  532. package/json-schema/api/UnsubscribeResponse.json +2 -2
  533. package/json-schema/api/UpdateDataRequest.json +2 -2
  534. package/json-schema/api/UpdateDataResponse.json +2 -2
  535. package/json-schema/api/UpdateFeedItemRequest.json +2 -2
  536. package/json-schema/api/UpdateFeedItemResponse.json +2 -2
  537. package/json-schema/api/UpdateManyDataRequest.json +2 -2
  538. package/json-schema/api/UpdateManyDataResponse.json +2 -2
  539. package/json-schema/api/UpdateManyRequest.json +2 -2
  540. package/json-schema/api/UpdateNotificationPreferencesRequest.json +2 -2
  541. package/json-schema/api/UpdateNotificationPreferencesResponse.json +2 -2
  542. package/json-schema/api/UpdateRequest.json +2 -2
  543. package/json-schema/api/UploadArtifactRequest.json +2 -2
  544. package/json-schema/api/UploadArtifactResponse.json +2 -2
  545. package/json-schema/api/UploadChunkRequest.json +2 -2
  546. package/json-schema/api/UploadChunkResponse.json +2 -2
  547. package/json-schema/api/UploadProgress.json +2 -2
  548. package/json-schema/api/UserProfileResponse.json +2 -2
  549. package/json-schema/api/ValidationMode.json +2 -2
  550. package/json-schema/api/VersionDefinition.json +2 -2
  551. package/json-schema/api/VersionNegotiationResponse.json +2 -2
  552. package/json-schema/api/VersionStatus.json +2 -2
  553. package/json-schema/api/VersioningConfig.json +2 -2
  554. package/json-schema/api/VersioningStrategy.json +2 -2
  555. package/json-schema/api/WebSocketConfig.json +2 -2
  556. package/json-schema/api/WebSocketEvent.json +2 -2
  557. package/json-schema/api/WebSocketMessage.json +2 -2
  558. package/json-schema/api/WebSocketMessageType.json +2 -2
  559. package/json-schema/api/WebSocketPresenceStatus.json +2 -2
  560. package/json-schema/api/WebSocketServerConfig.json +2 -2
  561. package/json-schema/api/WebhookConfig.json +2 -2
  562. package/json-schema/api/WebhookEvent.json +2 -2
  563. package/json-schema/api/WellKnownCapabilities.json +2 -2
  564. package/json-schema/api/WorkflowApproveRequest.json +2 -2
  565. package/json-schema/api/WorkflowApproveResponse.json +2 -2
  566. package/json-schema/api/WorkflowRejectRequest.json +2 -2
  567. package/json-schema/api/WorkflowRejectResponse.json +2 -2
  568. package/json-schema/api/WorkflowState.json +2 -2
  569. package/json-schema/api/WorkflowTransitionRequest.json +2 -2
  570. package/json-schema/api/WorkflowTransitionResponse.json +2 -2
  571. package/json-schema/automation/ActionRef.json +2 -2
  572. package/json-schema/automation/ApprovalAction.json +2 -2
  573. package/json-schema/automation/ApprovalActionType.json +2 -2
  574. package/json-schema/automation/ApproverType.json +2 -2
  575. package/json-schema/automation/AuthField.json +2 -2
  576. package/json-schema/automation/Authentication.json +2 -2
  577. package/json-schema/automation/AuthenticationType.json +2 -2
  578. package/json-schema/automation/BpmnDiagnostic.json +2 -2
  579. package/json-schema/automation/BpmnElementMapping.json +2 -2
  580. package/json-schema/automation/BpmnExportOptions.json +2 -2
  581. package/json-schema/automation/BpmnImportOptions.json +2 -2
  582. package/json-schema/automation/BpmnInteropResult.json +2 -2
  583. package/json-schema/automation/BpmnUnmappedStrategy.json +2 -2
  584. package/json-schema/automation/BpmnVersion.json +2 -2
  585. package/json-schema/automation/Checkpoint.json +2 -2
  586. package/json-schema/automation/ConcurrencyPolicy.json +2 -2
  587. package/json-schema/automation/ConflictResolution.json +2 -2
  588. package/json-schema/automation/Connector.json +2 -2
  589. package/json-schema/automation/ConnectorActionRef.json +2 -2
  590. package/json-schema/automation/ConnectorCategory.json +2 -2
  591. package/json-schema/automation/ConnectorInstance.json +2 -2
  592. package/json-schema/automation/ConnectorOperation.json +2 -2
  593. package/json-schema/automation/ConnectorTrigger.json +2 -2
  594. package/json-schema/automation/CustomScriptAction.json +2 -2
  595. package/json-schema/automation/DataSourceConfig.json +2 -2
  596. package/json-schema/automation/ETLDestination.json +2 -2
  597. package/json-schema/automation/ETLEndpointType.json +2 -2
  598. package/json-schema/automation/ETLPipelineRun.json +2 -2
  599. package/json-schema/automation/ETLRunStatus.json +2 -2
  600. package/json-schema/automation/ETLSource.json +2 -2
  601. package/json-schema/automation/ETLSyncMode.json +2 -2
  602. package/json-schema/automation/ETLTransformation.json +2 -2
  603. package/json-schema/automation/ETLTransformationType.json +2 -2
  604. package/json-schema/automation/EmailAlertAction.json +2 -2
  605. package/json-schema/automation/Event.json +2 -2
  606. package/json-schema/automation/ExecutionError.json +2 -2
  607. package/json-schema/automation/ExecutionErrorSeverity.json +2 -2
  608. package/json-schema/automation/ExecutionLog.json +2 -2
  609. package/json-schema/automation/ExecutionStatus.json +2 -2
  610. package/json-schema/automation/ExecutionStepLog.json +2 -2
  611. package/json-schema/automation/FieldUpdateAction.json +2 -2
  612. package/json-schema/automation/FlowNode.json +2 -2
  613. package/json-schema/automation/FlowNodeAction.json +2 -2
  614. package/json-schema/automation/FlowVariable.json +2 -2
  615. package/json-schema/automation/GuardRef.json +2 -2
  616. package/json-schema/automation/HttpCallAction.json +2 -2
  617. package/json-schema/automation/NodeExecutorDescriptor.json +2 -2
  618. package/json-schema/automation/OAuth2Config.json +2 -2
  619. package/json-schema/automation/OperationParameter.json +2 -2
  620. package/json-schema/automation/OperationType.json +2 -2
  621. package/json-schema/automation/PushNotificationAction.json +2 -2
  622. package/json-schema/automation/StateMachine.json +2 -2
  623. package/json-schema/automation/StateNode.json +2 -2
  624. package/json-schema/automation/SyncDirection.json +2 -2
  625. package/json-schema/automation/SyncExecutionResult.json +2 -2
  626. package/json-schema/automation/SyncExecutionStatus.json +2 -2
  627. package/json-schema/automation/SyncMode.json +2 -2
  628. package/json-schema/automation/Transition.json +2 -2
  629. package/json-schema/automation/WaitEventType.json +2 -2
  630. package/json-schema/automation/WaitExecutorConfig.json +2 -2
  631. package/json-schema/automation/WaitResumePayload.json +2 -2
  632. package/json-schema/automation/WaitTimeoutBehavior.json +2 -2
  633. package/json-schema/automation/Webhook.json +2 -2
  634. package/json-schema/automation/WebhookReceiver.json +2 -2
  635. package/json-schema/automation/WebhookTriggerType.json +2 -2
  636. package/json-schema/automation/WorkflowTriggerType.json +2 -2
  637. package/json-schema/cloud/AnalyticsTimeRange.json +2 -2
  638. package/json-schema/cloud/AppDiscoveryRequest.json +2 -2
  639. package/json-schema/cloud/AppDiscoveryResponse.json +2 -2
  640. package/json-schema/cloud/AppSubscription.json +2 -2
  641. package/json-schema/cloud/ArtifactDownloadResponse.json +2 -2
  642. package/json-schema/cloud/ArtifactReference.json +2 -2
  643. package/json-schema/cloud/CreateListingRequest.json +2 -2
  644. package/json-schema/cloud/CreatePackageRequest.json +48 -2
  645. package/json-schema/cloud/CreatePackageVersionRequest.json +2 -2
  646. package/json-schema/cloud/CuratedCollection.json +2 -2
  647. package/json-schema/cloud/Environment.json +2 -2
  648. package/json-schema/cloud/EnvironmentCredential.json +2 -2
  649. package/json-schema/cloud/EnvironmentCredentialStatus.json +2 -2
  650. package/json-schema/cloud/EnvironmentDriver.json +2 -2
  651. package/json-schema/cloud/EnvironmentMember.json +2 -2
  652. package/json-schema/cloud/EnvironmentPackageInstallation.json +2 -2
  653. package/json-schema/cloud/EnvironmentPackageStatus.json +2 -2
  654. package/json-schema/cloud/EnvironmentRole.json +2 -2
  655. package/json-schema/cloud/EnvironmentStatus.json +2 -2
  656. package/json-schema/cloud/EnvironmentType.json +2 -2
  657. package/json-schema/cloud/EnvironmentVisibility.json +2 -2
  658. package/json-schema/cloud/FeaturedListing.json +2 -2
  659. package/json-schema/cloud/InstallPackageToEnvironmentRequest.json +2 -2
  660. package/json-schema/cloud/InstalledAppSummary.json +2 -2
  661. package/json-schema/cloud/ListEnvironmentPackagesResponse.json +2 -2
  662. package/json-schema/cloud/ListInstalledAppsRequest.json +2 -2
  663. package/json-schema/cloud/ListInstalledAppsResponse.json +2 -2
  664. package/json-schema/cloud/ListReviewsRequest.json +2 -2
  665. package/json-schema/cloud/ListReviewsResponse.json +2 -2
  666. package/json-schema/cloud/ListingActionRequest.json +2 -2
  667. package/json-schema/cloud/ListingStatus.json +2 -2
  668. package/json-schema/cloud/MarketplaceCategory.json +2 -2
  669. package/json-schema/cloud/MarketplaceHealthMetrics.json +2 -2
  670. package/json-schema/cloud/MarketplaceInstallRequest.json +2 -2
  671. package/json-schema/cloud/MarketplaceInstallResponse.json +2 -2
  672. package/json-schema/cloud/MarketplaceListing.json +48 -2
  673. package/json-schema/cloud/MarketplaceSearchRequest.json +2 -2
  674. package/json-schema/cloud/MarketplaceSearchResponse.json +48 -2
  675. package/json-schema/cloud/Package.json +48 -2
  676. package/json-schema/cloud/PackageCategory.json +2 -2
  677. package/json-schema/cloud/PackageDependency.json +2 -2
  678. package/json-schema/cloud/PackageInstallation.json +2 -2
  679. package/json-schema/cloud/PackageInstallationStatus.json +2 -2
  680. package/json-schema/cloud/PackageLocale.json +8 -0
  681. package/json-schema/cloud/PackageManifest.json +2 -2
  682. package/json-schema/cloud/PackagePublisher.json +2 -2
  683. package/json-schema/cloud/PackageSubmission.json +2 -2
  684. package/json-schema/cloud/PackageTranslation.json +40 -0
  685. package/json-schema/cloud/PackageTranslations.json +49 -0
  686. package/json-schema/cloud/PackageVersion.json +2 -2
  687. package/json-schema/cloud/PackageVersionStatus.json +2 -2
  688. package/json-schema/cloud/PackageVisibility.json +2 -2
  689. package/json-schema/cloud/PolicyAction.json +2 -2
  690. package/json-schema/cloud/PolicyViolationType.json +2 -2
  691. package/json-schema/cloud/PricingModel.json +2 -2
  692. package/json-schema/cloud/ProvisionEnvironmentRequest.json +2 -2
  693. package/json-schema/cloud/ProvisionEnvironmentResponse.json +2 -2
  694. package/json-schema/cloud/ProvisionOrganizationRequest.json +2 -2
  695. package/json-schema/cloud/ProvisionOrganizationResponse.json +2 -2
  696. package/json-schema/cloud/ProvisionTenantRequest.json +2 -2
  697. package/json-schema/cloud/ProvisionTenantResponse.json +2 -2
  698. package/json-schema/cloud/PublishPackageVersionRequest.json +2 -2
  699. package/json-schema/cloud/Publisher.json +2 -2
  700. package/json-schema/cloud/PublisherProfile.json +2 -2
  701. package/json-schema/cloud/PublisherVerification.json +2 -2
  702. package/json-schema/cloud/PublishingAnalyticsRequest.json +2 -2
  703. package/json-schema/cloud/PublishingAnalyticsResponse.json +2 -2
  704. package/json-schema/cloud/RecommendationReason.json +2 -2
  705. package/json-schema/cloud/RecommendedApp.json +2 -2
  706. package/json-schema/cloud/RejectionReason.json +2 -2
  707. package/json-schema/cloud/ReleaseChannel.json +2 -2
  708. package/json-schema/cloud/ReviewCriterion.json +2 -2
  709. package/json-schema/cloud/ReviewDecision.json +2 -2
  710. package/json-schema/cloud/ReviewModerationStatus.json +2 -2
  711. package/json-schema/cloud/RollbackEnvironmentPackageRequest.json +2 -2
  712. package/json-schema/cloud/Sha256Digest.json +2 -2
  713. package/json-schema/cloud/SubmissionReview.json +2 -2
  714. package/json-schema/cloud/SubmitReviewRequest.json +2 -2
  715. package/json-schema/cloud/SubscriptionStatus.json +2 -2
  716. package/json-schema/cloud/TemplateManifest.json +48 -2
  717. package/json-schema/cloud/TenantContext.json +2 -2
  718. package/json-schema/cloud/TenantDatabase.json +2 -2
  719. package/json-schema/cloud/TenantDatabaseStatus.json +2 -2
  720. package/json-schema/cloud/TenantIdentificationSource.json +2 -2
  721. package/json-schema/cloud/TenantPlan.json +2 -2
  722. package/json-schema/cloud/TenantRoutingConfig.json +2 -2
  723. package/json-schema/cloud/TimeSeriesPoint.json +2 -2
  724. package/json-schema/cloud/TrendingListing.json +2 -2
  725. package/json-schema/cloud/UpdateListingRequest.json +2 -2
  726. package/json-schema/cloud/UpdatePackageRequest.json +48 -2
  727. package/json-schema/cloud/UpdatePackageVersionRequest.json +2 -2
  728. package/json-schema/cloud/UpgradeEnvironmentPackageRequest.json +2 -2
  729. package/json-schema/cloud/UserReview.json +2 -2
  730. package/json-schema/cloud/VersionRelease.json +2 -2
  731. package/json-schema/data/Address.json +2 -2
  732. package/json-schema/data/AggregationFunction.json +2 -2
  733. package/json-schema/data/AggregationMetricType.json +2 -2
  734. package/json-schema/data/AggregationNode.json +2 -2
  735. package/json-schema/data/AggregationPipeline.json +2 -2
  736. package/json-schema/data/AggregationStage.json +2 -2
  737. package/json-schema/data/AnalyticsQuery.json +2 -2
  738. package/json-schema/data/ApiMethod.json +2 -2
  739. package/json-schema/data/AsyncValidation.json +2 -2
  740. package/json-schema/data/BaseEngineOptions.json +2 -2
  741. package/json-schema/data/CDCConfig.json +2 -2
  742. package/json-schema/data/ComputedFieldCache.json +2 -2
  743. package/json-schema/data/ConsistencyLevel.json +2 -2
  744. package/json-schema/data/Cube.json +2 -2
  745. package/json-schema/data/CubeJoin.json +2 -2
  746. package/json-schema/data/CurrencyConfig.json +2 -2
  747. package/json-schema/data/CurrencyValue.json +2 -2
  748. package/json-schema/data/CustomValidator.json +2 -2
  749. package/json-schema/data/DataEngineAggregateOptions.json +2 -2
  750. package/json-schema/data/DataEngineAggregateRequest.json +2 -2
  751. package/json-schema/data/DataEngineBatchRequest.json +2 -2
  752. package/json-schema/data/DataEngineCountOptions.json +2 -2
  753. package/json-schema/data/DataEngineCountRequest.json +2 -2
  754. package/json-schema/data/DataEngineDeleteOptions.json +2 -2
  755. package/json-schema/data/DataEngineDeleteRequest.json +2 -2
  756. package/json-schema/data/DataEngineExecuteRequest.json +2 -2
  757. package/json-schema/data/DataEngineFilter.json +2 -2
  758. package/json-schema/data/DataEngineFindOneRequest.json +2 -2
  759. package/json-schema/data/DataEngineFindRequest.json +2 -2
  760. package/json-schema/data/DataEngineInsertOptions.json +2 -2
  761. package/json-schema/data/DataEngineInsertRequest.json +2 -2
  762. package/json-schema/data/DataEngineQueryOptions.json +2 -2
  763. package/json-schema/data/DataEngineRequest.json +2 -2
  764. package/json-schema/data/DataEngineSort.json +2 -2
  765. package/json-schema/data/DataEngineUpdateOptions.json +2 -2
  766. package/json-schema/data/DataEngineUpdateRequest.json +2 -2
  767. package/json-schema/data/DataEngineVectorFindRequest.json +2 -2
  768. package/json-schema/data/DataQualityRules.json +2 -2
  769. package/json-schema/data/DataTypeMapping.json +2 -2
  770. package/json-schema/data/Dataset.json +2 -2
  771. package/json-schema/data/DatasetLoadResult.json +2 -2
  772. package/json-schema/data/DatasetMode.json +2 -2
  773. package/json-schema/data/Datasource.json +2 -2
  774. package/json-schema/data/DatasourceCapabilities.json +2 -2
  775. package/json-schema/data/DateGranularity.json +2 -2
  776. package/json-schema/data/DateMacroPlaceholder.json +2 -2
  777. package/json-schema/data/DateMacroToken.json +2 -2
  778. package/json-schema/data/Dimension.json +2 -2
  779. package/json-schema/data/DimensionType.json +2 -2
  780. package/json-schema/data/Document.json +2 -2
  781. package/json-schema/data/DocumentTemplate.json +2 -2
  782. package/json-schema/data/DocumentValidationSchema.json +2 -2
  783. package/json-schema/data/DocumentVersion.json +2 -2
  784. package/json-schema/data/DriverCapabilities.json +2 -2
  785. package/json-schema/data/DriverConfig.json +2 -2
  786. package/json-schema/data/DriverDefinition.json +2 -2
  787. package/json-schema/data/DriverOptions.json +2 -2
  788. package/json-schema/data/DriverType.json +2 -2
  789. package/json-schema/data/ESignatureConfig.json +2 -2
  790. package/json-schema/data/EngineAggregateOptions.json +2 -2
  791. package/json-schema/data/EngineCountOptions.json +2 -2
  792. package/json-schema/data/EngineDeleteOptions.json +2 -2
  793. package/json-schema/data/EngineQueryOptions.json +2 -2
  794. package/json-schema/data/EngineUpdateOptions.json +2 -2
  795. package/json-schema/data/EqualityOperator.json +2 -2
  796. package/json-schema/data/ExpressionBody.json +2 -2
  797. package/json-schema/data/ExternalDataSource.json +2 -2
  798. package/json-schema/data/FeedActor.json +2 -2
  799. package/json-schema/data/FeedFilterMode.json +2 -2
  800. package/json-schema/data/FeedItem.json +2 -2
  801. package/json-schema/data/FeedItemType.json +2 -2
  802. package/json-schema/data/FeedVisibility.json +2 -2
  803. package/json-schema/data/FieldChangeEntry.json +2 -2
  804. package/json-schema/data/FieldMapping.json +2 -2
  805. package/json-schema/data/FieldNode.json +2 -2
  806. package/json-schema/data/FieldReference.json +2 -2
  807. package/json-schema/data/FieldType.json +4 -2
  808. package/json-schema/data/FileAttachmentConfig.json +2 -2
  809. package/json-schema/data/FilterCondition.json +2 -2
  810. package/json-schema/data/FormatValidation.json +2 -2
  811. package/json-schema/data/FullTextSearch.json +2 -2
  812. package/json-schema/data/GroupByNode.json +2 -2
  813. package/json-schema/data/HookBody.json +2 -2
  814. package/json-schema/data/HookBodyCapability.json +2 -2
  815. package/json-schema/data/HookContext.json +2 -2
  816. package/json-schema/data/HookEvent.json +2 -2
  817. package/json-schema/data/Index.json +2 -2
  818. package/json-schema/data/JSONValidation.json +2 -2
  819. package/json-schema/data/JoinNode.json +2 -2
  820. package/json-schema/data/JoinStrategy.json +2 -2
  821. package/json-schema/data/JoinType.json +2 -2
  822. package/json-schema/data/LocationCoordinates.json +2 -2
  823. package/json-schema/data/Mapping.json +2 -2
  824. package/json-schema/data/Mention.json +2 -2
  825. package/json-schema/data/Metric.json +2 -2
  826. package/json-schema/data/NoSQLDataTypeMapping.json +2 -2
  827. package/json-schema/data/NoSQLDatabaseType.json +2 -2
  828. package/json-schema/data/NoSQLDriverConfig.json +2 -2
  829. package/json-schema/data/NoSQLIndex.json +2 -2
  830. package/json-schema/data/NoSQLIndexType.json +2 -2
  831. package/json-schema/data/NoSQLOperationType.json +2 -2
  832. package/json-schema/data/NoSQLQueryOptions.json +2 -2
  833. package/json-schema/data/NoSQLTransactionOptions.json +2 -2
  834. package/json-schema/data/NotificationChannel.json +2 -2
  835. package/json-schema/data/ObjectCapabilities.json +2 -2
  836. package/json-schema/data/ObjectDependencyGraph.json +2 -2
  837. package/json-schema/data/ObjectDependencyNode.json +2 -2
  838. package/json-schema/data/ObjectOwnershipEnum.json +2 -2
  839. package/json-schema/data/PartitioningConfig.json +2 -2
  840. package/json-schema/data/PoolConfig.json +2 -2
  841. package/json-schema/data/Query.json +2 -2
  842. package/json-schema/data/QueryFilter.json +2 -2
  843. package/json-schema/data/Reaction.json +2 -2
  844. package/json-schema/data/RecordSubscription.json +2 -2
  845. package/json-schema/data/ReferenceResolution.json +2 -2
  846. package/json-schema/data/ReferenceResolutionError.json +2 -2
  847. package/json-schema/data/ReplicationConfig.json +2 -2
  848. package/json-schema/data/SQLDialect.json +2 -2
  849. package/json-schema/data/SQLDriverConfig.json +2 -2
  850. package/json-schema/data/SSLConfig.json +2 -2
  851. package/json-schema/data/ScriptBody.json +2 -2
  852. package/json-schema/data/SearchConfig.json +2 -2
  853. package/json-schema/data/SeedLoaderConfig.json +2 -2
  854. package/json-schema/data/SeedLoaderRequest.json +2 -2
  855. package/json-schema/data/SeedLoaderResult.json +2 -2
  856. package/json-schema/data/SelectOption.json +2 -2
  857. package/json-schema/data/SetOperator.json +2 -2
  858. package/json-schema/data/ShardingConfig.json +2 -2
  859. package/json-schema/data/SoftDeleteConfig.json +2 -2
  860. package/json-schema/data/SortNode.json +2 -2
  861. package/json-schema/data/SpecialOperator.json +2 -2
  862. package/json-schema/data/StateMachineValidation.json +2 -2
  863. package/json-schema/data/StringOperator.json +2 -2
  864. package/json-schema/data/SubscriptionEventType.json +2 -2
  865. package/json-schema/data/TenancyConfig.json +2 -2
  866. package/json-schema/data/TenantDatabaseLifecycle.json +2 -2
  867. package/json-schema/data/TenantResolverStrategy.json +2 -2
  868. package/json-schema/data/TimeUpdateInterval.json +2 -2
  869. package/json-schema/data/TransformType.json +2 -2
  870. package/json-schema/data/TursoGroup.json +2 -2
  871. package/json-schema/data/TursoMultiTenantConfig.json +2 -2
  872. package/json-schema/data/VectorConfig.json +2 -2
  873. package/json-schema/data/VersioningConfig.json +2 -2
  874. package/json-schema/data/WindowFunction.json +2 -2
  875. package/json-schema/data/WindowFunctionNode.json +2 -2
  876. package/json-schema/data/WindowSpec.json +2 -2
  877. package/json-schema/identity/Account.json +2 -2
  878. package/json-schema/identity/ApiKey.json +2 -2
  879. package/json-schema/identity/Invitation.json +2 -2
  880. package/json-schema/identity/InvitationStatus.json +2 -2
  881. package/json-schema/identity/Member.json +2 -2
  882. package/json-schema/identity/Organization.json +2 -2
  883. package/json-schema/identity/Role.json +2 -2
  884. package/json-schema/identity/SCIMAddress.json +2 -2
  885. package/json-schema/identity/SCIMBulkOperation.json +2 -2
  886. package/json-schema/identity/SCIMBulkRequest.json +2 -2
  887. package/json-schema/identity/SCIMBulkResponse.json +2 -2
  888. package/json-schema/identity/SCIMBulkResponseOperation.json +2 -2
  889. package/json-schema/identity/SCIMEmail.json +2 -2
  890. package/json-schema/identity/SCIMEnterpriseUser.json +2 -2
  891. package/json-schema/identity/SCIMError.json +2 -2
  892. package/json-schema/identity/SCIMGroup.json +2 -2
  893. package/json-schema/identity/SCIMGroupReference.json +2 -2
  894. package/json-schema/identity/SCIMListResponse.json +2 -2
  895. package/json-schema/identity/SCIMMemberReference.json +2 -2
  896. package/json-schema/identity/SCIMMeta.json +2 -2
  897. package/json-schema/identity/SCIMName.json +2 -2
  898. package/json-schema/identity/SCIMPatchOperation.json +2 -2
  899. package/json-schema/identity/SCIMPatchRequest.json +2 -2
  900. package/json-schema/identity/SCIMPhoneNumber.json +2 -2
  901. package/json-schema/identity/SCIMUser.json +2 -2
  902. package/json-schema/identity/Session.json +2 -2
  903. package/json-schema/identity/User.json +2 -2
  904. package/json-schema/identity/VerificationToken.json +2 -2
  905. package/json-schema/integration/AckMode.json +2 -2
  906. package/json-schema/integration/ApiVersionConfig.json +2 -2
  907. package/json-schema/integration/BuildConfig.json +2 -2
  908. package/json-schema/integration/CdcConfig.json +2 -2
  909. package/json-schema/integration/CircuitBreakerConfig.json +2 -2
  910. package/json-schema/integration/ConflictResolution.json +2 -2
  911. package/json-schema/integration/ConnectorAction.json +2 -2
  912. package/json-schema/integration/ConnectorHealth.json +2 -2
  913. package/json-schema/integration/ConnectorStatus.json +2 -2
  914. package/json-schema/integration/ConnectorTrigger.json +2 -2
  915. package/json-schema/integration/ConnectorType.json +2 -2
  916. package/json-schema/integration/ConsumerConfig.json +2 -2
  917. package/json-schema/integration/DatabasePoolConfig.json +2 -2
  918. package/json-schema/integration/DatabaseProvider.json +2 -2
  919. package/json-schema/integration/DeliveryGuarantee.json +2 -2
  920. package/json-schema/integration/DeploymentConfig.json +2 -2
  921. package/json-schema/integration/DlqConfig.json +2 -2
  922. package/json-schema/integration/DomainConfig.json +2 -2
  923. package/json-schema/integration/EdgeFunctionConfig.json +2 -2
  924. package/json-schema/integration/EnvironmentVariables.json +2 -2
  925. package/json-schema/integration/ErrorCategory.json +2 -2
  926. package/json-schema/integration/ErrorMappingConfig.json +2 -2
  927. package/json-schema/integration/ErrorMappingRule.json +2 -2
  928. package/json-schema/integration/FileAccessPattern.json +2 -2
  929. package/json-schema/integration/FileFilterConfig.json +2 -2
  930. package/json-schema/integration/FileMetadataConfig.json +2 -2
  931. package/json-schema/integration/FileStorageProvider.json +2 -2
  932. package/json-schema/integration/FileVersioningConfig.json +2 -2
  933. package/json-schema/integration/GitHubActionsWorkflow.json +2 -2
  934. package/json-schema/integration/GitHubCommitConfig.json +2 -2
  935. package/json-schema/integration/GitHubIssueTracking.json +2 -2
  936. package/json-schema/integration/GitHubProvider.json +2 -2
  937. package/json-schema/integration/GitHubReleaseConfig.json +2 -2
  938. package/json-schema/integration/GitHubRepository.json +2 -2
  939. package/json-schema/integration/GitRepositoryConfig.json +2 -2
  940. package/json-schema/integration/HealthCheckConfig.json +2 -2
  941. package/json-schema/integration/MessageFormat.json +2 -2
  942. package/json-schema/integration/MessageQueueProvider.json +2 -2
  943. package/json-schema/integration/MultipartUploadConfig.json +2 -2
  944. package/json-schema/integration/ProducerConfig.json +2 -2
  945. package/json-schema/integration/RateLimitConfig.json +2 -2
  946. package/json-schema/integration/RateLimitStrategy.json +2 -2
  947. package/json-schema/integration/RetryConfig.json +2 -2
  948. package/json-schema/integration/RetryStrategy.json +2 -2
  949. package/json-schema/integration/SaasProvider.json +2 -2
  950. package/json-schema/integration/SslConfig.json +2 -2
  951. package/json-schema/integration/StorageBucket.json +2 -2
  952. package/json-schema/integration/SyncStrategy.json +2 -2
  953. package/json-schema/integration/TopicQueue.json +2 -2
  954. package/json-schema/integration/VercelFramework.json +2 -2
  955. package/json-schema/integration/VercelMonitoring.json +2 -2
  956. package/json-schema/integration/VercelProject.json +2 -2
  957. package/json-schema/integration/VercelProvider.json +2 -2
  958. package/json-schema/integration/VercelTeam.json +2 -2
  959. package/json-schema/integration/WebhookConfig.json +2 -2
  960. package/json-schema/integration/WebhookEvent.json +2 -2
  961. package/json-schema/integration/WebhookSignatureAlgorithm.json +2 -2
  962. package/json-schema/kernel/ActivationEvent.json +2 -2
  963. package/json-schema/kernel/AdvancedPluginLifecycleConfig.json +2 -2
  964. package/json-schema/kernel/ArtifactChecksum.json +2 -2
  965. package/json-schema/kernel/ArtifactFileEntry.json +2 -2
  966. package/json-schema/kernel/ArtifactSignature.json +2 -2
  967. package/json-schema/kernel/BreakingChange.json +2 -2
  968. package/json-schema/kernel/CLICommandContribution.json +2 -2
  969. package/json-schema/kernel/CapabilityConformanceLevel.json +2 -2
  970. package/json-schema/kernel/ClusterCapabilityConfig.json +2 -2
  971. package/json-schema/kernel/ClusterDriver.json +2 -2
  972. package/json-schema/kernel/ClusterTenantIsolation.json +2 -2
  973. package/json-schema/kernel/CompatibilityLevel.json +2 -2
  974. package/json-schema/kernel/CompatibilityMatrixEntry.json +2 -2
  975. package/json-schema/kernel/CustomizationOrigin.json +2 -2
  976. package/json-schema/kernel/CustomizationPolicy.json +2 -2
  977. package/json-schema/kernel/DeadLetterQueueEntry.json +2 -2
  978. package/json-schema/kernel/DependencyConflict.json +2 -2
  979. package/json-schema/kernel/DependencyGraph.json +2 -2
  980. package/json-schema/kernel/DependencyGraphNode.json +2 -2
  981. package/json-schema/kernel/DependencyResolutionResult.json +2 -2
  982. package/json-schema/kernel/DependencyStatusEnum.json +2 -2
  983. package/json-schema/kernel/DeprecationNotice.json +2 -2
  984. package/json-schema/kernel/DevFixtureConfig.json +2 -2
  985. package/json-schema/kernel/DevPluginConfig.json +2 -2
  986. package/json-schema/kernel/DevPluginPreset.json +2 -2
  987. package/json-schema/kernel/DevServiceOverride.json +2 -2
  988. package/json-schema/kernel/DevToolsConfig.json +2 -2
  989. package/json-schema/kernel/DisablePackageRequest.json +2 -2
  990. package/json-schema/kernel/DisablePackageResponse.json +2 -2
  991. package/json-schema/kernel/DistributedStateConfig.json +2 -2
  992. package/json-schema/kernel/DynamicLoadRequest.json +2 -2
  993. package/json-schema/kernel/DynamicLoadingConfig.json +2 -2
  994. package/json-schema/kernel/DynamicPluginOperation.json +2 -2
  995. package/json-schema/kernel/DynamicPluginResult.json +2 -2
  996. package/json-schema/kernel/DynamicUnloadRequest.json +2 -2
  997. package/json-schema/kernel/EnablePackageRequest.json +2 -2
  998. package/json-schema/kernel/EnablePackageResponse.json +2 -2
  999. package/json-schema/kernel/Event.json +2 -2
  1000. package/json-schema/kernel/EventBusConfig.json +2 -2
  1001. package/json-schema/kernel/EventClusterOptions.json +2 -2
  1002. package/json-schema/kernel/EventDeliverySemantics.json +2 -2
  1003. package/json-schema/kernel/EventHandler.json +2 -2
  1004. package/json-schema/kernel/EventLogEntry.json +2 -2
  1005. package/json-schema/kernel/EventMessageQueueConfig.json +2 -2
  1006. package/json-schema/kernel/EventMetadata.json +2 -2
  1007. package/json-schema/kernel/EventPersistence.json +2 -2
  1008. package/json-schema/kernel/EventPhase.json +2 -2
  1009. package/json-schema/kernel/EventPriority.json +2 -2
  1010. package/json-schema/kernel/EventQueueConfig.json +2 -2
  1011. package/json-schema/kernel/EventReplayConfig.json +2 -2
  1012. package/json-schema/kernel/EventRoute.json +2 -2
  1013. package/json-schema/kernel/EventScope.json +2 -2
  1014. package/json-schema/kernel/EventSourcingConfig.json +2 -2
  1015. package/json-schema/kernel/EventTypeDefinition.json +2 -2
  1016. package/json-schema/kernel/EventWebhookConfig.json +2 -2
  1017. package/json-schema/kernel/ExecutionContext.json +2 -2
  1018. package/json-schema/kernel/ExtensionPoint.json +2 -2
  1019. package/json-schema/kernel/FeatureStrategy.json +2 -2
  1020. package/json-schema/kernel/FieldChange.json +2 -2
  1021. package/json-schema/kernel/GetPackageRequest.json +2 -2
  1022. package/json-schema/kernel/GetPackageResponse.json +2 -2
  1023. package/json-schema/kernel/GracefulDegradation.json +2 -2
  1024. package/json-schema/kernel/HealthStatus.json +2 -2
  1025. package/json-schema/kernel/HookRegisteredEvent.json +2 -2
  1026. package/json-schema/kernel/HookTriggeredEvent.json +2 -2
  1027. package/json-schema/kernel/HotReloadConfig.json +2 -2
  1028. package/json-schema/kernel/InstallPackageRequest.json +2 -2
  1029. package/json-schema/kernel/InstallPackageResponse.json +2 -2
  1030. package/json-schema/kernel/InstalledPackage.json +2 -2
  1031. package/json-schema/kernel/KernelContext.json +2 -2
  1032. package/json-schema/kernel/KernelEventBase.json +2 -2
  1033. package/json-schema/kernel/KernelReadyEvent.json +2 -2
  1034. package/json-schema/kernel/KernelSecurityPolicy.json +2 -2
  1035. package/json-schema/kernel/KernelSecurityScanResult.json +2 -2
  1036. package/json-schema/kernel/KernelSecurityVulnerability.json +2 -2
  1037. package/json-schema/kernel/KernelShutdownEvent.json +2 -2
  1038. package/json-schema/kernel/ListPackagesRequest.json +2 -2
  1039. package/json-schema/kernel/ListPackagesResponse.json +2 -2
  1040. package/json-schema/kernel/Manifest.json +2 -2
  1041. package/json-schema/kernel/MergeConflict.json +2 -2
  1042. package/json-schema/kernel/MergeResult.json +2 -2
  1043. package/json-schema/kernel/MergeStrategyConfig.json +2 -2
  1044. package/json-schema/kernel/MetadataBulkRegisterRequest.json +2 -2
  1045. package/json-schema/kernel/MetadataBulkResult.json +2 -2
  1046. package/json-schema/kernel/MetadataCategoryEnum.json +2 -2
  1047. package/json-schema/kernel/MetadataChangeOperation.json +2 -2
  1048. package/json-schema/kernel/MetadataChangeType.json +2 -2
  1049. package/json-schema/kernel/MetadataCollectionInfo.json +2 -2
  1050. package/json-schema/kernel/MetadataDependency.json +2 -2
  1051. package/json-schema/kernel/MetadataDiffItem.json +2 -2
  1052. package/json-schema/kernel/MetadataEvent.json +2 -2
  1053. package/json-schema/kernel/MetadataFallbackStrategy.json +2 -2
  1054. package/json-schema/kernel/MetadataFormat.json +2 -2
  1055. package/json-schema/kernel/MetadataImportOptions.json +2 -2
  1056. package/json-schema/kernel/MetadataLoadResult.json +2 -2
  1057. package/json-schema/kernel/MetadataLoaderContract.json +2 -2
  1058. package/json-schema/kernel/MetadataManagerConfig.json +2 -2
  1059. package/json-schema/kernel/MetadataOverlay.json +2 -2
  1060. package/json-schema/kernel/MetadataPluginConfig.json +2 -2
  1061. package/json-schema/kernel/MetadataPluginManifest.json +2 -2
  1062. package/json-schema/kernel/MetadataQuery.json +2 -2
  1063. package/json-schema/kernel/MetadataQueryResult.json +2 -2
  1064. package/json-schema/kernel/MetadataSaveOptions.json +2 -2
  1065. package/json-schema/kernel/MetadataSaveResult.json +2 -2
  1066. package/json-schema/kernel/MetadataStats.json +2 -2
  1067. package/json-schema/kernel/MetadataType.json +2 -2
  1068. package/json-schema/kernel/MetadataTypeRegistryEntry.json +2 -2
  1069. package/json-schema/kernel/MetadataValidationResult.json +2 -2
  1070. package/json-schema/kernel/MetadataWatchEvent.json +2 -2
  1071. package/json-schema/kernel/NamespaceConflictError.json +2 -2
  1072. package/json-schema/kernel/NamespaceRegistryEntry.json +2 -2
  1073. package/json-schema/kernel/OclifPluginConfig.json +2 -2
  1074. package/json-schema/kernel/OpsDomainModule.json +2 -2
  1075. package/json-schema/kernel/OpsFilePath.json +2 -2
  1076. package/json-schema/kernel/OpsPluginStructure.json +2 -2
  1077. package/json-schema/kernel/PackageArtifact.json +2 -2
  1078. package/json-schema/kernel/PackageDependency.json +2 -2
  1079. package/json-schema/kernel/PackageDependencyConflict.json +2 -2
  1080. package/json-schema/kernel/PackageDependencyResolutionResult.json +2 -2
  1081. package/json-schema/kernel/PackageStatusEnum.json +2 -2
  1082. package/json-schema/kernel/PermissionAction.json +2 -2
  1083. package/json-schema/kernel/PermissionScope.json +2 -2
  1084. package/json-schema/kernel/PluginCaching.json +2 -2
  1085. package/json-schema/kernel/PluginCapability.json +2 -2
  1086. package/json-schema/kernel/PluginCapabilityManifest.json +2 -2
  1087. package/json-schema/kernel/PluginCodeSplitting.json +2 -2
  1088. package/json-schema/kernel/PluginCompatibilityMatrix.json +2 -2
  1089. package/json-schema/kernel/PluginDependency.json +2 -2
  1090. package/json-schema/kernel/PluginDependencyResolution.json +2 -2
  1091. package/json-schema/kernel/PluginDependencyResolutionResult.json +2 -2
  1092. package/json-schema/kernel/PluginDiscoveryConfig.json +2 -2
  1093. package/json-schema/kernel/PluginDiscoverySource.json +2 -2
  1094. package/json-schema/kernel/PluginDynamicImport.json +2 -2
  1095. package/json-schema/kernel/PluginErrorEvent.json +2 -2
  1096. package/json-schema/kernel/PluginEventBase.json +2 -2
  1097. package/json-schema/kernel/PluginHealthCheck.json +2 -2
  1098. package/json-schema/kernel/PluginHealthReport.json +2 -2
  1099. package/json-schema/kernel/PluginHealthStatus.json +2 -2
  1100. package/json-schema/kernel/PluginHotReload.json +2 -2
  1101. package/json-schema/kernel/PluginInitialization.json +2 -2
  1102. package/json-schema/kernel/PluginInstallConfig.json +2 -2
  1103. package/json-schema/kernel/PluginInterface.json +2 -2
  1104. package/json-schema/kernel/PluginLifecycleEventType.json +2 -2
  1105. package/json-schema/kernel/PluginLifecyclePhaseEvent.json +2 -2
  1106. package/json-schema/kernel/PluginLoadingConfig.json +2 -2
  1107. package/json-schema/kernel/PluginLoadingEvent.json +2 -2
  1108. package/json-schema/kernel/PluginLoadingState.json +2 -2
  1109. package/json-schema/kernel/PluginLoadingStrategy.json +2 -2
  1110. package/json-schema/kernel/PluginMetadata.json +2 -2
  1111. package/json-schema/kernel/PluginPerformanceMonitoring.json +2 -2
  1112. package/json-schema/kernel/PluginPreloadConfig.json +2 -2
  1113. package/json-schema/kernel/PluginProvenance.json +2 -2
  1114. package/json-schema/kernel/PluginQualityMetrics.json +2 -2
  1115. package/json-schema/kernel/PluginRegisteredEvent.json +2 -2
  1116. package/json-schema/kernel/PluginRegistryEntry.json +2 -2
  1117. package/json-schema/kernel/PluginSandboxing.json +2 -2
  1118. package/json-schema/kernel/PluginSearchFilters.json +2 -2
  1119. package/json-schema/kernel/PluginSource.json +2 -2
  1120. package/json-schema/kernel/PluginStartupResult.json +2 -2
  1121. package/json-schema/kernel/PluginStateSnapshot.json +2 -2
  1122. package/json-schema/kernel/PluginStatistics.json +2 -2
  1123. package/json-schema/kernel/PluginTrustLevel.json +2 -2
  1124. package/json-schema/kernel/PluginTrustScore.json +2 -2
  1125. package/json-schema/kernel/PluginUpdateStrategy.json +2 -2
  1126. package/json-schema/kernel/PluginVendor.json +2 -2
  1127. package/json-schema/kernel/PluginVersionMetadata.json +2 -2
  1128. package/json-schema/kernel/PreviewModeConfig.json +2 -2
  1129. package/json-schema/kernel/ProtocolFeature.json +2 -2
  1130. package/json-schema/kernel/ProtocolReference.json +2 -2
  1131. package/json-schema/kernel/ProtocolVersion.json +2 -2
  1132. package/json-schema/kernel/RealTimeNotificationConfig.json +2 -2
  1133. package/json-schema/kernel/RequiredAction.json +2 -2
  1134. package/json-schema/kernel/ResolvedDependency.json +2 -2
  1135. package/json-schema/kernel/ResourceType.json +2 -2
  1136. package/json-schema/kernel/RollbackPackageRequest.json +2 -2
  1137. package/json-schema/kernel/RollbackPackageResponse.json +2 -2
  1138. package/json-schema/kernel/RuntimeConfig.json +2 -2
  1139. package/json-schema/kernel/RuntimeMode.json +2 -2
  1140. package/json-schema/kernel/SBOM.json +2 -2
  1141. package/json-schema/kernel/SBOMEntry.json +2 -2
  1142. package/json-schema/kernel/SandboxConfig.json +2 -2
  1143. package/json-schema/kernel/ScopeConfig.json +2 -2
  1144. package/json-schema/kernel/ScopeInfo.json +2 -2
  1145. package/json-schema/kernel/SecurityPolicy.json +2 -2
  1146. package/json-schema/kernel/SecurityScanResult.json +2 -2
  1147. package/json-schema/kernel/SecurityVulnerability.json +2 -2
  1148. package/json-schema/kernel/SemanticVersion.json +2 -2
  1149. package/json-schema/kernel/ServiceClusterAnnotations.json +2 -2
  1150. package/json-schema/kernel/ServiceClusterScope.json +2 -2
  1151. package/json-schema/kernel/ServiceFactoryRegistration.json +2 -2
  1152. package/json-schema/kernel/ServiceLeaderStrategy.json +2 -2
  1153. package/json-schema/kernel/ServiceMetadata.json +2 -2
  1154. package/json-schema/kernel/ServiceRegisteredEvent.json +2 -2
  1155. package/json-schema/kernel/ServiceRegistryConfig.json +2 -2
  1156. package/json-schema/kernel/ServiceScopeType.json +2 -2
  1157. package/json-schema/kernel/ServiceUnregisteredEvent.json +2 -2
  1158. package/json-schema/kernel/StartupOptions.json +2 -2
  1159. package/json-schema/kernel/StartupOrchestrationResult.json +2 -2
  1160. package/json-schema/kernel/TenantRuntimeContext.json +2 -2
  1161. package/json-schema/kernel/UninstallPackageRequest.json +2 -2
  1162. package/json-schema/kernel/UninstallPackageResponse.json +2 -2
  1163. package/json-schema/kernel/UpgradeContext.json +2 -2
  1164. package/json-schema/kernel/UpgradeImpactLevel.json +2 -2
  1165. package/json-schema/kernel/UpgradePackageRequest.json +2 -2
  1166. package/json-schema/kernel/UpgradePackageResponse.json +2 -2
  1167. package/json-schema/kernel/UpgradePhase.json +2 -2
  1168. package/json-schema/kernel/UpgradePlan.json +2 -2
  1169. package/json-schema/kernel/UpgradeSnapshot.json +2 -2
  1170. package/json-schema/kernel/ValidationError.json +2 -2
  1171. package/json-schema/kernel/ValidationResult.json +2 -2
  1172. package/json-schema/kernel/ValidationWarning.json +2 -2
  1173. package/json-schema/kernel/VersionConstraint.json +2 -2
  1174. package/json-schema/kernel/VulnerabilitySeverity.json +2 -2
  1175. package/json-schema/objectstack.json +3807 -3316
  1176. package/json-schema/openapi.json +1 -1
  1177. package/json-schema/qa/TestAction.json +2 -2
  1178. package/json-schema/qa/TestActionType.json +2 -2
  1179. package/json-schema/qa/TestAssertion.json +2 -2
  1180. package/json-schema/qa/TestAssertionType.json +2 -2
  1181. package/json-schema/qa/TestContext.json +2 -2
  1182. package/json-schema/qa/TestScenario.json +2 -2
  1183. package/json-schema/qa/TestStep.json +2 -2
  1184. package/json-schema/qa/TestSuite.json +2 -2
  1185. package/json-schema/security/AuditPolicy.json +2 -2
  1186. package/json-schema/security/FieldPermission.json +2 -2
  1187. package/json-schema/security/NetworkPolicy.json +2 -2
  1188. package/json-schema/security/OWDModel.json +2 -2
  1189. package/json-schema/security/ObjectPermission.json +2 -2
  1190. package/json-schema/security/OwnerSharingRule.json +2 -2
  1191. package/json-schema/security/PasswordPolicy.json +2 -2
  1192. package/json-schema/security/PermissionSet.json +2 -2
  1193. package/json-schema/security/Policy.json +2 -2
  1194. package/json-schema/security/RLSAuditConfig.json +2 -2
  1195. package/json-schema/security/RLSAuditEvent.json +2 -2
  1196. package/json-schema/security/RLSConfig.json +2 -2
  1197. package/json-schema/security/RLSEvaluationResult.json +2 -2
  1198. package/json-schema/security/RLSOperation.json +2 -2
  1199. package/json-schema/security/RLSUserContext.json +2 -2
  1200. package/json-schema/security/RowLevelSecurityPolicy.json +2 -2
  1201. package/json-schema/security/SessionPolicy.json +2 -2
  1202. package/json-schema/security/ShareRecipientType.json +2 -2
  1203. package/json-schema/security/SharingLevel.json +2 -2
  1204. package/json-schema/security/SharingRuleType.json +2 -2
  1205. package/json-schema/security/Territory.json +2 -2
  1206. package/json-schema/security/TerritoryModel.json +2 -2
  1207. package/json-schema/security/TerritoryType.json +2 -2
  1208. package/json-schema/shared/AggregationFunctionEnum.json +2 -2
  1209. package/json-schema/shared/AppName.json +2 -2
  1210. package/json-schema/shared/BaseMetadataRecord.json +2 -2
  1211. package/json-schema/shared/CacheStrategyEnum.json +2 -2
  1212. package/json-schema/shared/CorsConfig.json +2 -2
  1213. package/json-schema/shared/EventName.json +2 -2
  1214. package/json-schema/shared/Expression.json +2 -2
  1215. package/json-schema/shared/ExpressionDialect.json +2 -2
  1216. package/json-schema/shared/ExpressionMeta.json +2 -2
  1217. package/json-schema/shared/FieldName.json +2 -2
  1218. package/json-schema/shared/FlowName.json +2 -2
  1219. package/json-schema/shared/HttpMethod.json +2 -2
  1220. package/json-schema/shared/HttpRequest.json +2 -2
  1221. package/json-schema/shared/IsolationLevelEnum.json +2 -2
  1222. package/json-schema/shared/MetadataFormat.json +2 -2
  1223. package/json-schema/shared/MutationEventEnum.json +2 -2
  1224. package/json-schema/shared/ObjectName.json +2 -2
  1225. package/json-schema/shared/Predicate.json +2 -2
  1226. package/json-schema/shared/RateLimitConfig.json +2 -2
  1227. package/json-schema/shared/RoleName.json +2 -2
  1228. package/json-schema/shared/SnakeCaseIdentifier.json +2 -2
  1229. package/json-schema/shared/SortDirectionEnum.json +2 -2
  1230. package/json-schema/shared/SortItem.json +2 -2
  1231. package/json-schema/shared/StaticMount.json +2 -2
  1232. package/json-schema/shared/SystemIdentifier.json +2 -2
  1233. package/json-schema/shared/ViewName.json +2 -2
  1234. package/json-schema/studio/ActionContribution.json +2 -2
  1235. package/json-schema/studio/ActionLocation.json +2 -2
  1236. package/json-schema/studio/ActivationEvent.json +2 -2
  1237. package/json-schema/studio/CanvasSnapSettings.json +2 -2
  1238. package/json-schema/studio/CanvasZoomSettings.json +2 -2
  1239. package/json-schema/studio/CommandContribution.json +2 -2
  1240. package/json-schema/studio/ERDiagramConfig.json +2 -2
  1241. package/json-schema/studio/ERLayoutAlgorithm.json +2 -2
  1242. package/json-schema/studio/ERNodeDisplay.json +2 -2
  1243. package/json-schema/studio/ElementPaletteItem.json +2 -2
  1244. package/json-schema/studio/FieldEditorConfig.json +2 -2
  1245. package/json-schema/studio/FieldGroup.json +2 -2
  1246. package/json-schema/studio/FieldPropertySection.json +2 -2
  1247. package/json-schema/studio/FlowBuilderConfig.json +2 -2
  1248. package/json-schema/studio/FlowCanvasEdge.json +2 -2
  1249. package/json-schema/studio/FlowCanvasEdgeStyle.json +2 -2
  1250. package/json-schema/studio/FlowCanvasNode.json +2 -2
  1251. package/json-schema/studio/FlowLayoutAlgorithm.json +2 -2
  1252. package/json-schema/studio/FlowLayoutDirection.json +2 -2
  1253. package/json-schema/studio/FlowNodeRenderDescriptor.json +2 -2
  1254. package/json-schema/studio/FlowNodeShape.json +2 -2
  1255. package/json-schema/studio/InterfaceBuilderConfig.json +2 -2
  1256. package/json-schema/studio/MetadataIconContribution.json +2 -2
  1257. package/json-schema/studio/MetadataViewerContribution.json +2 -2
  1258. package/json-schema/studio/ObjectDesignerConfig.json +2 -2
  1259. package/json-schema/studio/ObjectDesignerDefaultView.json +2 -2
  1260. package/json-schema/studio/ObjectFilter.json +2 -2
  1261. package/json-schema/studio/ObjectListDisplayMode.json +2 -2
  1262. package/json-schema/studio/ObjectManagerConfig.json +2 -2
  1263. package/json-schema/studio/ObjectPreviewConfig.json +2 -2
  1264. package/json-schema/studio/ObjectPreviewTab.json +2 -2
  1265. package/json-schema/studio/ObjectSortField.json +2 -2
  1266. package/json-schema/studio/PageBuilderConfig.json +2 -2
  1267. package/json-schema/studio/PanelContribution.json +2 -2
  1268. package/json-schema/studio/PanelLocation.json +2 -2
  1269. package/json-schema/studio/RelationshipDisplay.json +2 -2
  1270. package/json-schema/studio/RelationshipMapperConfig.json +2 -2
  1271. package/json-schema/studio/SidebarGroupContribution.json +2 -2
  1272. package/json-schema/studio/StudioPluginContributions.json +2 -2
  1273. package/json-schema/studio/StudioPluginManifest.json +2 -2
  1274. package/json-schema/studio/ViewMode.json +2 -2
  1275. package/json-schema/system/AccessControlConfig.json +2 -2
  1276. package/json-schema/system/AdvancedAuthConfig.json +2 -2
  1277. package/json-schema/system/AnalyzerConfig.json +2 -2
  1278. package/json-schema/system/AppCompatibilityCheck.json +2 -2
  1279. package/json-schema/system/AppInstallRequest.json +2 -2
  1280. package/json-schema/system/AppInstallResult.json +2 -2
  1281. package/json-schema/system/AppManifest.json +2 -2
  1282. package/json-schema/system/AppTranslationBundle.json +2 -2
  1283. package/json-schema/system/AuditEvent.json +2 -2
  1284. package/json-schema/system/AuditEventActor.json +2 -2
  1285. package/json-schema/system/AuditEventChange.json +2 -2
  1286. package/json-schema/system/AuditEventFilter.json +2 -2
  1287. package/json-schema/system/AuditEventSeverity.json +2 -2
  1288. package/json-schema/system/AuditEventTarget.json +2 -2
  1289. package/json-schema/system/AuditEventType.json +2 -2
  1290. package/json-schema/system/AuditFinding.json +2 -2
  1291. package/json-schema/system/AuditFindingSeverity.json +2 -2
  1292. package/json-schema/system/AuditFindingStatus.json +2 -2
  1293. package/json-schema/system/AuditLogConfig.json +2 -2
  1294. package/json-schema/system/AuditRetentionPolicy.json +2 -2
  1295. package/json-schema/system/AuditSchedule.json +2 -2
  1296. package/json-schema/system/AuditStorageConfig.json +2 -2
  1297. package/json-schema/system/AuthConfig.json +2 -2
  1298. package/json-schema/system/AuthPluginConfig.json +2 -2
  1299. package/json-schema/system/AuthProviderConfig.json +2 -2
  1300. package/json-schema/system/AwarenessEvent.json +2 -2
  1301. package/json-schema/system/AwarenessSession.json +2 -2
  1302. package/json-schema/system/AwarenessUpdate.json +2 -2
  1303. package/json-schema/system/AwarenessUserState.json +2 -2
  1304. package/json-schema/system/BackupRetention.json +2 -2
  1305. package/json-schema/system/BackupStrategy.json +2 -2
  1306. package/json-schema/system/BatchProgress.json +2 -2
  1307. package/json-schema/system/BucketConfig.json +2 -2
  1308. package/json-schema/system/CRDTMergeResult.json +2 -2
  1309. package/json-schema/system/CRDTState.json +2 -2
  1310. package/json-schema/system/CRDTType.json +2 -2
  1311. package/json-schema/system/CacheAvalanchePrevention.json +2 -2
  1312. package/json-schema/system/CacheConfig.json +2 -2
  1313. package/json-schema/system/CacheConsistency.json +2 -2
  1314. package/json-schema/system/CacheInvalidation.json +2 -2
  1315. package/json-schema/system/CacheStrategy.json +2 -2
  1316. package/json-schema/system/CacheTier.json +2 -2
  1317. package/json-schema/system/ChangeImpact.json +2 -2
  1318. package/json-schema/system/ChangePriority.json +2 -2
  1319. package/json-schema/system/ChangeRequest.json +2 -2
  1320. package/json-schema/system/ChangeSchema.json +2 -2
  1321. package/json-schema/system/ChangeStatus.json +2 -2
  1322. package/json-schema/system/ChangeType.json +2 -2
  1323. package/json-schema/system/CollaborationMode.json +2 -2
  1324. package/json-schema/system/CollaborationSession.json +2 -2
  1325. package/json-schema/system/CollaborationSessionConfig.json +2 -2
  1326. package/json-schema/system/CollaborativeCursor.json +2 -2
  1327. package/json-schema/system/ComplianceAuditRequirement.json +2 -2
  1328. package/json-schema/system/ComplianceConfig.json +2 -2
  1329. package/json-schema/system/ComplianceEncryptionRequirement.json +2 -2
  1330. package/json-schema/system/ComplianceFramework.json +2 -2
  1331. package/json-schema/system/ConsoleDestinationConfig.json +2 -2
  1332. package/json-schema/system/ConsumerConfig.json +2 -2
  1333. package/json-schema/system/CoreServiceName.json +2 -2
  1334. package/json-schema/system/CounterOperation.json +2 -2
  1335. package/json-schema/system/CoverageBreakdownEntry.json +2 -2
  1336. package/json-schema/system/CursorColorPreset.json +2 -2
  1337. package/json-schema/system/CursorSelection.json +2 -2
  1338. package/json-schema/system/CursorStyle.json +2 -2
  1339. package/json-schema/system/CursorUpdate.json +2 -2
  1340. package/json-schema/system/DataClassification.json +2 -2
  1341. package/json-schema/system/DataClassificationPolicy.json +2 -2
  1342. package/json-schema/system/DatabaseLevelIsolationStrategy.json +2 -2
  1343. package/json-schema/system/DatabaseProvider.json +2 -2
  1344. package/json-schema/system/DeadLetterQueue.json +2 -2
  1345. package/json-schema/system/DeleteObjectOperation.json +2 -2
  1346. package/json-schema/system/DeployBundle.json +2 -2
  1347. package/json-schema/system/DeployDiff.json +2 -2
  1348. package/json-schema/system/DeployManifest.json +2 -2
  1349. package/json-schema/system/DeployStatusEnum.json +2 -2
  1350. package/json-schema/system/DeployValidationIssue.json +2 -2
  1351. package/json-schema/system/DeployValidationResult.json +2 -2
  1352. package/json-schema/system/EmailAddressConfig.json +2 -2
  1353. package/json-schema/system/EmailAndPasswordConfig.json +2 -2
  1354. package/json-schema/system/EmailProvider.json +2 -2
  1355. package/json-schema/system/EmailServiceConfig.json +2 -2
  1356. package/json-schema/system/EmailTemplateDefinition.json +2 -2
  1357. package/json-schema/system/EmailTemplateDefinitionCategory.json +2 -2
  1358. package/json-schema/system/EmailTemplateDefinitionVariable.json +2 -2
  1359. package/json-schema/system/EmailVerificationConfig.json +2 -2
  1360. package/json-schema/system/EncryptionAlgorithm.json +2 -2
  1361. package/json-schema/system/EncryptionConfig.json +2 -2
  1362. package/json-schema/system/EnvironmentArtifact.json +2 -2
  1363. package/json-schema/system/EnvironmentArtifactChecksum.json +2 -2
  1364. package/json-schema/system/EnvironmentArtifactFunction.json +2 -2
  1365. package/json-schema/system/EnvironmentArtifactFunctionLanguageEnum.json +2 -2
  1366. package/json-schema/system/EnvironmentArtifactHashAlgorithmEnum.json +2 -2
  1367. package/json-schema/system/EnvironmentArtifactManifest.json +2 -2
  1368. package/json-schema/system/EnvironmentArtifactMetadata.json +2 -2
  1369. package/json-schema/system/EnvironmentArtifactPayloadRef.json +2 -2
  1370. package/json-schema/system/EnvironmentArtifactRequirement.json +2 -2
  1371. package/json-schema/system/ExecuteSqlOperation.json +2 -2
  1372. package/json-schema/system/ExtendedLogLevel.json +2 -2
  1373. package/json-schema/system/ExternalServiceDestinationConfig.json +2 -2
  1374. package/json-schema/system/FacetConfig.json +2 -2
  1375. package/json-schema/system/FailoverConfig.json +2 -2
  1376. package/json-schema/system/FailoverMode.json +2 -2
  1377. package/json-schema/system/Feature.json +2 -2
  1378. package/json-schema/system/FieldEncryption.json +2 -2
  1379. package/json-schema/system/FieldTranslation.json +2 -2
  1380. package/json-schema/system/FileDestinationConfig.json +2 -2
  1381. package/json-schema/system/FileMetadata.json +2 -2
  1382. package/json-schema/system/GCounter.json +2 -2
  1383. package/json-schema/system/GDPRConfig.json +2 -2
  1384. package/json-schema/system/HIPAAConfig.json +2 -2
  1385. package/json-schema/system/HistogramBucketConfig.json +2 -2
  1386. package/json-schema/system/HttpDestinationConfig.json +2 -2
  1387. package/json-schema/system/HttpServerConfig.json +2 -2
  1388. package/json-schema/system/Incident.json +2 -2
  1389. package/json-schema/system/IncidentCategory.json +2 -2
  1390. package/json-schema/system/IncidentNotificationMatrix.json +2 -2
  1391. package/json-schema/system/IncidentNotificationRule.json +2 -2
  1392. package/json-schema/system/IncidentResponsePhase.json +2 -2
  1393. package/json-schema/system/IncidentResponsePolicy.json +2 -2
  1394. package/json-schema/system/IncidentSeverity.json +2 -2
  1395. package/json-schema/system/IncidentStatus.json +2 -2
  1396. package/json-schema/system/IntervalSchedule.json +2 -2
  1397. package/json-schema/system/JobExecution.json +2 -2
  1398. package/json-schema/system/JobExecutionStatus.json +2 -2
  1399. package/json-schema/system/KernelServiceMap.json +2 -2
  1400. package/json-schema/system/KeyManagementProvider.json +2 -2
  1401. package/json-schema/system/KeyRotationPolicy.json +2 -2
  1402. package/json-schema/system/LWWRegister.json +2 -2
  1403. package/json-schema/system/LevelIsolationStrategySchema.json +2 -2
  1404. package/json-schema/system/License.json +2 -2
  1405. package/json-schema/system/LicenseMetricType.json +2 -2
  1406. package/json-schema/system/LifecycleAction.json +2 -2
  1407. package/json-schema/system/LifecyclePolicyConfig.json +2 -2
  1408. package/json-schema/system/LifecyclePolicyRule.json +2 -2
  1409. package/json-schema/system/Locale.json +2 -2
  1410. package/json-schema/system/LogDestination.json +2 -2
  1411. package/json-schema/system/LogDestinationType.json +2 -2
  1412. package/json-schema/system/LogEnrichmentConfig.json +2 -2
  1413. package/json-schema/system/LogEntry.json +2 -2
  1414. package/json-schema/system/LogFormat.json +2 -2
  1415. package/json-schema/system/LogLevel.json +2 -2
  1416. package/json-schema/system/LoggerConfig.json +2 -2
  1417. package/json-schema/system/LoggingConfig.json +2 -2
  1418. package/json-schema/system/MaskingConfig.json +2 -2
  1419. package/json-schema/system/MaskingRule.json +2 -2
  1420. package/json-schema/system/MaskingStrategy.json +2 -2
  1421. package/json-schema/system/MaskingVisibilityRule.json +2 -2
  1422. package/json-schema/system/MessageFormat.json +2 -2
  1423. package/json-schema/system/MessageQueueConfig.json +2 -2
  1424. package/json-schema/system/MessageQueueProvider.json +2 -2
  1425. package/json-schema/system/MetadataCollectionInfo.json +2 -2
  1426. package/json-schema/system/MetadataDiffResult.json +2 -2
  1427. package/json-schema/system/MetadataExportOptions.json +2 -2
  1428. package/json-schema/system/MetadataFallbackStrategy.json +2 -2
  1429. package/json-schema/system/MetadataFormat.json +2 -2
  1430. package/json-schema/system/MetadataHistoryQueryOptions.json +2 -2
  1431. package/json-schema/system/MetadataHistoryQueryResult.json +2 -2
  1432. package/json-schema/system/MetadataHistoryRecord.json +2 -2
  1433. package/json-schema/system/MetadataHistoryRetentionPolicy.json +2 -2
  1434. package/json-schema/system/MetadataImportOptions.json +2 -2
  1435. package/json-schema/system/MetadataLoadOptions.json +2 -2
  1436. package/json-schema/system/MetadataLoadResult.json +2 -2
  1437. package/json-schema/system/MetadataLoaderContract.json +2 -2
  1438. package/json-schema/system/MetadataManagerConfig.json +2 -2
  1439. package/json-schema/system/MetadataRecord.json +2 -2
  1440. package/json-schema/system/MetadataSaveOptions.json +2 -2
  1441. package/json-schema/system/MetadataSaveResult.json +2 -2
  1442. package/json-schema/system/MetadataScope.json +2 -2
  1443. package/json-schema/system/MetadataSource.json +2 -2
  1444. package/json-schema/system/MetadataState.json +2 -2
  1445. package/json-schema/system/MetadataStats.json +2 -2
  1446. package/json-schema/system/MetadataWatchEvent.json +2 -2
  1447. package/json-schema/system/MetricAggregationConfig.json +2 -2
  1448. package/json-schema/system/MetricAggregationType.json +2 -2
  1449. package/json-schema/system/MetricDataPoint.json +2 -2
  1450. package/json-schema/system/MetricDefinition.json +2 -2
  1451. package/json-schema/system/MetricExportConfig.json +2 -2
  1452. package/json-schema/system/MetricLabels.json +2 -2
  1453. package/json-schema/system/MetricType.json +2 -2
  1454. package/json-schema/system/MetricUnit.json +2 -2
  1455. package/json-schema/system/MiddlewareConfig.json +2 -2
  1456. package/json-schema/system/MiddlewareType.json +2 -2
  1457. package/json-schema/system/MigrationDependency.json +2 -2
  1458. package/json-schema/system/MigrationPlan.json +2 -2
  1459. package/json-schema/system/MigrationStatement.json +2 -2
  1460. package/json-schema/system/ModifyFieldOperation.json +2 -2
  1461. package/json-schema/system/MultipartUploadConfig.json +2 -2
  1462. package/json-schema/system/MutualTLSConfig.json +2 -2
  1463. package/json-schema/system/NotificationChannel.json +2 -2
  1464. package/json-schema/system/ORSet.json +2 -2
  1465. package/json-schema/system/ORSetElement.json +2 -2
  1466. package/json-schema/system/OTComponent.json +2 -2
  1467. package/json-schema/system/OTOperation.json +2 -2
  1468. package/json-schema/system/OTOperationType.json +2 -2
  1469. package/json-schema/system/OTTransformResult.json +2 -2
  1470. package/json-schema/system/ObjectMetadata.json +2 -2
  1471. package/json-schema/system/ObjectStorageConfig.json +2 -2
  1472. package/json-schema/system/ObjectTranslationData.json +2 -2
  1473. package/json-schema/system/ObjectTranslationNode.json +2 -2
  1474. package/json-schema/system/OidcProviderConfig.json +2 -2
  1475. package/json-schema/system/OidcProvidersConfig.json +2 -2
  1476. package/json-schema/system/OnceSchedule.json +2 -2
  1477. package/json-schema/system/OpenTelemetryCompatibility.json +2 -2
  1478. package/json-schema/system/OtelExporterType.json +2 -2
  1479. package/json-schema/system/PCIDSSConfig.json +2 -2
  1480. package/json-schema/system/PNCounter.json +2 -2
  1481. package/json-schema/system/PackagePublishResult.json +2 -2
  1482. package/json-schema/system/Plan.json +2 -2
  1483. package/json-schema/system/PresignedUrlConfig.json +2 -2
  1484. package/json-schema/system/ProvisioningStep.json +2 -2
  1485. package/json-schema/system/QueueConfig.json +2 -2
  1486. package/json-schema/system/QuotaEnforcementResult.json +2 -2
  1487. package/json-schema/system/RPO.json +2 -2
  1488. package/json-schema/system/RTO.json +2 -2
  1489. package/json-schema/system/RegistryConfig.json +2 -2
  1490. package/json-schema/system/RegistrySyncPolicy.json +2 -2
  1491. package/json-schema/system/RegistryUpstream.json +2 -2
  1492. package/json-schema/system/RemoveFieldOperation.json +2 -2
  1493. package/json-schema/system/RenameObjectOperation.json +2 -2
  1494. package/json-schema/system/ResolvedSettingValue.json +2 -2
  1495. package/json-schema/system/RetryPolicy.json +2 -2
  1496. package/json-schema/system/RollbackPlan.json +2 -2
  1497. package/json-schema/system/RouteHandlerMetadata.json +2 -2
  1498. package/json-schema/system/RowLevelIsolationStrategy.json +2 -2
  1499. package/json-schema/system/SamplingDecision.json +2 -2
  1500. package/json-schema/system/SamplingStrategyType.json +2 -2
  1501. package/json-schema/system/SearchConfig.json +2 -2
  1502. package/json-schema/system/SearchIndexConfig.json +2 -2
  1503. package/json-schema/system/SearchProvider.json +2 -2
  1504. package/json-schema/system/SecurityContextConfig.json +2 -2
  1505. package/json-schema/system/SecurityEventCorrelation.json +2 -2
  1506. package/json-schema/system/ServerCapabilities.json +2 -2
  1507. package/json-schema/system/ServerEvent.json +2 -2
  1508. package/json-schema/system/ServerEventType.json +2 -2
  1509. package/json-schema/system/ServerStatus.json +2 -2
  1510. package/json-schema/system/ServiceConfig.json +2 -2
  1511. package/json-schema/system/ServiceCriticality.json +2 -2
  1512. package/json-schema/system/ServiceLevelObjective.json +2 -2
  1513. package/json-schema/system/ServiceStatus.json +2 -2
  1514. package/json-schema/system/SettingsActionResult.json +2 -2
  1515. package/json-schema/system/SettingsChangeEvent.json +2 -2
  1516. package/json-schema/system/SocialProviderConfig.json +2 -2
  1517. package/json-schema/system/Span.json +2 -2
  1518. package/json-schema/system/SpanAttributeValue.json +2 -2
  1519. package/json-schema/system/SpanAttributes.json +2 -2
  1520. package/json-schema/system/SpanEvent.json +2 -2
  1521. package/json-schema/system/SpanKind.json +2 -2
  1522. package/json-schema/system/SpanLink.json +2 -2
  1523. package/json-schema/system/SpanStatus.json +2 -2
  1524. package/json-schema/system/SpecifierHandler.json +2 -2
  1525. package/json-schema/system/SpecifierOption.json +2 -2
  1526. package/json-schema/system/SpecifierScope.json +2 -2
  1527. package/json-schema/system/SpecifierType.json +2 -2
  1528. package/json-schema/system/StorageAcl.json +2 -2
  1529. package/json-schema/system/StorageClass.json +2 -2
  1530. package/json-schema/system/StorageConnection.json +2 -2
  1531. package/json-schema/system/StorageProvider.json +2 -2
  1532. package/json-schema/system/StorageScope.json +2 -2
  1533. package/json-schema/system/StructuredLogEntry.json +2 -2
  1534. package/json-schema/system/SupplierAssessmentStatus.json +2 -2
  1535. package/json-schema/system/SupplierRiskLevel.json +2 -2
  1536. package/json-schema/system/SupplierSecurityAssessment.json +2 -2
  1537. package/json-schema/system/SupplierSecurityPolicy.json +2 -2
  1538. package/json-schema/system/SupplierSecurityRequirement.json +2 -2
  1539. package/json-schema/system/Task.json +2 -2
  1540. package/json-schema/system/TaskExecutionResult.json +2 -2
  1541. package/json-schema/system/TaskPriority.json +2 -2
  1542. package/json-schema/system/TaskRetryPolicy.json +2 -2
  1543. package/json-schema/system/TaskStatus.json +2 -2
  1544. package/json-schema/system/Tenant.json +2 -2
  1545. package/json-schema/system/TenantConnectionConfig.json +2 -2
  1546. package/json-schema/system/TenantIsolationConfig.json +2 -2
  1547. package/json-schema/system/TenantIsolationLevel.json +2 -2
  1548. package/json-schema/system/TenantPlan.json +2 -2
  1549. package/json-schema/system/TenantProvisioningRequest.json +2 -2
  1550. package/json-schema/system/TenantProvisioningResult.json +2 -2
  1551. package/json-schema/system/TenantProvisioningStatusEnum.json +2 -2
  1552. package/json-schema/system/TenantQuota.json +2 -2
  1553. package/json-schema/system/TenantRegion.json +2 -2
  1554. package/json-schema/system/TenantSecurityPolicy.json +2 -2
  1555. package/json-schema/system/TenantUsage.json +2 -2
  1556. package/json-schema/system/TextCRDTOperation.json +2 -2
  1557. package/json-schema/system/TextCRDTState.json +2 -2
  1558. package/json-schema/system/TimeSeries.json +2 -2
  1559. package/json-schema/system/TimeSeriesDataPoint.json +2 -2
  1560. package/json-schema/system/TopicConfig.json +2 -2
  1561. package/json-schema/system/TraceContext.json +2 -2
  1562. package/json-schema/system/TraceContextPropagation.json +2 -2
  1563. package/json-schema/system/TraceFlags.json +2 -2
  1564. package/json-schema/system/TracePropagationFormat.json +2 -2
  1565. package/json-schema/system/TraceState.json +2 -2
  1566. package/json-schema/system/TrainingCategory.json +2 -2
  1567. package/json-schema/system/TrainingCompletionStatus.json +2 -2
  1568. package/json-schema/system/TrainingCourse.json +2 -2
  1569. package/json-schema/system/TrainingPlan.json +2 -2
  1570. package/json-schema/system/TrainingRecord.json +2 -2
  1571. package/json-schema/system/TranslationBundle.json +2 -2
  1572. package/json-schema/system/TranslationConfig.json +2 -2
  1573. package/json-schema/system/TranslationCoverageResult.json +2 -2
  1574. package/json-schema/system/TranslationData.json +2 -2
  1575. package/json-schema/system/TranslationDiffItem.json +2 -2
  1576. package/json-schema/system/TranslationDiffStatus.json +2 -2
  1577. package/json-schema/system/TranslationFileOrganization.json +2 -2
  1578. package/json-schema/system/UserActivityStatus.json +2 -2
  1579. package/json-schema/system/VectorClock.json +2 -2
  1580. package/json-schema/system/WorkerStats.json +2 -2
  1581. package/json-schema/ui/AIChatWindowProps.json +2 -2
  1582. package/json-schema/ui/ActionParam.json +4 -2
  1583. package/json-schema/ui/ActionType.json +2 -2
  1584. package/json-schema/ui/AddRecordConfig.json +2 -2
  1585. package/json-schema/ui/Animation.json +2 -2
  1586. package/json-schema/ui/AnimationTrigger.json +2 -2
  1587. package/json-schema/ui/AppBranding.json +2 -2
  1588. package/json-schema/ui/AppearanceConfig.json +2 -2
  1589. package/json-schema/ui/AriaProps.json +2 -2
  1590. package/json-schema/ui/BlankPageLayout.json +2 -2
  1591. package/json-schema/ui/BlankPageLayoutItem.json +2 -2
  1592. package/json-schema/ui/BorderRadius.json +2 -2
  1593. package/json-schema/ui/BreakpointColumnMap.json +2 -2
  1594. package/json-schema/ui/BreakpointName.json +2 -2
  1595. package/json-schema/ui/BreakpointOrderMap.json +2 -2
  1596. package/json-schema/ui/Breakpoints.json +2 -2
  1597. package/json-schema/ui/CalendarConfig.json +2 -2
  1598. package/json-schema/ui/ChartAnnotation.json +2 -2
  1599. package/json-schema/ui/ChartAxis.json +2 -2
  1600. package/json-schema/ui/ChartConfig.json +2 -2
  1601. package/json-schema/ui/ChartInteraction.json +2 -2
  1602. package/json-schema/ui/ChartSeries.json +2 -2
  1603. package/json-schema/ui/ChartType.json +2 -2
  1604. package/json-schema/ui/ColorPalette.json +2 -2
  1605. package/json-schema/ui/ColumnSummary.json +2 -2
  1606. package/json-schema/ui/ComponentAnimation.json +2 -2
  1607. package/json-schema/ui/ConflictResolution.json +2 -2
  1608. package/json-schema/ui/Dashboard.json +2 -2
  1609. package/json-schema/ui/DashboardHeader.json +2 -2
  1610. package/json-schema/ui/DashboardHeaderAction.json +2 -2
  1611. package/json-schema/ui/DashboardWidget.json +2 -2
  1612. package/json-schema/ui/DateFormat.json +2 -2
  1613. package/json-schema/ui/DensityMode.json +2 -2
  1614. package/json-schema/ui/DndConfig.json +2 -2
  1615. package/json-schema/ui/DragConstraint.json +2 -2
  1616. package/json-schema/ui/DragHandle.json +2 -2
  1617. package/json-schema/ui/DragItem.json +2 -2
  1618. package/json-schema/ui/DropEffect.json +2 -2
  1619. package/json-schema/ui/DropZone.json +2 -2
  1620. package/json-schema/ui/EasingFunction.json +2 -2
  1621. package/json-schema/ui/ElementButtonProps.json +2 -2
  1622. package/json-schema/ui/ElementDataSource.json +2 -2
  1623. package/json-schema/ui/ElementFilterProps.json +2 -2
  1624. package/json-schema/ui/ElementImageProps.json +2 -2
  1625. package/json-schema/ui/ElementNumberProps.json +2 -2
  1626. package/json-schema/ui/ElementRecordPickerProps.json +2 -2
  1627. package/json-schema/ui/ElementTextProps.json +2 -2
  1628. package/json-schema/ui/EmbedConfig.json +2 -2
  1629. package/json-schema/ui/EvictionPolicy.json +2 -2
  1630. package/json-schema/ui/FocusManagement.json +2 -2
  1631. package/json-schema/ui/FocusTrapConfig.json +2 -2
  1632. package/json-schema/ui/GalleryConfig.json +2 -2
  1633. package/json-schema/ui/GanttConfig.json +2 -2
  1634. package/json-schema/ui/GestureConfig.json +2 -2
  1635. package/json-schema/ui/GestureType.json +2 -2
  1636. package/json-schema/ui/GlobalFilter.json +2 -2
  1637. package/json-schema/ui/GlobalFilterOptionsFrom.json +2 -2
  1638. package/json-schema/ui/GroupingConfig.json +2 -2
  1639. package/json-schema/ui/GroupingField.json +2 -2
  1640. package/json-schema/ui/HttpMethod.json +2 -2
  1641. package/json-schema/ui/HttpRequest.json +2 -2
  1642. package/json-schema/ui/I18nLabel.json +2 -2
  1643. package/json-schema/ui/I18nObject.json +2 -2
  1644. package/json-schema/ui/InterfacePageConfig.json +2 -2
  1645. package/json-schema/ui/JoinedReportBlock.json +2 -2
  1646. package/json-schema/ui/KanbanConfig.json +2 -2
  1647. package/json-schema/ui/KeyboardNavigationConfig.json +2 -2
  1648. package/json-schema/ui/KeyboardShortcut.json +2 -2
  1649. package/json-schema/ui/ListChartConfig.json +2 -2
  1650. package/json-schema/ui/ListColumn.json +2 -2
  1651. package/json-schema/ui/LocaleConfig.json +2 -2
  1652. package/json-schema/ui/LongPressGestureConfig.json +2 -2
  1653. package/json-schema/ui/MotionConfig.json +2 -2
  1654. package/json-schema/ui/NavigationConfig.json +2 -2
  1655. package/json-schema/ui/NavigationMode.json +2 -2
  1656. package/json-schema/ui/Notification.json +2 -2
  1657. package/json-schema/ui/NotificationAction.json +2 -2
  1658. package/json-schema/ui/NotificationConfig.json +2 -2
  1659. package/json-schema/ui/NotificationPosition.json +2 -2
  1660. package/json-schema/ui/NotificationSeverity.json +2 -2
  1661. package/json-schema/ui/NotificationType.json +2 -2
  1662. package/json-schema/ui/NumberFormat.json +2 -2
  1663. package/json-schema/ui/OfflineCacheConfig.json +2 -2
  1664. package/json-schema/ui/OfflineConfig.json +2 -2
  1665. package/json-schema/ui/OfflineStrategy.json +2 -2
  1666. package/json-schema/ui/PageAccordionProps.json +2 -2
  1667. package/json-schema/ui/PageCardProps.json +2 -2
  1668. package/json-schema/ui/PageComponentType.json +2 -2
  1669. package/json-schema/ui/PageHeaderProps.json +2 -2
  1670. package/json-schema/ui/PageTabsProps.json +2 -2
  1671. package/json-schema/ui/PageTransition.json +2 -2
  1672. package/json-schema/ui/PageType.json +2 -2
  1673. package/json-schema/ui/PageVariable.json +2 -2
  1674. package/json-schema/ui/PaginationConfig.json +2 -2
  1675. package/json-schema/ui/PerformanceConfig.json +2 -2
  1676. package/json-schema/ui/PersistStorage.json +2 -2
  1677. package/json-schema/ui/PinchGestureConfig.json +2 -2
  1678. package/json-schema/ui/PluralRule.json +2 -2
  1679. package/json-schema/ui/Portal.json +2 -2
  1680. package/json-schema/ui/PortalActionNavItem.json +2 -2
  1681. package/json-schema/ui/PortalAnonymousEntry.json +2 -2
  1682. package/json-schema/ui/PortalAnonymousRoute.json +2 -2
  1683. package/json-schema/ui/PortalAuthMode.json +2 -2
  1684. package/json-schema/ui/PortalDashboardNavItem.json +2 -2
  1685. package/json-schema/ui/PortalLayout.json +2 -2
  1686. package/json-schema/ui/PortalNavItem.json +2 -2
  1687. package/json-schema/ui/PortalRateLimit.json +2 -2
  1688. package/json-schema/ui/PortalSeo.json +2 -2
  1689. package/json-schema/ui/PortalTheme.json +2 -2
  1690. package/json-schema/ui/PortalUrlNavItem.json +2 -2
  1691. package/json-schema/ui/PortalViewNavItem.json +2 -2
  1692. package/json-schema/ui/RecordActivityProps.json +2 -2
  1693. package/json-schema/ui/RecordChatterProps.json +2 -2
  1694. package/json-schema/ui/RecordDetailsProps.json +2 -2
  1695. package/json-schema/ui/RecordHighlightsField.json +2 -2
  1696. package/json-schema/ui/RecordHighlightsProps.json +2 -2
  1697. package/json-schema/ui/RecordPathProps.json +2 -2
  1698. package/json-schema/ui/RecordRelatedListProps.json +2 -2
  1699. package/json-schema/ui/RecordReviewConfig.json +2 -2
  1700. package/json-schema/ui/Report.json +2 -2
  1701. package/json-schema/ui/ReportChart.json +2 -2
  1702. package/json-schema/ui/ReportColumn.json +2 -2
  1703. package/json-schema/ui/ReportGrouping.json +2 -2
  1704. package/json-schema/ui/ReportType.json +2 -2
  1705. package/json-schema/ui/ResponsiveConfig.json +2 -2
  1706. package/json-schema/ui/RowColorConfig.json +2 -2
  1707. package/json-schema/ui/RowHeight.json +2 -2
  1708. package/json-schema/ui/SelectionConfig.json +2 -2
  1709. package/json-schema/ui/Shadow.json +2 -2
  1710. package/json-schema/ui/SharingConfig.json +2 -2
  1711. package/json-schema/ui/Spacing.json +2 -2
  1712. package/json-schema/ui/SwipeDirection.json +2 -2
  1713. package/json-schema/ui/SwipeGestureConfig.json +2 -2
  1714. package/json-schema/ui/SyncConfig.json +2 -2
  1715. package/json-schema/ui/Theme.json +2 -2
  1716. package/json-schema/ui/ThemeMode.json +2 -2
  1717. package/json-schema/ui/TimelineConfig.json +2 -2
  1718. package/json-schema/ui/TouchInteraction.json +2 -2
  1719. package/json-schema/ui/TouchTargetConfig.json +2 -2
  1720. package/json-schema/ui/TransitionConfig.json +2 -2
  1721. package/json-schema/ui/TransitionPreset.json +2 -2
  1722. package/json-schema/ui/Typography.json +2 -2
  1723. package/json-schema/ui/UserActionsConfig.json +2 -2
  1724. package/json-schema/ui/ViewData.json +28 -2
  1725. package/json-schema/ui/ViewFilterRule.json +2 -2
  1726. package/json-schema/ui/ViewSharing.json +2 -2
  1727. package/json-schema/ui/ViewTab.json +2 -2
  1728. package/json-schema/ui/VisualizationType.json +2 -2
  1729. package/json-schema/ui/WcagContrastLevel.json +2 -2
  1730. package/json-schema/ui/WidgetActionType.json +2 -2
  1731. package/json-schema/ui/WidgetColorVariant.json +2 -2
  1732. package/json-schema/ui/WidgetEvent.json +2 -2
  1733. package/json-schema/ui/WidgetLifecycle.json +2 -2
  1734. package/json-schema/ui/WidgetManifest.json +2 -2
  1735. package/json-schema/ui/WidgetMeasure.json +2 -2
  1736. package/json-schema/ui/WidgetProperty.json +2 -2
  1737. package/json-schema/ui/WidgetSource.json +2 -2
  1738. package/json-schema/ui/ZIndex.json +2 -2
  1739. package/package.json +1 -1
  1740. package/src/api/protocol.zod.ts +20 -0
  1741. package/src/automation/workflow.zod.ts +3 -0
  1742. package/src/cloud/marketplace.zod.ts +10 -0
  1743. package/src/cloud/package.zod.ts +91 -0
  1744. package/src/data/field.zod.ts +4 -1
  1745. package/src/kernel/metadata-plugin.zod.ts +15 -15
  1746. package/src/ui/app.zod.ts +28 -1
  1747. package/src/ui/view.zod.ts +122 -4
package/dist/ui/index.js CHANGED
@@ -428,6 +428,11 @@ var ActionNavItemSchema = lazySchema(() => BaseNavItemSchema.extend({
428
428
  params: zod.z.record(zod.z.string(), zod.z.unknown()).optional().describe("Parameters passed to the action")
429
429
  }).describe("Action definition to execute when clicked")
430
430
  }));
431
+ var ComponentNavItemSchema = lazySchema(() => BaseNavItemSchema.extend({
432
+ type: zod.z.literal("component"),
433
+ componentRef: zod.z.string().describe('Component registry key (e.g. "metadata:directory")'),
434
+ params: zod.z.record(zod.z.string(), zod.z.unknown()).optional().describe("Props passed to the component")
435
+ }));
431
436
  var GroupNavItemSchema = lazySchema(() => BaseNavItemSchema.extend({
432
437
  type: zod.z.literal("group"),
433
438
  expanded: zod.z.boolean().default(false).describe("Default expansion state in sidebar")
@@ -443,6 +448,7 @@ var NavigationItemSchema = zod.z.lazy(
443
448
  UrlNavItemSchema,
444
449
  ReportNavItemSchema,
445
450
  ActionNavItemSchema,
451
+ ComponentNavItemSchema,
446
452
  GroupNavItemSchema.extend({
447
453
  children: zod.z.array(NavigationItemSchema).describe("Child navigation items")
448
454
  })
@@ -568,1401 +574,1843 @@ var App = {
568
574
  function defineApp(config) {
569
575
  return AppSchema.parse(config);
570
576
  }
571
- var HttpMethod = zod.z.enum([
572
- "GET",
573
- "POST",
574
- "PUT",
575
- "DELETE",
576
- "PATCH",
577
- "HEAD",
578
- "OPTIONS"
577
+ var EncryptionAlgorithmSchema = lazySchema(() => zod.z.enum([
578
+ "aes-256-gcm",
579
+ "aes-256-cbc",
580
+ "chacha20-poly1305"
581
+ ]).describe("Supported encryption algorithm"));
582
+ var KeyManagementProviderSchema = lazySchema(() => zod.z.enum([
583
+ "local",
584
+ "aws-kms",
585
+ "azure-key-vault",
586
+ "gcp-kms",
587
+ "hashicorp-vault"
588
+ ]).describe("Key management service provider"));
589
+ var KeyRotationPolicySchema = lazySchema(() => zod.z.object({
590
+ enabled: zod.z.boolean().default(false).describe("Enable automatic key rotation"),
591
+ frequencyDays: zod.z.number().min(1).default(90).describe("Rotation frequency in days"),
592
+ retainOldVersions: zod.z.number().default(3).describe("Number of old key versions to retain"),
593
+ autoRotate: zod.z.boolean().default(true).describe("Automatically rotate without manual approval")
594
+ }).describe("Policy for automatic encryption key rotation"));
595
+ var EncryptionConfigSchema = lazySchema(() => zod.z.object({
596
+ enabled: zod.z.boolean().default(false).describe("Enable field-level encryption"),
597
+ algorithm: EncryptionAlgorithmSchema.default("aes-256-gcm").describe("Encryption algorithm"),
598
+ keyManagement: zod.z.object({
599
+ provider: KeyManagementProviderSchema.describe("Key management service provider"),
600
+ keyId: zod.z.string().optional().describe("Key identifier in the provider"),
601
+ rotationPolicy: KeyRotationPolicySchema.optional().describe("Key rotation policy")
602
+ }).describe("Key management configuration"),
603
+ scope: zod.z.enum(["field", "record", "table", "database"]).describe("Encryption scope level"),
604
+ deterministicEncryption: zod.z.boolean().default(false).describe("Allows equality queries on encrypted data"),
605
+ searchableEncryption: zod.z.boolean().default(false).describe("Allows search on encrypted data")
606
+ }).describe("Field-level encryption configuration"));
607
+ lazySchema(() => zod.z.object({
608
+ fieldName: zod.z.string().describe("Name of the field to encrypt"),
609
+ encryptionConfig: EncryptionConfigSchema.describe("Encryption settings for this field"),
610
+ indexable: zod.z.boolean().default(false).describe("Allow indexing on encrypted field")
611
+ }).describe("Per-field encryption assignment"));
612
+ var MaskingStrategySchema = lazySchema(() => zod.z.enum([
613
+ "redact",
614
+ // Complete redaction: ****
615
+ "partial",
616
+ // Partial masking: 138****5678
617
+ "hash",
618
+ // Hash value: sha256(value)
619
+ "tokenize",
620
+ // Tokenization: token-12345
621
+ "randomize",
622
+ // Randomize: generate random value
623
+ "nullify",
624
+ // Null value: null
625
+ "substitute"
626
+ // Substitute with dummy data
627
+ ]).describe("Data masking strategy for PII protection"));
628
+ var MaskingRuleSchema = lazySchema(() => zod.z.object({
629
+ field: zod.z.string().describe("Field name to apply masking to"),
630
+ strategy: MaskingStrategySchema.describe("Masking strategy to use"),
631
+ pattern: zod.z.string().optional().describe("Regex pattern for partial masking"),
632
+ preserveFormat: zod.z.boolean().default(true).describe("Keep the original data format after masking"),
633
+ preserveLength: zod.z.boolean().default(true).describe("Keep the original data length after masking"),
634
+ roles: zod.z.array(zod.z.string()).optional().describe("Roles that see masked data"),
635
+ exemptRoles: zod.z.array(zod.z.string()).optional().describe("Roles that see unmasked data")
636
+ }).describe("Masking rule for a single field"));
637
+ lazySchema(() => zod.z.object({
638
+ enabled: zod.z.boolean().default(false).describe("Enable data masking"),
639
+ rules: zod.z.array(MaskingRuleSchema).describe("List of field-level masking rules"),
640
+ auditUnmasking: zod.z.boolean().default(true).describe("Log when masked data is accessed unmasked")
641
+ }).describe("Top-level data masking configuration for PII protection"));
642
+
643
+ // src/data/field.zod.ts
644
+ var FieldType = zod.z.enum([
645
+ // Core Text
646
+ "text",
647
+ "textarea",
648
+ "email",
649
+ "url",
650
+ "phone",
651
+ "password",
652
+ // Rich Content
653
+ "markdown",
654
+ "html",
655
+ "richtext",
656
+ // Numbers
657
+ "number",
658
+ "currency",
659
+ "percent",
660
+ // Date & Time
661
+ "date",
662
+ "datetime",
663
+ "time",
664
+ // Logic
665
+ "boolean",
666
+ "toggle",
667
+ // Toggle is a distinct UI from checkbox
668
+ // Selection
669
+ "select",
670
+ // Single select dropdown
671
+ "multiselect",
672
+ // Multi select (often tags)
673
+ "radio",
674
+ // Radio group
675
+ "checkboxes",
676
+ // Checkbox group
677
+ // Relational
678
+ "lookup",
679
+ "master_detail",
680
+ // Dynamic reference
681
+ "tree",
682
+ // Hierarchical reference
683
+ // Media
684
+ "image",
685
+ "file",
686
+ "avatar",
687
+ "video",
688
+ "audio",
689
+ // Calculated / System
690
+ "formula",
691
+ "summary",
692
+ "autonumber",
693
+ // Embedded structured values (stored as JSON on the parent row — no separate table / FK)
694
+ "composite",
695
+ // Single embedded sub-object with declared sub-fields (≈ Strapi component / ACF group)
696
+ "repeater",
697
+ // Repeating embedded sub-object array with declared sub-fields (≈ Strapi repeatable component / ACF repeater)
698
+ // Enhanced Types
699
+ "location",
700
+ // GPS coordinates
701
+ "address",
702
+ // Structured address
703
+ "code",
704
+ // Code editor (JSON/SQL/JS)
705
+ "json",
706
+ // Structured JSON data (untyped escape hatch)
707
+ "color",
708
+ // Color picker
709
+ "rating",
710
+ // Star rating
711
+ "slider",
712
+ // Numeric slider
713
+ "signature",
714
+ // Digital signature
715
+ "qrcode",
716
+ // QR code / Barcode
717
+ "progress",
718
+ // Progress bar
719
+ "tags",
720
+ // Simple tag list
721
+ // AI/ML Types
722
+ "vector"
723
+ // Vector embeddings for AI/ML (semantic search, RAG)
579
724
  ]);
580
- var HttpMethodSchema = lazySchema(() => zod.z.enum(["GET", "POST", "PUT", "PATCH", "DELETE"]));
581
- var HttpRequestSchema = lazySchema(() => zod.z.object({
582
- url: zod.z.string().describe("API endpoint URL"),
583
- method: HttpMethodSchema.optional().default("GET").describe("HTTP method"),
584
- headers: zod.z.record(zod.z.string(), zod.z.string()).optional().describe("Custom HTTP headers"),
585
- params: zod.z.record(zod.z.string(), zod.z.unknown()).optional().describe("Query parameters"),
586
- body: zod.z.unknown().optional().describe("Request body for POST/PUT/PATCH")
725
+ var SelectOptionSchema = lazySchema(() => zod.z.object({
726
+ label: zod.z.string().describe("Display label (human-readable, any case allowed)"),
727
+ value: SystemIdentifierSchema.describe("Stored value (lowercase machine identifier)"),
728
+ color: zod.z.string().optional().describe("Color code for badges/charts"),
729
+ default: zod.z.boolean().optional().describe("Is default option")
587
730
  }));
588
731
  lazySchema(() => zod.z.object({
589
- /**
590
- * Enable CORS
591
- */
592
- enabled: zod.z.boolean().default(true).describe("Enable CORS"),
593
- /**
594
- * Allowed origins (* for all)
595
- */
596
- origins: zod.z.union([
597
- zod.z.string(),
598
- zod.z.array(zod.z.string())
599
- ]).default("*").describe("Allowed origins (* for all)"),
600
- /**
601
- * Allowed HTTP methods
602
- */
603
- methods: zod.z.array(HttpMethod).optional().describe("Allowed HTTP methods"),
604
- /**
605
- * Allow credentials (cookies, authorization headers)
606
- */
607
- credentials: zod.z.boolean().default(false).describe("Allow credentials (cookies, authorization headers)"),
608
- /**
609
- * Preflight cache duration in seconds
610
- */
611
- maxAge: zod.z.number().int().optional().describe("Preflight cache duration in seconds")
732
+ latitude: zod.z.number().min(-90).max(90).describe("Latitude coordinate"),
733
+ longitude: zod.z.number().min(-180).max(180).describe("Longitude coordinate"),
734
+ altitude: zod.z.number().optional().describe("Altitude in meters"),
735
+ accuracy: zod.z.number().optional().describe("Accuracy in meters")
736
+ }));
737
+ var CurrencyConfigSchema = lazySchema(() => zod.z.object({
738
+ precision: zod.z.number().int().min(0).max(10).default(2).describe("Decimal precision (default: 2)"),
739
+ currencyMode: zod.z.enum(["dynamic", "fixed"]).default("dynamic").describe("Currency mode: dynamic (user selectable) or fixed (single currency)"),
740
+ defaultCurrency: zod.z.string().length(3).default("CNY").describe("Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)")
612
741
  }));
613
742
  lazySchema(() => zod.z.object({
614
- /**
615
- * Enable rate limiting
616
- */
617
- enabled: zod.z.boolean().default(false).describe("Enable rate limiting"),
618
- /**
619
- * Time window in milliseconds
620
- */
621
- windowMs: zod.z.number().int().default(6e4).describe("Time window in milliseconds"),
622
- /**
623
- * Max requests per window
624
- */
625
- maxRequests: zod.z.number().int().default(100).describe("Max requests per window")
743
+ value: zod.z.number().describe("Monetary amount"),
744
+ currency: zod.z.string().length(3).describe("Currency code (ISO 4217)")
626
745
  }));
627
746
  lazySchema(() => zod.z.object({
628
- /**
629
- * URL path to serve from
630
- */
631
- path: zod.z.string().describe("URL path to serve from"),
632
- /**
633
- * Physical directory to serve
634
- */
635
- directory: zod.z.string().describe("Physical directory to serve"),
636
- /**
637
- * Cache-Control header value
638
- */
639
- cacheControl: zod.z.string().optional().describe("Cache-Control header value")
747
+ street: zod.z.string().optional().describe("Street address"),
748
+ city: zod.z.string().optional().describe("City name"),
749
+ state: zod.z.string().optional().describe("State/Province"),
750
+ postalCode: zod.z.string().optional().describe("Postal/ZIP code"),
751
+ country: zod.z.string().optional().describe("Country name or code"),
752
+ countryCode: zod.z.string().optional().describe("ISO country code (e.g., US, GB)"),
753
+ formatted: zod.z.string().optional().describe("Formatted address string")
640
754
  }));
641
-
642
- // src/ui/view.zod.ts
643
- var ViewDataSchema = lazySchema(() => zod.z.discriminatedUnion("provider", [
644
- zod.z.object({
645
- provider: zod.z.literal("object"),
646
- object: zod.z.string().describe("Target object name")
647
- }),
648
- zod.z.object({
649
- provider: zod.z.literal("api"),
650
- read: HttpRequestSchema.optional().describe("Configuration for fetching data"),
651
- write: HttpRequestSchema.optional().describe("Configuration for submitting data (for forms/editable tables)")
652
- }),
653
- zod.z.object({
654
- provider: zod.z.literal("value"),
655
- items: zod.z.array(zod.z.unknown()).describe("Static data array")
656
- })
657
- ]));
658
- var ViewFilterRuleSchema = lazySchema(() => zod.z.object({
659
- /** Field name to filter on */
660
- field: zod.z.string().describe("Field name to filter on"),
661
- /** Filter operator */
662
- operator: zod.z.string().describe("Filter operator (e.g. equals, not_equals, contains, this_quarter)"),
663
- /** Filter value (optional for unary operators like is_null, this_quarter) */
664
- value: zod.z.union([zod.z.string(), zod.z.number(), zod.z.boolean(), zod.z.null(), zod.z.array(zod.z.union([zod.z.string(), zod.z.number()]))]).optional().describe("Filter value")
665
- }).describe("View filter rule"));
666
- var ColumnSummarySchema = lazySchema(() => zod.z.enum([
667
- "none",
668
- "count",
669
- "count_empty",
670
- "count_filled",
671
- "count_unique",
672
- "percent_empty",
673
- "percent_filled",
674
- "sum",
675
- "avg",
676
- "min",
677
- "max"
678
- ]).describe("Aggregation function for column footer summary"));
679
- var ListColumnSchema = lazySchema(() => zod.z.object({
680
- field: zod.z.string().describe("Field name (snake_case)"),
681
- label: I18nLabelSchema.optional().describe("Display label override"),
682
- width: zod.z.number().positive().optional().describe("Column width in pixels"),
683
- align: zod.z.enum(["left", "center", "right"]).optional().describe("Text alignment"),
684
- hidden: zod.z.boolean().optional().describe("Hide column by default"),
685
- sortable: zod.z.boolean().optional().describe("Allow sorting by this column"),
686
- resizable: zod.z.boolean().optional().describe("Allow resizing this column"),
687
- wrap: zod.z.boolean().optional().describe("Allow text wrapping"),
688
- type: zod.z.string().optional().describe('Renderer type override (e.g., "currency", "date")'),
689
- /** Pinning (Airtable-style frozen columns) */
690
- pinned: zod.z.enum(["left", "right"]).optional().describe("Pin/freeze column to left or right side"),
691
- /** Column Footer Summary (Airtable-style aggregation) */
692
- summary: ColumnSummarySchema.optional().describe("Footer aggregation function for this column"),
693
- /** Interaction */
694
- link: zod.z.boolean().optional().describe("Functions as the primary navigation link (triggers View navigation)"),
695
- action: zod.z.string().optional().describe("Registered Action ID to execute when clicked")
696
- }));
697
- var SelectionConfigSchema = lazySchema(() => zod.z.object({
698
- type: zod.z.enum(["none", "single", "multiple"]).default("none").describe("Selection mode")
699
- }));
700
- var PaginationConfigSchema = lazySchema(() => zod.z.object({
701
- pageSize: zod.z.number().int().positive().default(25).describe("Number of records per page"),
702
- pageSizeOptions: zod.z.array(zod.z.number().int().positive()).optional().describe("Available page size options")
703
- }));
704
- var RowHeightSchema = lazySchema(() => zod.z.enum([
705
- "compact",
706
- // Minimal padding, single line
707
- "short",
708
- // Reduced padding
709
- "medium",
710
- // Default padding
711
- "tall",
712
- // Extra padding, multi-line preview
713
- "extra_tall"
714
- // Maximum padding, rich content preview
715
- ]).describe("Row height / density setting for list view"));
716
- var GroupingFieldSchema = lazySchema(() => zod.z.object({
717
- field: zod.z.string().describe("Field name to group by"),
718
- order: zod.z.enum(["asc", "desc"]).default("asc").describe("Group sort order"),
719
- collapsed: zod.z.boolean().default(false).describe("Collapse groups by default")
720
- }));
721
- var GroupingConfigSchema = lazySchema(() => zod.z.object({
722
- fields: zod.z.array(GroupingFieldSchema).min(1).describe("Fields to group by (supports up to 3 levels)")
723
- }).describe("Record grouping configuration"));
724
- var GalleryConfigSchema = lazySchema(() => zod.z.object({
725
- coverField: zod.z.string().optional().describe("Attachment/image field to display as card cover"),
726
- coverFit: zod.z.enum(["cover", "contain"]).default("cover").describe("Image fit mode for card cover"),
727
- cardSize: zod.z.enum(["small", "medium", "large"]).default("medium").describe("Card size in gallery view"),
728
- titleField: zod.z.string().optional().describe("Field to display as card title"),
729
- visibleFields: zod.z.array(zod.z.string()).optional().describe("Fields to display on card body")
730
- }).describe("Gallery/card view configuration"));
731
- var TimelineConfigSchema = lazySchema(() => zod.z.object({
732
- startDateField: zod.z.string().describe("Field for timeline item start date"),
733
- endDateField: zod.z.string().optional().describe("Field for timeline item end date"),
734
- titleField: zod.z.string().describe("Field to display as timeline item title"),
735
- groupByField: zod.z.string().optional().describe("Field to group timeline rows"),
736
- colorField: zod.z.string().optional().describe("Field to determine item color"),
737
- scale: zod.z.enum(["hour", "day", "week", "month", "quarter", "year"]).default("week").describe("Default timeline scale")
738
- }).describe("Timeline view configuration"));
739
- var ViewSharingSchema = lazySchema(() => zod.z.object({
740
- type: zod.z.enum(["personal", "collaborative"]).default("collaborative").describe("View ownership type"),
741
- lockedBy: zod.z.string().optional().describe("User who locked the view configuration")
742
- }).describe("View sharing and access configuration"));
743
- var RowColorConfigSchema = lazySchema(() => zod.z.object({
744
- field: zod.z.string().describe("Field to derive color from (typically a select/status field)"),
745
- colors: zod.z.record(zod.z.string(), zod.z.string()).optional().describe("Map of field value to color (hex/token)")
746
- }).describe("Row color configuration based on field values"));
747
- var VisualizationTypeSchema = lazySchema(() => zod.z.enum([
748
- "grid",
749
- "kanban",
750
- "gallery",
751
- "calendar",
752
- "timeline",
753
- "gantt",
754
- "map"
755
- ]).describe("Visualization type that users can switch to"));
756
- var UserActionsConfigSchema = lazySchema(() => zod.z.object({
757
- sort: zod.z.boolean().default(true).describe("Allow users to sort records"),
758
- search: zod.z.boolean().default(true).describe("Allow users to search records"),
759
- filter: zod.z.boolean().default(true).describe("Allow users to filter records"),
760
- rowHeight: zod.z.boolean().default(true).describe("Allow users to toggle row height/density"),
761
- addRecordForm: zod.z.boolean().default(false).describe("Add records through a form instead of inline"),
762
- buttons: zod.z.array(zod.z.string()).optional().describe("Custom action button IDs to show in the toolbar")
763
- }).describe("User action toggles for the view toolbar"));
764
- var AppearanceConfigSchema = lazySchema(() => zod.z.object({
765
- showDescription: zod.z.boolean().default(true).describe("Show the view description text"),
766
- allowedVisualizations: zod.z.array(VisualizationTypeSchema).optional().describe('Whitelist of visualization types users can switch between (e.g. ["grid", "gallery", "kanban"])')
767
- }).describe("Appearance and visualization configuration"));
768
- var ViewTabSchema = lazySchema(() => zod.z.object({
769
- name: SnakeCaseIdentifierSchema.describe("Tab identifier (snake_case)"),
770
- label: I18nLabelSchema.optional().describe("Display label"),
771
- icon: zod.z.string().optional().describe("Tab icon name"),
772
- view: zod.z.string().optional().describe("Referenced list view name from listViews"),
773
- filter: zod.z.array(ViewFilterRuleSchema).optional().describe("Tab-specific filter criteria"),
774
- order: zod.z.number().int().min(0).optional().describe("Tab display order"),
775
- pinned: zod.z.boolean().default(false).describe("Pin tab (cannot be removed by users)"),
776
- isDefault: zod.z.boolean().default(false).describe("Set as the default active tab"),
777
- visible: zod.z.boolean().default(true).describe("Tab visibility")
778
- }).describe("Tab configuration for multi-tab view interface"));
779
- var AddRecordConfigSchema = lazySchema(() => zod.z.object({
780
- enabled: zod.z.boolean().default(true).describe("Show the add record entry point"),
781
- position: zod.z.enum(["top", "bottom", "both"]).default("bottom").describe("Position of the add record button"),
782
- mode: zod.z.enum(["inline", "form", "modal"]).default("inline").describe("How to add a new record"),
783
- formView: zod.z.string().optional().describe('Named form view to use when mode is "form" or "modal"')
784
- }).describe("Add record entry point configuration"));
785
- var KanbanConfigSchema = lazySchema(() => zod.z.object({
786
- groupByField: zod.z.string().describe("Field to group columns by (usually status/select)"),
787
- summarizeField: zod.z.string().optional().describe("Field to sum at top of column (e.g. amount)"),
788
- columns: zod.z.array(zod.z.string()).describe("Fields to show on cards")
755
+ var VectorConfigSchema = lazySchema(() => zod.z.object({
756
+ dimensions: zod.z.number().int().min(1).max(1e4).describe("Vector dimensionality (e.g., 1536 for OpenAI embeddings)"),
757
+ distanceMetric: zod.z.enum(["cosine", "euclidean", "dotProduct", "manhattan"]).default("cosine").describe("Distance/similarity metric for vector search"),
758
+ normalized: zod.z.boolean().default(false).describe("Whether vectors are normalized (unit length)"),
759
+ indexed: zod.z.boolean().default(true).describe("Whether to create a vector index for fast similarity search"),
760
+ indexType: zod.z.enum(["hnsw", "ivfflat", "flat"]).optional().describe("Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets)")
789
761
  }));
790
- var ListChartConfigSchema = lazySchema(() => zod.z.object({
791
- chartType: zod.z.enum(["bar", "line", "pie", "area", "scatter"]).default("bar").describe("Chart visualisation type"),
792
- xAxisField: zod.z.string().describe("Field used as the X axis / category dimension"),
793
- yAxisFields: zod.z.array(zod.z.string()).min(1).describe("Field(s) used as the Y axis / measures"),
794
- aggregation: zod.z.enum(["sum", "avg", "count", "min", "max"]).optional().describe("Aggregation function applied to Y axis fields"),
795
- groupByField: zod.z.string().optional().describe("Optional field used to split / stack the chart")
796
- }).describe("List chart view configuration"));
797
- var CalendarConfigSchema = lazySchema(() => zod.z.object({
798
- startDateField: zod.z.string(),
799
- endDateField: zod.z.string().optional(),
800
- titleField: zod.z.string(),
801
- colorField: zod.z.string().optional()
762
+ var FileAttachmentConfigSchema = lazySchema(() => zod.z.object({
763
+ /** File Size Limits */
764
+ minSize: zod.z.number().min(0).optional().describe("Minimum file size in bytes"),
765
+ maxSize: zod.z.number().min(1).optional().describe("Maximum file size in bytes (e.g., 10485760 = 10MB)"),
766
+ /** File Type Restrictions */
767
+ allowedTypes: zod.z.array(zod.z.string()).optional().describe('Allowed file extensions (e.g., [".pdf", ".docx", ".jpg"])'),
768
+ blockedTypes: zod.z.array(zod.z.string()).optional().describe('Blocked file extensions (e.g., [".exe", ".bat", ".sh"])'),
769
+ allowedMimeTypes: zod.z.array(zod.z.string()).optional().describe('Allowed MIME types (e.g., ["image/jpeg", "application/pdf"])'),
770
+ blockedMimeTypes: zod.z.array(zod.z.string()).optional().describe("Blocked MIME types"),
771
+ /** Virus Scanning */
772
+ virusScan: zod.z.boolean().default(false).describe("Enable virus scanning for uploaded files"),
773
+ virusScanProvider: zod.z.enum(["clamav", "virustotal", "metadefender", "custom"]).optional().describe("Virus scanning service provider"),
774
+ virusScanOnUpload: zod.z.boolean().default(true).describe("Scan files immediately on upload"),
775
+ quarantineOnThreat: zod.z.boolean().default(true).describe("Quarantine files if threat detected"),
776
+ /** Storage Configuration */
777
+ storageProvider: zod.z.string().optional().describe("Object storage provider name (references ObjectStorageConfig)"),
778
+ storageBucket: zod.z.string().optional().describe("Target bucket name"),
779
+ storagePrefix: zod.z.string().optional().describe('Storage path prefix (e.g., "uploads/documents/")'),
780
+ /** Image-Specific Validation */
781
+ imageValidation: zod.z.object({
782
+ minWidth: zod.z.number().min(1).optional().describe("Minimum image width in pixels"),
783
+ maxWidth: zod.z.number().min(1).optional().describe("Maximum image width in pixels"),
784
+ minHeight: zod.z.number().min(1).optional().describe("Minimum image height in pixels"),
785
+ maxHeight: zod.z.number().min(1).optional().describe("Maximum image height in pixels"),
786
+ aspectRatio: zod.z.string().optional().describe('Required aspect ratio (e.g., "16:9", "1:1")'),
787
+ generateThumbnails: zod.z.boolean().default(false).describe("Auto-generate thumbnails"),
788
+ thumbnailSizes: zod.z.array(zod.z.object({
789
+ name: zod.z.string().describe('Thumbnail variant name (e.g., "small", "medium", "large")'),
790
+ width: zod.z.number().min(1).describe("Thumbnail width in pixels"),
791
+ height: zod.z.number().min(1).describe("Thumbnail height in pixels"),
792
+ crop: zod.z.boolean().default(false).describe("Crop to exact dimensions")
793
+ })).optional().describe("Thumbnail size configurations"),
794
+ preserveMetadata: zod.z.boolean().default(false).describe("Preserve EXIF metadata"),
795
+ autoRotate: zod.z.boolean().default(true).describe("Auto-rotate based on EXIF orientation")
796
+ }).optional().describe("Image-specific validation rules"),
797
+ /** Upload Behavior */
798
+ allowMultiple: zod.z.boolean().default(false).describe("Allow multiple file uploads (overrides field.multiple)"),
799
+ allowReplace: zod.z.boolean().default(true).describe("Allow replacing existing files"),
800
+ allowDelete: zod.z.boolean().default(true).describe("Allow deleting uploaded files"),
801
+ requireUpload: zod.z.boolean().default(false).describe("Require at least one file when field is required"),
802
+ /** Metadata Extraction */
803
+ extractMetadata: zod.z.boolean().default(true).describe("Extract file metadata (name, size, type, etc.)"),
804
+ extractText: zod.z.boolean().default(false).describe("Extract text content from documents (OCR/parsing)"),
805
+ /** Versioning */
806
+ versioningEnabled: zod.z.boolean().default(false).describe("Keep previous versions of replaced files"),
807
+ maxVersions: zod.z.number().min(1).optional().describe("Maximum number of versions to retain"),
808
+ /** Access Control */
809
+ publicRead: zod.z.boolean().default(false).describe("Allow public read access to uploaded files"),
810
+ presignedUrlExpiry: zod.z.number().min(60).max(604800).default(3600).describe("Presigned URL expiration in seconds (default: 1 hour)")
811
+ }).refine((data) => {
812
+ if (data.minSize !== void 0 && data.maxSize !== void 0 && data.minSize > data.maxSize) {
813
+ return false;
814
+ }
815
+ return true;
816
+ }, {
817
+ message: "minSize must be less than or equal to maxSize"
818
+ }).refine((data) => {
819
+ if (data.virusScanProvider !== void 0 && data.virusScan !== true) {
820
+ return false;
821
+ }
822
+ return true;
823
+ }, {
824
+ message: "virusScanProvider requires virusScan to be enabled"
802
825
  }));
803
- var GanttConfigSchema = lazySchema(() => zod.z.object({
804
- startDateField: zod.z.string(),
805
- endDateField: zod.z.string(),
806
- titleField: zod.z.string(),
807
- progressField: zod.z.string().optional(),
808
- dependenciesField: zod.z.string().optional()
826
+ var DataQualityRulesSchema = lazySchema(() => zod.z.object({
827
+ /** Enforce uniqueness constraint */
828
+ uniqueness: zod.z.boolean().default(false).describe("Enforce unique values across all records"),
829
+ /** Completeness ratio (0-1) indicating minimum percentage of non-null values */
830
+ completeness: zod.z.number().min(0).max(1).default(0).describe("Minimum ratio of non-null values (0-1, default: 0 = no requirement)"),
831
+ /** Accuracy validation against authoritative source */
832
+ accuracy: zod.z.object({
833
+ source: zod.z.string().describe('Reference data source for validation (e.g., "api.verify.com", "master_data")'),
834
+ threshold: zod.z.number().min(0).max(1).describe("Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)")
835
+ }).optional().describe("Accuracy validation configuration")
809
836
  }));
810
- var NavigationModeSchema = lazySchema(() => zod.z.enum([
811
- "page",
812
- // Navigate to a new route (default)
813
- "drawer",
814
- // Open details in a side drawer/panel
815
- "modal",
816
- // Open details in a modal dialog
817
- "split",
818
- // Show details side-by-side with the list (master-detail)
819
- "popover",
820
- // Show details in a popover (lightweight)
821
- "new_window",
822
- // Open in new browser tab/window
823
- "none"
824
- // No navigation (read-only list)
825
- ]));
826
- var NavigationConfigSchema = lazySchema(() => zod.z.object({
827
- mode: NavigationModeSchema.default("page"),
828
- /** Target View Config */
829
- view: zod.z.string().optional().describe('Name of the form view to use for details (e.g. "summary_view", "edit_form")'),
830
- /** Interaction Triggers */
831
- preventNavigation: zod.z.boolean().default(false).describe("Disable standard navigation entirely"),
832
- openNewTab: zod.z.boolean().default(false).describe("Force open in new tab (applies to page mode)"),
833
- /** Dimensions (for modal/drawer) */
834
- width: zod.z.union([zod.z.string(), zod.z.number()]).optional().describe('Width of the drawer/modal (e.g. "600px", "50%")')
837
+ var ComputedFieldCacheSchema = lazySchema(() => zod.z.object({
838
+ /** Enable caching for this computed field */
839
+ enabled: zod.z.boolean().describe("Enable caching for computed field results"),
840
+ /** Time-to-live in seconds */
841
+ ttl: zod.z.number().min(0).describe("Cache TTL in seconds (0 = no expiration)"),
842
+ /** Array of field paths that trigger cache invalidation when changed */
843
+ invalidateOn: zod.z.array(zod.z.string()).describe('Field paths that invalidate cache (e.g., ["inventory.quantity", "pricing.base_price"])')
835
844
  }));
836
- var ListViewSchema = lazySchema(() => zod.z.object({
837
- name: SnakeCaseIdentifierSchema.optional().describe("Internal view name (lowercase snake_case)"),
838
- label: I18nLabelSchema.optional(),
839
- // Display label override (supports i18n)
840
- type: zod.z.enum([
841
- "grid",
842
- // Standard Data Table
843
- "kanban",
844
- // Board / Columns
845
- "gallery",
846
- // Card Deck / Masonry
847
- "calendar",
848
- // Monthly/Weekly/Daily
849
- "timeline",
850
- // Chronological Stream (Feed)
851
- "gantt",
852
- // Project Timeline
853
- "map",
854
- // Geospatial
855
- "chart"
856
- // Aggregate visualisation
857
- ]).default("grid"),
858
- /** Data Source Configuration */
859
- data: ViewDataSchema.optional().describe('Data source configuration (defaults to "object" provider)'),
860
- /** Shared Query Config */
861
- columns: zod.z.union([
862
- zod.z.array(zod.z.string()),
863
- // Legacy: simple field names
864
- zod.z.array(ListColumnSchema)
865
- // Enhanced: detailed column config
866
- ]).describe("Fields to display as columns"),
867
- filter: zod.z.array(ViewFilterRuleSchema).optional().describe("Filter criteria (JSON Rules)"),
868
- sort: zod.z.union([
869
- zod.z.string(),
870
- //Legacy "field desc"
871
- zod.z.array(zod.z.object({
872
- field: zod.z.string(),
873
- order: zod.z.enum(["asc", "desc"])
874
- }))
875
- ]).optional(),
876
- /** Search & Filter */
877
- searchableFields: zod.z.array(zod.z.string()).optional().describe("Fields enabled for search"),
878
- filterableFields: zod.z.array(zod.z.string()).optional().describe("Fields enabled for end-user filtering in the top bar"),
879
- /** Grid Features */
880
- resizable: zod.z.boolean().optional().describe("Enable column resizing"),
881
- striped: zod.z.boolean().optional().describe("Striped row styling"),
882
- bordered: zod.z.boolean().optional().describe("Show borders"),
883
- compactToolbar: zod.z.boolean().optional().describe("Collapse Group/Color/Density/Hide-fields into a single View settings popover"),
884
- /** Selection */
885
- selection: SelectionConfigSchema.optional().describe("Row selection configuration"),
886
- /** Navigation / Interaction */
887
- navigation: NavigationConfigSchema.optional().describe("Configuration for item click navigation (page, drawer, modal, etc.)"),
888
- /** Pagination */
889
- pagination: PaginationConfigSchema.optional().describe("Pagination configuration"),
890
- /** Type Specific Config */
891
- kanban: KanbanConfigSchema.optional(),
892
- calendar: CalendarConfigSchema.optional(),
893
- gantt: GanttConfigSchema.optional(),
894
- gallery: GalleryConfigSchema.optional(),
895
- timeline: TimelineConfigSchema.optional(),
896
- chart: ListChartConfigSchema.optional(),
897
- /** View Metadata (Airtable-style view management) */
898
- description: I18nLabelSchema.optional().describe("View description for documentation/tooltips"),
899
- sharing: ViewSharingSchema.optional().describe("View sharing and access configuration"),
900
- /** Row Height / Density (Airtable-style) */
901
- rowHeight: RowHeightSchema.optional().describe("Row height / density setting"),
902
- /** Record Grouping (Airtable-style) */
903
- grouping: GroupingConfigSchema.optional().describe("Group records by one or more fields"),
904
- /** Row Color (Airtable-style) */
905
- rowColor: RowColorConfigSchema.optional().describe("Color rows based on field value"),
906
- /** Field Visibility & Ordering per View (Airtable-style) */
907
- hiddenFields: zod.z.array(zod.z.string()).optional().describe("Fields to hide in this specific view"),
908
- fieldOrder: zod.z.array(zod.z.string()).optional().describe("Explicit field display order for this view"),
909
- /** Row & Bulk Actions */
910
- rowActions: zod.z.array(zod.z.string()).optional().describe("Actions available for individual row items"),
911
- bulkActions: zod.z.array(zod.z.string()).optional().describe("Actions available when multiple rows are selected"),
912
- bulkActionDefs: zod.z.array(zod.z.record(zod.z.string(), zod.z.any())).optional().describe("Rich bulk action definitions (schema-driven, executed via BulkActionDialog)"),
913
- /** Performance */
914
- virtualScroll: zod.z.boolean().optional().describe("Enable virtual scrolling for large datasets"),
915
- /** Conditional Formatting */
916
- conditionalFormatting: zod.z.array(zod.z.object({
917
- condition: ExpressionInputSchema.describe("Predicate (CEL) to evaluate."),
918
- style: zod.z.record(zod.z.string(), zod.z.string()).describe("CSS styles to apply when condition is true")
919
- })).optional().describe("Conditional formatting rules for list rows"),
920
- /** Inline Edit */
921
- inlineEdit: zod.z.boolean().optional().describe("Allow inline editing of records directly in the list view"),
922
- /** Export */
923
- exportOptions: zod.z.array(zod.z.enum(["csv", "xlsx", "pdf", "json"])).optional().describe("Available export format options"),
924
- /** User Actions (Airtable Interface parity) */
925
- userActions: UserActionsConfigSchema.optional().describe("User action toggles for the view toolbar"),
926
- /** Appearance (Airtable Interface parity) */
927
- appearance: AppearanceConfigSchema.optional().describe("Appearance and visualization configuration"),
928
- /** Tabs (Airtable Interface parity) */
929
- tabs: zod.z.array(ViewTabSchema).optional().describe("Tab definitions for multi-tab view interface"),
930
- /** Add Record (Airtable Interface parity) */
931
- addRecord: AddRecordConfigSchema.optional().describe("Add record entry point configuration"),
932
- /** Record Count Display (Airtable Interface parity) */
933
- showRecordCount: zod.z.boolean().optional().describe("Show record count at the bottom of the list"),
934
- /** Advanced: Allow Printing (Airtable Interface parity) */
935
- allowPrinting: zod.z.boolean().optional().describe("Allow users to print the view"),
936
- /** Empty State */
937
- emptyState: zod.z.object({
938
- title: I18nLabelSchema.optional(),
939
- message: I18nLabelSchema.optional(),
940
- icon: zod.z.string().optional()
941
- }).optional().describe("Empty state configuration when no records found"),
942
- /** ARIA accessibility attributes */
943
- aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes for the list view"),
944
- /** Responsive layout overrides per breakpoint */
945
- responsive: ResponsiveConfigSchema.optional().describe("Responsive layout configuration"),
946
- /** Performance optimization settings */
947
- performance: PerformanceConfigSchema.optional().describe("Performance optimization settings")
948
- }));
949
- var FormFieldSchema = lazySchema(() => zod.z.object({
950
- field: zod.z.string().describe("Field name (snake_case)"),
951
- label: I18nLabelSchema.optional().describe("Display label override"),
952
- placeholder: I18nLabelSchema.optional().describe("Placeholder text"),
953
- helpText: I18nLabelSchema.optional().describe("Help/hint text"),
954
- readonly: zod.z.boolean().optional().describe("Read-only override"),
955
- required: zod.z.boolean().optional().describe("Required override"),
956
- hidden: zod.z.boolean().optional().describe("Hidden override"),
957
- colSpan: zod.z.number().int().min(1).max(4).optional().describe("Column span in grid layout (1-4)"),
958
- widget: zod.z.string().optional().describe("Custom widget/component name"),
959
- dependsOn: zod.z.string().optional().describe("Parent field name for cascading"),
960
- visibleOn: ExpressionInputSchema.optional().describe("Visibility predicate (CEL).")
961
- }));
962
- var FormSectionSchema = lazySchema(() => zod.z.object({
963
- label: I18nLabelSchema.optional(),
964
- collapsible: zod.z.boolean().default(false),
965
- collapsed: zod.z.boolean().default(false),
966
- columns: zod.z.union([
967
- zod.z.enum(["1", "2", "3", "4"]),
968
- zod.z.literal(1),
969
- zod.z.literal(2),
970
- zod.z.literal(3),
971
- zod.z.literal(4)
972
- ]).default(2).transform((val) => typeof val === "string" ? parseInt(val) : val),
973
- fields: zod.z.array(zod.z.union([
974
- zod.z.string(),
975
- // Legacy: simple field name
976
- FormFieldSchema
977
- // Enhanced: detailed field config
978
- ]))
979
- }));
980
- var FormViewSchema = lazySchema(() => zod.z.object({
981
- type: zod.z.enum([
982
- "simple",
983
- // Single column or sections
984
- "tabbed",
985
- // Tabs
986
- "wizard",
987
- // Step by step
988
- "split",
989
- // Master-Detail split
990
- "drawer",
991
- // Side panel
992
- "modal"
993
- // Dialog
994
- ]).default("simple"),
995
- /** Data Source Configuration */
996
- data: ViewDataSchema.optional().describe('Data source configuration (defaults to "object" provider)'),
997
- sections: zod.z.array(FormSectionSchema).optional(),
998
- // For simple layout
999
- groups: zod.z.array(FormSectionSchema).optional(),
1000
- // Legacy support -> alias to sections
1001
- /** Default Sort for Related Lists (e.g., sort child records by date) */
1002
- defaultSort: zod.z.array(zod.z.object({
1003
- field: zod.z.string().describe("Field name to sort by"),
1004
- order: zod.z.enum(["asc", "desc"]).default("desc").describe("Sort direction")
1005
- })).optional().describe("Default sort order for related list views within this form"),
1006
- /** Public form sharing configuration */
1007
- sharing: SharingConfigSchema.optional().describe("Public sharing configuration for this form"),
845
+ var FieldSchema = lazySchema(() => zod.z.object({
846
+ /** Identity */
847
+ name: zod.z.string().regex(/^[a-z_][a-z0-9_]*$/).describe("Machine name (snake_case)").optional(),
848
+ label: zod.z.string().optional().describe("Human readable label"),
849
+ type: FieldType.describe("Field Data Type"),
850
+ description: zod.z.string().optional().describe("Tooltip/Help text"),
851
+ format: zod.z.string().optional().describe("Format string (e.g. email, phone)"),
852
+ /** Storage Layer Mapping */
853
+ columnName: zod.z.string().optional().describe("Physical column name in the target datasource. Defaults to the field key when not set."),
854
+ /** Database Constraints */
855
+ required: zod.z.boolean().default(false).describe("Is required"),
856
+ searchable: zod.z.boolean().default(false).describe("Is searchable"),
857
+ multiple: zod.z.boolean().default(false).describe("Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image."),
858
+ unique: zod.z.boolean().default(false).describe("Is unique constraint"),
859
+ defaultValue: zod.z.unknown().optional().describe("Default value"),
860
+ /** Text/String Constraints */
861
+ maxLength: zod.z.number().optional().describe("Max character length"),
862
+ minLength: zod.z.number().optional().describe("Min character length"),
863
+ /** Number Constraints */
864
+ precision: zod.z.number().optional().describe("Total digits"),
865
+ scale: zod.z.number().optional().describe("Decimal places"),
866
+ min: zod.z.number().optional().describe("Minimum value"),
867
+ max: zod.z.number().optional().describe("Maximum value"),
868
+ /** Selection Options */
869
+ options: zod.z.array(SelectOptionSchema).optional().describe("Static options for select/multiselect"),
1008
870
  /**
1009
- * What happens after a successful submit.
1010
- *
1011
- * - `thank-you` (default) show a confirmation panel
1012
- * - `redirect` send the browser to a URL
1013
- * - `continue` reset the form so another response can be entered
1014
- * - `next-record` advance to the next record (internal queues only)
871
+ * Relationship Config
872
+ *
873
+ * Used by `lookup` and `master_detail` field types to define cross-object references.
874
+ * The `reference` property is **required** for these types — it identifies the target
875
+ * object whose records this field links to. The engine uses `reference` during $expand
876
+ * post-processing to resolve foreign key IDs into full related objects via batch queries.
877
+ *
878
+ * For `master_detail` fields, the parent record controls the lifecycle of child records
879
+ * (e.g., cascade delete). For `lookup` fields, the reference is a soft link.
1015
880
  */
1016
- submitBehavior: zod.z.union([
1017
- zod.z.object({
1018
- kind: zod.z.literal("thank-you"),
1019
- title: zod.z.string().optional(),
1020
- message: zod.z.string().optional()
1021
- }),
1022
- zod.z.object({
1023
- kind: zod.z.literal("redirect"),
1024
- url: zod.z.string(),
1025
- delayMs: zod.z.number().int().min(0).optional()
1026
- }),
1027
- zod.z.object({ kind: zod.z.literal("continue") }),
1028
- zod.z.object({ kind: zod.z.literal("next-record") })
1029
- ]).optional().describe("Post-submit behavior"),
1030
- /** ARIA accessibility attributes */
1031
- aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes for the form view")
1032
- }));
1033
- var ViewSchema = lazySchema(() => zod.z.object({
1034
- list: ListViewSchema.optional(),
1035
- // Default list view
1036
- form: FormViewSchema.optional(),
1037
- // Default form view
1038
- listViews: zod.z.record(zod.z.string(), ListViewSchema).optional().describe("Additional named list views"),
1039
- formViews: zod.z.record(zod.z.string(), FormViewSchema).optional().describe("Additional named form views")
1040
- }));
1041
- function defineView(config) {
1042
- return ViewSchema.parse(config);
1043
- }
1044
- var FieldReferenceSchema = lazySchema(() => zod.z.object({
1045
- $field: zod.z.string().describe("Field Reference/Column Name")
1046
- }));
1047
- lazySchema(() => zod.z.object({
1048
- /** Equal to (default) - SQL: = | MongoDB: $eq */
1049
- $eq: zod.z.any().optional(),
1050
- /** Not equal to - SQL: <> or != | MongoDB: $ne */
1051
- $ne: zod.z.any().optional()
1052
- }));
1053
- lazySchema(() => zod.z.object({
1054
- /** Greater than - SQL: > | MongoDB: $gt */
1055
- $gt: zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema]).optional(),
1056
- /** Greater than or equal to - SQL: >= | MongoDB: $gte */
1057
- $gte: zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema]).optional(),
1058
- /** Less than - SQL: < | MongoDB: $lt */
1059
- $lt: zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema]).optional(),
1060
- /** Less than or equal to - SQL: <= | MongoDB: $lte */
1061
- $lte: zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema]).optional()
1062
- }));
1063
- lazySchema(() => zod.z.object({
1064
- /** In list - SQL: IN (?, ?, ?) | MongoDB: $in */
1065
- $in: zod.z.array(zod.z.any()).optional(),
1066
- /** Not in list - SQL: NOT IN (...) | MongoDB: $nin */
1067
- $nin: zod.z.array(zod.z.any()).optional()
1068
- }));
1069
- lazySchema(() => zod.z.object({
1070
- /** Between (inclusive) - takes [min, max] array */
1071
- $between: zod.z.tuple([
1072
- zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema]),
1073
- zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema])
1074
- ]).optional()
1075
- }));
1076
- lazySchema(() => zod.z.object({
1077
- /** Contains substring - SQL: LIKE %?% | MongoDB: $regex */
1078
- $contains: zod.z.string().optional(),
1079
- /** Does not contain substring - SQL: NOT LIKE %?% | MongoDB: $not: $regex */
1080
- $notContains: zod.z.string().optional(),
1081
- /** Starts with prefix - SQL: LIKE ?% | MongoDB: $regex */
1082
- $startsWith: zod.z.string().optional(),
1083
- /** Ends with suffix - SQL: LIKE %? | MongoDB: $regex */
1084
- $endsWith: zod.z.string().optional()
1085
- }));
1086
- lazySchema(() => zod.z.object({
1087
- /** Is null check - SQL: IS NULL (true) / IS NOT NULL (false) | MongoDB: field: null */
1088
- $null: zod.z.boolean().optional(),
1089
- /** Field exists check (primarily for NoSQL) - MongoDB: $exists */
1090
- $exists: zod.z.boolean().optional()
1091
- }));
1092
- var FieldOperatorsSchema = lazySchema(() => zod.z.object({
1093
- // Equality
1094
- $eq: zod.z.any().optional(),
1095
- $ne: zod.z.any().optional(),
1096
- // Comparison (numeric/date)
1097
- $gt: zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema]).optional(),
1098
- $gte: zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema]).optional(),
1099
- $lt: zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema]).optional(),
1100
- $lte: zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema]).optional(),
1101
- // Set & Range
1102
- $in: zod.z.array(zod.z.any()).optional(),
1103
- $nin: zod.z.array(zod.z.any()).optional(),
1104
- $between: zod.z.tuple([
1105
- zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema]),
1106
- zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema])
1107
- ]).optional(),
1108
- // String-specific
1109
- $contains: zod.z.string().optional(),
1110
- $notContains: zod.z.string().optional(),
1111
- $startsWith: zod.z.string().optional(),
1112
- $endsWith: zod.z.string().optional(),
1113
- // Special
1114
- $null: zod.z.boolean().optional(),
1115
- $exists: zod.z.boolean().optional()
1116
- }));
1117
- var FilterConditionSchema = zod.z.lazy(
1118
- () => zod.z.record(zod.z.string(), zod.z.unknown()).and(
1119
- zod.z.object({
1120
- $and: zod.z.array(FilterConditionSchema).optional(),
1121
- $or: zod.z.array(FilterConditionSchema).optional(),
1122
- $not: FilterConditionSchema.optional()
1123
- })
1124
- )
1125
- );
1126
- lazySchema(() => zod.z.object({
1127
- where: FilterConditionSchema.optional()
1128
- }));
1129
- var NormalizedFilterSchema = zod.z.lazy(
1130
- () => zod.z.object({
1131
- $and: zod.z.array(
1132
- zod.z.union([
1133
- // Field condition: { field: { $op: value } }
1134
- zod.z.record(zod.z.string(), FieldOperatorsSchema),
1135
- // Nested logical group
1136
- NormalizedFilterSchema
1137
- ])
1138
- ).optional(),
1139
- $or: zod.z.array(
1140
- zod.z.union([
1141
- zod.z.record(zod.z.string(), FieldOperatorsSchema),
1142
- NormalizedFilterSchema
1143
- ])
1144
- ).optional(),
1145
- $not: zod.z.union([
1146
- zod.z.record(zod.z.string(), FieldOperatorsSchema),
1147
- NormalizedFilterSchema
1148
- ]).optional()
1149
- })
1150
- );
1151
- var SortNodeSchema = lazySchema(() => zod.z.object({
1152
- field: zod.z.string(),
1153
- order: zod.z.enum(["asc", "desc"]).default("asc")
1154
- }));
1155
- var AggregationFunction = zod.z.enum([
1156
- "count",
1157
- "sum",
1158
- "avg",
1159
- "min",
1160
- "max",
1161
- "count_distinct",
1162
- "array_agg",
1163
- "string_agg"
1164
- ]);
1165
- var DateGranularity = zod.z.enum(["day", "week", "month", "quarter", "year"]);
1166
- var GroupByNodeSchema = lazySchema(() => zod.z.union([
1167
- zod.z.string(),
1168
- zod.z.object({
1169
- field: zod.z.string().describe("Field to group by"),
1170
- dateGranularity: DateGranularity.optional().describe("Bucket date values into uniform periods (day/week/month/quarter/year)"),
1171
- /** Optional alias for the projected group value (defaults to `field`). */
1172
- alias: zod.z.string().optional().describe("Alias for the projected group value")
1173
- })
1174
- ]));
1175
- var AggregationNodeSchema = lazySchema(() => zod.z.object({
1176
- function: AggregationFunction.describe("Aggregation function"),
1177
- field: zod.z.string().optional().describe("Field to aggregate (optional for COUNT(*))"),
1178
- alias: zod.z.string().describe("Result column alias"),
1179
- distinct: zod.z.boolean().optional().describe("Apply DISTINCT before aggregation"),
1180
- filter: FilterConditionSchema.optional().describe("Filter/Condition to apply to the aggregation (FILTER WHERE clause)")
881
+ reference: zod.z.string().optional().describe(
882
+ "Target object name (snake_case) for lookup/master_detail fields. Required for relationship types. Used by $expand to resolve foreign key IDs into full objects."
883
+ ),
884
+ referenceFilters: zod.z.array(zod.z.string()).optional().describe('Filters applied to lookup dialogs (e.g. "active = true")'),
885
+ writeRequiresMasterRead: zod.z.boolean().optional().describe("If true, user needs read access to master record to edit this field"),
886
+ deleteBehavior: zod.z.enum(["set_null", "cascade", "restrict"]).optional().default("set_null").describe("What happens if referenced record is deleted"),
887
+ /** Calculation — CEL formula. Plain string accepted for back-compat; build emits canonical envelope. */
888
+ expression: ExpressionInputSchema.optional().describe("Formula expression (CEL). e.g. F`record.amount * 0.1`"),
889
+ summaryOperations: zod.z.object({
890
+ object: zod.z.string().describe("Source child object name for roll-up"),
891
+ field: zod.z.string().describe("Field on child object to aggregate"),
892
+ function: zod.z.enum(["count", "sum", "min", "max", "avg"]).describe("Aggregation function to apply")
893
+ }).optional().describe("Roll-up summary definition"),
894
+ /** Enhanced Field Type Configurations */
895
+ // Code field config
896
+ language: zod.z.string().optional().describe("Programming language for syntax highlighting (e.g., javascript, python, sql)"),
897
+ theme: zod.z.string().optional().describe("Code editor theme (e.g., dark, light, monokai)"),
898
+ lineNumbers: zod.z.boolean().optional().describe("Show line numbers in code editor"),
899
+ // Rating field config
900
+ maxRating: zod.z.number().optional().describe("Maximum rating value (default: 5)"),
901
+ allowHalf: zod.z.boolean().optional().describe("Allow half-star ratings"),
902
+ // Location field config
903
+ displayMap: zod.z.boolean().optional().describe("Display map widget for location field"),
904
+ allowGeocoding: zod.z.boolean().optional().describe("Allow address-to-coordinate conversion"),
905
+ // Address field config
906
+ addressFormat: zod.z.enum(["us", "uk", "international"]).optional().describe("Address format template"),
907
+ // Color field config
908
+ colorFormat: zod.z.enum(["hex", "rgb", "rgba", "hsl"]).optional().describe("Color value format"),
909
+ allowAlpha: zod.z.boolean().optional().describe("Allow transparency/alpha channel"),
910
+ presetColors: zod.z.array(zod.z.string()).optional().describe("Preset color options"),
911
+ // Slider field config
912
+ step: zod.z.number().optional().describe("Step increment for slider (default: 1)"),
913
+ showValue: zod.z.boolean().optional().describe("Display current value on slider"),
914
+ marks: zod.z.record(zod.z.string(), zod.z.string()).optional().describe('Custom marks/labels at specific values (e.g., {0: "Low", 50: "Medium", 100: "High"})'),
915
+ // QR Code / Barcode field config
916
+ // Note: qrErrorCorrection is only applicable when barcodeFormat='qr'
917
+ // Runtime validation should enforce this constraint
918
+ barcodeFormat: zod.z.enum(["qr", "ean13", "ean8", "code128", "code39", "upca", "upce"]).optional().describe("Barcode format type"),
919
+ qrErrorCorrection: zod.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"'),
920
+ displayValue: zod.z.boolean().optional().describe("Display human-readable value below barcode/QR code"),
921
+ allowScanning: zod.z.boolean().optional().describe("Enable camera scanning for barcode/QR code input"),
922
+ // Currency field config
923
+ currencyConfig: CurrencyConfigSchema.optional().describe("Configuration for currency field type"),
924
+ // Vector field config
925
+ vectorConfig: VectorConfigSchema.optional().describe("Configuration for vector field type (AI/ML embeddings)"),
926
+ // File attachment field config
927
+ fileAttachmentConfig: FileAttachmentConfigSchema.optional().describe("Configuration for file and attachment field types"),
928
+ /** Enhanced Security & Compliance */
929
+ // Encryption configuration
930
+ encryptionConfig: EncryptionConfigSchema.optional().describe("Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS)"),
931
+ // Data masking rules
932
+ maskingRule: MaskingRuleSchema.optional().describe("Data masking rules for PII protection"),
933
+ // Audit trail
934
+ auditTrail: zod.z.boolean().default(false).describe("Enable detailed audit trail for this field (tracks all changes with user and timestamp)"),
935
+ /** Field Dependencies & Relationships */
936
+ // Field dependencies
937
+ dependencies: zod.z.array(zod.z.string()).optional().describe("Array of field names that this field depends on (for formulas, visibility rules, etc.)"),
938
+ /** Computed Field Optimization */
939
+ // Computed field caching
940
+ cached: ComputedFieldCacheSchema.optional().describe("Caching configuration for computed/formula fields"),
941
+ /** Data Quality & Governance */
942
+ // Data quality rules
943
+ dataQuality: DataQualityRulesSchema.optional().describe("Data quality validation and monitoring rules"),
944
+ /** Layout & Grouping */
945
+ group: zod.z.string().optional().describe('Field group name for organizing fields in forms and layouts (e.g., "contact_info", "billing", "system")'),
946
+ /** Conditional Requirements */
947
+ conditionalRequired: ExpressionInputSchema.optional().describe("Predicate (CEL) \u2014 field is required when TRUE. e.g. P`record.status == 'closed_won'`"),
948
+ /** Security & Visibility */
949
+ hidden: zod.z.boolean().default(false).describe("Hidden from default UI"),
950
+ readonly: zod.z.boolean().default(false).describe("Read-only in UI"),
951
+ system: zod.z.boolean().optional().describe("Auto-injected system/audit field (e.g. created_at, updated_by, organization_id). Tools that surface system fields separately from author-declared business fields should branch on this flag."),
952
+ sortable: zod.z.boolean().optional().default(true).describe("Whether field is sortable in list views"),
953
+ inlineHelpText: zod.z.string().optional().describe("Help text displayed below the field in forms"),
954
+ trackFeedHistory: zod.z.boolean().optional().describe("Track field changes in Chatter/activity feed (Salesforce pattern)"),
955
+ caseSensitive: zod.z.boolean().optional().describe("Whether text comparisons are case-sensitive"),
956
+ autonumberFormat: zod.z.string().optional().describe('Auto-number display format pattern (e.g., "CASE-{0000}")'),
957
+ /** Indexing */
958
+ index: zod.z.boolean().default(false).describe("Create standard database index"),
959
+ externalId: zod.z.boolean().default(false).describe("Is external ID for upsert operations")
1181
960
  }));
1182
- var JoinType = zod.z.enum(["inner", "left", "right", "full"]);
1183
- var JoinStrategy = zod.z.enum(["auto", "database", "hash", "loop"]);
1184
- var JoinNodeSchema = zod.z.lazy(
1185
- () => zod.z.object({
1186
- type: JoinType.describe("Join type"),
1187
- strategy: JoinStrategy.optional().describe("Execution strategy hint"),
1188
- object: zod.z.string().describe("Object/table to join"),
1189
- alias: zod.z.string().optional().describe("Table alias"),
1190
- on: FilterConditionSchema.describe("Join condition"),
1191
- subquery: zod.z.lazy(() => QuerySchema).optional().describe("Subquery instead of object")
1192
- })
1193
- );
1194
- var WindowFunction = zod.z.enum([
1195
- "row_number",
1196
- "rank",
1197
- "dense_rank",
1198
- "percent_rank",
1199
- "lag",
1200
- "lead",
1201
- "first_value",
1202
- "last_value",
1203
- "sum",
1204
- "avg",
1205
- "count",
1206
- "min",
1207
- "max"
961
+ var HttpMethod = zod.z.enum([
962
+ "GET",
963
+ "POST",
964
+ "PUT",
965
+ "DELETE",
966
+ "PATCH",
967
+ "HEAD",
968
+ "OPTIONS"
1208
969
  ]);
1209
- var WindowSpecSchema = lazySchema(() => zod.z.object({
1210
- partitionBy: zod.z.array(zod.z.string()).optional().describe("PARTITION BY fields"),
1211
- orderBy: zod.z.array(SortNodeSchema).optional().describe("ORDER BY specification"),
1212
- frame: zod.z.object({
1213
- type: zod.z.enum(["rows", "range"]).optional(),
1214
- start: zod.z.string().optional().describe('Frame start (e.g., "UNBOUNDED PRECEDING", "1 PRECEDING")'),
1215
- end: zod.z.string().optional().describe('Frame end (e.g., "CURRENT ROW", "1 FOLLOWING")')
1216
- }).optional().describe("Window frame specification")
1217
- }));
1218
- var WindowFunctionNodeSchema = lazySchema(() => zod.z.object({
1219
- function: WindowFunction.describe("Window function name"),
1220
- field: zod.z.string().optional().describe("Field to operate on (for aggregate window functions)"),
1221
- alias: zod.z.string().describe("Result column alias"),
1222
- over: WindowSpecSchema.describe("Window specification (OVER clause)")
970
+ var HttpMethodSchema = lazySchema(() => zod.z.enum(["GET", "POST", "PUT", "PATCH", "DELETE"]));
971
+ var HttpRequestSchema = lazySchema(() => zod.z.object({
972
+ url: zod.z.string().describe("API endpoint URL"),
973
+ method: HttpMethodSchema.optional().default("GET").describe("HTTP method"),
974
+ headers: zod.z.record(zod.z.string(), zod.z.string()).optional().describe("Custom HTTP headers"),
975
+ params: zod.z.record(zod.z.string(), zod.z.unknown()).optional().describe("Query parameters"),
976
+ body: zod.z.unknown().optional().describe("Request body for POST/PUT/PATCH")
1223
977
  }));
1224
- var FieldNodeSchema = zod.z.lazy(
1225
- () => zod.z.union([
978
+ lazySchema(() => zod.z.object({
979
+ /**
980
+ * Enable CORS
981
+ */
982
+ enabled: zod.z.boolean().default(true).describe("Enable CORS"),
983
+ /**
984
+ * Allowed origins (* for all)
985
+ */
986
+ origins: zod.z.union([
1226
987
  zod.z.string(),
1227
- // Primitive field: "name"
1228
- zod.z.object({
1229
- field: zod.z.string(),
1230
- // Relationship field: "owner"
1231
- fields: zod.z.array(FieldNodeSchema).optional(),
1232
- // Nested select: ["name", "email"]
1233
- alias: zod.z.string().optional()
1234
- })
1235
- ])
1236
- );
1237
- var FullTextSearchSchema = lazySchema(() => zod.z.object({
1238
- query: zod.z.string().describe("Search query text"),
1239
- fields: zod.z.array(zod.z.string()).optional().describe("Fields to search in (if not specified, searches all text fields)"),
1240
- fuzzy: zod.z.boolean().optional().default(false).describe("Enable fuzzy matching (tolerates typos)"),
1241
- operator: zod.z.enum(["and", "or"]).optional().default("or").describe("Logical operator between terms"),
1242
- boost: zod.z.record(zod.z.string(), zod.z.number()).optional().describe("Field-specific relevance boosting (field name -> boost factor)"),
1243
- minScore: zod.z.number().optional().describe("Minimum relevance score threshold"),
1244
- language: zod.z.string().optional().describe('Language for text analysis (e.g., "en", "zh", "es")'),
1245
- highlight: zod.z.boolean().optional().default(false).describe("Enable search result highlighting")
1246
- }));
1247
- var BaseQuerySchema = zod.z.object({
1248
- /** Target Entity */
1249
- object: zod.z.string().describe("Object name (e.g. account)"),
1250
- /** Select Clause */
1251
- fields: zod.z.array(FieldNodeSchema).optional().describe("Fields to retrieve"),
1252
- /** Where Clause (Filtering) */
1253
- where: FilterConditionSchema.optional().describe("Filtering criteria (WHERE)"),
1254
- /** Full-Text Search */
1255
- search: FullTextSearchSchema.optional().describe("Full-text search configuration ($search parameter)"),
1256
- /** Order By Clause (Sorting) */
1257
- orderBy: zod.z.array(SortNodeSchema).optional().describe("Sorting instructions (ORDER BY)"),
1258
- /** Pagination */
1259
- limit: zod.z.number().optional().describe("Max records to return (LIMIT)"),
1260
- offset: zod.z.number().optional().describe("Records to skip (OFFSET)"),
1261
- top: zod.z.number().optional().describe("Alias for limit (OData compatibility)"),
1262
- cursor: zod.z.record(zod.z.string(), zod.z.unknown()).optional().describe("Cursor for keyset pagination"),
1263
- /** Joins */
1264
- joins: zod.z.array(JoinNodeSchema).optional().describe("Explicit Table Joins"),
1265
- /** Aggregations */
1266
- aggregations: zod.z.array(AggregationNodeSchema).optional().describe("Aggregation functions"),
1267
- /** Group By Clause */
1268
- groupBy: zod.z.array(GroupByNodeSchema).optional().describe("GROUP BY targets (strings or `{field, dateGranularity?}` objects for date bucketing)"),
1269
- /** Having Clause */
1270
- having: FilterConditionSchema.optional().describe("HAVING clause for aggregation filtering"),
1271
- /** Window Functions */
1272
- windowFunctions: zod.z.array(WindowFunctionNodeSchema).optional().describe("Window functions with OVER clause"),
1273
- /** Subquery flag */
1274
- distinct: zod.z.boolean().optional().describe("SELECT DISTINCT flag")
1275
- });
1276
- var QuerySchema = lazySchema(() => BaseQuerySchema.extend({
1277
- expand: zod.z.lazy(() => zod.z.record(zod.z.string(), QuerySchema)).optional().describe(
1278
- "Recursive relation loading map. Keys are lookup/master_detail field names; values are nested QueryAST objects that control select, filter, sort, and further expansion on the related object. The engine resolves expand via batch $in queries (driver-agnostic) with a default max depth of 3."
1279
- )
988
+ zod.z.array(zod.z.string())
989
+ ]).default("*").describe("Allowed origins (* for all)"),
990
+ /**
991
+ * Allowed HTTP methods
992
+ */
993
+ methods: zod.z.array(HttpMethod).optional().describe("Allowed HTTP methods"),
994
+ /**
995
+ * Allow credentials (cookies, authorization headers)
996
+ */
997
+ credentials: zod.z.boolean().default(false).describe("Allow credentials (cookies, authorization headers)"),
998
+ /**
999
+ * Preflight cache duration in seconds
1000
+ */
1001
+ maxAge: zod.z.number().int().optional().describe("Preflight cache duration in seconds")
1280
1002
  }));
1281
-
1282
- // src/ui/dashboard.zod.ts
1283
- var WidgetColorVariantSchema = lazySchema(() => zod.z.enum([
1284
- "default",
1285
- "blue",
1286
- "teal",
1287
- "orange",
1288
- "purple",
1289
- "success",
1290
- "warning",
1291
- "danger"
1292
- ]).describe("Widget color variant"));
1293
- var WidgetActionTypeSchema = lazySchema(() => zod.z.enum([
1294
- "script",
1295
- "url",
1296
- "modal",
1297
- "flow",
1298
- "api"
1299
- ]).describe("Widget action type"));
1300
- var DashboardHeaderActionSchema = lazySchema(() => zod.z.object({
1301
- /** Action label */
1302
- label: I18nLabelSchema.describe("Action button label"),
1303
- /** Action URL or target */
1304
- actionUrl: zod.z.string().describe("URL or target for the action"),
1305
- /** Action type */
1306
- actionType: WidgetActionTypeSchema.optional().describe("Type of action"),
1307
- /** Icon identifier */
1308
- icon: zod.z.string().optional().describe("Icon identifier for the action button")
1309
- }).describe("Dashboard header action"));
1310
- var DashboardHeaderSchema = lazySchema(() => zod.z.object({
1311
- /** Whether to show the dashboard title in the header */
1312
- showTitle: zod.z.boolean().default(true).describe("Show dashboard title in header"),
1313
- /** Whether to show the dashboard description in the header */
1314
- showDescription: zod.z.boolean().default(true).describe("Show dashboard description in header"),
1315
- /** Action buttons displayed in the header */
1316
- actions: zod.z.array(DashboardHeaderActionSchema).optional().describe("Header action buttons")
1317
- }).describe("Dashboard header configuration"));
1318
- var WidgetMeasureSchema = lazySchema(() => zod.z.object({
1319
- /** Value field to aggregate */
1320
- valueField: zod.z.string().describe("Field to aggregate"),
1321
- /** Aggregate function */
1322
- aggregate: zod.z.enum(["count", "sum", "avg", "min", "max"]).default("count").describe("Aggregate function"),
1323
- /** Display label for the measure */
1324
- label: I18nLabelSchema.optional().describe("Measure display label"),
1325
- /** Number format string (e.g., "$0,0.00", "0.0%") */
1326
- format: zod.z.string().optional().describe("Number format string")
1327
- }).describe("Widget measure definition"));
1328
- var DashboardWidgetSchema = lazySchema(() => zod.z.object({
1329
- /** Unique widget identifier (snake_case, used for targetWidgets references) */
1330
- id: SnakeCaseIdentifierSchema.describe("Unique widget identifier (snake_case)"),
1331
- /** Widget Title */
1332
- title: I18nLabelSchema.optional().describe("Widget title"),
1333
- /** Widget Description (displayed below the title) */
1334
- description: I18nLabelSchema.optional().describe("Widget description text below the header"),
1335
- /** Visualization Type */
1336
- type: ChartTypeSchema.default("metric").describe("Visualization type"),
1337
- /** Chart Configuration */
1338
- chartConfig: ChartConfigSchema.optional().describe("Chart visualization configuration"),
1339
- /** Color variant for the widget (e.g., KPI card accent color) */
1340
- colorVariant: WidgetColorVariantSchema.optional().describe("Widget color variant for theming"),
1003
+ lazySchema(() => zod.z.object({
1341
1004
  /**
1342
- * Runtime capability gate — widget is hidden when the named object is
1343
- * not registered in the runtime's SchemaRegistry. Mirrors
1344
- * `NavigationItem.requiresObject` so cloud-only widgets (e.g. those
1345
- * keyed on `sys_app` / `sys_package_installation`) silently disappear
1346
- * in single-environment runtimes instead of rendering a 404 error.
1347
- *
1348
- * Defaults to the widget's `object` field when not explicitly set —
1349
- * any widget that targets an object will be gated on that object's
1350
- * registration. Set this to a different value (or empty string to
1351
- * disable) when the widget should appear even if its `object` is
1352
- * unavailable.
1005
+ * Enable rate limiting
1353
1006
  */
1354
- requiresObject: zod.z.string().optional().describe("Hide the widget unless the named object is registered"),
1007
+ enabled: zod.z.boolean().default(false).describe("Enable rate limiting"),
1355
1008
  /**
1356
- * Runtime capability gate — widget is hidden when the named kernel
1357
- * service is not registered. Mirrors `NavigationItem.requiresService`.
1009
+ * Time window in milliseconds
1358
1010
  */
1359
- requiresService: zod.z.string().optional().describe("Hide the widget unless the named kernel service is registered"),
1360
- /** Action URL for the widget header action button */
1361
- actionUrl: zod.z.string().optional().describe("URL or target for the widget action button"),
1362
- /** Action type for the widget header action button */
1363
- actionType: WidgetActionTypeSchema.optional().describe("Type of action for the widget action button"),
1364
- /** Icon for the widget header action button */
1365
- actionIcon: zod.z.string().optional().describe("Icon identifier for the widget action button"),
1366
- /** Data Source Object */
1367
- object: zod.z.string().optional().describe("Data source object name"),
1368
- /** Data Filter (MongoDB-style FilterCondition) */
1369
- filter: FilterConditionSchema.optional().describe("Data filter criteria"),
1011
+ windowMs: zod.z.number().int().default(6e4).describe("Time window in milliseconds"),
1012
+ /**
1013
+ * Max requests per window
1014
+ */
1015
+ maxRequests: zod.z.number().int().default(100).describe("Max requests per window")
1016
+ }));
1017
+ lazySchema(() => zod.z.object({
1370
1018
  /**
1371
- * Period-over-period comparison primitive.
1372
- *
1373
- * When set, the renderer runs a second query against a shifted time
1374
- * window and surfaces the delta (metric widgets show a secondary
1375
- * value + arrow; chart widgets render a muted/dashed overlay series).
1376
- *
1377
- * - `'previousPeriod'` — auto-detect the comparison window from the
1378
- * widget's `filter` date macros (e.g. `{current_month_start}` →
1379
- * `{last_month_start}`). Falls back to no comparison when the
1380
- * filter contains no resolvable date range.
1381
- * - `'previousYear'` — shift the resolved filter window back by one
1382
- * calendar year.
1383
- * - `{ offset: '7d' | '1M' | '1y' }` — shift by an explicit
1384
- * ISO-8601-like duration. Units: `d` (days), `w` (weeks),
1385
- * `M` (months), `y` (years).
1019
+ * URL path to serve from
1386
1020
  */
1387
- compareTo: zod.z.union([
1388
- zod.z.literal("previousPeriod"),
1389
- zod.z.literal("previousYear"),
1390
- zod.z.object({
1391
- offset: zod.z.string().regex(/^\d+[dwMy]$/, 'Offset must match <N>(d|w|M|y), e.g. "7d", "1M", "1y"')
1392
- })
1393
- ]).optional().describe("Period-over-period comparison window"),
1394
- /** Category Field (X-Axis / Group By) */
1395
- categoryField: zod.z.string().optional().describe("Field for grouping (X-Axis)"),
1021
+ path: zod.z.string().describe("URL path to serve from"),
1396
1022
  /**
1397
- * Date Bucketing Granularity for `categoryField`
1398
- *
1399
- * When set and `categoryField` references a date/datetime field, the engine
1400
- * buckets values into uniform `day` / `week` / `month` / `quarter` / `year`
1401
- * periods server-side (PostgreSQL `date_trunc`, MySQL `date_format`, SQLite
1402
- * `strftime`, MongoDB `$dateTrunc`; falls back to in-memory ISO-8601
1403
- * bucketing otherwise). Without this, raw timestamps are grouped verbatim
1404
- * which typically yields one bucket per row — making time-series charts
1405
- * appear flat.
1406
- *
1407
- * Mirrors the `dateGranularity` shape of {@link GroupByNodeSchema}.
1023
+ * Physical directory to serve
1408
1024
  */
1409
- categoryGranularity: DateGranularity.optional().describe("Bucket categoryField date values into day/week/month/quarter/year periods"),
1410
- /** Value Field (Y-Axis) */
1411
- valueField: zod.z.string().optional().describe("Field for values (Y-Axis)"),
1412
- /** Aggregate operation */
1413
- aggregate: zod.z.enum(["count", "sum", "avg", "min", "max"]).optional().default("count").describe("Aggregate function"),
1414
- /** Multi-measure definitions for pivot/matrix widgets */
1415
- measures: zod.z.array(WidgetMeasureSchema).optional().describe("Multiple measures for pivot/matrix analysis"),
1416
- /**
1417
- * Layout Position (React-Grid-Layout style)
1418
- * x: column (0-11)
1419
- * y: row
1420
- * w: width (1-12)
1421
- * h: height
1025
+ directory: zod.z.string().describe("Physical directory to serve"),
1026
+ /**
1027
+ * Cache-Control header value
1422
1028
  */
1423
- layout: zod.z.object({
1424
- x: zod.z.number(),
1425
- y: zod.z.number(),
1426
- w: zod.z.number(),
1427
- h: zod.z.number()
1428
- }).describe("Grid layout position"),
1429
- /** Widget specific options (colors, legend, etc.) */
1430
- options: zod.z.unknown().optional().describe("Widget specific configuration"),
1431
- /** Responsive layout overrides per breakpoint */
1432
- responsive: ResponsiveConfigSchema.optional().describe("Responsive layout configuration"),
1433
- /** ARIA accessibility attributes */
1434
- aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes")
1029
+ cacheControl: zod.z.string().optional().describe("Cache-Control header value")
1435
1030
  }));
1436
- var GlobalFilterOptionsFromSchema = lazySchema(() => zod.z.object({
1437
- /** Source object name to fetch options from */
1438
- object: zod.z.string().describe("Source object name"),
1439
- /** Field to use as option value */
1440
- valueField: zod.z.string().describe("Field to use as option value"),
1441
- /** Field to use as option label */
1442
- labelField: zod.z.string().describe("Field to use as option label"),
1443
- /** Optional filter to apply when fetching options */
1444
- filter: FilterConditionSchema.optional().describe("Filter to apply to source object")
1445
- }).describe("Dynamic filter options from object"));
1446
- var GlobalFilterSchema = lazySchema(() => zod.z.object({
1031
+
1032
+ // src/ui/view.zod.ts
1033
+ var ViewDataSchema = lazySchema(() => zod.z.discriminatedUnion("provider", [
1034
+ zod.z.object({
1035
+ provider: zod.z.literal("object"),
1036
+ object: zod.z.string().describe("Target object name")
1037
+ }),
1038
+ zod.z.object({
1039
+ provider: zod.z.literal("api"),
1040
+ read: HttpRequestSchema.optional().describe("Configuration for fetching data"),
1041
+ write: HttpRequestSchema.optional().describe("Configuration for submitting data (for forms/editable tables)")
1042
+ }),
1043
+ zod.z.object({
1044
+ provider: zod.z.literal("value"),
1045
+ items: zod.z.array(zod.z.unknown()).describe("Static data array")
1046
+ }),
1047
+ /**
1048
+ * Schema-bound data source — used by standalone forms whose data is
1049
+ * shaped by a JSON Schema (or Zod-derived schema) rather than by an
1050
+ * ObjectQL object. Powers the metadata editor, action input dialogs,
1051
+ * and any Form that is not bound to a CRUD object.
1052
+ */
1053
+ zod.z.object({
1054
+ provider: zod.z.literal("schema"),
1055
+ /** Schema identifier (e.g. metadata type name "report"). Resolved at runtime against /meta entries. */
1056
+ schemaId: zod.z.string().describe("Schema identifier \u2014 typically the metadata type name"),
1057
+ /** Optional inline JSON Schema; when omitted the runtime resolves schemaId from the server. */
1058
+ schema: zod.z.record(zod.z.string(), zod.z.unknown()).optional().describe("Inline JSON Schema (Draft 2020-12). Optional when schemaId is resolvable.")
1059
+ })
1060
+ ]));
1061
+ var ViewFilterRuleSchema = lazySchema(() => zod.z.object({
1447
1062
  /** Field name to filter on */
1448
1063
  field: zod.z.string().describe("Field name to filter on"),
1449
- /** Display label for the filter */
1450
- label: I18nLabelSchema.optional().describe("Display label for the filter"),
1451
- /** Filter input type */
1452
- type: zod.z.enum(["text", "select", "date", "number", "lookup"]).optional().describe("Filter input type"),
1453
- /** Static options for select/lookup filters */
1454
- options: zod.z.array(zod.z.object({
1455
- value: zod.z.union([zod.z.string(), zod.z.number(), zod.z.boolean()]).describe("Option value"),
1456
- label: I18nLabelSchema
1457
- })).optional().describe("Static filter options"),
1458
- /** Dynamic data binding for filter options */
1459
- optionsFrom: GlobalFilterOptionsFromSchema.optional().describe("Dynamic filter options from object"),
1460
- /** Default filter value */
1461
- defaultValue: zod.z.union([zod.z.string(), zod.z.number(), zod.z.boolean()]).optional().describe("Default filter value"),
1462
- /** Filter application scope */
1463
- scope: zod.z.enum(["dashboard", "widget"]).default("dashboard").describe("Filter application scope"),
1464
- /** Widget IDs to apply this filter to (when scope is widget) */
1465
- targetWidgets: zod.z.array(zod.z.string()).optional().describe("Widget IDs to apply this filter to")
1064
+ /** Filter operator */
1065
+ operator: zod.z.string().describe("Filter operator (e.g. equals, not_equals, contains, this_quarter)"),
1066
+ /** Filter value (optional for unary operators like is_null, this_quarter) */
1067
+ value: zod.z.union([zod.z.string(), zod.z.number(), zod.z.boolean(), zod.z.null(), zod.z.array(zod.z.union([zod.z.string(), zod.z.number()]))]).optional().describe("Filter value")
1068
+ }).describe("View filter rule"));
1069
+ var ColumnSummarySchema = lazySchema(() => zod.z.enum([
1070
+ "none",
1071
+ "count",
1072
+ "count_empty",
1073
+ "count_filled",
1074
+ "count_unique",
1075
+ "percent_empty",
1076
+ "percent_filled",
1077
+ "sum",
1078
+ "avg",
1079
+ "min",
1080
+ "max"
1081
+ ]).describe("Aggregation function for column footer summary"));
1082
+ var ListColumnSchema = lazySchema(() => zod.z.object({
1083
+ field: zod.z.string().describe("Field name (snake_case)"),
1084
+ label: I18nLabelSchema.optional().describe("Display label override"),
1085
+ width: zod.z.number().positive().optional().describe("Column width in pixels"),
1086
+ align: zod.z.enum(["left", "center", "right"]).optional().describe("Text alignment"),
1087
+ hidden: zod.z.boolean().optional().describe("Hide column by default"),
1088
+ sortable: zod.z.boolean().optional().describe("Allow sorting by this column"),
1089
+ resizable: zod.z.boolean().optional().describe("Allow resizing this column"),
1090
+ wrap: zod.z.boolean().optional().describe("Allow text wrapping"),
1091
+ type: zod.z.string().optional().describe('Renderer type override (e.g., "currency", "date")'),
1092
+ /** Pinning (Airtable-style frozen columns) */
1093
+ pinned: zod.z.enum(["left", "right"]).optional().describe("Pin/freeze column to left or right side"),
1094
+ /** Column Footer Summary (Airtable-style aggregation) */
1095
+ summary: ColumnSummarySchema.optional().describe("Footer aggregation function for this column"),
1096
+ /** Interaction */
1097
+ link: zod.z.boolean().optional().describe("Functions as the primary navigation link (triggers View navigation)"),
1098
+ action: zod.z.string().optional().describe("Registered Action ID to execute when clicked")
1466
1099
  }));
1467
- var DashboardSchema = lazySchema(() => zod.z.object({
1468
- /** Machine name */
1469
- name: SnakeCaseIdentifierSchema.describe("Dashboard unique name"),
1470
- /** Display label */
1471
- label: I18nLabelSchema.describe("Dashboard label"),
1472
- /** Description */
1473
- description: I18nLabelSchema.optional().describe("Dashboard description"),
1474
- /** Structured header configuration */
1475
- header: DashboardHeaderSchema.optional().describe("Dashboard header configuration"),
1476
- /** Collection of widgets */
1477
- widgets: zod.z.array(DashboardWidgetSchema).describe("Widgets to display"),
1478
- /** Grid column count — defaults to 12 for a standard 12-column grid */
1479
- columns: zod.z.number().int().min(1).max(24).optional().describe("Number of grid columns (default 12)"),
1480
- /** Grid gap in Tailwind spacing units (e.g. 4 = 1rem) */
1481
- gap: zod.z.number().int().min(0).optional().describe("Grid gap in Tailwind spacing units"),
1482
- /** Auto-refresh */
1483
- refreshInterval: zod.z.number().optional().describe("Auto-refresh interval in seconds"),
1484
- /** Dashboard Date Range (Global time filter) */
1485
- dateRange: zod.z.object({
1486
- field: zod.z.string().optional().describe("Default date field name for time-based filtering"),
1487
- defaultRange: zod.z.enum(["today", "yesterday", "this_week", "last_week", "this_month", "last_month", "this_quarter", "last_quarter", "this_year", "last_year", "last_7_days", "last_30_days", "last_90_days", "custom"]).default("this_month").describe("Default date range preset"),
1488
- allowCustomRange: zod.z.boolean().default(true).describe("Allow users to pick a custom date range")
1489
- }).optional().describe("Global dashboard date range filter configuration"),
1490
- /** Global Filters */
1491
- globalFilters: zod.z.array(GlobalFilterSchema).optional().describe("Global filters that apply to all widgets in the dashboard"),
1492
- /** ARIA accessibility attributes */
1493
- aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes"),
1494
- /** Performance optimization settings */
1495
- performance: PerformanceConfigSchema.optional().describe("Performance optimization settings")
1100
+ var SelectionConfigSchema = lazySchema(() => zod.z.object({
1101
+ type: zod.z.enum(["none", "single", "multiple"]).default("none").describe("Selection mode")
1102
+ }));
1103
+ var PaginationConfigSchema = lazySchema(() => zod.z.object({
1104
+ pageSize: zod.z.number().int().positive().default(25).describe("Number of records per page"),
1105
+ pageSizeOptions: zod.z.array(zod.z.number().int().positive()).optional().describe("Available page size options")
1106
+ }));
1107
+ var RowHeightSchema = lazySchema(() => zod.z.enum([
1108
+ "compact",
1109
+ // Minimal padding, single line
1110
+ "short",
1111
+ // Reduced padding
1112
+ "medium",
1113
+ // Default padding
1114
+ "tall",
1115
+ // Extra padding, multi-line preview
1116
+ "extra_tall"
1117
+ // Maximum padding, rich content preview
1118
+ ]).describe("Row height / density setting for list view"));
1119
+ var GroupingFieldSchema = lazySchema(() => zod.z.object({
1120
+ field: zod.z.string().describe("Field name to group by"),
1121
+ order: zod.z.enum(["asc", "desc"]).default("asc").describe("Group sort order"),
1122
+ collapsed: zod.z.boolean().default(false).describe("Collapse groups by default")
1123
+ }));
1124
+ var GroupingConfigSchema = lazySchema(() => zod.z.object({
1125
+ fields: zod.z.array(GroupingFieldSchema).min(1).describe("Fields to group by (supports up to 3 levels)")
1126
+ }).describe("Record grouping configuration"));
1127
+ var GalleryConfigSchema = lazySchema(() => zod.z.object({
1128
+ coverField: zod.z.string().optional().describe("Attachment/image field to display as card cover"),
1129
+ coverFit: zod.z.enum(["cover", "contain"]).default("cover").describe("Image fit mode for card cover"),
1130
+ cardSize: zod.z.enum(["small", "medium", "large"]).default("medium").describe("Card size in gallery view"),
1131
+ titleField: zod.z.string().optional().describe("Field to display as card title"),
1132
+ visibleFields: zod.z.array(zod.z.string()).optional().describe("Fields to display on card body")
1133
+ }).describe("Gallery/card view configuration"));
1134
+ var TimelineConfigSchema = lazySchema(() => zod.z.object({
1135
+ startDateField: zod.z.string().describe("Field for timeline item start date"),
1136
+ endDateField: zod.z.string().optional().describe("Field for timeline item end date"),
1137
+ titleField: zod.z.string().describe("Field to display as timeline item title"),
1138
+ groupByField: zod.z.string().optional().describe("Field to group timeline rows"),
1139
+ colorField: zod.z.string().optional().describe("Field to determine item color"),
1140
+ scale: zod.z.enum(["hour", "day", "week", "month", "quarter", "year"]).default("week").describe("Default timeline scale")
1141
+ }).describe("Timeline view configuration"));
1142
+ var ViewSharingSchema = lazySchema(() => zod.z.object({
1143
+ type: zod.z.enum(["personal", "collaborative"]).default("collaborative").describe("View ownership type"),
1144
+ lockedBy: zod.z.string().optional().describe("User who locked the view configuration")
1145
+ }).describe("View sharing and access configuration"));
1146
+ var RowColorConfigSchema = lazySchema(() => zod.z.object({
1147
+ field: zod.z.string().describe("Field to derive color from (typically a select/status field)"),
1148
+ colors: zod.z.record(zod.z.string(), zod.z.string()).optional().describe("Map of field value to color (hex/token)")
1149
+ }).describe("Row color configuration based on field values"));
1150
+ var VisualizationTypeSchema = lazySchema(() => zod.z.enum([
1151
+ "grid",
1152
+ "kanban",
1153
+ "gallery",
1154
+ "calendar",
1155
+ "timeline",
1156
+ "gantt",
1157
+ "map"
1158
+ ]).describe("Visualization type that users can switch to"));
1159
+ var UserActionsConfigSchema = lazySchema(() => zod.z.object({
1160
+ sort: zod.z.boolean().default(true).describe("Allow users to sort records"),
1161
+ search: zod.z.boolean().default(true).describe("Allow users to search records"),
1162
+ filter: zod.z.boolean().default(true).describe("Allow users to filter records"),
1163
+ rowHeight: zod.z.boolean().default(true).describe("Allow users to toggle row height/density"),
1164
+ addRecordForm: zod.z.boolean().default(false).describe("Add records through a form instead of inline"),
1165
+ buttons: zod.z.array(zod.z.string()).optional().describe("Custom action button IDs to show in the toolbar")
1166
+ }).describe("User action toggles for the view toolbar"));
1167
+ var AppearanceConfigSchema = lazySchema(() => zod.z.object({
1168
+ showDescription: zod.z.boolean().default(true).describe("Show the view description text"),
1169
+ allowedVisualizations: zod.z.array(VisualizationTypeSchema).optional().describe('Whitelist of visualization types users can switch between (e.g. ["grid", "gallery", "kanban"])')
1170
+ }).describe("Appearance and visualization configuration"));
1171
+ var ViewTabSchema = lazySchema(() => zod.z.object({
1172
+ name: SnakeCaseIdentifierSchema.describe("Tab identifier (snake_case)"),
1173
+ label: I18nLabelSchema.optional().describe("Display label"),
1174
+ icon: zod.z.string().optional().describe("Tab icon name"),
1175
+ view: zod.z.string().optional().describe("Referenced list view name from listViews"),
1176
+ filter: zod.z.array(ViewFilterRuleSchema).optional().describe("Tab-specific filter criteria"),
1177
+ order: zod.z.number().int().min(0).optional().describe("Tab display order"),
1178
+ pinned: zod.z.boolean().default(false).describe("Pin tab (cannot be removed by users)"),
1179
+ isDefault: zod.z.boolean().default(false).describe("Set as the default active tab"),
1180
+ visible: zod.z.boolean().default(true).describe("Tab visibility")
1181
+ }).describe("Tab configuration for multi-tab view interface"));
1182
+ var AddRecordConfigSchema = lazySchema(() => zod.z.object({
1183
+ enabled: zod.z.boolean().default(true).describe("Show the add record entry point"),
1184
+ position: zod.z.enum(["top", "bottom", "both"]).default("bottom").describe("Position of the add record button"),
1185
+ mode: zod.z.enum(["inline", "form", "modal"]).default("inline").describe("How to add a new record"),
1186
+ formView: zod.z.string().optional().describe('Named form view to use when mode is "form" or "modal"')
1187
+ }).describe("Add record entry point configuration"));
1188
+ var KanbanConfigSchema = lazySchema(() => zod.z.object({
1189
+ groupByField: zod.z.string().describe("Field to group columns by (usually status/select)"),
1190
+ summarizeField: zod.z.string().optional().describe("Field to sum at top of column (e.g. amount)"),
1191
+ columns: zod.z.array(zod.z.string()).describe("Fields to show on cards")
1496
1192
  }));
1497
- var Dashboard = {
1498
- create: (config) => DashboardSchema.parse(config)
1499
- };
1500
- var ReportType = zod.z.enum([
1501
- "tabular",
1502
- // Simple list
1503
- "summary",
1504
- // Grouped by row
1505
- "matrix",
1506
- // Grouped by row and column
1507
- "joined"
1508
- // Joined multiple blocks
1509
- ]);
1510
- var ReportColumnSchema = lazySchema(() => zod.z.object({
1511
- field: zod.z.string().describe("Field name"),
1512
- label: I18nLabelSchema.optional().describe("Override label"),
1513
- aggregate: zod.z.enum(["sum", "avg", "max", "min", "count", "unique"]).optional().describe("Aggregation function"),
1514
- /** Responsive visibility/priority per breakpoint */
1515
- responsive: ResponsiveConfigSchema.optional().describe("Responsive visibility for this column")
1193
+ var ListChartConfigSchema = lazySchema(() => zod.z.object({
1194
+ chartType: zod.z.enum(["bar", "line", "pie", "area", "scatter"]).default("bar").describe("Chart visualisation type"),
1195
+ xAxisField: zod.z.string().describe("Field used as the X axis / category dimension"),
1196
+ yAxisFields: zod.z.array(zod.z.string()).min(1).describe("Field(s) used as the Y axis / measures"),
1197
+ aggregation: zod.z.enum(["sum", "avg", "count", "min", "max"]).optional().describe("Aggregation function applied to Y axis fields"),
1198
+ groupByField: zod.z.string().optional().describe("Optional field used to split / stack the chart")
1199
+ }).describe("List chart view configuration"));
1200
+ var CalendarConfigSchema = lazySchema(() => zod.z.object({
1201
+ startDateField: zod.z.string(),
1202
+ endDateField: zod.z.string().optional(),
1203
+ titleField: zod.z.string(),
1204
+ colorField: zod.z.string().optional()
1516
1205
  }));
1517
- var ReportGroupingSchema = lazySchema(() => zod.z.object({
1518
- field: zod.z.string().describe("Field to group by"),
1519
- sortOrder: zod.z.enum(["asc", "desc"]).default("asc"),
1520
- dateGranularity: zod.z.enum(["day", "week", "month", "quarter", "year"]).optional().describe("For date fields")
1206
+ var GanttConfigSchema = lazySchema(() => zod.z.object({
1207
+ startDateField: zod.z.string(),
1208
+ endDateField: zod.z.string(),
1209
+ titleField: zod.z.string(),
1210
+ progressField: zod.z.string().optional(),
1211
+ dependenciesField: zod.z.string().optional()
1521
1212
  }));
1522
- var ReportChartSchema = lazySchema(() => ChartConfigSchema.extend({
1523
- /** Report-specific chart configuration */
1524
- xAxis: zod.z.string().describe("Grouping field for X-Axis"),
1525
- yAxis: zod.z.string().describe("Summary field for Y-Axis"),
1526
- groupBy: zod.z.string().optional().describe("Additional grouping field")
1213
+ var NavigationModeSchema = lazySchema(() => zod.z.enum([
1214
+ "page",
1215
+ // Navigate to a new route (default)
1216
+ "drawer",
1217
+ // Open details in a side drawer/panel
1218
+ "modal",
1219
+ // Open details in a modal dialog
1220
+ "split",
1221
+ // Show details side-by-side with the list (master-detail)
1222
+ "popover",
1223
+ // Show details in a popover (lightweight)
1224
+ "new_window",
1225
+ // Open in new browser tab/window
1226
+ "none"
1227
+ // No navigation (read-only list)
1228
+ ]));
1229
+ var NavigationConfigSchema = lazySchema(() => zod.z.object({
1230
+ mode: NavigationModeSchema.default("page"),
1231
+ /** Target View Config */
1232
+ view: zod.z.string().optional().describe('Name of the form view to use for details (e.g. "summary_view", "edit_form")'),
1233
+ /** Interaction Triggers */
1234
+ preventNavigation: zod.z.boolean().default(false).describe("Disable standard navigation entirely"),
1235
+ openNewTab: zod.z.boolean().default(false).describe("Force open in new tab (applies to page mode)"),
1236
+ /** Dimensions (for modal/drawer) */
1237
+ width: zod.z.union([zod.z.string(), zod.z.number()]).optional().describe('Width of the drawer/modal (e.g. "600px", "50%")')
1527
1238
  }));
1528
- var JoinedReportBlockSchema = lazySchema(() => zod.z.object({
1529
- /** Stable id for the block (used as react key, telemetry, deeplinks). */
1530
- name: SnakeCaseIdentifierSchema,
1531
- /** Human label shown above the block. Falls back to `name`. */
1239
+ var ListViewSchema = lazySchema(() => zod.z.object({
1240
+ name: SnakeCaseIdentifierSchema.optional().describe("Internal view name (lowercase snake_case)"),
1532
1241
  label: I18nLabelSchema.optional(),
1533
- /** Optional description rendered below the label. */
1534
- description: I18nLabelSchema.optional(),
1535
- /** Block report type — `joined` is intentionally excluded (no recursion). */
1536
- type: zod.z.enum(["tabular", "summary", "matrix"]).default("tabular"),
1537
- /** Object queried by this block. Defaults to the container's objectName. */
1538
- objectName: zod.z.string().optional(),
1539
- /** Columns to display / aggregate. Same shape as `Report.columns`. */
1540
- columns: zod.z.array(ReportColumnSchema),
1541
- /** Row groupings (same shape as `Report.groupingsDown`). */
1542
- groupingsDown: zod.z.array(ReportGroupingSchema).optional(),
1543
- /** Column groupings — only meaningful when `type: matrix`. */
1544
- groupingsAcross: zod.z.array(ReportGroupingSchema).optional(),
1545
- /** Block-specific filter, ANDed with the container filter at render time. */
1546
- filter: FilterConditionSchema.optional(),
1547
- /** Optional inline chart configuration. */
1548
- chart: ReportChartSchema.optional()
1549
- }));
1550
- var ReportSchema = lazySchema(() => zod.z.object({
1551
- /** Identity */
1552
- name: SnakeCaseIdentifierSchema.describe("Report unique name"),
1553
- label: I18nLabelSchema.describe("Report label"),
1554
- description: I18nLabelSchema.optional(),
1555
- /** Data Source */
1556
- objectName: zod.z.string().describe("Primary object"),
1557
- /** Report Configuration */
1558
- type: ReportType.default("tabular").describe("Report format type"),
1559
- columns: zod.z.array(ReportColumnSchema).describe("Columns to display"),
1560
- /** Grouping (for Summary/Matrix) */
1561
- groupingsDown: zod.z.array(ReportGroupingSchema).optional().describe("Row groupings"),
1562
- groupingsAcross: zod.z.array(ReportGroupingSchema).optional().describe("Column groupings (Matrix only)"),
1563
- /** Filtering (MongoDB-style FilterCondition) */
1564
- filter: FilterConditionSchema.optional().describe("Filter criteria"),
1565
- /** Visualization */
1566
- chart: ReportChartSchema.optional().describe("Embedded chart configuration"),
1242
+ // Display label override (supports i18n)
1243
+ type: zod.z.enum([
1244
+ "grid",
1245
+ // Standard Data Table
1246
+ "kanban",
1247
+ // Board / Columns
1248
+ "gallery",
1249
+ // Card Deck / Masonry
1250
+ "calendar",
1251
+ // Monthly/Weekly/Daily
1252
+ "timeline",
1253
+ // Chronological Stream (Feed)
1254
+ "gantt",
1255
+ // Project Timeline
1256
+ "map",
1257
+ // Geospatial
1258
+ "chart"
1259
+ // Aggregate visualisation
1260
+ ]).default("grid"),
1261
+ /** Data Source Configuration */
1262
+ data: ViewDataSchema.optional().describe('Data source configuration (defaults to "object" provider)'),
1263
+ /** Shared Query Config */
1264
+ columns: zod.z.union([
1265
+ zod.z.array(zod.z.string()),
1266
+ // Legacy: simple field names
1267
+ zod.z.array(ListColumnSchema)
1268
+ // Enhanced: detailed column config
1269
+ ]).describe("Fields to display as columns"),
1270
+ filter: zod.z.array(ViewFilterRuleSchema).optional().describe("Filter criteria (JSON Rules)"),
1271
+ sort: zod.z.union([
1272
+ zod.z.string(),
1273
+ //Legacy "field desc"
1274
+ zod.z.array(zod.z.object({
1275
+ field: zod.z.string(),
1276
+ order: zod.z.enum(["asc", "desc"])
1277
+ }))
1278
+ ]).optional(),
1279
+ /** Search & Filter */
1280
+ searchableFields: zod.z.array(zod.z.string()).optional().describe("Fields enabled for search"),
1281
+ filterableFields: zod.z.array(zod.z.string()).optional().describe("Fields enabled for end-user filtering in the top bar"),
1282
+ /** Grid Features */
1283
+ resizable: zod.z.boolean().optional().describe("Enable column resizing"),
1284
+ striped: zod.z.boolean().optional().describe("Striped row styling"),
1285
+ bordered: zod.z.boolean().optional().describe("Show borders"),
1286
+ compactToolbar: zod.z.boolean().optional().describe("Collapse Group/Color/Density/Hide-fields into a single View settings popover"),
1287
+ /** Selection */
1288
+ selection: SelectionConfigSchema.optional().describe("Row selection configuration"),
1289
+ /** Navigation / Interaction */
1290
+ navigation: NavigationConfigSchema.optional().describe("Configuration for item click navigation (page, drawer, modal, etc.)"),
1291
+ /** Pagination */
1292
+ pagination: PaginationConfigSchema.optional().describe("Pagination configuration"),
1293
+ /** Type Specific Config */
1294
+ kanban: KanbanConfigSchema.optional(),
1295
+ calendar: CalendarConfigSchema.optional(),
1296
+ gantt: GanttConfigSchema.optional(),
1297
+ gallery: GalleryConfigSchema.optional(),
1298
+ timeline: TimelineConfigSchema.optional(),
1299
+ chart: ListChartConfigSchema.optional(),
1300
+ /** View Metadata (Airtable-style view management) */
1301
+ description: I18nLabelSchema.optional().describe("View description for documentation/tooltips"),
1302
+ sharing: ViewSharingSchema.optional().describe("View sharing and access configuration"),
1303
+ /** Row Height / Density (Airtable-style) */
1304
+ rowHeight: RowHeightSchema.optional().describe("Row height / density setting"),
1305
+ /** Record Grouping (Airtable-style) */
1306
+ grouping: GroupingConfigSchema.optional().describe("Group records by one or more fields"),
1307
+ /** Row Color (Airtable-style) */
1308
+ rowColor: RowColorConfigSchema.optional().describe("Color rows based on field value"),
1309
+ /** Field Visibility & Ordering per View (Airtable-style) */
1310
+ hiddenFields: zod.z.array(zod.z.string()).optional().describe("Fields to hide in this specific view"),
1311
+ fieldOrder: zod.z.array(zod.z.string()).optional().describe("Explicit field display order for this view"),
1312
+ /** Row & Bulk Actions */
1313
+ rowActions: zod.z.array(zod.z.string()).optional().describe("Actions available for individual row items"),
1314
+ bulkActions: zod.z.array(zod.z.string()).optional().describe("Actions available when multiple rows are selected"),
1315
+ bulkActionDefs: zod.z.array(zod.z.record(zod.z.string(), zod.z.any())).optional().describe("Rich bulk action definitions (schema-driven, executed via BulkActionDialog)"),
1316
+ /** Performance */
1317
+ virtualScroll: zod.z.boolean().optional().describe("Enable virtual scrolling for large datasets"),
1318
+ /** Conditional Formatting */
1319
+ conditionalFormatting: zod.z.array(zod.z.object({
1320
+ condition: ExpressionInputSchema.describe("Predicate (CEL) to evaluate."),
1321
+ style: zod.z.record(zod.z.string(), zod.z.string()).describe("CSS styles to apply when condition is true")
1322
+ })).optional().describe("Conditional formatting rules for list rows"),
1323
+ /** Inline Edit */
1324
+ inlineEdit: zod.z.boolean().optional().describe("Allow inline editing of records directly in the list view"),
1325
+ /** Export */
1326
+ exportOptions: zod.z.array(zod.z.enum(["csv", "xlsx", "pdf", "json"])).optional().describe("Available export format options"),
1327
+ /** User Actions (Airtable Interface parity) */
1328
+ userActions: UserActionsConfigSchema.optional().describe("User action toggles for the view toolbar"),
1329
+ /** Appearance (Airtable Interface parity) */
1330
+ appearance: AppearanceConfigSchema.optional().describe("Appearance and visualization configuration"),
1331
+ /** Tabs (Airtable Interface parity) */
1332
+ tabs: zod.z.array(ViewTabSchema).optional().describe("Tab definitions for multi-tab view interface"),
1333
+ /** Add Record (Airtable Interface parity) */
1334
+ addRecord: AddRecordConfigSchema.optional().describe("Add record entry point configuration"),
1335
+ /** Record Count Display (Airtable Interface parity) */
1336
+ showRecordCount: zod.z.boolean().optional().describe("Show record count at the bottom of the list"),
1337
+ /** Advanced: Allow Printing (Airtable Interface parity) */
1338
+ allowPrinting: zod.z.boolean().optional().describe("Allow users to print the view"),
1339
+ /** Empty State */
1340
+ emptyState: zod.z.object({
1341
+ title: I18nLabelSchema.optional(),
1342
+ message: I18nLabelSchema.optional(),
1343
+ icon: zod.z.string().optional()
1344
+ }).optional().describe("Empty state configuration when no records found"),
1567
1345
  /** ARIA accessibility attributes */
1568
- aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes"),
1346
+ aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes for the list view"),
1347
+ /** Responsive layout overrides per breakpoint */
1348
+ responsive: ResponsiveConfigSchema.optional().describe("Responsive layout configuration"),
1569
1349
  /** Performance optimization settings */
1570
- performance: PerformanceConfigSchema.optional().describe("Performance optimization settings"),
1350
+ performance: PerformanceConfigSchema.optional().describe("Performance optimization settings")
1351
+ }));
1352
+ var FormFieldSchema = lazySchema(() => zod.z.object({
1353
+ /** Field name (snake_case) */
1354
+ field: zod.z.string().describe("Field name (snake_case)"),
1355
+ /** Field type — reuses Data.FieldType. When set, widget is auto-inferred (can be overridden). */
1356
+ type: FieldType.optional().describe("Field type (auto-infers widget if omitted)"),
1357
+ /** Select/multiselect options — only needed when type=select/multiselect/radio/checkboxes */
1358
+ options: zod.z.array(SelectOptionSchema).optional().describe("Options for select/multiselect/radio/checkboxes fields"),
1359
+ /** Reference object for lookup/master_detail fields */
1360
+ reference: zod.z.string().optional().describe("Target object name for lookup/master_detail fields"),
1361
+ /** Text constraints */
1362
+ maxLength: zod.z.number().optional().describe("Maximum character length (for text/textarea/email/url/phone)"),
1363
+ minLength: zod.z.number().optional().describe("Minimum character length"),
1364
+ /** Number constraints */
1365
+ min: zod.z.number().optional().describe("Minimum value (for number/currency/percent/slider)"),
1366
+ max: zod.z.number().optional().describe("Maximum value"),
1367
+ precision: zod.z.number().optional().describe("Total digits (for number/currency)"),
1368
+ scale: zod.z.number().optional().describe("Decimal places"),
1369
+ /** Multi-value flag */
1370
+ multiple: zod.z.boolean().optional().describe("Allow multiple values (for select/lookup/file/image)"),
1371
+ /** UI overrides */
1372
+ label: I18nLabelSchema.optional().describe("Display label override"),
1373
+ placeholder: I18nLabelSchema.optional().describe("Placeholder text"),
1374
+ helpText: I18nLabelSchema.optional().describe("Help/hint text"),
1375
+ readonly: zod.z.boolean().optional().describe("Read-only override"),
1376
+ immutable: zod.z.boolean().optional().describe("Editable on create, locked once the record exists (e.g. machine names)."),
1377
+ required: zod.z.boolean().optional().describe("Required override"),
1378
+ hidden: zod.z.boolean().optional().describe("Hidden override"),
1379
+ colSpan: zod.z.number().int().min(1).max(4).optional().describe("Column span in grid layout (1-4)"),
1380
+ /** Custom widget override — only needed when auto-inference is insufficient */
1381
+ widget: zod.z.string().optional().describe("Custom widget/component name (overrides type-based inference)"),
1382
+ /** For `code` fields: source language (e.g. 'javascript', 'sql', 'json', 'typescript', 'expression', 'cel'). Drives syntax highlighting. */
1383
+ language: zod.z.string().optional().describe("Code editor language (for type=code)"),
1384
+ /**
1385
+ * Sub-fields for `composite` / `repeater` types — declares the inner shape
1386
+ * of an embedded sub-object (composite) or each row of an embedded
1387
+ * sub-object array (repeater). Recursive: composite/repeater can nest.
1388
+ * Ignored for all other field types.
1389
+ *
1390
+ * Use `lookup` / `master_detail` instead when the children are independent
1391
+ * records with their own IDs in a separate object/table.
1392
+ */
1393
+ fields: zod.z.array(zod.z.lazy(() => FormFieldSchema)).optional().describe("Sub-fields for composite/repeater types"),
1394
+ dependsOn: zod.z.string().optional().describe("Parent field name for cascading"),
1395
+ visibleOn: ExpressionInputSchema.optional().describe("Visibility predicate (CEL).")
1396
+ }));
1397
+ var FormSectionSchema = lazySchema(() => zod.z.object({
1398
+ label: I18nLabelSchema.optional(),
1399
+ description: zod.z.string().optional().describe("Optional description rendered under the section header."),
1400
+ collapsible: zod.z.boolean().default(false),
1401
+ collapsed: zod.z.boolean().default(false),
1402
+ visibleOn: ExpressionInputSchema.optional().describe("Visibility predicate (CEL). Hides the whole section when false."),
1403
+ columns: zod.z.union([
1404
+ zod.z.enum(["1", "2", "3", "4"]),
1405
+ zod.z.literal(1),
1406
+ zod.z.literal(2),
1407
+ zod.z.literal(3),
1408
+ zod.z.literal(4)
1409
+ ]).default(1).transform((val) => typeof val === "string" ? parseInt(val) : val),
1410
+ fields: zod.z.array(zod.z.union([
1411
+ zod.z.string(),
1412
+ // Legacy: simple field name
1413
+ FormFieldSchema
1414
+ // Enhanced: detailed field config
1415
+ ]))
1416
+ }));
1417
+ var FormViewSchema = lazySchema(() => zod.z.object({
1418
+ type: zod.z.enum([
1419
+ "simple",
1420
+ // Single column or sections
1421
+ "tabbed",
1422
+ // Tabs
1423
+ "wizard",
1424
+ // Step by step
1425
+ "split",
1426
+ // Master-Detail split
1427
+ "drawer",
1428
+ // Side panel
1429
+ "modal"
1430
+ // Dialog
1431
+ ]).default("simple"),
1432
+ /** Data Source Configuration */
1433
+ data: ViewDataSchema.optional().describe('Data source configuration (defaults to "object" provider)'),
1434
+ sections: zod.z.array(FormSectionSchema).optional(),
1435
+ // For simple layout
1436
+ groups: zod.z.array(FormSectionSchema).optional(),
1437
+ // Legacy support -> alias to sections
1438
+ /** Default Sort for Related Lists (e.g., sort child records by date) */
1439
+ defaultSort: zod.z.array(zod.z.object({
1440
+ field: zod.z.string().describe("Field name to sort by"),
1441
+ order: zod.z.enum(["asc", "desc"]).default("desc").describe("Sort direction")
1442
+ })).optional().describe("Default sort order for related list views within this form"),
1443
+ /** Public form sharing configuration */
1444
+ sharing: SharingConfigSchema.optional().describe("Public sharing configuration for this form"),
1571
1445
  /**
1572
- * Joined report blocks only meaningful when `type: 'joined'`.
1573
- *
1574
- * A joined report renders multiple independent sub-reports stacked
1575
- * vertically in the same view. Each block declares its own object,
1576
- * columns, groupings and filter. The container-level `filter` is ANDed
1577
- * into every block at query time so a top-level scope (e.g. "this
1578
- * quarter") flows down without per-block duplication.
1446
+ * What happens after a successful submit.
1579
1447
  *
1580
- * Renderers must ignore `blocks` when `type !== 'joined'`.
1448
+ * - `thank-you` (default) show a confirmation panel
1449
+ * - `redirect` — send the browser to a URL
1450
+ * - `continue` — reset the form so another response can be entered
1451
+ * - `next-record` — advance to the next record (internal queues only)
1581
1452
  */
1582
- blocks: zod.z.array(JoinedReportBlockSchema).optional().describe("Sub-reports for type=joined")
1453
+ submitBehavior: zod.z.union([
1454
+ zod.z.object({
1455
+ kind: zod.z.literal("thank-you"),
1456
+ title: zod.z.string().optional(),
1457
+ message: zod.z.string().optional()
1458
+ }),
1459
+ zod.z.object({
1460
+ kind: zod.z.literal("redirect"),
1461
+ url: zod.z.string(),
1462
+ delayMs: zod.z.number().int().min(0).optional()
1463
+ }),
1464
+ zod.z.object({ kind: zod.z.literal("continue") }),
1465
+ zod.z.object({ kind: zod.z.literal("next-record") })
1466
+ ]).optional().describe("Post-submit behavior"),
1467
+ /** ARIA accessibility attributes */
1468
+ aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes for the form view")
1469
+ }));
1470
+ var ViewSchema = lazySchema(() => zod.z.object({
1471
+ list: ListViewSchema.optional(),
1472
+ // Default list view
1473
+ form: FormViewSchema.optional(),
1474
+ // Default form view
1475
+ listViews: zod.z.record(zod.z.string(), ListViewSchema).optional().describe("Additional named list views"),
1476
+ formViews: zod.z.record(zod.z.string(), FormViewSchema).optional().describe("Additional named form views")
1477
+ }));
1478
+ function defineView(config) {
1479
+ return ViewSchema.parse(config);
1480
+ }
1481
+ function defineForm(config) {
1482
+ const { schemaId, ...rest } = config;
1483
+ return FormViewSchema.parse({
1484
+ ...rest,
1485
+ data: { provider: "schema", schemaId }
1486
+ });
1487
+ }
1488
+ var FieldReferenceSchema = lazySchema(() => zod.z.object({
1489
+ $field: zod.z.string().describe("Field Reference/Column Name")
1583
1490
  }));
1584
- var Report = {
1585
- create: (config) => ReportSchema.parse(config)
1586
- };
1587
- var EncryptionAlgorithmSchema = lazySchema(() => zod.z.enum([
1588
- "aes-256-gcm",
1589
- "aes-256-cbc",
1590
- "chacha20-poly1305"
1591
- ]).describe("Supported encryption algorithm"));
1592
- var KeyManagementProviderSchema = lazySchema(() => zod.z.enum([
1593
- "local",
1594
- "aws-kms",
1595
- "azure-key-vault",
1596
- "gcp-kms",
1597
- "hashicorp-vault"
1598
- ]).describe("Key management service provider"));
1599
- var KeyRotationPolicySchema = lazySchema(() => zod.z.object({
1600
- enabled: zod.z.boolean().default(false).describe("Enable automatic key rotation"),
1601
- frequencyDays: zod.z.number().min(1).default(90).describe("Rotation frequency in days"),
1602
- retainOldVersions: zod.z.number().default(3).describe("Number of old key versions to retain"),
1603
- autoRotate: zod.z.boolean().default(true).describe("Automatically rotate without manual approval")
1604
- }).describe("Policy for automatic encryption key rotation"));
1605
- var EncryptionConfigSchema = lazySchema(() => zod.z.object({
1606
- enabled: zod.z.boolean().default(false).describe("Enable field-level encryption"),
1607
- algorithm: EncryptionAlgorithmSchema.default("aes-256-gcm").describe("Encryption algorithm"),
1608
- keyManagement: zod.z.object({
1609
- provider: KeyManagementProviderSchema.describe("Key management service provider"),
1610
- keyId: zod.z.string().optional().describe("Key identifier in the provider"),
1611
- rotationPolicy: KeyRotationPolicySchema.optional().describe("Key rotation policy")
1612
- }).describe("Key management configuration"),
1613
- scope: zod.z.enum(["field", "record", "table", "database"]).describe("Encryption scope level"),
1614
- deterministicEncryption: zod.z.boolean().default(false).describe("Allows equality queries on encrypted data"),
1615
- searchableEncryption: zod.z.boolean().default(false).describe("Allows search on encrypted data")
1616
- }).describe("Field-level encryption configuration"));
1617
1491
  lazySchema(() => zod.z.object({
1618
- fieldName: zod.z.string().describe("Name of the field to encrypt"),
1619
- encryptionConfig: EncryptionConfigSchema.describe("Encryption settings for this field"),
1620
- indexable: zod.z.boolean().default(false).describe("Allow indexing on encrypted field")
1621
- }).describe("Per-field encryption assignment"));
1622
- var MaskingStrategySchema = lazySchema(() => zod.z.enum([
1623
- "redact",
1624
- // Complete redaction: ****
1625
- "partial",
1626
- // Partial masking: 138****5678
1627
- "hash",
1628
- // Hash value: sha256(value)
1629
- "tokenize",
1630
- // Tokenization: token-12345
1631
- "randomize",
1632
- // Randomize: generate random value
1633
- "nullify",
1634
- // Null value: null
1635
- "substitute"
1636
- // Substitute with dummy data
1637
- ]).describe("Data masking strategy for PII protection"));
1638
- var MaskingRuleSchema = lazySchema(() => zod.z.object({
1639
- field: zod.z.string().describe("Field name to apply masking to"),
1640
- strategy: MaskingStrategySchema.describe("Masking strategy to use"),
1641
- pattern: zod.z.string().optional().describe("Regex pattern for partial masking"),
1642
- preserveFormat: zod.z.boolean().default(true).describe("Keep the original data format after masking"),
1643
- preserveLength: zod.z.boolean().default(true).describe("Keep the original data length after masking"),
1644
- roles: zod.z.array(zod.z.string()).optional().describe("Roles that see masked data"),
1645
- exemptRoles: zod.z.array(zod.z.string()).optional().describe("Roles that see unmasked data")
1646
- }).describe("Masking rule for a single field"));
1492
+ /** Equal to (default) - SQL: = | MongoDB: $eq */
1493
+ $eq: zod.z.any().optional(),
1494
+ /** Not equal to - SQL: <> or != | MongoDB: $ne */
1495
+ $ne: zod.z.any().optional()
1496
+ }));
1647
1497
  lazySchema(() => zod.z.object({
1648
- enabled: zod.z.boolean().default(false).describe("Enable data masking"),
1649
- rules: zod.z.array(MaskingRuleSchema).describe("List of field-level masking rules"),
1650
- auditUnmasking: zod.z.boolean().default(true).describe("Log when masked data is accessed unmasked")
1651
- }).describe("Top-level data masking configuration for PII protection"));
1652
-
1653
- // src/data/field.zod.ts
1654
- var FieldType = zod.z.enum([
1655
- // Core Text
1656
- "text",
1657
- "textarea",
1658
- "email",
1659
- "url",
1660
- "phone",
1661
- "password",
1662
- // Rich Content
1663
- "markdown",
1664
- "html",
1665
- "richtext",
1666
- // Numbers
1667
- "number",
1668
- "currency",
1669
- "percent",
1670
- // Date & Time
1671
- "date",
1672
- "datetime",
1673
- "time",
1674
- // Logic
1675
- "boolean",
1676
- "toggle",
1677
- // Toggle is a distinct UI from checkbox
1678
- // Selection
1679
- "select",
1680
- // Single select dropdown
1681
- "multiselect",
1682
- // Multi select (often tags)
1683
- "radio",
1684
- // Radio group
1685
- "checkboxes",
1686
- // Checkbox group
1687
- // Relational
1688
- "lookup",
1689
- "master_detail",
1690
- // Dynamic reference
1691
- "tree",
1692
- // Hierarchical reference
1693
- // Media
1694
- "image",
1695
- "file",
1696
- "avatar",
1697
- "video",
1698
- "audio",
1699
- // Calculated / System
1700
- "formula",
1701
- "summary",
1702
- "autonumber",
1703
- // Enhanced Types
1704
- "location",
1705
- // GPS coordinates
1706
- "address",
1707
- // Structured address
1708
- "code",
1709
- // Code editor (JSON/SQL/JS)
1710
- "json",
1711
- // Structured JSON data
1712
- "color",
1713
- // Color picker
1714
- "rating",
1715
- // Star rating
1716
- "slider",
1717
- // Numeric slider
1718
- "signature",
1719
- // Digital signature
1720
- "qrcode",
1721
- // QR code / Barcode
1722
- "progress",
1723
- // Progress bar
1724
- "tags",
1725
- // Simple tag list
1726
- // AI/ML Types
1727
- "vector"
1728
- // Vector embeddings for AI/ML (semantic search, RAG)
1729
- ]);
1730
- var SelectOptionSchema = lazySchema(() => zod.z.object({
1731
- label: zod.z.string().describe("Display label (human-readable, any case allowed)"),
1732
- value: SystemIdentifierSchema.describe("Stored value (lowercase machine identifier)"),
1733
- color: zod.z.string().optional().describe("Color code for badges/charts"),
1734
- default: zod.z.boolean().optional().describe("Is default option")
1498
+ /** Greater than - SQL: > | MongoDB: $gt */
1499
+ $gt: zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema]).optional(),
1500
+ /** Greater than or equal to - SQL: >= | MongoDB: $gte */
1501
+ $gte: zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema]).optional(),
1502
+ /** Less than - SQL: < | MongoDB: $lt */
1503
+ $lt: zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema]).optional(),
1504
+ /** Less than or equal to - SQL: <= | MongoDB: $lte */
1505
+ $lte: zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema]).optional()
1506
+ }));
1507
+ lazySchema(() => zod.z.object({
1508
+ /** In list - SQL: IN (?, ?, ?) | MongoDB: $in */
1509
+ $in: zod.z.array(zod.z.any()).optional(),
1510
+ /** Not in list - SQL: NOT IN (...) | MongoDB: $nin */
1511
+ $nin: zod.z.array(zod.z.any()).optional()
1735
1512
  }));
1736
1513
  lazySchema(() => zod.z.object({
1737
- latitude: zod.z.number().min(-90).max(90).describe("Latitude coordinate"),
1738
- longitude: zod.z.number().min(-180).max(180).describe("Longitude coordinate"),
1739
- altitude: zod.z.number().optional().describe("Altitude in meters"),
1740
- accuracy: zod.z.number().optional().describe("Accuracy in meters")
1514
+ /** Between (inclusive) - takes [min, max] array */
1515
+ $between: zod.z.tuple([
1516
+ zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema]),
1517
+ zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema])
1518
+ ]).optional()
1741
1519
  }));
1742
- var CurrencyConfigSchema = lazySchema(() => zod.z.object({
1743
- precision: zod.z.number().int().min(0).max(10).default(2).describe("Decimal precision (default: 2)"),
1744
- currencyMode: zod.z.enum(["dynamic", "fixed"]).default("dynamic").describe("Currency mode: dynamic (user selectable) or fixed (single currency)"),
1745
- defaultCurrency: zod.z.string().length(3).default("CNY").describe("Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)")
1520
+ lazySchema(() => zod.z.object({
1521
+ /** Contains substring - SQL: LIKE %?% | MongoDB: $regex */
1522
+ $contains: zod.z.string().optional(),
1523
+ /** Does not contain substring - SQL: NOT LIKE %?% | MongoDB: $not: $regex */
1524
+ $notContains: zod.z.string().optional(),
1525
+ /** Starts with prefix - SQL: LIKE ?% | MongoDB: $regex */
1526
+ $startsWith: zod.z.string().optional(),
1527
+ /** Ends with suffix - SQL: LIKE %? | MongoDB: $regex */
1528
+ $endsWith: zod.z.string().optional()
1746
1529
  }));
1747
1530
  lazySchema(() => zod.z.object({
1748
- value: zod.z.number().describe("Monetary amount"),
1749
- currency: zod.z.string().length(3).describe("Currency code (ISO 4217)")
1531
+ /** Is null check - SQL: IS NULL (true) / IS NOT NULL (false) | MongoDB: field: null */
1532
+ $null: zod.z.boolean().optional(),
1533
+ /** Field exists check (primarily for NoSQL) - MongoDB: $exists */
1534
+ $exists: zod.z.boolean().optional()
1535
+ }));
1536
+ var FieldOperatorsSchema = lazySchema(() => zod.z.object({
1537
+ // Equality
1538
+ $eq: zod.z.any().optional(),
1539
+ $ne: zod.z.any().optional(),
1540
+ // Comparison (numeric/date)
1541
+ $gt: zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema]).optional(),
1542
+ $gte: zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema]).optional(),
1543
+ $lt: zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema]).optional(),
1544
+ $lte: zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema]).optional(),
1545
+ // Set & Range
1546
+ $in: zod.z.array(zod.z.any()).optional(),
1547
+ $nin: zod.z.array(zod.z.any()).optional(),
1548
+ $between: zod.z.tuple([
1549
+ zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema]),
1550
+ zod.z.union([zod.z.number(), zod.z.date(), FieldReferenceSchema])
1551
+ ]).optional(),
1552
+ // String-specific
1553
+ $contains: zod.z.string().optional(),
1554
+ $notContains: zod.z.string().optional(),
1555
+ $startsWith: zod.z.string().optional(),
1556
+ $endsWith: zod.z.string().optional(),
1557
+ // Special
1558
+ $null: zod.z.boolean().optional(),
1559
+ $exists: zod.z.boolean().optional()
1560
+ }));
1561
+ var FilterConditionSchema = zod.z.lazy(
1562
+ () => zod.z.record(zod.z.string(), zod.z.unknown()).and(
1563
+ zod.z.object({
1564
+ $and: zod.z.array(FilterConditionSchema).optional(),
1565
+ $or: zod.z.array(FilterConditionSchema).optional(),
1566
+ $not: FilterConditionSchema.optional()
1567
+ })
1568
+ )
1569
+ );
1570
+ lazySchema(() => zod.z.object({
1571
+ where: FilterConditionSchema.optional()
1572
+ }));
1573
+ var NormalizedFilterSchema = zod.z.lazy(
1574
+ () => zod.z.object({
1575
+ $and: zod.z.array(
1576
+ zod.z.union([
1577
+ // Field condition: { field: { $op: value } }
1578
+ zod.z.record(zod.z.string(), FieldOperatorsSchema),
1579
+ // Nested logical group
1580
+ NormalizedFilterSchema
1581
+ ])
1582
+ ).optional(),
1583
+ $or: zod.z.array(
1584
+ zod.z.union([
1585
+ zod.z.record(zod.z.string(), FieldOperatorsSchema),
1586
+ NormalizedFilterSchema
1587
+ ])
1588
+ ).optional(),
1589
+ $not: zod.z.union([
1590
+ zod.z.record(zod.z.string(), FieldOperatorsSchema),
1591
+ NormalizedFilterSchema
1592
+ ]).optional()
1593
+ })
1594
+ );
1595
+ var SortNodeSchema = lazySchema(() => zod.z.object({
1596
+ field: zod.z.string(),
1597
+ order: zod.z.enum(["asc", "desc"]).default("asc")
1598
+ }));
1599
+ var AggregationFunction = zod.z.enum([
1600
+ "count",
1601
+ "sum",
1602
+ "avg",
1603
+ "min",
1604
+ "max",
1605
+ "count_distinct",
1606
+ "array_agg",
1607
+ "string_agg"
1608
+ ]);
1609
+ var DateGranularity = zod.z.enum(["day", "week", "month", "quarter", "year"]);
1610
+ var GroupByNodeSchema = lazySchema(() => zod.z.union([
1611
+ zod.z.string(),
1612
+ zod.z.object({
1613
+ field: zod.z.string().describe("Field to group by"),
1614
+ dateGranularity: DateGranularity.optional().describe("Bucket date values into uniform periods (day/week/month/quarter/year)"),
1615
+ /** Optional alias for the projected group value (defaults to `field`). */
1616
+ alias: zod.z.string().optional().describe("Alias for the projected group value")
1617
+ })
1618
+ ]));
1619
+ var AggregationNodeSchema = lazySchema(() => zod.z.object({
1620
+ function: AggregationFunction.describe("Aggregation function"),
1621
+ field: zod.z.string().optional().describe("Field to aggregate (optional for COUNT(*))"),
1622
+ alias: zod.z.string().describe("Result column alias"),
1623
+ distinct: zod.z.boolean().optional().describe("Apply DISTINCT before aggregation"),
1624
+ filter: FilterConditionSchema.optional().describe("Filter/Condition to apply to the aggregation (FILTER WHERE clause)")
1625
+ }));
1626
+ var JoinType = zod.z.enum(["inner", "left", "right", "full"]);
1627
+ var JoinStrategy = zod.z.enum(["auto", "database", "hash", "loop"]);
1628
+ var JoinNodeSchema = zod.z.lazy(
1629
+ () => zod.z.object({
1630
+ type: JoinType.describe("Join type"),
1631
+ strategy: JoinStrategy.optional().describe("Execution strategy hint"),
1632
+ object: zod.z.string().describe("Object/table to join"),
1633
+ alias: zod.z.string().optional().describe("Table alias"),
1634
+ on: FilterConditionSchema.describe("Join condition"),
1635
+ subquery: zod.z.lazy(() => QuerySchema).optional().describe("Subquery instead of object")
1636
+ })
1637
+ );
1638
+ var WindowFunction = zod.z.enum([
1639
+ "row_number",
1640
+ "rank",
1641
+ "dense_rank",
1642
+ "percent_rank",
1643
+ "lag",
1644
+ "lead",
1645
+ "first_value",
1646
+ "last_value",
1647
+ "sum",
1648
+ "avg",
1649
+ "count",
1650
+ "min",
1651
+ "max"
1652
+ ]);
1653
+ var WindowSpecSchema = lazySchema(() => zod.z.object({
1654
+ partitionBy: zod.z.array(zod.z.string()).optional().describe("PARTITION BY fields"),
1655
+ orderBy: zod.z.array(SortNodeSchema).optional().describe("ORDER BY specification"),
1656
+ frame: zod.z.object({
1657
+ type: zod.z.enum(["rows", "range"]).optional(),
1658
+ start: zod.z.string().optional().describe('Frame start (e.g., "UNBOUNDED PRECEDING", "1 PRECEDING")'),
1659
+ end: zod.z.string().optional().describe('Frame end (e.g., "CURRENT ROW", "1 FOLLOWING")')
1660
+ }).optional().describe("Window frame specification")
1661
+ }));
1662
+ var WindowFunctionNodeSchema = lazySchema(() => zod.z.object({
1663
+ function: WindowFunction.describe("Window function name"),
1664
+ field: zod.z.string().optional().describe("Field to operate on (for aggregate window functions)"),
1665
+ alias: zod.z.string().describe("Result column alias"),
1666
+ over: WindowSpecSchema.describe("Window specification (OVER clause)")
1667
+ }));
1668
+ var FieldNodeSchema = zod.z.lazy(
1669
+ () => zod.z.union([
1670
+ zod.z.string(),
1671
+ // Primitive field: "name"
1672
+ zod.z.object({
1673
+ field: zod.z.string(),
1674
+ // Relationship field: "owner"
1675
+ fields: zod.z.array(FieldNodeSchema).optional(),
1676
+ // Nested select: ["name", "email"]
1677
+ alias: zod.z.string().optional()
1678
+ })
1679
+ ])
1680
+ );
1681
+ var FullTextSearchSchema = lazySchema(() => zod.z.object({
1682
+ query: zod.z.string().describe("Search query text"),
1683
+ fields: zod.z.array(zod.z.string()).optional().describe("Fields to search in (if not specified, searches all text fields)"),
1684
+ fuzzy: zod.z.boolean().optional().default(false).describe("Enable fuzzy matching (tolerates typos)"),
1685
+ operator: zod.z.enum(["and", "or"]).optional().default("or").describe("Logical operator between terms"),
1686
+ boost: zod.z.record(zod.z.string(), zod.z.number()).optional().describe("Field-specific relevance boosting (field name -> boost factor)"),
1687
+ minScore: zod.z.number().optional().describe("Minimum relevance score threshold"),
1688
+ language: zod.z.string().optional().describe('Language for text analysis (e.g., "en", "zh", "es")'),
1689
+ highlight: zod.z.boolean().optional().default(false).describe("Enable search result highlighting")
1690
+ }));
1691
+ var BaseQuerySchema = zod.z.object({
1692
+ /** Target Entity */
1693
+ object: zod.z.string().describe("Object name (e.g. account)"),
1694
+ /** Select Clause */
1695
+ fields: zod.z.array(FieldNodeSchema).optional().describe("Fields to retrieve"),
1696
+ /** Where Clause (Filtering) */
1697
+ where: FilterConditionSchema.optional().describe("Filtering criteria (WHERE)"),
1698
+ /** Full-Text Search */
1699
+ search: FullTextSearchSchema.optional().describe("Full-text search configuration ($search parameter)"),
1700
+ /** Order By Clause (Sorting) */
1701
+ orderBy: zod.z.array(SortNodeSchema).optional().describe("Sorting instructions (ORDER BY)"),
1702
+ /** Pagination */
1703
+ limit: zod.z.number().optional().describe("Max records to return (LIMIT)"),
1704
+ offset: zod.z.number().optional().describe("Records to skip (OFFSET)"),
1705
+ top: zod.z.number().optional().describe("Alias for limit (OData compatibility)"),
1706
+ cursor: zod.z.record(zod.z.string(), zod.z.unknown()).optional().describe("Cursor for keyset pagination"),
1707
+ /** Joins */
1708
+ joins: zod.z.array(JoinNodeSchema).optional().describe("Explicit Table Joins"),
1709
+ /** Aggregations */
1710
+ aggregations: zod.z.array(AggregationNodeSchema).optional().describe("Aggregation functions"),
1711
+ /** Group By Clause */
1712
+ groupBy: zod.z.array(GroupByNodeSchema).optional().describe("GROUP BY targets (strings or `{field, dateGranularity?}` objects for date bucketing)"),
1713
+ /** Having Clause */
1714
+ having: FilterConditionSchema.optional().describe("HAVING clause for aggregation filtering"),
1715
+ /** Window Functions */
1716
+ windowFunctions: zod.z.array(WindowFunctionNodeSchema).optional().describe("Window functions with OVER clause"),
1717
+ /** Subquery flag */
1718
+ distinct: zod.z.boolean().optional().describe("SELECT DISTINCT flag")
1719
+ });
1720
+ var QuerySchema = lazySchema(() => BaseQuerySchema.extend({
1721
+ expand: zod.z.lazy(() => zod.z.record(zod.z.string(), QuerySchema)).optional().describe(
1722
+ "Recursive relation loading map. Keys are lookup/master_detail field names; values are nested QueryAST objects that control select, filter, sort, and further expansion on the related object. The engine resolves expand via batch $in queries (driver-agnostic) with a default max depth of 3."
1723
+ )
1724
+ }));
1725
+
1726
+ // src/ui/dashboard.zod.ts
1727
+ var WidgetColorVariantSchema = lazySchema(() => zod.z.enum([
1728
+ "default",
1729
+ "blue",
1730
+ "teal",
1731
+ "orange",
1732
+ "purple",
1733
+ "success",
1734
+ "warning",
1735
+ "danger"
1736
+ ]).describe("Widget color variant"));
1737
+ var WidgetActionTypeSchema = lazySchema(() => zod.z.enum([
1738
+ "script",
1739
+ "url",
1740
+ "modal",
1741
+ "flow",
1742
+ "api"
1743
+ ]).describe("Widget action type"));
1744
+ var DashboardHeaderActionSchema = lazySchema(() => zod.z.object({
1745
+ /** Action label */
1746
+ label: I18nLabelSchema.describe("Action button label"),
1747
+ /** Action URL or target */
1748
+ actionUrl: zod.z.string().describe("URL or target for the action"),
1749
+ /** Action type */
1750
+ actionType: WidgetActionTypeSchema.optional().describe("Type of action"),
1751
+ /** Icon identifier */
1752
+ icon: zod.z.string().optional().describe("Icon identifier for the action button")
1753
+ }).describe("Dashboard header action"));
1754
+ var DashboardHeaderSchema = lazySchema(() => zod.z.object({
1755
+ /** Whether to show the dashboard title in the header */
1756
+ showTitle: zod.z.boolean().default(true).describe("Show dashboard title in header"),
1757
+ /** Whether to show the dashboard description in the header */
1758
+ showDescription: zod.z.boolean().default(true).describe("Show dashboard description in header"),
1759
+ /** Action buttons displayed in the header */
1760
+ actions: zod.z.array(DashboardHeaderActionSchema).optional().describe("Header action buttons")
1761
+ }).describe("Dashboard header configuration"));
1762
+ var WidgetMeasureSchema = lazySchema(() => zod.z.object({
1763
+ /** Value field to aggregate */
1764
+ valueField: zod.z.string().describe("Field to aggregate"),
1765
+ /** Aggregate function */
1766
+ aggregate: zod.z.enum(["count", "sum", "avg", "min", "max"]).default("count").describe("Aggregate function"),
1767
+ /** Display label for the measure */
1768
+ label: I18nLabelSchema.optional().describe("Measure display label"),
1769
+ /** Number format string (e.g., "$0,0.00", "0.0%") */
1770
+ format: zod.z.string().optional().describe("Number format string")
1771
+ }).describe("Widget measure definition"));
1772
+ var DashboardWidgetSchema = lazySchema(() => zod.z.object({
1773
+ /** Unique widget identifier (snake_case, used for targetWidgets references) */
1774
+ id: SnakeCaseIdentifierSchema.describe("Unique widget identifier (snake_case)"),
1775
+ /** Widget Title */
1776
+ title: I18nLabelSchema.optional().describe("Widget title"),
1777
+ /** Widget Description (displayed below the title) */
1778
+ description: I18nLabelSchema.optional().describe("Widget description text below the header"),
1779
+ /** Visualization Type */
1780
+ type: ChartTypeSchema.default("metric").describe("Visualization type"),
1781
+ /** Chart Configuration */
1782
+ chartConfig: ChartConfigSchema.optional().describe("Chart visualization configuration"),
1783
+ /** Color variant for the widget (e.g., KPI card accent color) */
1784
+ colorVariant: WidgetColorVariantSchema.optional().describe("Widget color variant for theming"),
1785
+ /**
1786
+ * Runtime capability gate — widget is hidden when the named object is
1787
+ * not registered in the runtime's SchemaRegistry. Mirrors
1788
+ * `NavigationItem.requiresObject` so cloud-only widgets (e.g. those
1789
+ * keyed on `sys_app` / `sys_package_installation`) silently disappear
1790
+ * in single-environment runtimes instead of rendering a 404 error.
1791
+ *
1792
+ * Defaults to the widget's `object` field when not explicitly set —
1793
+ * any widget that targets an object will be gated on that object's
1794
+ * registration. Set this to a different value (or empty string to
1795
+ * disable) when the widget should appear even if its `object` is
1796
+ * unavailable.
1797
+ */
1798
+ requiresObject: zod.z.string().optional().describe("Hide the widget unless the named object is registered"),
1799
+ /**
1800
+ * Runtime capability gate — widget is hidden when the named kernel
1801
+ * service is not registered. Mirrors `NavigationItem.requiresService`.
1802
+ */
1803
+ requiresService: zod.z.string().optional().describe("Hide the widget unless the named kernel service is registered"),
1804
+ /** Action URL for the widget header action button */
1805
+ actionUrl: zod.z.string().optional().describe("URL or target for the widget action button"),
1806
+ /** Action type for the widget header action button */
1807
+ actionType: WidgetActionTypeSchema.optional().describe("Type of action for the widget action button"),
1808
+ /** Icon for the widget header action button */
1809
+ actionIcon: zod.z.string().optional().describe("Icon identifier for the widget action button"),
1810
+ /** Data Source Object */
1811
+ object: zod.z.string().optional().describe("Data source object name"),
1812
+ /** Data Filter (MongoDB-style FilterCondition) */
1813
+ filter: FilterConditionSchema.optional().describe("Data filter criteria"),
1814
+ /**
1815
+ * Period-over-period comparison primitive.
1816
+ *
1817
+ * When set, the renderer runs a second query against a shifted time
1818
+ * window and surfaces the delta (metric widgets show a secondary
1819
+ * value + arrow; chart widgets render a muted/dashed overlay series).
1820
+ *
1821
+ * - `'previousPeriod'` — auto-detect the comparison window from the
1822
+ * widget's `filter` date macros (e.g. `{current_month_start}` →
1823
+ * `{last_month_start}`). Falls back to no comparison when the
1824
+ * filter contains no resolvable date range.
1825
+ * - `'previousYear'` — shift the resolved filter window back by one
1826
+ * calendar year.
1827
+ * - `{ offset: '7d' | '1M' | '1y' }` — shift by an explicit
1828
+ * ISO-8601-like duration. Units: `d` (days), `w` (weeks),
1829
+ * `M` (months), `y` (years).
1830
+ */
1831
+ compareTo: zod.z.union([
1832
+ zod.z.literal("previousPeriod"),
1833
+ zod.z.literal("previousYear"),
1834
+ zod.z.object({
1835
+ offset: zod.z.string().regex(/^\d+[dwMy]$/, 'Offset must match <N>(d|w|M|y), e.g. "7d", "1M", "1y"')
1836
+ })
1837
+ ]).optional().describe("Period-over-period comparison window"),
1838
+ /** Category Field (X-Axis / Group By) */
1839
+ categoryField: zod.z.string().optional().describe("Field for grouping (X-Axis)"),
1840
+ /**
1841
+ * Date Bucketing Granularity for `categoryField`
1842
+ *
1843
+ * When set and `categoryField` references a date/datetime field, the engine
1844
+ * buckets values into uniform `day` / `week` / `month` / `quarter` / `year`
1845
+ * periods server-side (PostgreSQL `date_trunc`, MySQL `date_format`, SQLite
1846
+ * `strftime`, MongoDB `$dateTrunc`; falls back to in-memory ISO-8601
1847
+ * bucketing otherwise). Without this, raw timestamps are grouped verbatim
1848
+ * which typically yields one bucket per row — making time-series charts
1849
+ * appear flat.
1850
+ *
1851
+ * Mirrors the `dateGranularity` shape of {@link GroupByNodeSchema}.
1852
+ */
1853
+ categoryGranularity: DateGranularity.optional().describe("Bucket categoryField date values into day/week/month/quarter/year periods"),
1854
+ /** Value Field (Y-Axis) */
1855
+ valueField: zod.z.string().optional().describe("Field for values (Y-Axis)"),
1856
+ /** Aggregate operation */
1857
+ aggregate: zod.z.enum(["count", "sum", "avg", "min", "max"]).optional().default("count").describe("Aggregate function"),
1858
+ /** Multi-measure definitions for pivot/matrix widgets */
1859
+ measures: zod.z.array(WidgetMeasureSchema).optional().describe("Multiple measures for pivot/matrix analysis"),
1860
+ /**
1861
+ * Layout Position (React-Grid-Layout style)
1862
+ * x: column (0-11)
1863
+ * y: row
1864
+ * w: width (1-12)
1865
+ * h: height
1866
+ */
1867
+ layout: zod.z.object({
1868
+ x: zod.z.number(),
1869
+ y: zod.z.number(),
1870
+ w: zod.z.number(),
1871
+ h: zod.z.number()
1872
+ }).describe("Grid layout position"),
1873
+ /** Widget specific options (colors, legend, etc.) */
1874
+ options: zod.z.unknown().optional().describe("Widget specific configuration"),
1875
+ /** Responsive layout overrides per breakpoint */
1876
+ responsive: ResponsiveConfigSchema.optional().describe("Responsive layout configuration"),
1877
+ /** ARIA accessibility attributes */
1878
+ aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes")
1750
1879
  }));
1751
- lazySchema(() => zod.z.object({
1752
- street: zod.z.string().optional().describe("Street address"),
1753
- city: zod.z.string().optional().describe("City name"),
1754
- state: zod.z.string().optional().describe("State/Province"),
1755
- postalCode: zod.z.string().optional().describe("Postal/ZIP code"),
1756
- country: zod.z.string().optional().describe("Country name or code"),
1757
- countryCode: zod.z.string().optional().describe("ISO country code (e.g., US, GB)"),
1758
- formatted: zod.z.string().optional().describe("Formatted address string")
1880
+ var GlobalFilterOptionsFromSchema = lazySchema(() => zod.z.object({
1881
+ /** Source object name to fetch options from */
1882
+ object: zod.z.string().describe("Source object name"),
1883
+ /** Field to use as option value */
1884
+ valueField: zod.z.string().describe("Field to use as option value"),
1885
+ /** Field to use as option label */
1886
+ labelField: zod.z.string().describe("Field to use as option label"),
1887
+ /** Optional filter to apply when fetching options */
1888
+ filter: FilterConditionSchema.optional().describe("Filter to apply to source object")
1889
+ }).describe("Dynamic filter options from object"));
1890
+ var GlobalFilterSchema = lazySchema(() => zod.z.object({
1891
+ /** Field name to filter on */
1892
+ field: zod.z.string().describe("Field name to filter on"),
1893
+ /** Display label for the filter */
1894
+ label: I18nLabelSchema.optional().describe("Display label for the filter"),
1895
+ /** Filter input type */
1896
+ type: zod.z.enum(["text", "select", "date", "number", "lookup"]).optional().describe("Filter input type"),
1897
+ /** Static options for select/lookup filters */
1898
+ options: zod.z.array(zod.z.object({
1899
+ value: zod.z.union([zod.z.string(), zod.z.number(), zod.z.boolean()]).describe("Option value"),
1900
+ label: I18nLabelSchema
1901
+ })).optional().describe("Static filter options"),
1902
+ /** Dynamic data binding for filter options */
1903
+ optionsFrom: GlobalFilterOptionsFromSchema.optional().describe("Dynamic filter options from object"),
1904
+ /** Default filter value */
1905
+ defaultValue: zod.z.union([zod.z.string(), zod.z.number(), zod.z.boolean()]).optional().describe("Default filter value"),
1906
+ /** Filter application scope */
1907
+ scope: zod.z.enum(["dashboard", "widget"]).default("dashboard").describe("Filter application scope"),
1908
+ /** Widget IDs to apply this filter to (when scope is widget) */
1909
+ targetWidgets: zod.z.array(zod.z.string()).optional().describe("Widget IDs to apply this filter to")
1759
1910
  }));
1760
- var VectorConfigSchema = lazySchema(() => zod.z.object({
1761
- dimensions: zod.z.number().int().min(1).max(1e4).describe("Vector dimensionality (e.g., 1536 for OpenAI embeddings)"),
1762
- distanceMetric: zod.z.enum(["cosine", "euclidean", "dotProduct", "manhattan"]).default("cosine").describe("Distance/similarity metric for vector search"),
1763
- normalized: zod.z.boolean().default(false).describe("Whether vectors are normalized (unit length)"),
1764
- indexed: zod.z.boolean().default(true).describe("Whether to create a vector index for fast similarity search"),
1765
- indexType: zod.z.enum(["hnsw", "ivfflat", "flat"]).optional().describe("Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets)")
1911
+ var DashboardSchema = lazySchema(() => zod.z.object({
1912
+ /** Machine name */
1913
+ name: SnakeCaseIdentifierSchema.describe("Dashboard unique name"),
1914
+ /** Display label */
1915
+ label: I18nLabelSchema.describe("Dashboard label"),
1916
+ /** Description */
1917
+ description: I18nLabelSchema.optional().describe("Dashboard description"),
1918
+ /** Structured header configuration */
1919
+ header: DashboardHeaderSchema.optional().describe("Dashboard header configuration"),
1920
+ /** Collection of widgets */
1921
+ widgets: zod.z.array(DashboardWidgetSchema).describe("Widgets to display"),
1922
+ /** Grid column count — defaults to 12 for a standard 12-column grid */
1923
+ columns: zod.z.number().int().min(1).max(24).optional().describe("Number of grid columns (default 12)"),
1924
+ /** Grid gap in Tailwind spacing units (e.g. 4 = 1rem) */
1925
+ gap: zod.z.number().int().min(0).optional().describe("Grid gap in Tailwind spacing units"),
1926
+ /** Auto-refresh */
1927
+ refreshInterval: zod.z.number().optional().describe("Auto-refresh interval in seconds"),
1928
+ /** Dashboard Date Range (Global time filter) */
1929
+ dateRange: zod.z.object({
1930
+ field: zod.z.string().optional().describe("Default date field name for time-based filtering"),
1931
+ defaultRange: zod.z.enum(["today", "yesterday", "this_week", "last_week", "this_month", "last_month", "this_quarter", "last_quarter", "this_year", "last_year", "last_7_days", "last_30_days", "last_90_days", "custom"]).default("this_month").describe("Default date range preset"),
1932
+ allowCustomRange: zod.z.boolean().default(true).describe("Allow users to pick a custom date range")
1933
+ }).optional().describe("Global dashboard date range filter configuration"),
1934
+ /** Global Filters */
1935
+ globalFilters: zod.z.array(GlobalFilterSchema).optional().describe("Global filters that apply to all widgets in the dashboard"),
1936
+ /** ARIA accessibility attributes */
1937
+ aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes"),
1938
+ /** Performance optimization settings */
1939
+ performance: PerformanceConfigSchema.optional().describe("Performance optimization settings")
1766
1940
  }));
1767
- var FileAttachmentConfigSchema = lazySchema(() => zod.z.object({
1768
- /** File Size Limits */
1769
- minSize: zod.z.number().min(0).optional().describe("Minimum file size in bytes"),
1770
- maxSize: zod.z.number().min(1).optional().describe("Maximum file size in bytes (e.g., 10485760 = 10MB)"),
1771
- /** File Type Restrictions */
1772
- allowedTypes: zod.z.array(zod.z.string()).optional().describe('Allowed file extensions (e.g., [".pdf", ".docx", ".jpg"])'),
1773
- blockedTypes: zod.z.array(zod.z.string()).optional().describe('Blocked file extensions (e.g., [".exe", ".bat", ".sh"])'),
1774
- allowedMimeTypes: zod.z.array(zod.z.string()).optional().describe('Allowed MIME types (e.g., ["image/jpeg", "application/pdf"])'),
1775
- blockedMimeTypes: zod.z.array(zod.z.string()).optional().describe("Blocked MIME types"),
1776
- /** Virus Scanning */
1777
- virusScan: zod.z.boolean().default(false).describe("Enable virus scanning for uploaded files"),
1778
- virusScanProvider: zod.z.enum(["clamav", "virustotal", "metadefender", "custom"]).optional().describe("Virus scanning service provider"),
1779
- virusScanOnUpload: zod.z.boolean().default(true).describe("Scan files immediately on upload"),
1780
- quarantineOnThreat: zod.z.boolean().default(true).describe("Quarantine files if threat detected"),
1781
- /** Storage Configuration */
1782
- storageProvider: zod.z.string().optional().describe("Object storage provider name (references ObjectStorageConfig)"),
1783
- storageBucket: zod.z.string().optional().describe("Target bucket name"),
1784
- storagePrefix: zod.z.string().optional().describe('Storage path prefix (e.g., "uploads/documents/")'),
1785
- /** Image-Specific Validation */
1786
- imageValidation: zod.z.object({
1787
- minWidth: zod.z.number().min(1).optional().describe("Minimum image width in pixels"),
1788
- maxWidth: zod.z.number().min(1).optional().describe("Maximum image width in pixels"),
1789
- minHeight: zod.z.number().min(1).optional().describe("Minimum image height in pixels"),
1790
- maxHeight: zod.z.number().min(1).optional().describe("Maximum image height in pixels"),
1791
- aspectRatio: zod.z.string().optional().describe('Required aspect ratio (e.g., "16:9", "1:1")'),
1792
- generateThumbnails: zod.z.boolean().default(false).describe("Auto-generate thumbnails"),
1793
- thumbnailSizes: zod.z.array(zod.z.object({
1794
- name: zod.z.string().describe('Thumbnail variant name (e.g., "small", "medium", "large")'),
1795
- width: zod.z.number().min(1).describe("Thumbnail width in pixels"),
1796
- height: zod.z.number().min(1).describe("Thumbnail height in pixels"),
1797
- crop: zod.z.boolean().default(false).describe("Crop to exact dimensions")
1798
- })).optional().describe("Thumbnail size configurations"),
1799
- preserveMetadata: zod.z.boolean().default(false).describe("Preserve EXIF metadata"),
1800
- autoRotate: zod.z.boolean().default(true).describe("Auto-rotate based on EXIF orientation")
1801
- }).optional().describe("Image-specific validation rules"),
1802
- /** Upload Behavior */
1803
- allowMultiple: zod.z.boolean().default(false).describe("Allow multiple file uploads (overrides field.multiple)"),
1804
- allowReplace: zod.z.boolean().default(true).describe("Allow replacing existing files"),
1805
- allowDelete: zod.z.boolean().default(true).describe("Allow deleting uploaded files"),
1806
- requireUpload: zod.z.boolean().default(false).describe("Require at least one file when field is required"),
1807
- /** Metadata Extraction */
1808
- extractMetadata: zod.z.boolean().default(true).describe("Extract file metadata (name, size, type, etc.)"),
1809
- extractText: zod.z.boolean().default(false).describe("Extract text content from documents (OCR/parsing)"),
1810
- /** Versioning */
1811
- versioningEnabled: zod.z.boolean().default(false).describe("Keep previous versions of replaced files"),
1812
- maxVersions: zod.z.number().min(1).optional().describe("Maximum number of versions to retain"),
1813
- /** Access Control */
1814
- publicRead: zod.z.boolean().default(false).describe("Allow public read access to uploaded files"),
1815
- presignedUrlExpiry: zod.z.number().min(60).max(604800).default(3600).describe("Presigned URL expiration in seconds (default: 1 hour)")
1816
- }).refine((data) => {
1817
- if (data.minSize !== void 0 && data.maxSize !== void 0 && data.minSize > data.maxSize) {
1818
- return false;
1819
- }
1820
- return true;
1821
- }, {
1822
- message: "minSize must be less than or equal to maxSize"
1823
- }).refine((data) => {
1824
- if (data.virusScanProvider !== void 0 && data.virusScan !== true) {
1825
- return false;
1826
- }
1827
- return true;
1828
- }, {
1829
- message: "virusScanProvider requires virusScan to be enabled"
1941
+ var Dashboard = {
1942
+ create: (config) => DashboardSchema.parse(config)
1943
+ };
1944
+ var ReportType = zod.z.enum([
1945
+ "tabular",
1946
+ // Simple list
1947
+ "summary",
1948
+ // Grouped by row
1949
+ "matrix",
1950
+ // Grouped by row and column
1951
+ "joined"
1952
+ // Joined multiple blocks
1953
+ ]);
1954
+ var ReportColumnSchema = lazySchema(() => zod.z.object({
1955
+ field: zod.z.string().describe("Field name"),
1956
+ label: I18nLabelSchema.optional().describe("Override label"),
1957
+ aggregate: zod.z.enum(["sum", "avg", "max", "min", "count", "unique"]).optional().describe("Aggregation function"),
1958
+ /** Responsive visibility/priority per breakpoint */
1959
+ responsive: ResponsiveConfigSchema.optional().describe("Responsive visibility for this column")
1830
1960
  }));
1831
- var DataQualityRulesSchema = lazySchema(() => zod.z.object({
1832
- /** Enforce uniqueness constraint */
1833
- uniqueness: zod.z.boolean().default(false).describe("Enforce unique values across all records"),
1834
- /** Completeness ratio (0-1) indicating minimum percentage of non-null values */
1835
- completeness: zod.z.number().min(0).max(1).default(0).describe("Minimum ratio of non-null values (0-1, default: 0 = no requirement)"),
1836
- /** Accuracy validation against authoritative source */
1837
- accuracy: zod.z.object({
1838
- source: zod.z.string().describe('Reference data source for validation (e.g., "api.verify.com", "master_data")'),
1839
- threshold: zod.z.number().min(0).max(1).describe("Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)")
1840
- }).optional().describe("Accuracy validation configuration")
1961
+ var ReportGroupingSchema = lazySchema(() => zod.z.object({
1962
+ field: zod.z.string().describe("Field to group by"),
1963
+ sortOrder: zod.z.enum(["asc", "desc"]).default("asc"),
1964
+ dateGranularity: zod.z.enum(["day", "week", "month", "quarter", "year"]).optional().describe("For date fields")
1841
1965
  }));
1842
- var ComputedFieldCacheSchema = lazySchema(() => zod.z.object({
1843
- /** Enable caching for this computed field */
1844
- enabled: zod.z.boolean().describe("Enable caching for computed field results"),
1845
- /** Time-to-live in seconds */
1846
- ttl: zod.z.number().min(0).describe("Cache TTL in seconds (0 = no expiration)"),
1847
- /** Array of field paths that trigger cache invalidation when changed */
1848
- invalidateOn: zod.z.array(zod.z.string()).describe('Field paths that invalidate cache (e.g., ["inventory.quantity", "pricing.base_price"])')
1966
+ var ReportChartSchema = lazySchema(() => ChartConfigSchema.extend({
1967
+ /** Report-specific chart configuration */
1968
+ xAxis: zod.z.string().describe("Grouping field for X-Axis"),
1969
+ yAxis: zod.z.string().describe("Summary field for Y-Axis"),
1970
+ groupBy: zod.z.string().optional().describe("Additional grouping field")
1849
1971
  }));
1850
- var FieldSchema = lazySchema(() => zod.z.object({
1972
+ var JoinedReportBlockSchema = lazySchema(() => zod.z.object({
1973
+ /** Stable id for the block (used as react key, telemetry, deeplinks). */
1974
+ name: SnakeCaseIdentifierSchema,
1975
+ /** Human label shown above the block. Falls back to `name`. */
1976
+ label: I18nLabelSchema.optional(),
1977
+ /** Optional description rendered below the label. */
1978
+ description: I18nLabelSchema.optional(),
1979
+ /** Block report type — `joined` is intentionally excluded (no recursion). */
1980
+ type: zod.z.enum(["tabular", "summary", "matrix"]).default("tabular"),
1981
+ /** Object queried by this block. Defaults to the container's objectName. */
1982
+ objectName: zod.z.string().optional(),
1983
+ /** Columns to display / aggregate. Same shape as `Report.columns`. */
1984
+ columns: zod.z.array(ReportColumnSchema),
1985
+ /** Row groupings (same shape as `Report.groupingsDown`). */
1986
+ groupingsDown: zod.z.array(ReportGroupingSchema).optional(),
1987
+ /** Column groupings — only meaningful when `type: matrix`. */
1988
+ groupingsAcross: zod.z.array(ReportGroupingSchema).optional(),
1989
+ /** Block-specific filter, ANDed with the container filter at render time. */
1990
+ filter: FilterConditionSchema.optional(),
1991
+ /** Optional inline chart configuration. */
1992
+ chart: ReportChartSchema.optional()
1993
+ }));
1994
+ var ReportSchema = lazySchema(() => zod.z.object({
1851
1995
  /** Identity */
1852
- name: zod.z.string().regex(/^[a-z_][a-z0-9_]*$/).describe("Machine name (snake_case)").optional(),
1853
- label: zod.z.string().optional().describe("Human readable label"),
1854
- type: FieldType.describe("Field Data Type"),
1855
- description: zod.z.string().optional().describe("Tooltip/Help text"),
1856
- format: zod.z.string().optional().describe("Format string (e.g. email, phone)"),
1857
- /** Storage Layer Mapping */
1858
- columnName: zod.z.string().optional().describe("Physical column name in the target datasource. Defaults to the field key when not set."),
1859
- /** Database Constraints */
1860
- required: zod.z.boolean().default(false).describe("Is required"),
1861
- searchable: zod.z.boolean().default(false).describe("Is searchable"),
1862
- multiple: zod.z.boolean().default(false).describe("Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image."),
1863
- unique: zod.z.boolean().default(false).describe("Is unique constraint"),
1864
- defaultValue: zod.z.unknown().optional().describe("Default value"),
1865
- /** Text/String Constraints */
1866
- maxLength: zod.z.number().optional().describe("Max character length"),
1867
- minLength: zod.z.number().optional().describe("Min character length"),
1868
- /** Number Constraints */
1869
- precision: zod.z.number().optional().describe("Total digits"),
1870
- scale: zod.z.number().optional().describe("Decimal places"),
1871
- min: zod.z.number().optional().describe("Minimum value"),
1872
- max: zod.z.number().optional().describe("Maximum value"),
1873
- /** Selection Options */
1874
- options: zod.z.array(SelectOptionSchema).optional().describe("Static options for select/multiselect"),
1996
+ name: SnakeCaseIdentifierSchema.describe("Report unique name"),
1997
+ label: I18nLabelSchema.describe("Report label"),
1998
+ description: I18nLabelSchema.optional(),
1999
+ /** Data Source */
2000
+ objectName: zod.z.string().describe("Primary object"),
2001
+ /** Report Configuration */
2002
+ type: ReportType.default("tabular").describe("Report format type"),
2003
+ columns: zod.z.array(ReportColumnSchema).describe("Columns to display"),
2004
+ /** Grouping (for Summary/Matrix) */
2005
+ groupingsDown: zod.z.array(ReportGroupingSchema).optional().describe("Row groupings"),
2006
+ groupingsAcross: zod.z.array(ReportGroupingSchema).optional().describe("Column groupings (Matrix only)"),
2007
+ /** Filtering (MongoDB-style FilterCondition) */
2008
+ filter: FilterConditionSchema.optional().describe("Filter criteria"),
2009
+ /** Visualization */
2010
+ chart: ReportChartSchema.optional().describe("Embedded chart configuration"),
2011
+ /** ARIA accessibility attributes */
2012
+ aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes"),
2013
+ /** Performance optimization settings */
2014
+ performance: PerformanceConfigSchema.optional().describe("Performance optimization settings"),
1875
2015
  /**
1876
- * Relationship Config
1877
- *
1878
- * Used by `lookup` and `master_detail` field types to define cross-object references.
1879
- * The `reference` property is **required** for these types it identifies the target
1880
- * object whose records this field links to. The engine uses `reference` during $expand
1881
- * post-processing to resolve foreign key IDs into full related objects via batch queries.
1882
- *
1883
- * For `master_detail` fields, the parent record controls the lifecycle of child records
1884
- * (e.g., cascade delete). For `lookup` fields, the reference is a soft link.
2016
+ * Joined report blocks — only meaningful when `type: 'joined'`.
2017
+ *
2018
+ * A joined report renders multiple independent sub-reports stacked
2019
+ * vertically in the same view. Each block declares its own object,
2020
+ * columns, groupings and filter. The container-level `filter` is ANDed
2021
+ * into every block at query time so a top-level scope (e.g. "this
2022
+ * quarter") flows down without per-block duplication.
2023
+ *
2024
+ * Renderers must ignore `blocks` when `type !== 'joined'`.
1885
2025
  */
1886
- reference: zod.z.string().optional().describe(
1887
- "Target object name (snake_case) for lookup/master_detail fields. Required for relationship types. Used by $expand to resolve foreign key IDs into full objects."
1888
- ),
1889
- referenceFilters: zod.z.array(zod.z.string()).optional().describe('Filters applied to lookup dialogs (e.g. "active = true")'),
1890
- writeRequiresMasterRead: zod.z.boolean().optional().describe("If true, user needs read access to master record to edit this field"),
1891
- deleteBehavior: zod.z.enum(["set_null", "cascade", "restrict"]).optional().default("set_null").describe("What happens if referenced record is deleted"),
1892
- /** Calculation — CEL formula. Plain string accepted for back-compat; build emits canonical envelope. */
1893
- expression: ExpressionInputSchema.optional().describe("Formula expression (CEL). e.g. F`record.amount * 0.1`"),
1894
- summaryOperations: zod.z.object({
1895
- object: zod.z.string().describe("Source child object name for roll-up"),
1896
- field: zod.z.string().describe("Field on child object to aggregate"),
1897
- function: zod.z.enum(["count", "sum", "min", "max", "avg"]).describe("Aggregation function to apply")
1898
- }).optional().describe("Roll-up summary definition"),
1899
- /** Enhanced Field Type Configurations */
1900
- // Code field config
1901
- language: zod.z.string().optional().describe("Programming language for syntax highlighting (e.g., javascript, python, sql)"),
1902
- theme: zod.z.string().optional().describe("Code editor theme (e.g., dark, light, monokai)"),
1903
- lineNumbers: zod.z.boolean().optional().describe("Show line numbers in code editor"),
1904
- // Rating field config
1905
- maxRating: zod.z.number().optional().describe("Maximum rating value (default: 5)"),
1906
- allowHalf: zod.z.boolean().optional().describe("Allow half-star ratings"),
1907
- // Location field config
1908
- displayMap: zod.z.boolean().optional().describe("Display map widget for location field"),
1909
- allowGeocoding: zod.z.boolean().optional().describe("Allow address-to-coordinate conversion"),
1910
- // Address field config
1911
- addressFormat: zod.z.enum(["us", "uk", "international"]).optional().describe("Address format template"),
1912
- // Color field config
1913
- colorFormat: zod.z.enum(["hex", "rgb", "rgba", "hsl"]).optional().describe("Color value format"),
1914
- allowAlpha: zod.z.boolean().optional().describe("Allow transparency/alpha channel"),
1915
- presetColors: zod.z.array(zod.z.string()).optional().describe("Preset color options"),
1916
- // Slider field config
1917
- step: zod.z.number().optional().describe("Step increment for slider (default: 1)"),
1918
- showValue: zod.z.boolean().optional().describe("Display current value on slider"),
1919
- marks: zod.z.record(zod.z.string(), zod.z.string()).optional().describe('Custom marks/labels at specific values (e.g., {0: "Low", 50: "Medium", 100: "High"})'),
1920
- // QR Code / Barcode field config
1921
- // Note: qrErrorCorrection is only applicable when barcodeFormat='qr'
1922
- // Runtime validation should enforce this constraint
1923
- barcodeFormat: zod.z.enum(["qr", "ean13", "ean8", "code128", "code39", "upca", "upce"]).optional().describe("Barcode format type"),
1924
- qrErrorCorrection: zod.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"'),
1925
- displayValue: zod.z.boolean().optional().describe("Display human-readable value below barcode/QR code"),
1926
- allowScanning: zod.z.boolean().optional().describe("Enable camera scanning for barcode/QR code input"),
1927
- // Currency field config
1928
- currencyConfig: CurrencyConfigSchema.optional().describe("Configuration for currency field type"),
1929
- // Vector field config
1930
- vectorConfig: VectorConfigSchema.optional().describe("Configuration for vector field type (AI/ML embeddings)"),
1931
- // File attachment field config
1932
- fileAttachmentConfig: FileAttachmentConfigSchema.optional().describe("Configuration for file and attachment field types"),
1933
- /** Enhanced Security & Compliance */
1934
- // Encryption configuration
1935
- encryptionConfig: EncryptionConfigSchema.optional().describe("Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS)"),
1936
- // Data masking rules
1937
- maskingRule: MaskingRuleSchema.optional().describe("Data masking rules for PII protection"),
1938
- // Audit trail
1939
- auditTrail: zod.z.boolean().default(false).describe("Enable detailed audit trail for this field (tracks all changes with user and timestamp)"),
1940
- /** Field Dependencies & Relationships */
1941
- // Field dependencies
1942
- dependencies: zod.z.array(zod.z.string()).optional().describe("Array of field names that this field depends on (for formulas, visibility rules, etc.)"),
1943
- /** Computed Field Optimization */
1944
- // Computed field caching
1945
- cached: ComputedFieldCacheSchema.optional().describe("Caching configuration for computed/formula fields"),
1946
- /** Data Quality & Governance */
1947
- // Data quality rules
1948
- dataQuality: DataQualityRulesSchema.optional().describe("Data quality validation and monitoring rules"),
1949
- /** Layout & Grouping */
1950
- group: zod.z.string().optional().describe('Field group name for organizing fields in forms and layouts (e.g., "contact_info", "billing", "system")'),
1951
- /** Conditional Requirements */
1952
- conditionalRequired: ExpressionInputSchema.optional().describe("Predicate (CEL) \u2014 field is required when TRUE. e.g. P`record.status == 'closed_won'`"),
1953
- /** Security & Visibility */
1954
- hidden: zod.z.boolean().default(false).describe("Hidden from default UI"),
1955
- readonly: zod.z.boolean().default(false).describe("Read-only in UI"),
1956
- system: zod.z.boolean().optional().describe("Auto-injected system/audit field (e.g. created_at, updated_by, organization_id). Tools that surface system fields separately from author-declared business fields should branch on this flag."),
1957
- sortable: zod.z.boolean().optional().default(true).describe("Whether field is sortable in list views"),
1958
- inlineHelpText: zod.z.string().optional().describe("Help text displayed below the field in forms"),
1959
- trackFeedHistory: zod.z.boolean().optional().describe("Track field changes in Chatter/activity feed (Salesforce pattern)"),
1960
- caseSensitive: zod.z.boolean().optional().describe("Whether text comparisons are case-sensitive"),
1961
- autonumberFormat: zod.z.string().optional().describe('Auto-number display format pattern (e.g., "CASE-{0000}")'),
1962
- /** Indexing */
1963
- index: zod.z.boolean().default(false).describe("Create standard database index"),
1964
- externalId: zod.z.boolean().default(false).describe("Is external ID for upsert operations")
2026
+ blocks: zod.z.array(JoinedReportBlockSchema).optional().describe("Sub-reports for type=joined")
1965
2027
  }));
2028
+ var Report = {
2029
+ create: (config) => ReportSchema.parse(config)
2030
+ };
2031
+
2032
+ // src/ui/report.form.ts
2033
+ var reportForm = defineForm({
2034
+ schemaId: "report",
2035
+ type: "simple",
2036
+ sections: [
2037
+ {
2038
+ label: "Basics",
2039
+ description: "Identity and data source.",
2040
+ columns: 2,
2041
+ fields: [
2042
+ { field: "name", type: "text", colSpan: 1, required: true, helpText: "snake_case unique identifier" },
2043
+ { field: "label", type: "text", colSpan: 1, required: true },
2044
+ { field: "description", type: "textarea", colSpan: 2 },
2045
+ { field: "objectName", widget: "ref:object", colSpan: 1, helpText: "Data source object" },
2046
+ { field: "type", colSpan: 1, helpText: "Report type: tabular/summary/matrix/joined" }
2047
+ ]
2048
+ },
2049
+ {
2050
+ label: "Columns",
2051
+ description: "Columns shown in the report output.",
2052
+ fields: [
2053
+ { field: "columns", type: "repeater", helpText: "Columns to display in the report" }
2054
+ ]
2055
+ },
2056
+ {
2057
+ label: "Groupings",
2058
+ description: "How rows (and columns, for matrix reports) are grouped.",
2059
+ fields: [
2060
+ { field: "groupingsDown", type: "repeater", helpText: "Row grouping levels" },
2061
+ // CEL visibility — only Matrix reports use column groupings.
2062
+ { field: "groupingsAcross", type: "repeater", visibleOn: "data.type == 'matrix'", helpText: "Column grouping levels (matrix only)" }
2063
+ ]
2064
+ },
2065
+ {
2066
+ label: "Joined blocks",
2067
+ description: "Additional blocks joined into a single report (joined reports only).",
2068
+ visibleOn: "data.type == 'joined'",
2069
+ fields: [
2070
+ { field: "blocks", type: "repeater", helpText: "Join multiple objects (joined report only)" }
2071
+ ]
2072
+ },
2073
+ {
2074
+ label: "Filter & chart",
2075
+ description: "Report-level filters and chart presentation.",
2076
+ collapsible: true,
2077
+ collapsed: true,
2078
+ fields: [
2079
+ { field: "filter", type: "repeater", helpText: "Report-level filters" },
2080
+ { field: "chart", type: "composite", helpText: "Chart config (type, legend, colors)" }
2081
+ ]
2082
+ },
2083
+ {
2084
+ label: "Advanced",
2085
+ description: "Accessibility and performance tuning.",
2086
+ collapsible: true,
2087
+ collapsed: true,
2088
+ fields: [
2089
+ { field: "aria", type: "composite", helpText: "Accessibility labels" },
2090
+ { field: "performance", type: "composite", helpText: "Caching and optimization" }
2091
+ ]
2092
+ }
2093
+ ]
2094
+ });
2095
+
2096
+ // src/ui/view.form.ts
2097
+ var viewForm = defineForm({
2098
+ schemaId: "view",
2099
+ type: "simple",
2100
+ sections: [
2101
+ {
2102
+ label: "Basics",
2103
+ description: "Identity and primary surface.",
2104
+ columns: 2,
2105
+ fields: [
2106
+ { field: "name", type: "text", required: true, colSpan: 1, helpText: "snake_case, unique per environment" },
2107
+ { field: "label", type: "text", required: true, colSpan: 1 },
2108
+ { field: "description", type: "textarea", colSpan: 2 },
2109
+ { field: "type", required: true, colSpan: 1, helpText: "Primary view surface" },
2110
+ { field: "data", widget: "json", colSpan: 2, helpText: 'Data source \u2014 e.g. {"provider":"object","object":"task"}' }
2111
+ ]
2112
+ },
2113
+ {
2114
+ label: "Columns & filters",
2115
+ description: "What rows show and how users filter them.",
2116
+ fields: [
2117
+ { field: "columns", type: "repeater", required: true, helpText: "Columns to display (field names from selected object)" },
2118
+ { field: "filter", type: "repeater", helpText: "Filter conditions" },
2119
+ { field: "sort", type: "repeater", helpText: "Default sort order" },
2120
+ { field: "searchableFields", widget: "string-tags", helpText: "Field names available for quick search" },
2121
+ { field: "filterableFields", widget: "string-tags", helpText: "Field names available for filtering" }
2122
+ ]
2123
+ },
2124
+ {
2125
+ label: "Table options",
2126
+ description: "Grid-only display options.",
2127
+ visibleOn: "data.type == 'grid' || data.type == null",
2128
+ collapsible: true,
2129
+ collapsed: true,
2130
+ columns: 2,
2131
+ fields: [
2132
+ { field: "resizable", colSpan: 1 },
2133
+ { field: "striped", colSpan: 1 },
2134
+ { field: "bordered", colSpan: 1 },
2135
+ { field: "compactToolbar", colSpan: 1 },
2136
+ { field: "rowHeight", colSpan: 1 },
2137
+ { field: "selection", type: "composite", colSpan: 2 },
2138
+ { field: "pagination", type: "composite", colSpan: 2 }
2139
+ ]
2140
+ },
2141
+ {
2142
+ label: "Kanban",
2143
+ description: "Kanban-specific board configuration.",
2144
+ visibleOn: "data.type == 'kanban'",
2145
+ fields: [{ field: "kanban", type: "composite" }]
2146
+ },
2147
+ {
2148
+ label: "Calendar",
2149
+ description: "Calendar-specific configuration.",
2150
+ visibleOn: "data.type == 'calendar'",
2151
+ fields: [{ field: "calendar", type: "composite" }]
2152
+ },
2153
+ {
2154
+ label: "Gantt",
2155
+ description: "Gantt-specific configuration.",
2156
+ visibleOn: "data.type == 'gantt'",
2157
+ fields: [{ field: "gantt", type: "composite" }]
2158
+ },
2159
+ {
2160
+ label: "Gallery",
2161
+ description: "Gallery-specific configuration.",
2162
+ visibleOn: "data.type == 'gallery'",
2163
+ fields: [{ field: "gallery", type: "composite" }]
2164
+ },
2165
+ {
2166
+ label: "Timeline",
2167
+ description: "Timeline-specific configuration.",
2168
+ visibleOn: "data.type == 'timeline'",
2169
+ fields: [{ field: "timeline", type: "composite" }]
2170
+ },
2171
+ {
2172
+ label: "Chart",
2173
+ description: "Chart-specific configuration.",
2174
+ visibleOn: "data.type == 'chart'",
2175
+ fields: [{ field: "chart", type: "composite" }]
2176
+ },
2177
+ {
2178
+ label: "Navigation & sharing",
2179
+ description: "Where this view appears and who can see it.",
2180
+ collapsible: true,
2181
+ collapsed: true,
2182
+ fields: [
2183
+ { field: "navigation", type: "composite" },
2184
+ { field: "sharing", type: "composite" }
2185
+ ]
2186
+ }
2187
+ ]
2188
+ });
2189
+
2190
+ // src/ui/app.form.ts
2191
+ var appForm = defineForm({
2192
+ schemaId: "app",
2193
+ type: "simple",
2194
+ sections: [
2195
+ {
2196
+ label: "Basics",
2197
+ description: "App identity and activation.",
2198
+ columns: 2,
2199
+ fields: [
2200
+ { field: "name", type: "text", required: true, colSpan: 1, helpText: "snake_case, unique" },
2201
+ { field: "label", type: "text", required: true, colSpan: 1 },
2202
+ { field: "description", type: "textarea", colSpan: 2 },
2203
+ { field: "version", type: "text", colSpan: 1 },
2204
+ { field: "icon", type: "text", colSpan: 1, helpText: 'Lucide icon name (e.g. "users", "briefcase")' },
2205
+ { field: "active", type: "boolean", colSpan: 1 },
2206
+ { field: "isDefault", type: "boolean", colSpan: 1, helpText: "Make this the default app for new users" }
2207
+ ]
2208
+ },
2209
+ {
2210
+ label: "Navigation",
2211
+ description: "Sidebar items and area grouping.",
2212
+ fields: [
2213
+ { field: "navigation", type: "composite", helpText: "Nav tree \u2014 recursive structure" },
2214
+ { field: "areas", type: "repeater", helpText: "Group items into collapsible areas" },
2215
+ { field: "homePageId", type: "text", helpText: "Landing page when app opens" },
2216
+ { field: "mobileNavigation", type: "composite", helpText: "Bottom tab bar config for mobile" }
2217
+ ]
2218
+ },
2219
+ {
2220
+ label: "Content",
2221
+ description: "Objects and APIs this app uses.",
2222
+ fields: [
2223
+ { field: "objects", widget: "object-selector", multiple: true, helpText: "Object names this app exposes" },
2224
+ { field: "apis", type: "composite", helpText: "API endpoint definitions" },
2225
+ { field: "defaultAgent", type: "text", helpText: "AI agent for the ambient assistant button" }
2226
+ ]
2227
+ },
2228
+ {
2229
+ label: "Branding",
2230
+ description: "Theme colors and logo.",
2231
+ collapsible: true,
2232
+ collapsed: true,
2233
+ fields: [{ field: "branding", type: "composite", helpText: "Primary/secondary colors, logo, theme" }]
2234
+ },
2235
+ {
2236
+ label: "Access & sharing",
2237
+ description: "Who can access this app and how it can be embedded.",
2238
+ collapsible: true,
2239
+ collapsed: true,
2240
+ fields: [
2241
+ { field: "requiredPermissions", widget: "string-tags", helpText: "Permissions needed to access this app" },
2242
+ { field: "sharing", type: "composite", helpText: "Public/internal/restricted access control" },
2243
+ { field: "embed", type: "composite", helpText: "iFrame embed configuration" },
2244
+ { field: "aria", type: "composite", helpText: "Accessibility labels" }
2245
+ ]
2246
+ }
2247
+ ]
2248
+ });
2249
+
2250
+ // src/ui/dashboard.form.ts
2251
+ var dashboardForm = defineForm({
2252
+ schemaId: "dashboard",
2253
+ type: "simple",
2254
+ sections: [
2255
+ {
2256
+ label: "Basics",
2257
+ description: "Dashboard identity and description.",
2258
+ columns: 2,
2259
+ fields: [
2260
+ { field: "name", type: "text", required: true, colSpan: 1, helpText: "snake_case unique identifier" },
2261
+ { field: "label", type: "text", required: true, colSpan: 1, helpText: "Display name" },
2262
+ { field: "description", type: "textarea", colSpan: 2 }
2263
+ ]
2264
+ },
2265
+ {
2266
+ label: "Layout",
2267
+ description: "Grid sizing and refresh cadence.",
2268
+ columns: 3,
2269
+ fields: [
2270
+ { field: "columns", type: "number", colSpan: 1, helpText: "Grid columns (default 12)" },
2271
+ { field: "gap", type: "number", colSpan: 1, helpText: "Grid gap (Tailwind units)" },
2272
+ { field: "refreshInterval", type: "number", colSpan: 1, helpText: "Auto-refresh (seconds)" },
2273
+ { field: "header", type: "composite", colSpan: 3, helpText: "Dashboard header config (title, subtitle, actions)" }
2274
+ ]
2275
+ },
2276
+ {
2277
+ label: "Widgets",
2278
+ description: "Cards and charts placed on the grid.",
2279
+ fields: [
2280
+ { field: "widgets", type: "repeater", required: true, helpText: "Dashboard widgets with position and sizing" }
2281
+ ]
2282
+ },
2283
+ {
2284
+ label: "Filters",
2285
+ description: "Default and global filters applied across widgets.",
2286
+ collapsible: true,
2287
+ collapsed: true,
2288
+ fields: [
2289
+ { field: "dateRange", type: "composite", helpText: "Default date range selector" },
2290
+ { field: "globalFilters", type: "repeater", helpText: "Filters applied to all widgets" }
2291
+ ]
2292
+ },
2293
+ {
2294
+ label: "Advanced",
2295
+ description: "Accessibility and performance tuning.",
2296
+ collapsible: true,
2297
+ collapsed: true,
2298
+ fields: [
2299
+ { field: "aria", type: "composite", helpText: "Accessibility labels" },
2300
+ { field: "performance", type: "composite", helpText: "Caching and optimization config" }
2301
+ ]
2302
+ }
2303
+ ]
2304
+ });
2305
+
2306
+ // src/ui/action.form.ts
2307
+ var actionForm = defineForm({
2308
+ schemaId: "action",
2309
+ type: "simple",
2310
+ sections: [
2311
+ {
2312
+ label: "Basics",
2313
+ description: "Action identity and presentation.",
2314
+ columns: 2,
2315
+ fields: [
2316
+ { field: "name", required: true, colSpan: 1, helpText: "Unique identifier (snake_case)" },
2317
+ { field: "label", required: true, colSpan: 1, helpText: "Button text shown to users" },
2318
+ { field: "objectName", widget: "ref:object", colSpan: 1, helpText: "Object this action belongs to (optional)" },
2319
+ { field: "icon", colSpan: 1, helpText: 'Lucide icon name (e.g., "check", "x-circle")' },
2320
+ { field: "type", required: true, colSpan: 1, helpText: "What happens when clicked" },
2321
+ { field: "variant", colSpan: 1, helpText: "Button style (primary=blue, danger=red, ghost=transparent)" }
2322
+ ]
2323
+ },
2324
+ {
2325
+ label: "Behavior",
2326
+ description: "Configure what happens when the action is triggered.",
2327
+ fields: [
2328
+ { field: "target", visibleOn: "data.type != 'script'", helpText: "URL, flow name, or API endpoint to call" },
2329
+ { field: "method", visibleOn: "data.type == 'api'", helpText: "HTTP method (GET, POST, PUT, DELETE)" },
2330
+ { field: "body", widget: "code", visibleOn: "data.type == 'script'", helpText: "JavaScript code to execute" },
2331
+ { field: "params", type: "repeater", helpText: "User input parameters (show form before executing)" },
2332
+ { field: "confirmText", helpText: 'Confirmation message (e.g., "Are you sure?")' },
2333
+ { field: "successMessage", helpText: "Success message after completion" },
2334
+ { field: "refreshAfter", helpText: "Refresh the list/page after action completes" }
2335
+ ]
2336
+ },
2337
+ {
2338
+ label: "Placement",
2339
+ description: "Where and when the action button appears.",
2340
+ collapsible: true,
2341
+ collapsed: true,
2342
+ fields: [
2343
+ { field: "locations", type: "repeater", helpText: "Where to show this action (toolbar, row menu, etc.)" },
2344
+ { field: "component", helpText: "How to render (button, icon, menu item)" },
2345
+ { field: "visible", widget: "textarea", helpText: "CEL expression: show only when condition is true" },
2346
+ { field: "disabled", widget: "textarea", helpText: "CEL expression: disable when condition is true" },
2347
+ { field: "shortcut", helpText: 'Keyboard shortcut (e.g., "Ctrl+S", "Cmd+Enter")' }
2348
+ ]
2349
+ },
2350
+ {
2351
+ label: "Advanced",
2352
+ description: "Bulk operations, AI exposure, and API request shape.",
2353
+ collapsible: true,
2354
+ collapsed: true,
2355
+ columns: 2,
2356
+ fields: [
2357
+ { field: "bulkEnabled", colSpan: 1, helpText: "Allow applying to multiple selected records" },
2358
+ { field: "aiExposed", colSpan: 1, helpText: "Allow AI agents to call this action" },
2359
+ { field: "recordIdParam", visibleOn: "data.type == 'api'", colSpan: 1, helpText: "Body parameter name for record ID" },
2360
+ { field: "recordIdField", visibleOn: "data.type == 'api' && data.recordIdParam", colSpan: 1, helpText: 'Field to use as record ID (default: "id")' },
2361
+ { field: "bodyShape", visibleOn: "data.type == 'api'", colSpan: 2, helpText: "Request body structure (flat or nested)" }
2362
+ ]
2363
+ }
2364
+ ]
2365
+ });
2366
+
2367
+ // src/ui/page.form.ts
2368
+ var pageForm = defineForm({
2369
+ schemaId: "page",
2370
+ type: "simple",
2371
+ sections: [
2372
+ {
2373
+ label: "Basics",
2374
+ description: "Page identity and template.",
2375
+ columns: 2,
2376
+ fields: [
2377
+ { field: "name", required: true, colSpan: 1, helpText: "Unique identifier (snake_case)" },
2378
+ { field: "label", required: true, colSpan: 1, helpText: "Page title shown to users" },
2379
+ { field: "icon", colSpan: 1, helpText: "Icon for navigation menu" },
2380
+ { field: "type", colSpan: 1, helpText: "Page type (record, home, app, dashboard, etc.)" },
2381
+ { field: "template", colSpan: 2, helpText: 'Layout template (e.g., "header-sidebar-main")' },
2382
+ { field: "description", widget: "textarea", colSpan: 2, helpText: "Page description for navigation" }
2383
+ ]
2384
+ },
2385
+ {
2386
+ label: "Data Context",
2387
+ description: "Record binding and page-local state.",
2388
+ fields: [
2389
+ { field: "object", widget: "ref:object", helpText: "Bound object (for Record pages)" },
2390
+ { field: "variables", type: "repeater", helpText: "Local page state variables" }
2391
+ ]
2392
+ },
2393
+ {
2394
+ label: "Layout",
2395
+ description: "Page regions and components placed within them.",
2396
+ fields: [
2397
+ { field: "regions", type: "repeater", required: true, helpText: "Layout regions (header, main, sidebar, footer) with components" }
2398
+ ]
2399
+ },
2400
+ {
2401
+ label: "Advanced",
2402
+ description: "Activation, audience, and accessibility.",
2403
+ collapsible: true,
2404
+ collapsed: true,
2405
+ fields: [
2406
+ { field: "isDefault", helpText: "Set as default page for this page type" },
2407
+ { field: "kind", helpText: "Page override mode: full or slotted (for record pages)" },
2408
+ { field: "assignedProfiles", widget: "string-tags", helpText: "Profiles that can access this page" },
2409
+ { field: "aria", type: "composite", helpText: "Accessibility attributes (ARIA labels, roles)" }
2410
+ ]
2411
+ }
2412
+ ]
2413
+ });
1966
2414
  var HookBodyCapability = zod.z.enum([
1967
2415
  "api.read",
1968
2416
  "api.write",
@@ -3717,6 +4165,7 @@ exports.ChartTypeSchema = ChartTypeSchema;
3717
4165
  exports.ColorPaletteSchema = ColorPaletteSchema;
3718
4166
  exports.ColumnSummarySchema = ColumnSummarySchema;
3719
4167
  exports.ComponentAnimationSchema = ComponentAnimationSchema;
4168
+ exports.ComponentNavItemSchema = ComponentNavItemSchema;
3720
4169
  exports.ComponentPropsMap = ComponentPropsMap;
3721
4170
  exports.ConflictResolutionSchema = ConflictResolutionSchema;
3722
4171
  exports.Dashboard = Dashboard;
@@ -3874,8 +4323,15 @@ exports.WidgetMeasureSchema = WidgetMeasureSchema;
3874
4323
  exports.WidgetPropertySchema = WidgetPropertySchema;
3875
4324
  exports.WidgetSourceSchema = WidgetSourceSchema;
3876
4325
  exports.ZIndexSchema = ZIndexSchema;
4326
+ exports.actionForm = actionForm;
4327
+ exports.appForm = appForm;
4328
+ exports.dashboardForm = dashboardForm;
3877
4329
  exports.defineApp = defineApp;
4330
+ exports.defineForm = defineForm;
3878
4331
  exports.definePortal = definePortal;
3879
4332
  exports.defineView = defineView;
4333
+ exports.pageForm = pageForm;
4334
+ exports.reportForm = reportForm;
4335
+ exports.viewForm = viewForm;
3880
4336
  //# sourceMappingURL=index.js.map
3881
4337
  //# sourceMappingURL=index.js.map