@objectstack/spec 6.7.1 → 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.mjs CHANGED
@@ -426,6 +426,11 @@ var ActionNavItemSchema = lazySchema(() => BaseNavItemSchema.extend({
426
426
  params: z.record(z.string(), z.unknown()).optional().describe("Parameters passed to the action")
427
427
  }).describe("Action definition to execute when clicked")
428
428
  }));
429
+ var ComponentNavItemSchema = lazySchema(() => BaseNavItemSchema.extend({
430
+ type: z.literal("component"),
431
+ componentRef: z.string().describe('Component registry key (e.g. "metadata:directory")'),
432
+ params: z.record(z.string(), z.unknown()).optional().describe("Props passed to the component")
433
+ }));
429
434
  var GroupNavItemSchema = lazySchema(() => BaseNavItemSchema.extend({
430
435
  type: z.literal("group"),
431
436
  expanded: z.boolean().default(false).describe("Default expansion state in sidebar")
@@ -441,6 +446,7 @@ var NavigationItemSchema = z.lazy(
441
446
  UrlNavItemSchema,
442
447
  ReportNavItemSchema,
443
448
  ActionNavItemSchema,
449
+ ComponentNavItemSchema,
444
450
  GroupNavItemSchema.extend({
445
451
  children: z.array(NavigationItemSchema).describe("Child navigation items")
446
452
  })
@@ -566,1401 +572,1843 @@ var App = {
566
572
  function defineApp(config) {
567
573
  return AppSchema.parse(config);
568
574
  }
569
- var HttpMethod = z.enum([
570
- "GET",
571
- "POST",
572
- "PUT",
573
- "DELETE",
574
- "PATCH",
575
- "HEAD",
576
- "OPTIONS"
575
+ var EncryptionAlgorithmSchema = lazySchema(() => z.enum([
576
+ "aes-256-gcm",
577
+ "aes-256-cbc",
578
+ "chacha20-poly1305"
579
+ ]).describe("Supported encryption algorithm"));
580
+ var KeyManagementProviderSchema = lazySchema(() => z.enum([
581
+ "local",
582
+ "aws-kms",
583
+ "azure-key-vault",
584
+ "gcp-kms",
585
+ "hashicorp-vault"
586
+ ]).describe("Key management service provider"));
587
+ var KeyRotationPolicySchema = lazySchema(() => z.object({
588
+ enabled: z.boolean().default(false).describe("Enable automatic key rotation"),
589
+ frequencyDays: z.number().min(1).default(90).describe("Rotation frequency in days"),
590
+ retainOldVersions: z.number().default(3).describe("Number of old key versions to retain"),
591
+ autoRotate: z.boolean().default(true).describe("Automatically rotate without manual approval")
592
+ }).describe("Policy for automatic encryption key rotation"));
593
+ var EncryptionConfigSchema = lazySchema(() => z.object({
594
+ enabled: z.boolean().default(false).describe("Enable field-level encryption"),
595
+ algorithm: EncryptionAlgorithmSchema.default("aes-256-gcm").describe("Encryption algorithm"),
596
+ keyManagement: z.object({
597
+ provider: KeyManagementProviderSchema.describe("Key management service provider"),
598
+ keyId: z.string().optional().describe("Key identifier in the provider"),
599
+ rotationPolicy: KeyRotationPolicySchema.optional().describe("Key rotation policy")
600
+ }).describe("Key management configuration"),
601
+ scope: z.enum(["field", "record", "table", "database"]).describe("Encryption scope level"),
602
+ deterministicEncryption: z.boolean().default(false).describe("Allows equality queries on encrypted data"),
603
+ searchableEncryption: z.boolean().default(false).describe("Allows search on encrypted data")
604
+ }).describe("Field-level encryption configuration"));
605
+ lazySchema(() => z.object({
606
+ fieldName: z.string().describe("Name of the field to encrypt"),
607
+ encryptionConfig: EncryptionConfigSchema.describe("Encryption settings for this field"),
608
+ indexable: z.boolean().default(false).describe("Allow indexing on encrypted field")
609
+ }).describe("Per-field encryption assignment"));
610
+ var MaskingStrategySchema = lazySchema(() => z.enum([
611
+ "redact",
612
+ // Complete redaction: ****
613
+ "partial",
614
+ // Partial masking: 138****5678
615
+ "hash",
616
+ // Hash value: sha256(value)
617
+ "tokenize",
618
+ // Tokenization: token-12345
619
+ "randomize",
620
+ // Randomize: generate random value
621
+ "nullify",
622
+ // Null value: null
623
+ "substitute"
624
+ // Substitute with dummy data
625
+ ]).describe("Data masking strategy for PII protection"));
626
+ var MaskingRuleSchema = lazySchema(() => z.object({
627
+ field: z.string().describe("Field name to apply masking to"),
628
+ strategy: MaskingStrategySchema.describe("Masking strategy to use"),
629
+ pattern: z.string().optional().describe("Regex pattern for partial masking"),
630
+ preserveFormat: z.boolean().default(true).describe("Keep the original data format after masking"),
631
+ preserveLength: z.boolean().default(true).describe("Keep the original data length after masking"),
632
+ roles: z.array(z.string()).optional().describe("Roles that see masked data"),
633
+ exemptRoles: z.array(z.string()).optional().describe("Roles that see unmasked data")
634
+ }).describe("Masking rule for a single field"));
635
+ lazySchema(() => z.object({
636
+ enabled: z.boolean().default(false).describe("Enable data masking"),
637
+ rules: z.array(MaskingRuleSchema).describe("List of field-level masking rules"),
638
+ auditUnmasking: z.boolean().default(true).describe("Log when masked data is accessed unmasked")
639
+ }).describe("Top-level data masking configuration for PII protection"));
640
+
641
+ // src/data/field.zod.ts
642
+ var FieldType = z.enum([
643
+ // Core Text
644
+ "text",
645
+ "textarea",
646
+ "email",
647
+ "url",
648
+ "phone",
649
+ "password",
650
+ // Rich Content
651
+ "markdown",
652
+ "html",
653
+ "richtext",
654
+ // Numbers
655
+ "number",
656
+ "currency",
657
+ "percent",
658
+ // Date & Time
659
+ "date",
660
+ "datetime",
661
+ "time",
662
+ // Logic
663
+ "boolean",
664
+ "toggle",
665
+ // Toggle is a distinct UI from checkbox
666
+ // Selection
667
+ "select",
668
+ // Single select dropdown
669
+ "multiselect",
670
+ // Multi select (often tags)
671
+ "radio",
672
+ // Radio group
673
+ "checkboxes",
674
+ // Checkbox group
675
+ // Relational
676
+ "lookup",
677
+ "master_detail",
678
+ // Dynamic reference
679
+ "tree",
680
+ // Hierarchical reference
681
+ // Media
682
+ "image",
683
+ "file",
684
+ "avatar",
685
+ "video",
686
+ "audio",
687
+ // Calculated / System
688
+ "formula",
689
+ "summary",
690
+ "autonumber",
691
+ // Embedded structured values (stored as JSON on the parent row — no separate table / FK)
692
+ "composite",
693
+ // Single embedded sub-object with declared sub-fields (≈ Strapi component / ACF group)
694
+ "repeater",
695
+ // Repeating embedded sub-object array with declared sub-fields (≈ Strapi repeatable component / ACF repeater)
696
+ // Enhanced Types
697
+ "location",
698
+ // GPS coordinates
699
+ "address",
700
+ // Structured address
701
+ "code",
702
+ // Code editor (JSON/SQL/JS)
703
+ "json",
704
+ // Structured JSON data (untyped escape hatch)
705
+ "color",
706
+ // Color picker
707
+ "rating",
708
+ // Star rating
709
+ "slider",
710
+ // Numeric slider
711
+ "signature",
712
+ // Digital signature
713
+ "qrcode",
714
+ // QR code / Barcode
715
+ "progress",
716
+ // Progress bar
717
+ "tags",
718
+ // Simple tag list
719
+ // AI/ML Types
720
+ "vector"
721
+ // Vector embeddings for AI/ML (semantic search, RAG)
577
722
  ]);
578
- var HttpMethodSchema = lazySchema(() => z.enum(["GET", "POST", "PUT", "PATCH", "DELETE"]));
579
- var HttpRequestSchema = lazySchema(() => z.object({
580
- url: z.string().describe("API endpoint URL"),
581
- method: HttpMethodSchema.optional().default("GET").describe("HTTP method"),
582
- headers: z.record(z.string(), z.string()).optional().describe("Custom HTTP headers"),
583
- params: z.record(z.string(), z.unknown()).optional().describe("Query parameters"),
584
- body: z.unknown().optional().describe("Request body for POST/PUT/PATCH")
723
+ var SelectOptionSchema = lazySchema(() => z.object({
724
+ label: z.string().describe("Display label (human-readable, any case allowed)"),
725
+ value: SystemIdentifierSchema.describe("Stored value (lowercase machine identifier)"),
726
+ color: z.string().optional().describe("Color code for badges/charts"),
727
+ default: z.boolean().optional().describe("Is default option")
585
728
  }));
586
729
  lazySchema(() => z.object({
587
- /**
588
- * Enable CORS
589
- */
590
- enabled: z.boolean().default(true).describe("Enable CORS"),
591
- /**
592
- * Allowed origins (* for all)
593
- */
594
- origins: z.union([
595
- z.string(),
596
- z.array(z.string())
597
- ]).default("*").describe("Allowed origins (* for all)"),
598
- /**
599
- * Allowed HTTP methods
600
- */
601
- methods: z.array(HttpMethod).optional().describe("Allowed HTTP methods"),
602
- /**
603
- * Allow credentials (cookies, authorization headers)
604
- */
605
- credentials: z.boolean().default(false).describe("Allow credentials (cookies, authorization headers)"),
606
- /**
607
- * Preflight cache duration in seconds
608
- */
609
- maxAge: z.number().int().optional().describe("Preflight cache duration in seconds")
730
+ latitude: z.number().min(-90).max(90).describe("Latitude coordinate"),
731
+ longitude: z.number().min(-180).max(180).describe("Longitude coordinate"),
732
+ altitude: z.number().optional().describe("Altitude in meters"),
733
+ accuracy: z.number().optional().describe("Accuracy in meters")
734
+ }));
735
+ var CurrencyConfigSchema = lazySchema(() => z.object({
736
+ precision: z.number().int().min(0).max(10).default(2).describe("Decimal precision (default: 2)"),
737
+ currencyMode: z.enum(["dynamic", "fixed"]).default("dynamic").describe("Currency mode: dynamic (user selectable) or fixed (single currency)"),
738
+ defaultCurrency: z.string().length(3).default("CNY").describe("Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)")
610
739
  }));
611
740
  lazySchema(() => z.object({
612
- /**
613
- * Enable rate limiting
614
- */
615
- enabled: z.boolean().default(false).describe("Enable rate limiting"),
616
- /**
617
- * Time window in milliseconds
618
- */
619
- windowMs: z.number().int().default(6e4).describe("Time window in milliseconds"),
620
- /**
621
- * Max requests per window
622
- */
623
- maxRequests: z.number().int().default(100).describe("Max requests per window")
741
+ value: z.number().describe("Monetary amount"),
742
+ currency: z.string().length(3).describe("Currency code (ISO 4217)")
624
743
  }));
625
744
  lazySchema(() => z.object({
626
- /**
627
- * URL path to serve from
628
- */
629
- path: z.string().describe("URL path to serve from"),
630
- /**
631
- * Physical directory to serve
632
- */
633
- directory: z.string().describe("Physical directory to serve"),
634
- /**
635
- * Cache-Control header value
636
- */
637
- cacheControl: z.string().optional().describe("Cache-Control header value")
745
+ street: z.string().optional().describe("Street address"),
746
+ city: z.string().optional().describe("City name"),
747
+ state: z.string().optional().describe("State/Province"),
748
+ postalCode: z.string().optional().describe("Postal/ZIP code"),
749
+ country: z.string().optional().describe("Country name or code"),
750
+ countryCode: z.string().optional().describe("ISO country code (e.g., US, GB)"),
751
+ formatted: z.string().optional().describe("Formatted address string")
638
752
  }));
639
-
640
- // src/ui/view.zod.ts
641
- var ViewDataSchema = lazySchema(() => z.discriminatedUnion("provider", [
642
- z.object({
643
- provider: z.literal("object"),
644
- object: z.string().describe("Target object name")
645
- }),
646
- z.object({
647
- provider: z.literal("api"),
648
- read: HttpRequestSchema.optional().describe("Configuration for fetching data"),
649
- write: HttpRequestSchema.optional().describe("Configuration for submitting data (for forms/editable tables)")
650
- }),
651
- z.object({
652
- provider: z.literal("value"),
653
- items: z.array(z.unknown()).describe("Static data array")
654
- })
655
- ]));
656
- var ViewFilterRuleSchema = lazySchema(() => z.object({
657
- /** Field name to filter on */
658
- field: z.string().describe("Field name to filter on"),
659
- /** Filter operator */
660
- operator: z.string().describe("Filter operator (e.g. equals, not_equals, contains, this_quarter)"),
661
- /** Filter value (optional for unary operators like is_null, this_quarter) */
662
- value: z.union([z.string(), z.number(), z.boolean(), z.null(), z.array(z.union([z.string(), z.number()]))]).optional().describe("Filter value")
663
- }).describe("View filter rule"));
664
- var ColumnSummarySchema = lazySchema(() => z.enum([
665
- "none",
666
- "count",
667
- "count_empty",
668
- "count_filled",
669
- "count_unique",
670
- "percent_empty",
671
- "percent_filled",
672
- "sum",
673
- "avg",
674
- "min",
675
- "max"
676
- ]).describe("Aggregation function for column footer summary"));
677
- var ListColumnSchema = lazySchema(() => z.object({
678
- field: z.string().describe("Field name (snake_case)"),
679
- label: I18nLabelSchema.optional().describe("Display label override"),
680
- width: z.number().positive().optional().describe("Column width in pixels"),
681
- align: z.enum(["left", "center", "right"]).optional().describe("Text alignment"),
682
- hidden: z.boolean().optional().describe("Hide column by default"),
683
- sortable: z.boolean().optional().describe("Allow sorting by this column"),
684
- resizable: z.boolean().optional().describe("Allow resizing this column"),
685
- wrap: z.boolean().optional().describe("Allow text wrapping"),
686
- type: z.string().optional().describe('Renderer type override (e.g., "currency", "date")'),
687
- /** Pinning (Airtable-style frozen columns) */
688
- pinned: z.enum(["left", "right"]).optional().describe("Pin/freeze column to left or right side"),
689
- /** Column Footer Summary (Airtable-style aggregation) */
690
- summary: ColumnSummarySchema.optional().describe("Footer aggregation function for this column"),
691
- /** Interaction */
692
- link: z.boolean().optional().describe("Functions as the primary navigation link (triggers View navigation)"),
693
- action: z.string().optional().describe("Registered Action ID to execute when clicked")
694
- }));
695
- var SelectionConfigSchema = lazySchema(() => z.object({
696
- type: z.enum(["none", "single", "multiple"]).default("none").describe("Selection mode")
697
- }));
698
- var PaginationConfigSchema = lazySchema(() => z.object({
699
- pageSize: z.number().int().positive().default(25).describe("Number of records per page"),
700
- pageSizeOptions: z.array(z.number().int().positive()).optional().describe("Available page size options")
701
- }));
702
- var RowHeightSchema = lazySchema(() => z.enum([
703
- "compact",
704
- // Minimal padding, single line
705
- "short",
706
- // Reduced padding
707
- "medium",
708
- // Default padding
709
- "tall",
710
- // Extra padding, multi-line preview
711
- "extra_tall"
712
- // Maximum padding, rich content preview
713
- ]).describe("Row height / density setting for list view"));
714
- var GroupingFieldSchema = lazySchema(() => z.object({
715
- field: z.string().describe("Field name to group by"),
716
- order: z.enum(["asc", "desc"]).default("asc").describe("Group sort order"),
717
- collapsed: z.boolean().default(false).describe("Collapse groups by default")
718
- }));
719
- var GroupingConfigSchema = lazySchema(() => z.object({
720
- fields: z.array(GroupingFieldSchema).min(1).describe("Fields to group by (supports up to 3 levels)")
721
- }).describe("Record grouping configuration"));
722
- var GalleryConfigSchema = lazySchema(() => z.object({
723
- coverField: z.string().optional().describe("Attachment/image field to display as card cover"),
724
- coverFit: z.enum(["cover", "contain"]).default("cover").describe("Image fit mode for card cover"),
725
- cardSize: z.enum(["small", "medium", "large"]).default("medium").describe("Card size in gallery view"),
726
- titleField: z.string().optional().describe("Field to display as card title"),
727
- visibleFields: z.array(z.string()).optional().describe("Fields to display on card body")
728
- }).describe("Gallery/card view configuration"));
729
- var TimelineConfigSchema = lazySchema(() => z.object({
730
- startDateField: z.string().describe("Field for timeline item start date"),
731
- endDateField: z.string().optional().describe("Field for timeline item end date"),
732
- titleField: z.string().describe("Field to display as timeline item title"),
733
- groupByField: z.string().optional().describe("Field to group timeline rows"),
734
- colorField: z.string().optional().describe("Field to determine item color"),
735
- scale: z.enum(["hour", "day", "week", "month", "quarter", "year"]).default("week").describe("Default timeline scale")
736
- }).describe("Timeline view configuration"));
737
- var ViewSharingSchema = lazySchema(() => z.object({
738
- type: z.enum(["personal", "collaborative"]).default("collaborative").describe("View ownership type"),
739
- lockedBy: z.string().optional().describe("User who locked the view configuration")
740
- }).describe("View sharing and access configuration"));
741
- var RowColorConfigSchema = lazySchema(() => z.object({
742
- field: z.string().describe("Field to derive color from (typically a select/status field)"),
743
- colors: z.record(z.string(), z.string()).optional().describe("Map of field value to color (hex/token)")
744
- }).describe("Row color configuration based on field values"));
745
- var VisualizationTypeSchema = lazySchema(() => z.enum([
746
- "grid",
747
- "kanban",
748
- "gallery",
749
- "calendar",
750
- "timeline",
751
- "gantt",
752
- "map"
753
- ]).describe("Visualization type that users can switch to"));
754
- var UserActionsConfigSchema = lazySchema(() => z.object({
755
- sort: z.boolean().default(true).describe("Allow users to sort records"),
756
- search: z.boolean().default(true).describe("Allow users to search records"),
757
- filter: z.boolean().default(true).describe("Allow users to filter records"),
758
- rowHeight: z.boolean().default(true).describe("Allow users to toggle row height/density"),
759
- addRecordForm: z.boolean().default(false).describe("Add records through a form instead of inline"),
760
- buttons: z.array(z.string()).optional().describe("Custom action button IDs to show in the toolbar")
761
- }).describe("User action toggles for the view toolbar"));
762
- var AppearanceConfigSchema = lazySchema(() => z.object({
763
- showDescription: z.boolean().default(true).describe("Show the view description text"),
764
- allowedVisualizations: z.array(VisualizationTypeSchema).optional().describe('Whitelist of visualization types users can switch between (e.g. ["grid", "gallery", "kanban"])')
765
- }).describe("Appearance and visualization configuration"));
766
- var ViewTabSchema = lazySchema(() => z.object({
767
- name: SnakeCaseIdentifierSchema.describe("Tab identifier (snake_case)"),
768
- label: I18nLabelSchema.optional().describe("Display label"),
769
- icon: z.string().optional().describe("Tab icon name"),
770
- view: z.string().optional().describe("Referenced list view name from listViews"),
771
- filter: z.array(ViewFilterRuleSchema).optional().describe("Tab-specific filter criteria"),
772
- order: z.number().int().min(0).optional().describe("Tab display order"),
773
- pinned: z.boolean().default(false).describe("Pin tab (cannot be removed by users)"),
774
- isDefault: z.boolean().default(false).describe("Set as the default active tab"),
775
- visible: z.boolean().default(true).describe("Tab visibility")
776
- }).describe("Tab configuration for multi-tab view interface"));
777
- var AddRecordConfigSchema = lazySchema(() => z.object({
778
- enabled: z.boolean().default(true).describe("Show the add record entry point"),
779
- position: z.enum(["top", "bottom", "both"]).default("bottom").describe("Position of the add record button"),
780
- mode: z.enum(["inline", "form", "modal"]).default("inline").describe("How to add a new record"),
781
- formView: z.string().optional().describe('Named form view to use when mode is "form" or "modal"')
782
- }).describe("Add record entry point configuration"));
783
- var KanbanConfigSchema = lazySchema(() => z.object({
784
- groupByField: z.string().describe("Field to group columns by (usually status/select)"),
785
- summarizeField: z.string().optional().describe("Field to sum at top of column (e.g. amount)"),
786
- columns: z.array(z.string()).describe("Fields to show on cards")
753
+ var VectorConfigSchema = lazySchema(() => z.object({
754
+ dimensions: z.number().int().min(1).max(1e4).describe("Vector dimensionality (e.g., 1536 for OpenAI embeddings)"),
755
+ distanceMetric: z.enum(["cosine", "euclidean", "dotProduct", "manhattan"]).default("cosine").describe("Distance/similarity metric for vector search"),
756
+ normalized: z.boolean().default(false).describe("Whether vectors are normalized (unit length)"),
757
+ indexed: z.boolean().default(true).describe("Whether to create a vector index for fast similarity search"),
758
+ indexType: z.enum(["hnsw", "ivfflat", "flat"]).optional().describe("Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets)")
787
759
  }));
788
- var ListChartConfigSchema = lazySchema(() => z.object({
789
- chartType: z.enum(["bar", "line", "pie", "area", "scatter"]).default("bar").describe("Chart visualisation type"),
790
- xAxisField: z.string().describe("Field used as the X axis / category dimension"),
791
- yAxisFields: z.array(z.string()).min(1).describe("Field(s) used as the Y axis / measures"),
792
- aggregation: z.enum(["sum", "avg", "count", "min", "max"]).optional().describe("Aggregation function applied to Y axis fields"),
793
- groupByField: z.string().optional().describe("Optional field used to split / stack the chart")
794
- }).describe("List chart view configuration"));
795
- var CalendarConfigSchema = lazySchema(() => z.object({
796
- startDateField: z.string(),
797
- endDateField: z.string().optional(),
798
- titleField: z.string(),
799
- colorField: z.string().optional()
760
+ var FileAttachmentConfigSchema = lazySchema(() => z.object({
761
+ /** File Size Limits */
762
+ minSize: z.number().min(0).optional().describe("Minimum file size in bytes"),
763
+ maxSize: z.number().min(1).optional().describe("Maximum file size in bytes (e.g., 10485760 = 10MB)"),
764
+ /** File Type Restrictions */
765
+ allowedTypes: z.array(z.string()).optional().describe('Allowed file extensions (e.g., [".pdf", ".docx", ".jpg"])'),
766
+ blockedTypes: z.array(z.string()).optional().describe('Blocked file extensions (e.g., [".exe", ".bat", ".sh"])'),
767
+ allowedMimeTypes: z.array(z.string()).optional().describe('Allowed MIME types (e.g., ["image/jpeg", "application/pdf"])'),
768
+ blockedMimeTypes: z.array(z.string()).optional().describe("Blocked MIME types"),
769
+ /** Virus Scanning */
770
+ virusScan: z.boolean().default(false).describe("Enable virus scanning for uploaded files"),
771
+ virusScanProvider: z.enum(["clamav", "virustotal", "metadefender", "custom"]).optional().describe("Virus scanning service provider"),
772
+ virusScanOnUpload: z.boolean().default(true).describe("Scan files immediately on upload"),
773
+ quarantineOnThreat: z.boolean().default(true).describe("Quarantine files if threat detected"),
774
+ /** Storage Configuration */
775
+ storageProvider: z.string().optional().describe("Object storage provider name (references ObjectStorageConfig)"),
776
+ storageBucket: z.string().optional().describe("Target bucket name"),
777
+ storagePrefix: z.string().optional().describe('Storage path prefix (e.g., "uploads/documents/")'),
778
+ /** Image-Specific Validation */
779
+ imageValidation: z.object({
780
+ minWidth: z.number().min(1).optional().describe("Minimum image width in pixels"),
781
+ maxWidth: z.number().min(1).optional().describe("Maximum image width in pixels"),
782
+ minHeight: z.number().min(1).optional().describe("Minimum image height in pixels"),
783
+ maxHeight: z.number().min(1).optional().describe("Maximum image height in pixels"),
784
+ aspectRatio: z.string().optional().describe('Required aspect ratio (e.g., "16:9", "1:1")'),
785
+ generateThumbnails: z.boolean().default(false).describe("Auto-generate thumbnails"),
786
+ thumbnailSizes: z.array(z.object({
787
+ name: z.string().describe('Thumbnail variant name (e.g., "small", "medium", "large")'),
788
+ width: z.number().min(1).describe("Thumbnail width in pixels"),
789
+ height: z.number().min(1).describe("Thumbnail height in pixels"),
790
+ crop: z.boolean().default(false).describe("Crop to exact dimensions")
791
+ })).optional().describe("Thumbnail size configurations"),
792
+ preserveMetadata: z.boolean().default(false).describe("Preserve EXIF metadata"),
793
+ autoRotate: z.boolean().default(true).describe("Auto-rotate based on EXIF orientation")
794
+ }).optional().describe("Image-specific validation rules"),
795
+ /** Upload Behavior */
796
+ allowMultiple: z.boolean().default(false).describe("Allow multiple file uploads (overrides field.multiple)"),
797
+ allowReplace: z.boolean().default(true).describe("Allow replacing existing files"),
798
+ allowDelete: z.boolean().default(true).describe("Allow deleting uploaded files"),
799
+ requireUpload: z.boolean().default(false).describe("Require at least one file when field is required"),
800
+ /** Metadata Extraction */
801
+ extractMetadata: z.boolean().default(true).describe("Extract file metadata (name, size, type, etc.)"),
802
+ extractText: z.boolean().default(false).describe("Extract text content from documents (OCR/parsing)"),
803
+ /** Versioning */
804
+ versioningEnabled: z.boolean().default(false).describe("Keep previous versions of replaced files"),
805
+ maxVersions: z.number().min(1).optional().describe("Maximum number of versions to retain"),
806
+ /** Access Control */
807
+ publicRead: z.boolean().default(false).describe("Allow public read access to uploaded files"),
808
+ presignedUrlExpiry: z.number().min(60).max(604800).default(3600).describe("Presigned URL expiration in seconds (default: 1 hour)")
809
+ }).refine((data) => {
810
+ if (data.minSize !== void 0 && data.maxSize !== void 0 && data.minSize > data.maxSize) {
811
+ return false;
812
+ }
813
+ return true;
814
+ }, {
815
+ message: "minSize must be less than or equal to maxSize"
816
+ }).refine((data) => {
817
+ if (data.virusScanProvider !== void 0 && data.virusScan !== true) {
818
+ return false;
819
+ }
820
+ return true;
821
+ }, {
822
+ message: "virusScanProvider requires virusScan to be enabled"
800
823
  }));
801
- var GanttConfigSchema = lazySchema(() => z.object({
802
- startDateField: z.string(),
803
- endDateField: z.string(),
804
- titleField: z.string(),
805
- progressField: z.string().optional(),
806
- dependenciesField: z.string().optional()
824
+ var DataQualityRulesSchema = lazySchema(() => z.object({
825
+ /** Enforce uniqueness constraint */
826
+ uniqueness: z.boolean().default(false).describe("Enforce unique values across all records"),
827
+ /** Completeness ratio (0-1) indicating minimum percentage of non-null values */
828
+ completeness: z.number().min(0).max(1).default(0).describe("Minimum ratio of non-null values (0-1, default: 0 = no requirement)"),
829
+ /** Accuracy validation against authoritative source */
830
+ accuracy: z.object({
831
+ source: z.string().describe('Reference data source for validation (e.g., "api.verify.com", "master_data")'),
832
+ threshold: z.number().min(0).max(1).describe("Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)")
833
+ }).optional().describe("Accuracy validation configuration")
807
834
  }));
808
- var NavigationModeSchema = lazySchema(() => z.enum([
809
- "page",
810
- // Navigate to a new route (default)
811
- "drawer",
812
- // Open details in a side drawer/panel
813
- "modal",
814
- // Open details in a modal dialog
815
- "split",
816
- // Show details side-by-side with the list (master-detail)
817
- "popover",
818
- // Show details in a popover (lightweight)
819
- "new_window",
820
- // Open in new browser tab/window
821
- "none"
822
- // No navigation (read-only list)
823
- ]));
824
- var NavigationConfigSchema = lazySchema(() => z.object({
825
- mode: NavigationModeSchema.default("page"),
826
- /** Target View Config */
827
- view: z.string().optional().describe('Name of the form view to use for details (e.g. "summary_view", "edit_form")'),
828
- /** Interaction Triggers */
829
- preventNavigation: z.boolean().default(false).describe("Disable standard navigation entirely"),
830
- openNewTab: z.boolean().default(false).describe("Force open in new tab (applies to page mode)"),
831
- /** Dimensions (for modal/drawer) */
832
- width: z.union([z.string(), z.number()]).optional().describe('Width of the drawer/modal (e.g. "600px", "50%")')
835
+ var ComputedFieldCacheSchema = lazySchema(() => z.object({
836
+ /** Enable caching for this computed field */
837
+ enabled: z.boolean().describe("Enable caching for computed field results"),
838
+ /** Time-to-live in seconds */
839
+ ttl: z.number().min(0).describe("Cache TTL in seconds (0 = no expiration)"),
840
+ /** Array of field paths that trigger cache invalidation when changed */
841
+ invalidateOn: z.array(z.string()).describe('Field paths that invalidate cache (e.g., ["inventory.quantity", "pricing.base_price"])')
833
842
  }));
834
- var ListViewSchema = lazySchema(() => z.object({
835
- name: SnakeCaseIdentifierSchema.optional().describe("Internal view name (lowercase snake_case)"),
836
- label: I18nLabelSchema.optional(),
837
- // Display label override (supports i18n)
838
- type: z.enum([
839
- "grid",
840
- // Standard Data Table
841
- "kanban",
842
- // Board / Columns
843
- "gallery",
844
- // Card Deck / Masonry
845
- "calendar",
846
- // Monthly/Weekly/Daily
847
- "timeline",
848
- // Chronological Stream (Feed)
849
- "gantt",
850
- // Project Timeline
851
- "map",
852
- // Geospatial
853
- "chart"
854
- // Aggregate visualisation
855
- ]).default("grid"),
856
- /** Data Source Configuration */
857
- data: ViewDataSchema.optional().describe('Data source configuration (defaults to "object" provider)'),
858
- /** Shared Query Config */
859
- columns: z.union([
860
- z.array(z.string()),
861
- // Legacy: simple field names
862
- z.array(ListColumnSchema)
863
- // Enhanced: detailed column config
864
- ]).describe("Fields to display as columns"),
865
- filter: z.array(ViewFilterRuleSchema).optional().describe("Filter criteria (JSON Rules)"),
866
- sort: z.union([
867
- z.string(),
868
- //Legacy "field desc"
869
- z.array(z.object({
870
- field: z.string(),
871
- order: z.enum(["asc", "desc"])
872
- }))
873
- ]).optional(),
874
- /** Search & Filter */
875
- searchableFields: z.array(z.string()).optional().describe("Fields enabled for search"),
876
- filterableFields: z.array(z.string()).optional().describe("Fields enabled for end-user filtering in the top bar"),
877
- /** Grid Features */
878
- resizable: z.boolean().optional().describe("Enable column resizing"),
879
- striped: z.boolean().optional().describe("Striped row styling"),
880
- bordered: z.boolean().optional().describe("Show borders"),
881
- compactToolbar: z.boolean().optional().describe("Collapse Group/Color/Density/Hide-fields into a single View settings popover"),
882
- /** Selection */
883
- selection: SelectionConfigSchema.optional().describe("Row selection configuration"),
884
- /** Navigation / Interaction */
885
- navigation: NavigationConfigSchema.optional().describe("Configuration for item click navigation (page, drawer, modal, etc.)"),
886
- /** Pagination */
887
- pagination: PaginationConfigSchema.optional().describe("Pagination configuration"),
888
- /** Type Specific Config */
889
- kanban: KanbanConfigSchema.optional(),
890
- calendar: CalendarConfigSchema.optional(),
891
- gantt: GanttConfigSchema.optional(),
892
- gallery: GalleryConfigSchema.optional(),
893
- timeline: TimelineConfigSchema.optional(),
894
- chart: ListChartConfigSchema.optional(),
895
- /** View Metadata (Airtable-style view management) */
896
- description: I18nLabelSchema.optional().describe("View description for documentation/tooltips"),
897
- sharing: ViewSharingSchema.optional().describe("View sharing and access configuration"),
898
- /** Row Height / Density (Airtable-style) */
899
- rowHeight: RowHeightSchema.optional().describe("Row height / density setting"),
900
- /** Record Grouping (Airtable-style) */
901
- grouping: GroupingConfigSchema.optional().describe("Group records by one or more fields"),
902
- /** Row Color (Airtable-style) */
903
- rowColor: RowColorConfigSchema.optional().describe("Color rows based on field value"),
904
- /** Field Visibility & Ordering per View (Airtable-style) */
905
- hiddenFields: z.array(z.string()).optional().describe("Fields to hide in this specific view"),
906
- fieldOrder: z.array(z.string()).optional().describe("Explicit field display order for this view"),
907
- /** Row & Bulk Actions */
908
- rowActions: z.array(z.string()).optional().describe("Actions available for individual row items"),
909
- bulkActions: z.array(z.string()).optional().describe("Actions available when multiple rows are selected"),
910
- bulkActionDefs: z.array(z.record(z.string(), z.any())).optional().describe("Rich bulk action definitions (schema-driven, executed via BulkActionDialog)"),
911
- /** Performance */
912
- virtualScroll: z.boolean().optional().describe("Enable virtual scrolling for large datasets"),
913
- /** Conditional Formatting */
914
- conditionalFormatting: z.array(z.object({
915
- condition: ExpressionInputSchema.describe("Predicate (CEL) to evaluate."),
916
- style: z.record(z.string(), z.string()).describe("CSS styles to apply when condition is true")
917
- })).optional().describe("Conditional formatting rules for list rows"),
918
- /** Inline Edit */
919
- inlineEdit: z.boolean().optional().describe("Allow inline editing of records directly in the list view"),
920
- /** Export */
921
- exportOptions: z.array(z.enum(["csv", "xlsx", "pdf", "json"])).optional().describe("Available export format options"),
922
- /** User Actions (Airtable Interface parity) */
923
- userActions: UserActionsConfigSchema.optional().describe("User action toggles for the view toolbar"),
924
- /** Appearance (Airtable Interface parity) */
925
- appearance: AppearanceConfigSchema.optional().describe("Appearance and visualization configuration"),
926
- /** Tabs (Airtable Interface parity) */
927
- tabs: z.array(ViewTabSchema).optional().describe("Tab definitions for multi-tab view interface"),
928
- /** Add Record (Airtable Interface parity) */
929
- addRecord: AddRecordConfigSchema.optional().describe("Add record entry point configuration"),
930
- /** Record Count Display (Airtable Interface parity) */
931
- showRecordCount: z.boolean().optional().describe("Show record count at the bottom of the list"),
932
- /** Advanced: Allow Printing (Airtable Interface parity) */
933
- allowPrinting: z.boolean().optional().describe("Allow users to print the view"),
934
- /** Empty State */
935
- emptyState: z.object({
936
- title: I18nLabelSchema.optional(),
937
- message: I18nLabelSchema.optional(),
938
- icon: z.string().optional()
939
- }).optional().describe("Empty state configuration when no records found"),
940
- /** ARIA accessibility attributes */
941
- aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes for the list view"),
942
- /** Responsive layout overrides per breakpoint */
943
- responsive: ResponsiveConfigSchema.optional().describe("Responsive layout configuration"),
944
- /** Performance optimization settings */
945
- performance: PerformanceConfigSchema.optional().describe("Performance optimization settings")
946
- }));
947
- var FormFieldSchema = lazySchema(() => z.object({
948
- field: z.string().describe("Field name (snake_case)"),
949
- label: I18nLabelSchema.optional().describe("Display label override"),
950
- placeholder: I18nLabelSchema.optional().describe("Placeholder text"),
951
- helpText: I18nLabelSchema.optional().describe("Help/hint text"),
952
- readonly: z.boolean().optional().describe("Read-only override"),
953
- required: z.boolean().optional().describe("Required override"),
954
- hidden: z.boolean().optional().describe("Hidden override"),
955
- colSpan: z.number().int().min(1).max(4).optional().describe("Column span in grid layout (1-4)"),
956
- widget: z.string().optional().describe("Custom widget/component name"),
957
- dependsOn: z.string().optional().describe("Parent field name for cascading"),
958
- visibleOn: ExpressionInputSchema.optional().describe("Visibility predicate (CEL).")
959
- }));
960
- var FormSectionSchema = lazySchema(() => z.object({
961
- label: I18nLabelSchema.optional(),
962
- collapsible: z.boolean().default(false),
963
- collapsed: z.boolean().default(false),
964
- columns: z.union([
965
- z.enum(["1", "2", "3", "4"]),
966
- z.literal(1),
967
- z.literal(2),
968
- z.literal(3),
969
- z.literal(4)
970
- ]).default(2).transform((val) => typeof val === "string" ? parseInt(val) : val),
971
- fields: z.array(z.union([
972
- z.string(),
973
- // Legacy: simple field name
974
- FormFieldSchema
975
- // Enhanced: detailed field config
976
- ]))
977
- }));
978
- var FormViewSchema = lazySchema(() => z.object({
979
- type: z.enum([
980
- "simple",
981
- // Single column or sections
982
- "tabbed",
983
- // Tabs
984
- "wizard",
985
- // Step by step
986
- "split",
987
- // Master-Detail split
988
- "drawer",
989
- // Side panel
990
- "modal"
991
- // Dialog
992
- ]).default("simple"),
993
- /** Data Source Configuration */
994
- data: ViewDataSchema.optional().describe('Data source configuration (defaults to "object" provider)'),
995
- sections: z.array(FormSectionSchema).optional(),
996
- // For simple layout
997
- groups: z.array(FormSectionSchema).optional(),
998
- // Legacy support -> alias to sections
999
- /** Default Sort for Related Lists (e.g., sort child records by date) */
1000
- defaultSort: z.array(z.object({
1001
- field: z.string().describe("Field name to sort by"),
1002
- order: z.enum(["asc", "desc"]).default("desc").describe("Sort direction")
1003
- })).optional().describe("Default sort order for related list views within this form"),
1004
- /** Public form sharing configuration */
1005
- sharing: SharingConfigSchema.optional().describe("Public sharing configuration for this form"),
843
+ var FieldSchema = lazySchema(() => z.object({
844
+ /** Identity */
845
+ name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe("Machine name (snake_case)").optional(),
846
+ label: z.string().optional().describe("Human readable label"),
847
+ type: FieldType.describe("Field Data Type"),
848
+ description: z.string().optional().describe("Tooltip/Help text"),
849
+ format: z.string().optional().describe("Format string (e.g. email, phone)"),
850
+ /** Storage Layer Mapping */
851
+ columnName: z.string().optional().describe("Physical column name in the target datasource. Defaults to the field key when not set."),
852
+ /** Database Constraints */
853
+ required: z.boolean().default(false).describe("Is required"),
854
+ searchable: z.boolean().default(false).describe("Is searchable"),
855
+ multiple: z.boolean().default(false).describe("Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image."),
856
+ unique: z.boolean().default(false).describe("Is unique constraint"),
857
+ defaultValue: z.unknown().optional().describe("Default value"),
858
+ /** Text/String Constraints */
859
+ maxLength: z.number().optional().describe("Max character length"),
860
+ minLength: z.number().optional().describe("Min character length"),
861
+ /** Number Constraints */
862
+ precision: z.number().optional().describe("Total digits"),
863
+ scale: z.number().optional().describe("Decimal places"),
864
+ min: z.number().optional().describe("Minimum value"),
865
+ max: z.number().optional().describe("Maximum value"),
866
+ /** Selection Options */
867
+ options: z.array(SelectOptionSchema).optional().describe("Static options for select/multiselect"),
1006
868
  /**
1007
- * What happens after a successful submit.
1008
- *
1009
- * - `thank-you` (default) show a confirmation panel
1010
- * - `redirect` send the browser to a URL
1011
- * - `continue` reset the form so another response can be entered
1012
- * - `next-record` advance to the next record (internal queues only)
869
+ * Relationship Config
870
+ *
871
+ * Used by `lookup` and `master_detail` field types to define cross-object references.
872
+ * The `reference` property is **required** for these types — it identifies the target
873
+ * object whose records this field links to. The engine uses `reference` during $expand
874
+ * post-processing to resolve foreign key IDs into full related objects via batch queries.
875
+ *
876
+ * For `master_detail` fields, the parent record controls the lifecycle of child records
877
+ * (e.g., cascade delete). For `lookup` fields, the reference is a soft link.
1013
878
  */
1014
- submitBehavior: z.union([
1015
- z.object({
1016
- kind: z.literal("thank-you"),
1017
- title: z.string().optional(),
1018
- message: z.string().optional()
1019
- }),
1020
- z.object({
1021
- kind: z.literal("redirect"),
1022
- url: z.string(),
1023
- delayMs: z.number().int().min(0).optional()
1024
- }),
1025
- z.object({ kind: z.literal("continue") }),
1026
- z.object({ kind: z.literal("next-record") })
1027
- ]).optional().describe("Post-submit behavior"),
1028
- /** ARIA accessibility attributes */
1029
- aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes for the form view")
1030
- }));
1031
- var ViewSchema = lazySchema(() => z.object({
1032
- list: ListViewSchema.optional(),
1033
- // Default list view
1034
- form: FormViewSchema.optional(),
1035
- // Default form view
1036
- listViews: z.record(z.string(), ListViewSchema).optional().describe("Additional named list views"),
1037
- formViews: z.record(z.string(), FormViewSchema).optional().describe("Additional named form views")
1038
- }));
1039
- function defineView(config) {
1040
- return ViewSchema.parse(config);
1041
- }
1042
- var FieldReferenceSchema = lazySchema(() => z.object({
1043
- $field: z.string().describe("Field Reference/Column Name")
1044
- }));
1045
- lazySchema(() => z.object({
1046
- /** Equal to (default) - SQL: = | MongoDB: $eq */
1047
- $eq: z.any().optional(),
1048
- /** Not equal to - SQL: <> or != | MongoDB: $ne */
1049
- $ne: z.any().optional()
1050
- }));
1051
- lazySchema(() => z.object({
1052
- /** Greater than - SQL: > | MongoDB: $gt */
1053
- $gt: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
1054
- /** Greater than or equal to - SQL: >= | MongoDB: $gte */
1055
- $gte: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
1056
- /** Less than - SQL: < | MongoDB: $lt */
1057
- $lt: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
1058
- /** Less than or equal to - SQL: <= | MongoDB: $lte */
1059
- $lte: z.union([z.number(), z.date(), FieldReferenceSchema]).optional()
1060
- }));
1061
- lazySchema(() => z.object({
1062
- /** In list - SQL: IN (?, ?, ?) | MongoDB: $in */
1063
- $in: z.array(z.any()).optional(),
1064
- /** Not in list - SQL: NOT IN (...) | MongoDB: $nin */
1065
- $nin: z.array(z.any()).optional()
1066
- }));
1067
- lazySchema(() => z.object({
1068
- /** Between (inclusive) - takes [min, max] array */
1069
- $between: z.tuple([
1070
- z.union([z.number(), z.date(), FieldReferenceSchema]),
1071
- z.union([z.number(), z.date(), FieldReferenceSchema])
1072
- ]).optional()
1073
- }));
1074
- lazySchema(() => z.object({
1075
- /** Contains substring - SQL: LIKE %?% | MongoDB: $regex */
1076
- $contains: z.string().optional(),
1077
- /** Does not contain substring - SQL: NOT LIKE %?% | MongoDB: $not: $regex */
1078
- $notContains: z.string().optional(),
1079
- /** Starts with prefix - SQL: LIKE ?% | MongoDB: $regex */
1080
- $startsWith: z.string().optional(),
1081
- /** Ends with suffix - SQL: LIKE %? | MongoDB: $regex */
1082
- $endsWith: z.string().optional()
1083
- }));
1084
- lazySchema(() => z.object({
1085
- /** Is null check - SQL: IS NULL (true) / IS NOT NULL (false) | MongoDB: field: null */
1086
- $null: z.boolean().optional(),
1087
- /** Field exists check (primarily for NoSQL) - MongoDB: $exists */
1088
- $exists: z.boolean().optional()
1089
- }));
1090
- var FieldOperatorsSchema = lazySchema(() => z.object({
1091
- // Equality
1092
- $eq: z.any().optional(),
1093
- $ne: z.any().optional(),
1094
- // Comparison (numeric/date)
1095
- $gt: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
1096
- $gte: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
1097
- $lt: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
1098
- $lte: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
1099
- // Set & Range
1100
- $in: z.array(z.any()).optional(),
1101
- $nin: z.array(z.any()).optional(),
1102
- $between: z.tuple([
1103
- z.union([z.number(), z.date(), FieldReferenceSchema]),
1104
- z.union([z.number(), z.date(), FieldReferenceSchema])
1105
- ]).optional(),
1106
- // String-specific
1107
- $contains: z.string().optional(),
1108
- $notContains: z.string().optional(),
1109
- $startsWith: z.string().optional(),
1110
- $endsWith: z.string().optional(),
1111
- // Special
1112
- $null: z.boolean().optional(),
1113
- $exists: z.boolean().optional()
1114
- }));
1115
- var FilterConditionSchema = z.lazy(
1116
- () => z.record(z.string(), z.unknown()).and(
1117
- z.object({
1118
- $and: z.array(FilterConditionSchema).optional(),
1119
- $or: z.array(FilterConditionSchema).optional(),
1120
- $not: FilterConditionSchema.optional()
1121
- })
1122
- )
1123
- );
1124
- lazySchema(() => z.object({
1125
- where: FilterConditionSchema.optional()
1126
- }));
1127
- var NormalizedFilterSchema = z.lazy(
1128
- () => z.object({
1129
- $and: z.array(
1130
- z.union([
1131
- // Field condition: { field: { $op: value } }
1132
- z.record(z.string(), FieldOperatorsSchema),
1133
- // Nested logical group
1134
- NormalizedFilterSchema
1135
- ])
1136
- ).optional(),
1137
- $or: z.array(
1138
- z.union([
1139
- z.record(z.string(), FieldOperatorsSchema),
1140
- NormalizedFilterSchema
1141
- ])
1142
- ).optional(),
1143
- $not: z.union([
1144
- z.record(z.string(), FieldOperatorsSchema),
1145
- NormalizedFilterSchema
1146
- ]).optional()
1147
- })
1148
- );
1149
- var SortNodeSchema = lazySchema(() => z.object({
1150
- field: z.string(),
1151
- order: z.enum(["asc", "desc"]).default("asc")
1152
- }));
1153
- var AggregationFunction = z.enum([
1154
- "count",
1155
- "sum",
1156
- "avg",
1157
- "min",
1158
- "max",
1159
- "count_distinct",
1160
- "array_agg",
1161
- "string_agg"
1162
- ]);
1163
- var DateGranularity = z.enum(["day", "week", "month", "quarter", "year"]);
1164
- var GroupByNodeSchema = lazySchema(() => z.union([
1165
- z.string(),
1166
- z.object({
1167
- field: z.string().describe("Field to group by"),
1168
- dateGranularity: DateGranularity.optional().describe("Bucket date values into uniform periods (day/week/month/quarter/year)"),
1169
- /** Optional alias for the projected group value (defaults to `field`). */
1170
- alias: z.string().optional().describe("Alias for the projected group value")
1171
- })
1172
- ]));
1173
- var AggregationNodeSchema = lazySchema(() => z.object({
1174
- function: AggregationFunction.describe("Aggregation function"),
1175
- field: z.string().optional().describe("Field to aggregate (optional for COUNT(*))"),
1176
- alias: z.string().describe("Result column alias"),
1177
- distinct: z.boolean().optional().describe("Apply DISTINCT before aggregation"),
1178
- filter: FilterConditionSchema.optional().describe("Filter/Condition to apply to the aggregation (FILTER WHERE clause)")
879
+ reference: z.string().optional().describe(
880
+ "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."
881
+ ),
882
+ referenceFilters: z.array(z.string()).optional().describe('Filters applied to lookup dialogs (e.g. "active = true")'),
883
+ writeRequiresMasterRead: z.boolean().optional().describe("If true, user needs read access to master record to edit this field"),
884
+ deleteBehavior: z.enum(["set_null", "cascade", "restrict"]).optional().default("set_null").describe("What happens if referenced record is deleted"),
885
+ /** Calculation — CEL formula. Plain string accepted for back-compat; build emits canonical envelope. */
886
+ expression: ExpressionInputSchema.optional().describe("Formula expression (CEL). e.g. F`record.amount * 0.1`"),
887
+ summaryOperations: z.object({
888
+ object: z.string().describe("Source child object name for roll-up"),
889
+ field: z.string().describe("Field on child object to aggregate"),
890
+ function: z.enum(["count", "sum", "min", "max", "avg"]).describe("Aggregation function to apply")
891
+ }).optional().describe("Roll-up summary definition"),
892
+ /** Enhanced Field Type Configurations */
893
+ // Code field config
894
+ language: z.string().optional().describe("Programming language for syntax highlighting (e.g., javascript, python, sql)"),
895
+ theme: z.string().optional().describe("Code editor theme (e.g., dark, light, monokai)"),
896
+ lineNumbers: z.boolean().optional().describe("Show line numbers in code editor"),
897
+ // Rating field config
898
+ maxRating: z.number().optional().describe("Maximum rating value (default: 5)"),
899
+ allowHalf: z.boolean().optional().describe("Allow half-star ratings"),
900
+ // Location field config
901
+ displayMap: z.boolean().optional().describe("Display map widget for location field"),
902
+ allowGeocoding: z.boolean().optional().describe("Allow address-to-coordinate conversion"),
903
+ // Address field config
904
+ addressFormat: z.enum(["us", "uk", "international"]).optional().describe("Address format template"),
905
+ // Color field config
906
+ colorFormat: z.enum(["hex", "rgb", "rgba", "hsl"]).optional().describe("Color value format"),
907
+ allowAlpha: z.boolean().optional().describe("Allow transparency/alpha channel"),
908
+ presetColors: z.array(z.string()).optional().describe("Preset color options"),
909
+ // Slider field config
910
+ step: z.number().optional().describe("Step increment for slider (default: 1)"),
911
+ showValue: z.boolean().optional().describe("Display current value on slider"),
912
+ marks: z.record(z.string(), z.string()).optional().describe('Custom marks/labels at specific values (e.g., {0: "Low", 50: "Medium", 100: "High"})'),
913
+ // QR Code / Barcode field config
914
+ // Note: qrErrorCorrection is only applicable when barcodeFormat='qr'
915
+ // Runtime validation should enforce this constraint
916
+ barcodeFormat: z.enum(["qr", "ean13", "ean8", "code128", "code39", "upca", "upce"]).optional().describe("Barcode format type"),
917
+ qrErrorCorrection: z.enum(["L", "M", "Q", "H"]).optional().describe('QR code error correction level (L=7%, M=15%, Q=25%, H=30%). Only applicable when barcodeFormat is "qr"'),
918
+ displayValue: z.boolean().optional().describe("Display human-readable value below barcode/QR code"),
919
+ allowScanning: z.boolean().optional().describe("Enable camera scanning for barcode/QR code input"),
920
+ // Currency field config
921
+ currencyConfig: CurrencyConfigSchema.optional().describe("Configuration for currency field type"),
922
+ // Vector field config
923
+ vectorConfig: VectorConfigSchema.optional().describe("Configuration for vector field type (AI/ML embeddings)"),
924
+ // File attachment field config
925
+ fileAttachmentConfig: FileAttachmentConfigSchema.optional().describe("Configuration for file and attachment field types"),
926
+ /** Enhanced Security & Compliance */
927
+ // Encryption configuration
928
+ encryptionConfig: EncryptionConfigSchema.optional().describe("Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS)"),
929
+ // Data masking rules
930
+ maskingRule: MaskingRuleSchema.optional().describe("Data masking rules for PII protection"),
931
+ // Audit trail
932
+ auditTrail: z.boolean().default(false).describe("Enable detailed audit trail for this field (tracks all changes with user and timestamp)"),
933
+ /** Field Dependencies & Relationships */
934
+ // Field dependencies
935
+ dependencies: z.array(z.string()).optional().describe("Array of field names that this field depends on (for formulas, visibility rules, etc.)"),
936
+ /** Computed Field Optimization */
937
+ // Computed field caching
938
+ cached: ComputedFieldCacheSchema.optional().describe("Caching configuration for computed/formula fields"),
939
+ /** Data Quality & Governance */
940
+ // Data quality rules
941
+ dataQuality: DataQualityRulesSchema.optional().describe("Data quality validation and monitoring rules"),
942
+ /** Layout & Grouping */
943
+ group: z.string().optional().describe('Field group name for organizing fields in forms and layouts (e.g., "contact_info", "billing", "system")'),
944
+ /** Conditional Requirements */
945
+ conditionalRequired: ExpressionInputSchema.optional().describe("Predicate (CEL) \u2014 field is required when TRUE. e.g. P`record.status == 'closed_won'`"),
946
+ /** Security & Visibility */
947
+ hidden: z.boolean().default(false).describe("Hidden from default UI"),
948
+ readonly: z.boolean().default(false).describe("Read-only in UI"),
949
+ system: 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."),
950
+ sortable: z.boolean().optional().default(true).describe("Whether field is sortable in list views"),
951
+ inlineHelpText: z.string().optional().describe("Help text displayed below the field in forms"),
952
+ trackFeedHistory: z.boolean().optional().describe("Track field changes in Chatter/activity feed (Salesforce pattern)"),
953
+ caseSensitive: z.boolean().optional().describe("Whether text comparisons are case-sensitive"),
954
+ autonumberFormat: z.string().optional().describe('Auto-number display format pattern (e.g., "CASE-{0000}")'),
955
+ /** Indexing */
956
+ index: z.boolean().default(false).describe("Create standard database index"),
957
+ externalId: z.boolean().default(false).describe("Is external ID for upsert operations")
1179
958
  }));
1180
- var JoinType = z.enum(["inner", "left", "right", "full"]);
1181
- var JoinStrategy = z.enum(["auto", "database", "hash", "loop"]);
1182
- var JoinNodeSchema = z.lazy(
1183
- () => z.object({
1184
- type: JoinType.describe("Join type"),
1185
- strategy: JoinStrategy.optional().describe("Execution strategy hint"),
1186
- object: z.string().describe("Object/table to join"),
1187
- alias: z.string().optional().describe("Table alias"),
1188
- on: FilterConditionSchema.describe("Join condition"),
1189
- subquery: z.lazy(() => QuerySchema).optional().describe("Subquery instead of object")
1190
- })
1191
- );
1192
- var WindowFunction = z.enum([
1193
- "row_number",
1194
- "rank",
1195
- "dense_rank",
1196
- "percent_rank",
1197
- "lag",
1198
- "lead",
1199
- "first_value",
1200
- "last_value",
1201
- "sum",
1202
- "avg",
1203
- "count",
1204
- "min",
1205
- "max"
959
+ var HttpMethod = z.enum([
960
+ "GET",
961
+ "POST",
962
+ "PUT",
963
+ "DELETE",
964
+ "PATCH",
965
+ "HEAD",
966
+ "OPTIONS"
1206
967
  ]);
1207
- var WindowSpecSchema = lazySchema(() => z.object({
1208
- partitionBy: z.array(z.string()).optional().describe("PARTITION BY fields"),
1209
- orderBy: z.array(SortNodeSchema).optional().describe("ORDER BY specification"),
1210
- frame: z.object({
1211
- type: z.enum(["rows", "range"]).optional(),
1212
- start: z.string().optional().describe('Frame start (e.g., "UNBOUNDED PRECEDING", "1 PRECEDING")'),
1213
- end: z.string().optional().describe('Frame end (e.g., "CURRENT ROW", "1 FOLLOWING")')
1214
- }).optional().describe("Window frame specification")
1215
- }));
1216
- var WindowFunctionNodeSchema = lazySchema(() => z.object({
1217
- function: WindowFunction.describe("Window function name"),
1218
- field: z.string().optional().describe("Field to operate on (for aggregate window functions)"),
1219
- alias: z.string().describe("Result column alias"),
1220
- over: WindowSpecSchema.describe("Window specification (OVER clause)")
968
+ var HttpMethodSchema = lazySchema(() => z.enum(["GET", "POST", "PUT", "PATCH", "DELETE"]));
969
+ var HttpRequestSchema = lazySchema(() => z.object({
970
+ url: z.string().describe("API endpoint URL"),
971
+ method: HttpMethodSchema.optional().default("GET").describe("HTTP method"),
972
+ headers: z.record(z.string(), z.string()).optional().describe("Custom HTTP headers"),
973
+ params: z.record(z.string(), z.unknown()).optional().describe("Query parameters"),
974
+ body: z.unknown().optional().describe("Request body for POST/PUT/PATCH")
1221
975
  }));
1222
- var FieldNodeSchema = z.lazy(
1223
- () => z.union([
976
+ lazySchema(() => z.object({
977
+ /**
978
+ * Enable CORS
979
+ */
980
+ enabled: z.boolean().default(true).describe("Enable CORS"),
981
+ /**
982
+ * Allowed origins (* for all)
983
+ */
984
+ origins: z.union([
1224
985
  z.string(),
1225
- // Primitive field: "name"
1226
- z.object({
1227
- field: z.string(),
1228
- // Relationship field: "owner"
1229
- fields: z.array(FieldNodeSchema).optional(),
1230
- // Nested select: ["name", "email"]
1231
- alias: z.string().optional()
1232
- })
1233
- ])
1234
- );
1235
- var FullTextSearchSchema = lazySchema(() => z.object({
1236
- query: z.string().describe("Search query text"),
1237
- fields: z.array(z.string()).optional().describe("Fields to search in (if not specified, searches all text fields)"),
1238
- fuzzy: z.boolean().optional().default(false).describe("Enable fuzzy matching (tolerates typos)"),
1239
- operator: z.enum(["and", "or"]).optional().default("or").describe("Logical operator between terms"),
1240
- boost: z.record(z.string(), z.number()).optional().describe("Field-specific relevance boosting (field name -> boost factor)"),
1241
- minScore: z.number().optional().describe("Minimum relevance score threshold"),
1242
- language: z.string().optional().describe('Language for text analysis (e.g., "en", "zh", "es")'),
1243
- highlight: z.boolean().optional().default(false).describe("Enable search result highlighting")
1244
- }));
1245
- var BaseQuerySchema = z.object({
1246
- /** Target Entity */
1247
- object: z.string().describe("Object name (e.g. account)"),
1248
- /** Select Clause */
1249
- fields: z.array(FieldNodeSchema).optional().describe("Fields to retrieve"),
1250
- /** Where Clause (Filtering) */
1251
- where: FilterConditionSchema.optional().describe("Filtering criteria (WHERE)"),
1252
- /** Full-Text Search */
1253
- search: FullTextSearchSchema.optional().describe("Full-text search configuration ($search parameter)"),
1254
- /** Order By Clause (Sorting) */
1255
- orderBy: z.array(SortNodeSchema).optional().describe("Sorting instructions (ORDER BY)"),
1256
- /** Pagination */
1257
- limit: z.number().optional().describe("Max records to return (LIMIT)"),
1258
- offset: z.number().optional().describe("Records to skip (OFFSET)"),
1259
- top: z.number().optional().describe("Alias for limit (OData compatibility)"),
1260
- cursor: z.record(z.string(), z.unknown()).optional().describe("Cursor for keyset pagination"),
1261
- /** Joins */
1262
- joins: z.array(JoinNodeSchema).optional().describe("Explicit Table Joins"),
1263
- /** Aggregations */
1264
- aggregations: z.array(AggregationNodeSchema).optional().describe("Aggregation functions"),
1265
- /** Group By Clause */
1266
- groupBy: z.array(GroupByNodeSchema).optional().describe("GROUP BY targets (strings or `{field, dateGranularity?}` objects for date bucketing)"),
1267
- /** Having Clause */
1268
- having: FilterConditionSchema.optional().describe("HAVING clause for aggregation filtering"),
1269
- /** Window Functions */
1270
- windowFunctions: z.array(WindowFunctionNodeSchema).optional().describe("Window functions with OVER clause"),
1271
- /** Subquery flag */
1272
- distinct: z.boolean().optional().describe("SELECT DISTINCT flag")
1273
- });
1274
- var QuerySchema = lazySchema(() => BaseQuerySchema.extend({
1275
- expand: z.lazy(() => z.record(z.string(), QuerySchema)).optional().describe(
1276
- "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."
1277
- )
986
+ z.array(z.string())
987
+ ]).default("*").describe("Allowed origins (* for all)"),
988
+ /**
989
+ * Allowed HTTP methods
990
+ */
991
+ methods: z.array(HttpMethod).optional().describe("Allowed HTTP methods"),
992
+ /**
993
+ * Allow credentials (cookies, authorization headers)
994
+ */
995
+ credentials: z.boolean().default(false).describe("Allow credentials (cookies, authorization headers)"),
996
+ /**
997
+ * Preflight cache duration in seconds
998
+ */
999
+ maxAge: z.number().int().optional().describe("Preflight cache duration in seconds")
1278
1000
  }));
1279
-
1280
- // src/ui/dashboard.zod.ts
1281
- var WidgetColorVariantSchema = lazySchema(() => z.enum([
1282
- "default",
1283
- "blue",
1284
- "teal",
1285
- "orange",
1286
- "purple",
1287
- "success",
1288
- "warning",
1289
- "danger"
1290
- ]).describe("Widget color variant"));
1291
- var WidgetActionTypeSchema = lazySchema(() => z.enum([
1292
- "script",
1293
- "url",
1294
- "modal",
1295
- "flow",
1296
- "api"
1297
- ]).describe("Widget action type"));
1298
- var DashboardHeaderActionSchema = lazySchema(() => z.object({
1299
- /** Action label */
1300
- label: I18nLabelSchema.describe("Action button label"),
1301
- /** Action URL or target */
1302
- actionUrl: z.string().describe("URL or target for the action"),
1303
- /** Action type */
1304
- actionType: WidgetActionTypeSchema.optional().describe("Type of action"),
1305
- /** Icon identifier */
1306
- icon: z.string().optional().describe("Icon identifier for the action button")
1307
- }).describe("Dashboard header action"));
1308
- var DashboardHeaderSchema = lazySchema(() => z.object({
1309
- /** Whether to show the dashboard title in the header */
1310
- showTitle: z.boolean().default(true).describe("Show dashboard title in header"),
1311
- /** Whether to show the dashboard description in the header */
1312
- showDescription: z.boolean().default(true).describe("Show dashboard description in header"),
1313
- /** Action buttons displayed in the header */
1314
- actions: z.array(DashboardHeaderActionSchema).optional().describe("Header action buttons")
1315
- }).describe("Dashboard header configuration"));
1316
- var WidgetMeasureSchema = lazySchema(() => z.object({
1317
- /** Value field to aggregate */
1318
- valueField: z.string().describe("Field to aggregate"),
1319
- /** Aggregate function */
1320
- aggregate: z.enum(["count", "sum", "avg", "min", "max"]).default("count").describe("Aggregate function"),
1321
- /** Display label for the measure */
1322
- label: I18nLabelSchema.optional().describe("Measure display label"),
1323
- /** Number format string (e.g., "$0,0.00", "0.0%") */
1324
- format: z.string().optional().describe("Number format string")
1325
- }).describe("Widget measure definition"));
1326
- var DashboardWidgetSchema = lazySchema(() => z.object({
1327
- /** Unique widget identifier (snake_case, used for targetWidgets references) */
1328
- id: SnakeCaseIdentifierSchema.describe("Unique widget identifier (snake_case)"),
1329
- /** Widget Title */
1330
- title: I18nLabelSchema.optional().describe("Widget title"),
1331
- /** Widget Description (displayed below the title) */
1332
- description: I18nLabelSchema.optional().describe("Widget description text below the header"),
1333
- /** Visualization Type */
1334
- type: ChartTypeSchema.default("metric").describe("Visualization type"),
1335
- /** Chart Configuration */
1336
- chartConfig: ChartConfigSchema.optional().describe("Chart visualization configuration"),
1337
- /** Color variant for the widget (e.g., KPI card accent color) */
1338
- colorVariant: WidgetColorVariantSchema.optional().describe("Widget color variant for theming"),
1001
+ lazySchema(() => z.object({
1339
1002
  /**
1340
- * Runtime capability gate — widget is hidden when the named object is
1341
- * not registered in the runtime's SchemaRegistry. Mirrors
1342
- * `NavigationItem.requiresObject` so cloud-only widgets (e.g. those
1343
- * keyed on `sys_app` / `sys_package_installation`) silently disappear
1344
- * in single-environment runtimes instead of rendering a 404 error.
1345
- *
1346
- * Defaults to the widget's `object` field when not explicitly set —
1347
- * any widget that targets an object will be gated on that object's
1348
- * registration. Set this to a different value (or empty string to
1349
- * disable) when the widget should appear even if its `object` is
1350
- * unavailable.
1003
+ * Enable rate limiting
1351
1004
  */
1352
- requiresObject: z.string().optional().describe("Hide the widget unless the named object is registered"),
1005
+ enabled: z.boolean().default(false).describe("Enable rate limiting"),
1353
1006
  /**
1354
- * Runtime capability gate — widget is hidden when the named kernel
1355
- * service is not registered. Mirrors `NavigationItem.requiresService`.
1007
+ * Time window in milliseconds
1356
1008
  */
1357
- requiresService: z.string().optional().describe("Hide the widget unless the named kernel service is registered"),
1358
- /** Action URL for the widget header action button */
1359
- actionUrl: z.string().optional().describe("URL or target for the widget action button"),
1360
- /** Action type for the widget header action button */
1361
- actionType: WidgetActionTypeSchema.optional().describe("Type of action for the widget action button"),
1362
- /** Icon for the widget header action button */
1363
- actionIcon: z.string().optional().describe("Icon identifier for the widget action button"),
1364
- /** Data Source Object */
1365
- object: z.string().optional().describe("Data source object name"),
1366
- /** Data Filter (MongoDB-style FilterCondition) */
1367
- filter: FilterConditionSchema.optional().describe("Data filter criteria"),
1009
+ windowMs: z.number().int().default(6e4).describe("Time window in milliseconds"),
1010
+ /**
1011
+ * Max requests per window
1012
+ */
1013
+ maxRequests: z.number().int().default(100).describe("Max requests per window")
1014
+ }));
1015
+ lazySchema(() => z.object({
1368
1016
  /**
1369
- * Period-over-period comparison primitive.
1370
- *
1371
- * When set, the renderer runs a second query against a shifted time
1372
- * window and surfaces the delta (metric widgets show a secondary
1373
- * value + arrow; chart widgets render a muted/dashed overlay series).
1374
- *
1375
- * - `'previousPeriod'` — auto-detect the comparison window from the
1376
- * widget's `filter` date macros (e.g. `{current_month_start}` →
1377
- * `{last_month_start}`). Falls back to no comparison when the
1378
- * filter contains no resolvable date range.
1379
- * - `'previousYear'` — shift the resolved filter window back by one
1380
- * calendar year.
1381
- * - `{ offset: '7d' | '1M' | '1y' }` — shift by an explicit
1382
- * ISO-8601-like duration. Units: `d` (days), `w` (weeks),
1383
- * `M` (months), `y` (years).
1017
+ * URL path to serve from
1384
1018
  */
1385
- compareTo: z.union([
1386
- z.literal("previousPeriod"),
1387
- z.literal("previousYear"),
1388
- z.object({
1389
- offset: z.string().regex(/^\d+[dwMy]$/, 'Offset must match <N>(d|w|M|y), e.g. "7d", "1M", "1y"')
1390
- })
1391
- ]).optional().describe("Period-over-period comparison window"),
1392
- /** Category Field (X-Axis / Group By) */
1393
- categoryField: z.string().optional().describe("Field for grouping (X-Axis)"),
1019
+ path: z.string().describe("URL path to serve from"),
1394
1020
  /**
1395
- * Date Bucketing Granularity for `categoryField`
1396
- *
1397
- * When set and `categoryField` references a date/datetime field, the engine
1398
- * buckets values into uniform `day` / `week` / `month` / `quarter` / `year`
1399
- * periods server-side (PostgreSQL `date_trunc`, MySQL `date_format`, SQLite
1400
- * `strftime`, MongoDB `$dateTrunc`; falls back to in-memory ISO-8601
1401
- * bucketing otherwise). Without this, raw timestamps are grouped verbatim
1402
- * which typically yields one bucket per row — making time-series charts
1403
- * appear flat.
1404
- *
1405
- * Mirrors the `dateGranularity` shape of {@link GroupByNodeSchema}.
1021
+ * Physical directory to serve
1406
1022
  */
1407
- categoryGranularity: DateGranularity.optional().describe("Bucket categoryField date values into day/week/month/quarter/year periods"),
1408
- /** Value Field (Y-Axis) */
1409
- valueField: z.string().optional().describe("Field for values (Y-Axis)"),
1410
- /** Aggregate operation */
1411
- aggregate: z.enum(["count", "sum", "avg", "min", "max"]).optional().default("count").describe("Aggregate function"),
1412
- /** Multi-measure definitions for pivot/matrix widgets */
1413
- measures: z.array(WidgetMeasureSchema).optional().describe("Multiple measures for pivot/matrix analysis"),
1414
- /**
1415
- * Layout Position (React-Grid-Layout style)
1416
- * x: column (0-11)
1417
- * y: row
1418
- * w: width (1-12)
1419
- * h: height
1023
+ directory: z.string().describe("Physical directory to serve"),
1024
+ /**
1025
+ * Cache-Control header value
1420
1026
  */
1421
- layout: z.object({
1422
- x: z.number(),
1423
- y: z.number(),
1424
- w: z.number(),
1425
- h: z.number()
1426
- }).describe("Grid layout position"),
1427
- /** Widget specific options (colors, legend, etc.) */
1428
- options: z.unknown().optional().describe("Widget specific configuration"),
1429
- /** Responsive layout overrides per breakpoint */
1430
- responsive: ResponsiveConfigSchema.optional().describe("Responsive layout configuration"),
1431
- /** ARIA accessibility attributes */
1432
- aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes")
1027
+ cacheControl: z.string().optional().describe("Cache-Control header value")
1433
1028
  }));
1434
- var GlobalFilterOptionsFromSchema = lazySchema(() => z.object({
1435
- /** Source object name to fetch options from */
1436
- object: z.string().describe("Source object name"),
1437
- /** Field to use as option value */
1438
- valueField: z.string().describe("Field to use as option value"),
1439
- /** Field to use as option label */
1440
- labelField: z.string().describe("Field to use as option label"),
1441
- /** Optional filter to apply when fetching options */
1442
- filter: FilterConditionSchema.optional().describe("Filter to apply to source object")
1443
- }).describe("Dynamic filter options from object"));
1444
- var GlobalFilterSchema = lazySchema(() => z.object({
1029
+
1030
+ // src/ui/view.zod.ts
1031
+ var ViewDataSchema = lazySchema(() => z.discriminatedUnion("provider", [
1032
+ z.object({
1033
+ provider: z.literal("object"),
1034
+ object: z.string().describe("Target object name")
1035
+ }),
1036
+ z.object({
1037
+ provider: z.literal("api"),
1038
+ read: HttpRequestSchema.optional().describe("Configuration for fetching data"),
1039
+ write: HttpRequestSchema.optional().describe("Configuration for submitting data (for forms/editable tables)")
1040
+ }),
1041
+ z.object({
1042
+ provider: z.literal("value"),
1043
+ items: z.array(z.unknown()).describe("Static data array")
1044
+ }),
1045
+ /**
1046
+ * Schema-bound data source — used by standalone forms whose data is
1047
+ * shaped by a JSON Schema (or Zod-derived schema) rather than by an
1048
+ * ObjectQL object. Powers the metadata editor, action input dialogs,
1049
+ * and any Form that is not bound to a CRUD object.
1050
+ */
1051
+ z.object({
1052
+ provider: z.literal("schema"),
1053
+ /** Schema identifier (e.g. metadata type name "report"). Resolved at runtime against /meta entries. */
1054
+ schemaId: z.string().describe("Schema identifier \u2014 typically the metadata type name"),
1055
+ /** Optional inline JSON Schema; when omitted the runtime resolves schemaId from the server. */
1056
+ schema: z.record(z.string(), z.unknown()).optional().describe("Inline JSON Schema (Draft 2020-12). Optional when schemaId is resolvable.")
1057
+ })
1058
+ ]));
1059
+ var ViewFilterRuleSchema = lazySchema(() => z.object({
1445
1060
  /** Field name to filter on */
1446
1061
  field: z.string().describe("Field name to filter on"),
1447
- /** Display label for the filter */
1448
- label: I18nLabelSchema.optional().describe("Display label for the filter"),
1449
- /** Filter input type */
1450
- type: z.enum(["text", "select", "date", "number", "lookup"]).optional().describe("Filter input type"),
1451
- /** Static options for select/lookup filters */
1452
- options: z.array(z.object({
1453
- value: z.union([z.string(), z.number(), z.boolean()]).describe("Option value"),
1454
- label: I18nLabelSchema
1455
- })).optional().describe("Static filter options"),
1456
- /** Dynamic data binding for filter options */
1457
- optionsFrom: GlobalFilterOptionsFromSchema.optional().describe("Dynamic filter options from object"),
1458
- /** Default filter value */
1459
- defaultValue: z.union([z.string(), z.number(), z.boolean()]).optional().describe("Default filter value"),
1460
- /** Filter application scope */
1461
- scope: z.enum(["dashboard", "widget"]).default("dashboard").describe("Filter application scope"),
1462
- /** Widget IDs to apply this filter to (when scope is widget) */
1463
- targetWidgets: z.array(z.string()).optional().describe("Widget IDs to apply this filter to")
1062
+ /** Filter operator */
1063
+ operator: z.string().describe("Filter operator (e.g. equals, not_equals, contains, this_quarter)"),
1064
+ /** Filter value (optional for unary operators like is_null, this_quarter) */
1065
+ value: z.union([z.string(), z.number(), z.boolean(), z.null(), z.array(z.union([z.string(), z.number()]))]).optional().describe("Filter value")
1066
+ }).describe("View filter rule"));
1067
+ var ColumnSummarySchema = lazySchema(() => z.enum([
1068
+ "none",
1069
+ "count",
1070
+ "count_empty",
1071
+ "count_filled",
1072
+ "count_unique",
1073
+ "percent_empty",
1074
+ "percent_filled",
1075
+ "sum",
1076
+ "avg",
1077
+ "min",
1078
+ "max"
1079
+ ]).describe("Aggregation function for column footer summary"));
1080
+ var ListColumnSchema = lazySchema(() => z.object({
1081
+ field: z.string().describe("Field name (snake_case)"),
1082
+ label: I18nLabelSchema.optional().describe("Display label override"),
1083
+ width: z.number().positive().optional().describe("Column width in pixels"),
1084
+ align: z.enum(["left", "center", "right"]).optional().describe("Text alignment"),
1085
+ hidden: z.boolean().optional().describe("Hide column by default"),
1086
+ sortable: z.boolean().optional().describe("Allow sorting by this column"),
1087
+ resizable: z.boolean().optional().describe("Allow resizing this column"),
1088
+ wrap: z.boolean().optional().describe("Allow text wrapping"),
1089
+ type: z.string().optional().describe('Renderer type override (e.g., "currency", "date")'),
1090
+ /** Pinning (Airtable-style frozen columns) */
1091
+ pinned: z.enum(["left", "right"]).optional().describe("Pin/freeze column to left or right side"),
1092
+ /** Column Footer Summary (Airtable-style aggregation) */
1093
+ summary: ColumnSummarySchema.optional().describe("Footer aggregation function for this column"),
1094
+ /** Interaction */
1095
+ link: z.boolean().optional().describe("Functions as the primary navigation link (triggers View navigation)"),
1096
+ action: z.string().optional().describe("Registered Action ID to execute when clicked")
1464
1097
  }));
1465
- var DashboardSchema = lazySchema(() => z.object({
1466
- /** Machine name */
1467
- name: SnakeCaseIdentifierSchema.describe("Dashboard unique name"),
1468
- /** Display label */
1469
- label: I18nLabelSchema.describe("Dashboard label"),
1470
- /** Description */
1471
- description: I18nLabelSchema.optional().describe("Dashboard description"),
1472
- /** Structured header configuration */
1473
- header: DashboardHeaderSchema.optional().describe("Dashboard header configuration"),
1474
- /** Collection of widgets */
1475
- widgets: z.array(DashboardWidgetSchema).describe("Widgets to display"),
1476
- /** Grid column count — defaults to 12 for a standard 12-column grid */
1477
- columns: z.number().int().min(1).max(24).optional().describe("Number of grid columns (default 12)"),
1478
- /** Grid gap in Tailwind spacing units (e.g. 4 = 1rem) */
1479
- gap: z.number().int().min(0).optional().describe("Grid gap in Tailwind spacing units"),
1480
- /** Auto-refresh */
1481
- refreshInterval: z.number().optional().describe("Auto-refresh interval in seconds"),
1482
- /** Dashboard Date Range (Global time filter) */
1483
- dateRange: z.object({
1484
- field: z.string().optional().describe("Default date field name for time-based filtering"),
1485
- defaultRange: 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"),
1486
- allowCustomRange: z.boolean().default(true).describe("Allow users to pick a custom date range")
1487
- }).optional().describe("Global dashboard date range filter configuration"),
1488
- /** Global Filters */
1489
- globalFilters: z.array(GlobalFilterSchema).optional().describe("Global filters that apply to all widgets in the dashboard"),
1490
- /** ARIA accessibility attributes */
1491
- aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes"),
1492
- /** Performance optimization settings */
1493
- performance: PerformanceConfigSchema.optional().describe("Performance optimization settings")
1098
+ var SelectionConfigSchema = lazySchema(() => z.object({
1099
+ type: z.enum(["none", "single", "multiple"]).default("none").describe("Selection mode")
1100
+ }));
1101
+ var PaginationConfigSchema = lazySchema(() => z.object({
1102
+ pageSize: z.number().int().positive().default(25).describe("Number of records per page"),
1103
+ pageSizeOptions: z.array(z.number().int().positive()).optional().describe("Available page size options")
1104
+ }));
1105
+ var RowHeightSchema = lazySchema(() => z.enum([
1106
+ "compact",
1107
+ // Minimal padding, single line
1108
+ "short",
1109
+ // Reduced padding
1110
+ "medium",
1111
+ // Default padding
1112
+ "tall",
1113
+ // Extra padding, multi-line preview
1114
+ "extra_tall"
1115
+ // Maximum padding, rich content preview
1116
+ ]).describe("Row height / density setting for list view"));
1117
+ var GroupingFieldSchema = lazySchema(() => z.object({
1118
+ field: z.string().describe("Field name to group by"),
1119
+ order: z.enum(["asc", "desc"]).default("asc").describe("Group sort order"),
1120
+ collapsed: z.boolean().default(false).describe("Collapse groups by default")
1121
+ }));
1122
+ var GroupingConfigSchema = lazySchema(() => z.object({
1123
+ fields: z.array(GroupingFieldSchema).min(1).describe("Fields to group by (supports up to 3 levels)")
1124
+ }).describe("Record grouping configuration"));
1125
+ var GalleryConfigSchema = lazySchema(() => z.object({
1126
+ coverField: z.string().optional().describe("Attachment/image field to display as card cover"),
1127
+ coverFit: z.enum(["cover", "contain"]).default("cover").describe("Image fit mode for card cover"),
1128
+ cardSize: z.enum(["small", "medium", "large"]).default("medium").describe("Card size in gallery view"),
1129
+ titleField: z.string().optional().describe("Field to display as card title"),
1130
+ visibleFields: z.array(z.string()).optional().describe("Fields to display on card body")
1131
+ }).describe("Gallery/card view configuration"));
1132
+ var TimelineConfigSchema = lazySchema(() => z.object({
1133
+ startDateField: z.string().describe("Field for timeline item start date"),
1134
+ endDateField: z.string().optional().describe("Field for timeline item end date"),
1135
+ titleField: z.string().describe("Field to display as timeline item title"),
1136
+ groupByField: z.string().optional().describe("Field to group timeline rows"),
1137
+ colorField: z.string().optional().describe("Field to determine item color"),
1138
+ scale: z.enum(["hour", "day", "week", "month", "quarter", "year"]).default("week").describe("Default timeline scale")
1139
+ }).describe("Timeline view configuration"));
1140
+ var ViewSharingSchema = lazySchema(() => z.object({
1141
+ type: z.enum(["personal", "collaborative"]).default("collaborative").describe("View ownership type"),
1142
+ lockedBy: z.string().optional().describe("User who locked the view configuration")
1143
+ }).describe("View sharing and access configuration"));
1144
+ var RowColorConfigSchema = lazySchema(() => z.object({
1145
+ field: z.string().describe("Field to derive color from (typically a select/status field)"),
1146
+ colors: z.record(z.string(), z.string()).optional().describe("Map of field value to color (hex/token)")
1147
+ }).describe("Row color configuration based on field values"));
1148
+ var VisualizationTypeSchema = lazySchema(() => z.enum([
1149
+ "grid",
1150
+ "kanban",
1151
+ "gallery",
1152
+ "calendar",
1153
+ "timeline",
1154
+ "gantt",
1155
+ "map"
1156
+ ]).describe("Visualization type that users can switch to"));
1157
+ var UserActionsConfigSchema = lazySchema(() => z.object({
1158
+ sort: z.boolean().default(true).describe("Allow users to sort records"),
1159
+ search: z.boolean().default(true).describe("Allow users to search records"),
1160
+ filter: z.boolean().default(true).describe("Allow users to filter records"),
1161
+ rowHeight: z.boolean().default(true).describe("Allow users to toggle row height/density"),
1162
+ addRecordForm: z.boolean().default(false).describe("Add records through a form instead of inline"),
1163
+ buttons: z.array(z.string()).optional().describe("Custom action button IDs to show in the toolbar")
1164
+ }).describe("User action toggles for the view toolbar"));
1165
+ var AppearanceConfigSchema = lazySchema(() => z.object({
1166
+ showDescription: z.boolean().default(true).describe("Show the view description text"),
1167
+ allowedVisualizations: z.array(VisualizationTypeSchema).optional().describe('Whitelist of visualization types users can switch between (e.g. ["grid", "gallery", "kanban"])')
1168
+ }).describe("Appearance and visualization configuration"));
1169
+ var ViewTabSchema = lazySchema(() => z.object({
1170
+ name: SnakeCaseIdentifierSchema.describe("Tab identifier (snake_case)"),
1171
+ label: I18nLabelSchema.optional().describe("Display label"),
1172
+ icon: z.string().optional().describe("Tab icon name"),
1173
+ view: z.string().optional().describe("Referenced list view name from listViews"),
1174
+ filter: z.array(ViewFilterRuleSchema).optional().describe("Tab-specific filter criteria"),
1175
+ order: z.number().int().min(0).optional().describe("Tab display order"),
1176
+ pinned: z.boolean().default(false).describe("Pin tab (cannot be removed by users)"),
1177
+ isDefault: z.boolean().default(false).describe("Set as the default active tab"),
1178
+ visible: z.boolean().default(true).describe("Tab visibility")
1179
+ }).describe("Tab configuration for multi-tab view interface"));
1180
+ var AddRecordConfigSchema = lazySchema(() => z.object({
1181
+ enabled: z.boolean().default(true).describe("Show the add record entry point"),
1182
+ position: z.enum(["top", "bottom", "both"]).default("bottom").describe("Position of the add record button"),
1183
+ mode: z.enum(["inline", "form", "modal"]).default("inline").describe("How to add a new record"),
1184
+ formView: z.string().optional().describe('Named form view to use when mode is "form" or "modal"')
1185
+ }).describe("Add record entry point configuration"));
1186
+ var KanbanConfigSchema = lazySchema(() => z.object({
1187
+ groupByField: z.string().describe("Field to group columns by (usually status/select)"),
1188
+ summarizeField: z.string().optional().describe("Field to sum at top of column (e.g. amount)"),
1189
+ columns: z.array(z.string()).describe("Fields to show on cards")
1494
1190
  }));
1495
- var Dashboard = {
1496
- create: (config) => DashboardSchema.parse(config)
1497
- };
1498
- var ReportType = z.enum([
1499
- "tabular",
1500
- // Simple list
1501
- "summary",
1502
- // Grouped by row
1503
- "matrix",
1504
- // Grouped by row and column
1505
- "joined"
1506
- // Joined multiple blocks
1507
- ]);
1508
- var ReportColumnSchema = lazySchema(() => z.object({
1509
- field: z.string().describe("Field name"),
1510
- label: I18nLabelSchema.optional().describe("Override label"),
1511
- aggregate: z.enum(["sum", "avg", "max", "min", "count", "unique"]).optional().describe("Aggregation function"),
1512
- /** Responsive visibility/priority per breakpoint */
1513
- responsive: ResponsiveConfigSchema.optional().describe("Responsive visibility for this column")
1191
+ var ListChartConfigSchema = lazySchema(() => z.object({
1192
+ chartType: z.enum(["bar", "line", "pie", "area", "scatter"]).default("bar").describe("Chart visualisation type"),
1193
+ xAxisField: z.string().describe("Field used as the X axis / category dimension"),
1194
+ yAxisFields: z.array(z.string()).min(1).describe("Field(s) used as the Y axis / measures"),
1195
+ aggregation: z.enum(["sum", "avg", "count", "min", "max"]).optional().describe("Aggregation function applied to Y axis fields"),
1196
+ groupByField: z.string().optional().describe("Optional field used to split / stack the chart")
1197
+ }).describe("List chart view configuration"));
1198
+ var CalendarConfigSchema = lazySchema(() => z.object({
1199
+ startDateField: z.string(),
1200
+ endDateField: z.string().optional(),
1201
+ titleField: z.string(),
1202
+ colorField: z.string().optional()
1514
1203
  }));
1515
- var ReportGroupingSchema = lazySchema(() => z.object({
1516
- field: z.string().describe("Field to group by"),
1517
- sortOrder: z.enum(["asc", "desc"]).default("asc"),
1518
- dateGranularity: z.enum(["day", "week", "month", "quarter", "year"]).optional().describe("For date fields")
1204
+ var GanttConfigSchema = lazySchema(() => z.object({
1205
+ startDateField: z.string(),
1206
+ endDateField: z.string(),
1207
+ titleField: z.string(),
1208
+ progressField: z.string().optional(),
1209
+ dependenciesField: z.string().optional()
1519
1210
  }));
1520
- var ReportChartSchema = lazySchema(() => ChartConfigSchema.extend({
1521
- /** Report-specific chart configuration */
1522
- xAxis: z.string().describe("Grouping field for X-Axis"),
1523
- yAxis: z.string().describe("Summary field for Y-Axis"),
1524
- groupBy: z.string().optional().describe("Additional grouping field")
1211
+ var NavigationModeSchema = lazySchema(() => z.enum([
1212
+ "page",
1213
+ // Navigate to a new route (default)
1214
+ "drawer",
1215
+ // Open details in a side drawer/panel
1216
+ "modal",
1217
+ // Open details in a modal dialog
1218
+ "split",
1219
+ // Show details side-by-side with the list (master-detail)
1220
+ "popover",
1221
+ // Show details in a popover (lightweight)
1222
+ "new_window",
1223
+ // Open in new browser tab/window
1224
+ "none"
1225
+ // No navigation (read-only list)
1226
+ ]));
1227
+ var NavigationConfigSchema = lazySchema(() => z.object({
1228
+ mode: NavigationModeSchema.default("page"),
1229
+ /** Target View Config */
1230
+ view: z.string().optional().describe('Name of the form view to use for details (e.g. "summary_view", "edit_form")'),
1231
+ /** Interaction Triggers */
1232
+ preventNavigation: z.boolean().default(false).describe("Disable standard navigation entirely"),
1233
+ openNewTab: z.boolean().default(false).describe("Force open in new tab (applies to page mode)"),
1234
+ /** Dimensions (for modal/drawer) */
1235
+ width: z.union([z.string(), z.number()]).optional().describe('Width of the drawer/modal (e.g. "600px", "50%")')
1525
1236
  }));
1526
- var JoinedReportBlockSchema = lazySchema(() => z.object({
1527
- /** Stable id for the block (used as react key, telemetry, deeplinks). */
1528
- name: SnakeCaseIdentifierSchema,
1529
- /** Human label shown above the block. Falls back to `name`. */
1237
+ var ListViewSchema = lazySchema(() => z.object({
1238
+ name: SnakeCaseIdentifierSchema.optional().describe("Internal view name (lowercase snake_case)"),
1530
1239
  label: I18nLabelSchema.optional(),
1531
- /** Optional description rendered below the label. */
1532
- description: I18nLabelSchema.optional(),
1533
- /** Block report type — `joined` is intentionally excluded (no recursion). */
1534
- type: z.enum(["tabular", "summary", "matrix"]).default("tabular"),
1535
- /** Object queried by this block. Defaults to the container's objectName. */
1536
- objectName: z.string().optional(),
1537
- /** Columns to display / aggregate. Same shape as `Report.columns`. */
1538
- columns: z.array(ReportColumnSchema),
1539
- /** Row groupings (same shape as `Report.groupingsDown`). */
1540
- groupingsDown: z.array(ReportGroupingSchema).optional(),
1541
- /** Column groupings — only meaningful when `type: matrix`. */
1542
- groupingsAcross: z.array(ReportGroupingSchema).optional(),
1543
- /** Block-specific filter, ANDed with the container filter at render time. */
1544
- filter: FilterConditionSchema.optional(),
1545
- /** Optional inline chart configuration. */
1546
- chart: ReportChartSchema.optional()
1547
- }));
1548
- var ReportSchema = lazySchema(() => z.object({
1549
- /** Identity */
1550
- name: SnakeCaseIdentifierSchema.describe("Report unique name"),
1551
- label: I18nLabelSchema.describe("Report label"),
1552
- description: I18nLabelSchema.optional(),
1553
- /** Data Source */
1554
- objectName: z.string().describe("Primary object"),
1555
- /** Report Configuration */
1556
- type: ReportType.default("tabular").describe("Report format type"),
1557
- columns: z.array(ReportColumnSchema).describe("Columns to display"),
1558
- /** Grouping (for Summary/Matrix) */
1559
- groupingsDown: z.array(ReportGroupingSchema).optional().describe("Row groupings"),
1560
- groupingsAcross: z.array(ReportGroupingSchema).optional().describe("Column groupings (Matrix only)"),
1561
- /** Filtering (MongoDB-style FilterCondition) */
1562
- filter: FilterConditionSchema.optional().describe("Filter criteria"),
1563
- /** Visualization */
1564
- chart: ReportChartSchema.optional().describe("Embedded chart configuration"),
1240
+ // Display label override (supports i18n)
1241
+ type: z.enum([
1242
+ "grid",
1243
+ // Standard Data Table
1244
+ "kanban",
1245
+ // Board / Columns
1246
+ "gallery",
1247
+ // Card Deck / Masonry
1248
+ "calendar",
1249
+ // Monthly/Weekly/Daily
1250
+ "timeline",
1251
+ // Chronological Stream (Feed)
1252
+ "gantt",
1253
+ // Project Timeline
1254
+ "map",
1255
+ // Geospatial
1256
+ "chart"
1257
+ // Aggregate visualisation
1258
+ ]).default("grid"),
1259
+ /** Data Source Configuration */
1260
+ data: ViewDataSchema.optional().describe('Data source configuration (defaults to "object" provider)'),
1261
+ /** Shared Query Config */
1262
+ columns: z.union([
1263
+ z.array(z.string()),
1264
+ // Legacy: simple field names
1265
+ z.array(ListColumnSchema)
1266
+ // Enhanced: detailed column config
1267
+ ]).describe("Fields to display as columns"),
1268
+ filter: z.array(ViewFilterRuleSchema).optional().describe("Filter criteria (JSON Rules)"),
1269
+ sort: z.union([
1270
+ z.string(),
1271
+ //Legacy "field desc"
1272
+ z.array(z.object({
1273
+ field: z.string(),
1274
+ order: z.enum(["asc", "desc"])
1275
+ }))
1276
+ ]).optional(),
1277
+ /** Search & Filter */
1278
+ searchableFields: z.array(z.string()).optional().describe("Fields enabled for search"),
1279
+ filterableFields: z.array(z.string()).optional().describe("Fields enabled for end-user filtering in the top bar"),
1280
+ /** Grid Features */
1281
+ resizable: z.boolean().optional().describe("Enable column resizing"),
1282
+ striped: z.boolean().optional().describe("Striped row styling"),
1283
+ bordered: z.boolean().optional().describe("Show borders"),
1284
+ compactToolbar: z.boolean().optional().describe("Collapse Group/Color/Density/Hide-fields into a single View settings popover"),
1285
+ /** Selection */
1286
+ selection: SelectionConfigSchema.optional().describe("Row selection configuration"),
1287
+ /** Navigation / Interaction */
1288
+ navigation: NavigationConfigSchema.optional().describe("Configuration for item click navigation (page, drawer, modal, etc.)"),
1289
+ /** Pagination */
1290
+ pagination: PaginationConfigSchema.optional().describe("Pagination configuration"),
1291
+ /** Type Specific Config */
1292
+ kanban: KanbanConfigSchema.optional(),
1293
+ calendar: CalendarConfigSchema.optional(),
1294
+ gantt: GanttConfigSchema.optional(),
1295
+ gallery: GalleryConfigSchema.optional(),
1296
+ timeline: TimelineConfigSchema.optional(),
1297
+ chart: ListChartConfigSchema.optional(),
1298
+ /** View Metadata (Airtable-style view management) */
1299
+ description: I18nLabelSchema.optional().describe("View description for documentation/tooltips"),
1300
+ sharing: ViewSharingSchema.optional().describe("View sharing and access configuration"),
1301
+ /** Row Height / Density (Airtable-style) */
1302
+ rowHeight: RowHeightSchema.optional().describe("Row height / density setting"),
1303
+ /** Record Grouping (Airtable-style) */
1304
+ grouping: GroupingConfigSchema.optional().describe("Group records by one or more fields"),
1305
+ /** Row Color (Airtable-style) */
1306
+ rowColor: RowColorConfigSchema.optional().describe("Color rows based on field value"),
1307
+ /** Field Visibility & Ordering per View (Airtable-style) */
1308
+ hiddenFields: z.array(z.string()).optional().describe("Fields to hide in this specific view"),
1309
+ fieldOrder: z.array(z.string()).optional().describe("Explicit field display order for this view"),
1310
+ /** Row & Bulk Actions */
1311
+ rowActions: z.array(z.string()).optional().describe("Actions available for individual row items"),
1312
+ bulkActions: z.array(z.string()).optional().describe("Actions available when multiple rows are selected"),
1313
+ bulkActionDefs: z.array(z.record(z.string(), z.any())).optional().describe("Rich bulk action definitions (schema-driven, executed via BulkActionDialog)"),
1314
+ /** Performance */
1315
+ virtualScroll: z.boolean().optional().describe("Enable virtual scrolling for large datasets"),
1316
+ /** Conditional Formatting */
1317
+ conditionalFormatting: z.array(z.object({
1318
+ condition: ExpressionInputSchema.describe("Predicate (CEL) to evaluate."),
1319
+ style: z.record(z.string(), z.string()).describe("CSS styles to apply when condition is true")
1320
+ })).optional().describe("Conditional formatting rules for list rows"),
1321
+ /** Inline Edit */
1322
+ inlineEdit: z.boolean().optional().describe("Allow inline editing of records directly in the list view"),
1323
+ /** Export */
1324
+ exportOptions: z.array(z.enum(["csv", "xlsx", "pdf", "json"])).optional().describe("Available export format options"),
1325
+ /** User Actions (Airtable Interface parity) */
1326
+ userActions: UserActionsConfigSchema.optional().describe("User action toggles for the view toolbar"),
1327
+ /** Appearance (Airtable Interface parity) */
1328
+ appearance: AppearanceConfigSchema.optional().describe("Appearance and visualization configuration"),
1329
+ /** Tabs (Airtable Interface parity) */
1330
+ tabs: z.array(ViewTabSchema).optional().describe("Tab definitions for multi-tab view interface"),
1331
+ /** Add Record (Airtable Interface parity) */
1332
+ addRecord: AddRecordConfigSchema.optional().describe("Add record entry point configuration"),
1333
+ /** Record Count Display (Airtable Interface parity) */
1334
+ showRecordCount: z.boolean().optional().describe("Show record count at the bottom of the list"),
1335
+ /** Advanced: Allow Printing (Airtable Interface parity) */
1336
+ allowPrinting: z.boolean().optional().describe("Allow users to print the view"),
1337
+ /** Empty State */
1338
+ emptyState: z.object({
1339
+ title: I18nLabelSchema.optional(),
1340
+ message: I18nLabelSchema.optional(),
1341
+ icon: z.string().optional()
1342
+ }).optional().describe("Empty state configuration when no records found"),
1565
1343
  /** ARIA accessibility attributes */
1566
- aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes"),
1344
+ aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes for the list view"),
1345
+ /** Responsive layout overrides per breakpoint */
1346
+ responsive: ResponsiveConfigSchema.optional().describe("Responsive layout configuration"),
1567
1347
  /** Performance optimization settings */
1568
- performance: PerformanceConfigSchema.optional().describe("Performance optimization settings"),
1348
+ performance: PerformanceConfigSchema.optional().describe("Performance optimization settings")
1349
+ }));
1350
+ var FormFieldSchema = lazySchema(() => z.object({
1351
+ /** Field name (snake_case) */
1352
+ field: z.string().describe("Field name (snake_case)"),
1353
+ /** Field type — reuses Data.FieldType. When set, widget is auto-inferred (can be overridden). */
1354
+ type: FieldType.optional().describe("Field type (auto-infers widget if omitted)"),
1355
+ /** Select/multiselect options — only needed when type=select/multiselect/radio/checkboxes */
1356
+ options: z.array(SelectOptionSchema).optional().describe("Options for select/multiselect/radio/checkboxes fields"),
1357
+ /** Reference object for lookup/master_detail fields */
1358
+ reference: z.string().optional().describe("Target object name for lookup/master_detail fields"),
1359
+ /** Text constraints */
1360
+ maxLength: z.number().optional().describe("Maximum character length (for text/textarea/email/url/phone)"),
1361
+ minLength: z.number().optional().describe("Minimum character length"),
1362
+ /** Number constraints */
1363
+ min: z.number().optional().describe("Minimum value (for number/currency/percent/slider)"),
1364
+ max: z.number().optional().describe("Maximum value"),
1365
+ precision: z.number().optional().describe("Total digits (for number/currency)"),
1366
+ scale: z.number().optional().describe("Decimal places"),
1367
+ /** Multi-value flag */
1368
+ multiple: z.boolean().optional().describe("Allow multiple values (for select/lookup/file/image)"),
1369
+ /** UI overrides */
1370
+ label: I18nLabelSchema.optional().describe("Display label override"),
1371
+ placeholder: I18nLabelSchema.optional().describe("Placeholder text"),
1372
+ helpText: I18nLabelSchema.optional().describe("Help/hint text"),
1373
+ readonly: z.boolean().optional().describe("Read-only override"),
1374
+ immutable: z.boolean().optional().describe("Editable on create, locked once the record exists (e.g. machine names)."),
1375
+ required: z.boolean().optional().describe("Required override"),
1376
+ hidden: z.boolean().optional().describe("Hidden override"),
1377
+ colSpan: z.number().int().min(1).max(4).optional().describe("Column span in grid layout (1-4)"),
1378
+ /** Custom widget override — only needed when auto-inference is insufficient */
1379
+ widget: z.string().optional().describe("Custom widget/component name (overrides type-based inference)"),
1380
+ /** For `code` fields: source language (e.g. 'javascript', 'sql', 'json', 'typescript', 'expression', 'cel'). Drives syntax highlighting. */
1381
+ language: z.string().optional().describe("Code editor language (for type=code)"),
1382
+ /**
1383
+ * Sub-fields for `composite` / `repeater` types — declares the inner shape
1384
+ * of an embedded sub-object (composite) or each row of an embedded
1385
+ * sub-object array (repeater). Recursive: composite/repeater can nest.
1386
+ * Ignored for all other field types.
1387
+ *
1388
+ * Use `lookup` / `master_detail` instead when the children are independent
1389
+ * records with their own IDs in a separate object/table.
1390
+ */
1391
+ fields: z.array(z.lazy(() => FormFieldSchema)).optional().describe("Sub-fields for composite/repeater types"),
1392
+ dependsOn: z.string().optional().describe("Parent field name for cascading"),
1393
+ visibleOn: ExpressionInputSchema.optional().describe("Visibility predicate (CEL).")
1394
+ }));
1395
+ var FormSectionSchema = lazySchema(() => z.object({
1396
+ label: I18nLabelSchema.optional(),
1397
+ description: z.string().optional().describe("Optional description rendered under the section header."),
1398
+ collapsible: z.boolean().default(false),
1399
+ collapsed: z.boolean().default(false),
1400
+ visibleOn: ExpressionInputSchema.optional().describe("Visibility predicate (CEL). Hides the whole section when false."),
1401
+ columns: z.union([
1402
+ z.enum(["1", "2", "3", "4"]),
1403
+ z.literal(1),
1404
+ z.literal(2),
1405
+ z.literal(3),
1406
+ z.literal(4)
1407
+ ]).default(1).transform((val) => typeof val === "string" ? parseInt(val) : val),
1408
+ fields: z.array(z.union([
1409
+ z.string(),
1410
+ // Legacy: simple field name
1411
+ FormFieldSchema
1412
+ // Enhanced: detailed field config
1413
+ ]))
1414
+ }));
1415
+ var FormViewSchema = lazySchema(() => z.object({
1416
+ type: z.enum([
1417
+ "simple",
1418
+ // Single column or sections
1419
+ "tabbed",
1420
+ // Tabs
1421
+ "wizard",
1422
+ // Step by step
1423
+ "split",
1424
+ // Master-Detail split
1425
+ "drawer",
1426
+ // Side panel
1427
+ "modal"
1428
+ // Dialog
1429
+ ]).default("simple"),
1430
+ /** Data Source Configuration */
1431
+ data: ViewDataSchema.optional().describe('Data source configuration (defaults to "object" provider)'),
1432
+ sections: z.array(FormSectionSchema).optional(),
1433
+ // For simple layout
1434
+ groups: z.array(FormSectionSchema).optional(),
1435
+ // Legacy support -> alias to sections
1436
+ /** Default Sort for Related Lists (e.g., sort child records by date) */
1437
+ defaultSort: z.array(z.object({
1438
+ field: z.string().describe("Field name to sort by"),
1439
+ order: z.enum(["asc", "desc"]).default("desc").describe("Sort direction")
1440
+ })).optional().describe("Default sort order for related list views within this form"),
1441
+ /** Public form sharing configuration */
1442
+ sharing: SharingConfigSchema.optional().describe("Public sharing configuration for this form"),
1569
1443
  /**
1570
- * Joined report blocks only meaningful when `type: 'joined'`.
1571
- *
1572
- * A joined report renders multiple independent sub-reports stacked
1573
- * vertically in the same view. Each block declares its own object,
1574
- * columns, groupings and filter. The container-level `filter` is ANDed
1575
- * into every block at query time so a top-level scope (e.g. "this
1576
- * quarter") flows down without per-block duplication.
1444
+ * What happens after a successful submit.
1577
1445
  *
1578
- * Renderers must ignore `blocks` when `type !== 'joined'`.
1446
+ * - `thank-you` (default) show a confirmation panel
1447
+ * - `redirect` — send the browser to a URL
1448
+ * - `continue` — reset the form so another response can be entered
1449
+ * - `next-record` — advance to the next record (internal queues only)
1579
1450
  */
1580
- blocks: z.array(JoinedReportBlockSchema).optional().describe("Sub-reports for type=joined")
1451
+ submitBehavior: z.union([
1452
+ z.object({
1453
+ kind: z.literal("thank-you"),
1454
+ title: z.string().optional(),
1455
+ message: z.string().optional()
1456
+ }),
1457
+ z.object({
1458
+ kind: z.literal("redirect"),
1459
+ url: z.string(),
1460
+ delayMs: z.number().int().min(0).optional()
1461
+ }),
1462
+ z.object({ kind: z.literal("continue") }),
1463
+ z.object({ kind: z.literal("next-record") })
1464
+ ]).optional().describe("Post-submit behavior"),
1465
+ /** ARIA accessibility attributes */
1466
+ aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes for the form view")
1467
+ }));
1468
+ var ViewSchema = lazySchema(() => z.object({
1469
+ list: ListViewSchema.optional(),
1470
+ // Default list view
1471
+ form: FormViewSchema.optional(),
1472
+ // Default form view
1473
+ listViews: z.record(z.string(), ListViewSchema).optional().describe("Additional named list views"),
1474
+ formViews: z.record(z.string(), FormViewSchema).optional().describe("Additional named form views")
1475
+ }));
1476
+ function defineView(config) {
1477
+ return ViewSchema.parse(config);
1478
+ }
1479
+ function defineForm(config) {
1480
+ const { schemaId, ...rest } = config;
1481
+ return FormViewSchema.parse({
1482
+ ...rest,
1483
+ data: { provider: "schema", schemaId }
1484
+ });
1485
+ }
1486
+ var FieldReferenceSchema = lazySchema(() => z.object({
1487
+ $field: z.string().describe("Field Reference/Column Name")
1581
1488
  }));
1582
- var Report = {
1583
- create: (config) => ReportSchema.parse(config)
1584
- };
1585
- var EncryptionAlgorithmSchema = lazySchema(() => z.enum([
1586
- "aes-256-gcm",
1587
- "aes-256-cbc",
1588
- "chacha20-poly1305"
1589
- ]).describe("Supported encryption algorithm"));
1590
- var KeyManagementProviderSchema = lazySchema(() => z.enum([
1591
- "local",
1592
- "aws-kms",
1593
- "azure-key-vault",
1594
- "gcp-kms",
1595
- "hashicorp-vault"
1596
- ]).describe("Key management service provider"));
1597
- var KeyRotationPolicySchema = lazySchema(() => z.object({
1598
- enabled: z.boolean().default(false).describe("Enable automatic key rotation"),
1599
- frequencyDays: z.number().min(1).default(90).describe("Rotation frequency in days"),
1600
- retainOldVersions: z.number().default(3).describe("Number of old key versions to retain"),
1601
- autoRotate: z.boolean().default(true).describe("Automatically rotate without manual approval")
1602
- }).describe("Policy for automatic encryption key rotation"));
1603
- var EncryptionConfigSchema = lazySchema(() => z.object({
1604
- enabled: z.boolean().default(false).describe("Enable field-level encryption"),
1605
- algorithm: EncryptionAlgorithmSchema.default("aes-256-gcm").describe("Encryption algorithm"),
1606
- keyManagement: z.object({
1607
- provider: KeyManagementProviderSchema.describe("Key management service provider"),
1608
- keyId: z.string().optional().describe("Key identifier in the provider"),
1609
- rotationPolicy: KeyRotationPolicySchema.optional().describe("Key rotation policy")
1610
- }).describe("Key management configuration"),
1611
- scope: z.enum(["field", "record", "table", "database"]).describe("Encryption scope level"),
1612
- deterministicEncryption: z.boolean().default(false).describe("Allows equality queries on encrypted data"),
1613
- searchableEncryption: z.boolean().default(false).describe("Allows search on encrypted data")
1614
- }).describe("Field-level encryption configuration"));
1615
1489
  lazySchema(() => z.object({
1616
- fieldName: z.string().describe("Name of the field to encrypt"),
1617
- encryptionConfig: EncryptionConfigSchema.describe("Encryption settings for this field"),
1618
- indexable: z.boolean().default(false).describe("Allow indexing on encrypted field")
1619
- }).describe("Per-field encryption assignment"));
1620
- var MaskingStrategySchema = lazySchema(() => z.enum([
1621
- "redact",
1622
- // Complete redaction: ****
1623
- "partial",
1624
- // Partial masking: 138****5678
1625
- "hash",
1626
- // Hash value: sha256(value)
1627
- "tokenize",
1628
- // Tokenization: token-12345
1629
- "randomize",
1630
- // Randomize: generate random value
1631
- "nullify",
1632
- // Null value: null
1633
- "substitute"
1634
- // Substitute with dummy data
1635
- ]).describe("Data masking strategy for PII protection"));
1636
- var MaskingRuleSchema = lazySchema(() => z.object({
1637
- field: z.string().describe("Field name to apply masking to"),
1638
- strategy: MaskingStrategySchema.describe("Masking strategy to use"),
1639
- pattern: z.string().optional().describe("Regex pattern for partial masking"),
1640
- preserveFormat: z.boolean().default(true).describe("Keep the original data format after masking"),
1641
- preserveLength: z.boolean().default(true).describe("Keep the original data length after masking"),
1642
- roles: z.array(z.string()).optional().describe("Roles that see masked data"),
1643
- exemptRoles: z.array(z.string()).optional().describe("Roles that see unmasked data")
1644
- }).describe("Masking rule for a single field"));
1490
+ /** Equal to (default) - SQL: = | MongoDB: $eq */
1491
+ $eq: z.any().optional(),
1492
+ /** Not equal to - SQL: <> or != | MongoDB: $ne */
1493
+ $ne: z.any().optional()
1494
+ }));
1645
1495
  lazySchema(() => z.object({
1646
- enabled: z.boolean().default(false).describe("Enable data masking"),
1647
- rules: z.array(MaskingRuleSchema).describe("List of field-level masking rules"),
1648
- auditUnmasking: z.boolean().default(true).describe("Log when masked data is accessed unmasked")
1649
- }).describe("Top-level data masking configuration for PII protection"));
1650
-
1651
- // src/data/field.zod.ts
1652
- var FieldType = z.enum([
1653
- // Core Text
1654
- "text",
1655
- "textarea",
1656
- "email",
1657
- "url",
1658
- "phone",
1659
- "password",
1660
- // Rich Content
1661
- "markdown",
1662
- "html",
1663
- "richtext",
1664
- // Numbers
1665
- "number",
1666
- "currency",
1667
- "percent",
1668
- // Date & Time
1669
- "date",
1670
- "datetime",
1671
- "time",
1672
- // Logic
1673
- "boolean",
1674
- "toggle",
1675
- // Toggle is a distinct UI from checkbox
1676
- // Selection
1677
- "select",
1678
- // Single select dropdown
1679
- "multiselect",
1680
- // Multi select (often tags)
1681
- "radio",
1682
- // Radio group
1683
- "checkboxes",
1684
- // Checkbox group
1685
- // Relational
1686
- "lookup",
1687
- "master_detail",
1688
- // Dynamic reference
1689
- "tree",
1690
- // Hierarchical reference
1691
- // Media
1692
- "image",
1693
- "file",
1694
- "avatar",
1695
- "video",
1696
- "audio",
1697
- // Calculated / System
1698
- "formula",
1699
- "summary",
1700
- "autonumber",
1701
- // Enhanced Types
1702
- "location",
1703
- // GPS coordinates
1704
- "address",
1705
- // Structured address
1706
- "code",
1707
- // Code editor (JSON/SQL/JS)
1708
- "json",
1709
- // Structured JSON data
1710
- "color",
1711
- // Color picker
1712
- "rating",
1713
- // Star rating
1714
- "slider",
1715
- // Numeric slider
1716
- "signature",
1717
- // Digital signature
1718
- "qrcode",
1719
- // QR code / Barcode
1720
- "progress",
1721
- // Progress bar
1722
- "tags",
1723
- // Simple tag list
1724
- // AI/ML Types
1725
- "vector"
1726
- // Vector embeddings for AI/ML (semantic search, RAG)
1727
- ]);
1728
- var SelectOptionSchema = lazySchema(() => z.object({
1729
- label: z.string().describe("Display label (human-readable, any case allowed)"),
1730
- value: SystemIdentifierSchema.describe("Stored value (lowercase machine identifier)"),
1731
- color: z.string().optional().describe("Color code for badges/charts"),
1732
- default: z.boolean().optional().describe("Is default option")
1496
+ /** Greater than - SQL: > | MongoDB: $gt */
1497
+ $gt: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
1498
+ /** Greater than or equal to - SQL: >= | MongoDB: $gte */
1499
+ $gte: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
1500
+ /** Less than - SQL: < | MongoDB: $lt */
1501
+ $lt: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
1502
+ /** Less than or equal to - SQL: <= | MongoDB: $lte */
1503
+ $lte: z.union([z.number(), z.date(), FieldReferenceSchema]).optional()
1504
+ }));
1505
+ lazySchema(() => z.object({
1506
+ /** In list - SQL: IN (?, ?, ?) | MongoDB: $in */
1507
+ $in: z.array(z.any()).optional(),
1508
+ /** Not in list - SQL: NOT IN (...) | MongoDB: $nin */
1509
+ $nin: z.array(z.any()).optional()
1733
1510
  }));
1734
1511
  lazySchema(() => z.object({
1735
- latitude: z.number().min(-90).max(90).describe("Latitude coordinate"),
1736
- longitude: z.number().min(-180).max(180).describe("Longitude coordinate"),
1737
- altitude: z.number().optional().describe("Altitude in meters"),
1738
- accuracy: z.number().optional().describe("Accuracy in meters")
1512
+ /** Between (inclusive) - takes [min, max] array */
1513
+ $between: z.tuple([
1514
+ z.union([z.number(), z.date(), FieldReferenceSchema]),
1515
+ z.union([z.number(), z.date(), FieldReferenceSchema])
1516
+ ]).optional()
1739
1517
  }));
1740
- var CurrencyConfigSchema = lazySchema(() => z.object({
1741
- precision: z.number().int().min(0).max(10).default(2).describe("Decimal precision (default: 2)"),
1742
- currencyMode: z.enum(["dynamic", "fixed"]).default("dynamic").describe("Currency mode: dynamic (user selectable) or fixed (single currency)"),
1743
- defaultCurrency: z.string().length(3).default("CNY").describe("Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)")
1518
+ lazySchema(() => z.object({
1519
+ /** Contains substring - SQL: LIKE %?% | MongoDB: $regex */
1520
+ $contains: z.string().optional(),
1521
+ /** Does not contain substring - SQL: NOT LIKE %?% | MongoDB: $not: $regex */
1522
+ $notContains: z.string().optional(),
1523
+ /** Starts with prefix - SQL: LIKE ?% | MongoDB: $regex */
1524
+ $startsWith: z.string().optional(),
1525
+ /** Ends with suffix - SQL: LIKE %? | MongoDB: $regex */
1526
+ $endsWith: z.string().optional()
1744
1527
  }));
1745
1528
  lazySchema(() => z.object({
1746
- value: z.number().describe("Monetary amount"),
1747
- currency: z.string().length(3).describe("Currency code (ISO 4217)")
1529
+ /** Is null check - SQL: IS NULL (true) / IS NOT NULL (false) | MongoDB: field: null */
1530
+ $null: z.boolean().optional(),
1531
+ /** Field exists check (primarily for NoSQL) - MongoDB: $exists */
1532
+ $exists: z.boolean().optional()
1533
+ }));
1534
+ var FieldOperatorsSchema = lazySchema(() => z.object({
1535
+ // Equality
1536
+ $eq: z.any().optional(),
1537
+ $ne: z.any().optional(),
1538
+ // Comparison (numeric/date)
1539
+ $gt: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
1540
+ $gte: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
1541
+ $lt: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
1542
+ $lte: z.union([z.number(), z.date(), FieldReferenceSchema]).optional(),
1543
+ // Set & Range
1544
+ $in: z.array(z.any()).optional(),
1545
+ $nin: z.array(z.any()).optional(),
1546
+ $between: z.tuple([
1547
+ z.union([z.number(), z.date(), FieldReferenceSchema]),
1548
+ z.union([z.number(), z.date(), FieldReferenceSchema])
1549
+ ]).optional(),
1550
+ // String-specific
1551
+ $contains: z.string().optional(),
1552
+ $notContains: z.string().optional(),
1553
+ $startsWith: z.string().optional(),
1554
+ $endsWith: z.string().optional(),
1555
+ // Special
1556
+ $null: z.boolean().optional(),
1557
+ $exists: z.boolean().optional()
1558
+ }));
1559
+ var FilterConditionSchema = z.lazy(
1560
+ () => z.record(z.string(), z.unknown()).and(
1561
+ z.object({
1562
+ $and: z.array(FilterConditionSchema).optional(),
1563
+ $or: z.array(FilterConditionSchema).optional(),
1564
+ $not: FilterConditionSchema.optional()
1565
+ })
1566
+ )
1567
+ );
1568
+ lazySchema(() => z.object({
1569
+ where: FilterConditionSchema.optional()
1570
+ }));
1571
+ var NormalizedFilterSchema = z.lazy(
1572
+ () => z.object({
1573
+ $and: z.array(
1574
+ z.union([
1575
+ // Field condition: { field: { $op: value } }
1576
+ z.record(z.string(), FieldOperatorsSchema),
1577
+ // Nested logical group
1578
+ NormalizedFilterSchema
1579
+ ])
1580
+ ).optional(),
1581
+ $or: z.array(
1582
+ z.union([
1583
+ z.record(z.string(), FieldOperatorsSchema),
1584
+ NormalizedFilterSchema
1585
+ ])
1586
+ ).optional(),
1587
+ $not: z.union([
1588
+ z.record(z.string(), FieldOperatorsSchema),
1589
+ NormalizedFilterSchema
1590
+ ]).optional()
1591
+ })
1592
+ );
1593
+ var SortNodeSchema = lazySchema(() => z.object({
1594
+ field: z.string(),
1595
+ order: z.enum(["asc", "desc"]).default("asc")
1596
+ }));
1597
+ var AggregationFunction = z.enum([
1598
+ "count",
1599
+ "sum",
1600
+ "avg",
1601
+ "min",
1602
+ "max",
1603
+ "count_distinct",
1604
+ "array_agg",
1605
+ "string_agg"
1606
+ ]);
1607
+ var DateGranularity = z.enum(["day", "week", "month", "quarter", "year"]);
1608
+ var GroupByNodeSchema = lazySchema(() => z.union([
1609
+ z.string(),
1610
+ z.object({
1611
+ field: z.string().describe("Field to group by"),
1612
+ dateGranularity: DateGranularity.optional().describe("Bucket date values into uniform periods (day/week/month/quarter/year)"),
1613
+ /** Optional alias for the projected group value (defaults to `field`). */
1614
+ alias: z.string().optional().describe("Alias for the projected group value")
1615
+ })
1616
+ ]));
1617
+ var AggregationNodeSchema = lazySchema(() => z.object({
1618
+ function: AggregationFunction.describe("Aggregation function"),
1619
+ field: z.string().optional().describe("Field to aggregate (optional for COUNT(*))"),
1620
+ alias: z.string().describe("Result column alias"),
1621
+ distinct: z.boolean().optional().describe("Apply DISTINCT before aggregation"),
1622
+ filter: FilterConditionSchema.optional().describe("Filter/Condition to apply to the aggregation (FILTER WHERE clause)")
1623
+ }));
1624
+ var JoinType = z.enum(["inner", "left", "right", "full"]);
1625
+ var JoinStrategy = z.enum(["auto", "database", "hash", "loop"]);
1626
+ var JoinNodeSchema = z.lazy(
1627
+ () => z.object({
1628
+ type: JoinType.describe("Join type"),
1629
+ strategy: JoinStrategy.optional().describe("Execution strategy hint"),
1630
+ object: z.string().describe("Object/table to join"),
1631
+ alias: z.string().optional().describe("Table alias"),
1632
+ on: FilterConditionSchema.describe("Join condition"),
1633
+ subquery: z.lazy(() => QuerySchema).optional().describe("Subquery instead of object")
1634
+ })
1635
+ );
1636
+ var WindowFunction = z.enum([
1637
+ "row_number",
1638
+ "rank",
1639
+ "dense_rank",
1640
+ "percent_rank",
1641
+ "lag",
1642
+ "lead",
1643
+ "first_value",
1644
+ "last_value",
1645
+ "sum",
1646
+ "avg",
1647
+ "count",
1648
+ "min",
1649
+ "max"
1650
+ ]);
1651
+ var WindowSpecSchema = lazySchema(() => z.object({
1652
+ partitionBy: z.array(z.string()).optional().describe("PARTITION BY fields"),
1653
+ orderBy: z.array(SortNodeSchema).optional().describe("ORDER BY specification"),
1654
+ frame: z.object({
1655
+ type: z.enum(["rows", "range"]).optional(),
1656
+ start: z.string().optional().describe('Frame start (e.g., "UNBOUNDED PRECEDING", "1 PRECEDING")'),
1657
+ end: z.string().optional().describe('Frame end (e.g., "CURRENT ROW", "1 FOLLOWING")')
1658
+ }).optional().describe("Window frame specification")
1659
+ }));
1660
+ var WindowFunctionNodeSchema = lazySchema(() => z.object({
1661
+ function: WindowFunction.describe("Window function name"),
1662
+ field: z.string().optional().describe("Field to operate on (for aggregate window functions)"),
1663
+ alias: z.string().describe("Result column alias"),
1664
+ over: WindowSpecSchema.describe("Window specification (OVER clause)")
1665
+ }));
1666
+ var FieldNodeSchema = z.lazy(
1667
+ () => z.union([
1668
+ z.string(),
1669
+ // Primitive field: "name"
1670
+ z.object({
1671
+ field: z.string(),
1672
+ // Relationship field: "owner"
1673
+ fields: z.array(FieldNodeSchema).optional(),
1674
+ // Nested select: ["name", "email"]
1675
+ alias: z.string().optional()
1676
+ })
1677
+ ])
1678
+ );
1679
+ var FullTextSearchSchema = lazySchema(() => z.object({
1680
+ query: z.string().describe("Search query text"),
1681
+ fields: z.array(z.string()).optional().describe("Fields to search in (if not specified, searches all text fields)"),
1682
+ fuzzy: z.boolean().optional().default(false).describe("Enable fuzzy matching (tolerates typos)"),
1683
+ operator: z.enum(["and", "or"]).optional().default("or").describe("Logical operator between terms"),
1684
+ boost: z.record(z.string(), z.number()).optional().describe("Field-specific relevance boosting (field name -> boost factor)"),
1685
+ minScore: z.number().optional().describe("Minimum relevance score threshold"),
1686
+ language: z.string().optional().describe('Language for text analysis (e.g., "en", "zh", "es")'),
1687
+ highlight: z.boolean().optional().default(false).describe("Enable search result highlighting")
1688
+ }));
1689
+ var BaseQuerySchema = z.object({
1690
+ /** Target Entity */
1691
+ object: z.string().describe("Object name (e.g. account)"),
1692
+ /** Select Clause */
1693
+ fields: z.array(FieldNodeSchema).optional().describe("Fields to retrieve"),
1694
+ /** Where Clause (Filtering) */
1695
+ where: FilterConditionSchema.optional().describe("Filtering criteria (WHERE)"),
1696
+ /** Full-Text Search */
1697
+ search: FullTextSearchSchema.optional().describe("Full-text search configuration ($search parameter)"),
1698
+ /** Order By Clause (Sorting) */
1699
+ orderBy: z.array(SortNodeSchema).optional().describe("Sorting instructions (ORDER BY)"),
1700
+ /** Pagination */
1701
+ limit: z.number().optional().describe("Max records to return (LIMIT)"),
1702
+ offset: z.number().optional().describe("Records to skip (OFFSET)"),
1703
+ top: z.number().optional().describe("Alias for limit (OData compatibility)"),
1704
+ cursor: z.record(z.string(), z.unknown()).optional().describe("Cursor for keyset pagination"),
1705
+ /** Joins */
1706
+ joins: z.array(JoinNodeSchema).optional().describe("Explicit Table Joins"),
1707
+ /** Aggregations */
1708
+ aggregations: z.array(AggregationNodeSchema).optional().describe("Aggregation functions"),
1709
+ /** Group By Clause */
1710
+ groupBy: z.array(GroupByNodeSchema).optional().describe("GROUP BY targets (strings or `{field, dateGranularity?}` objects for date bucketing)"),
1711
+ /** Having Clause */
1712
+ having: FilterConditionSchema.optional().describe("HAVING clause for aggregation filtering"),
1713
+ /** Window Functions */
1714
+ windowFunctions: z.array(WindowFunctionNodeSchema).optional().describe("Window functions with OVER clause"),
1715
+ /** Subquery flag */
1716
+ distinct: z.boolean().optional().describe("SELECT DISTINCT flag")
1717
+ });
1718
+ var QuerySchema = lazySchema(() => BaseQuerySchema.extend({
1719
+ expand: z.lazy(() => z.record(z.string(), QuerySchema)).optional().describe(
1720
+ "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."
1721
+ )
1722
+ }));
1723
+
1724
+ // src/ui/dashboard.zod.ts
1725
+ var WidgetColorVariantSchema = lazySchema(() => z.enum([
1726
+ "default",
1727
+ "blue",
1728
+ "teal",
1729
+ "orange",
1730
+ "purple",
1731
+ "success",
1732
+ "warning",
1733
+ "danger"
1734
+ ]).describe("Widget color variant"));
1735
+ var WidgetActionTypeSchema = lazySchema(() => z.enum([
1736
+ "script",
1737
+ "url",
1738
+ "modal",
1739
+ "flow",
1740
+ "api"
1741
+ ]).describe("Widget action type"));
1742
+ var DashboardHeaderActionSchema = lazySchema(() => z.object({
1743
+ /** Action label */
1744
+ label: I18nLabelSchema.describe("Action button label"),
1745
+ /** Action URL or target */
1746
+ actionUrl: z.string().describe("URL or target for the action"),
1747
+ /** Action type */
1748
+ actionType: WidgetActionTypeSchema.optional().describe("Type of action"),
1749
+ /** Icon identifier */
1750
+ icon: z.string().optional().describe("Icon identifier for the action button")
1751
+ }).describe("Dashboard header action"));
1752
+ var DashboardHeaderSchema = lazySchema(() => z.object({
1753
+ /** Whether to show the dashboard title in the header */
1754
+ showTitle: z.boolean().default(true).describe("Show dashboard title in header"),
1755
+ /** Whether to show the dashboard description in the header */
1756
+ showDescription: z.boolean().default(true).describe("Show dashboard description in header"),
1757
+ /** Action buttons displayed in the header */
1758
+ actions: z.array(DashboardHeaderActionSchema).optional().describe("Header action buttons")
1759
+ }).describe("Dashboard header configuration"));
1760
+ var WidgetMeasureSchema = lazySchema(() => z.object({
1761
+ /** Value field to aggregate */
1762
+ valueField: z.string().describe("Field to aggregate"),
1763
+ /** Aggregate function */
1764
+ aggregate: z.enum(["count", "sum", "avg", "min", "max"]).default("count").describe("Aggregate function"),
1765
+ /** Display label for the measure */
1766
+ label: I18nLabelSchema.optional().describe("Measure display label"),
1767
+ /** Number format string (e.g., "$0,0.00", "0.0%") */
1768
+ format: z.string().optional().describe("Number format string")
1769
+ }).describe("Widget measure definition"));
1770
+ var DashboardWidgetSchema = lazySchema(() => z.object({
1771
+ /** Unique widget identifier (snake_case, used for targetWidgets references) */
1772
+ id: SnakeCaseIdentifierSchema.describe("Unique widget identifier (snake_case)"),
1773
+ /** Widget Title */
1774
+ title: I18nLabelSchema.optional().describe("Widget title"),
1775
+ /** Widget Description (displayed below the title) */
1776
+ description: I18nLabelSchema.optional().describe("Widget description text below the header"),
1777
+ /** Visualization Type */
1778
+ type: ChartTypeSchema.default("metric").describe("Visualization type"),
1779
+ /** Chart Configuration */
1780
+ chartConfig: ChartConfigSchema.optional().describe("Chart visualization configuration"),
1781
+ /** Color variant for the widget (e.g., KPI card accent color) */
1782
+ colorVariant: WidgetColorVariantSchema.optional().describe("Widget color variant for theming"),
1783
+ /**
1784
+ * Runtime capability gate — widget is hidden when the named object is
1785
+ * not registered in the runtime's SchemaRegistry. Mirrors
1786
+ * `NavigationItem.requiresObject` so cloud-only widgets (e.g. those
1787
+ * keyed on `sys_app` / `sys_package_installation`) silently disappear
1788
+ * in single-environment runtimes instead of rendering a 404 error.
1789
+ *
1790
+ * Defaults to the widget's `object` field when not explicitly set —
1791
+ * any widget that targets an object will be gated on that object's
1792
+ * registration. Set this to a different value (or empty string to
1793
+ * disable) when the widget should appear even if its `object` is
1794
+ * unavailable.
1795
+ */
1796
+ requiresObject: z.string().optional().describe("Hide the widget unless the named object is registered"),
1797
+ /**
1798
+ * Runtime capability gate — widget is hidden when the named kernel
1799
+ * service is not registered. Mirrors `NavigationItem.requiresService`.
1800
+ */
1801
+ requiresService: z.string().optional().describe("Hide the widget unless the named kernel service is registered"),
1802
+ /** Action URL for the widget header action button */
1803
+ actionUrl: z.string().optional().describe("URL or target for the widget action button"),
1804
+ /** Action type for the widget header action button */
1805
+ actionType: WidgetActionTypeSchema.optional().describe("Type of action for the widget action button"),
1806
+ /** Icon for the widget header action button */
1807
+ actionIcon: z.string().optional().describe("Icon identifier for the widget action button"),
1808
+ /** Data Source Object */
1809
+ object: z.string().optional().describe("Data source object name"),
1810
+ /** Data Filter (MongoDB-style FilterCondition) */
1811
+ filter: FilterConditionSchema.optional().describe("Data filter criteria"),
1812
+ /**
1813
+ * Period-over-period comparison primitive.
1814
+ *
1815
+ * When set, the renderer runs a second query against a shifted time
1816
+ * window and surfaces the delta (metric widgets show a secondary
1817
+ * value + arrow; chart widgets render a muted/dashed overlay series).
1818
+ *
1819
+ * - `'previousPeriod'` — auto-detect the comparison window from the
1820
+ * widget's `filter` date macros (e.g. `{current_month_start}` →
1821
+ * `{last_month_start}`). Falls back to no comparison when the
1822
+ * filter contains no resolvable date range.
1823
+ * - `'previousYear'` — shift the resolved filter window back by one
1824
+ * calendar year.
1825
+ * - `{ offset: '7d' | '1M' | '1y' }` — shift by an explicit
1826
+ * ISO-8601-like duration. Units: `d` (days), `w` (weeks),
1827
+ * `M` (months), `y` (years).
1828
+ */
1829
+ compareTo: z.union([
1830
+ z.literal("previousPeriod"),
1831
+ z.literal("previousYear"),
1832
+ z.object({
1833
+ offset: z.string().regex(/^\d+[dwMy]$/, 'Offset must match <N>(d|w|M|y), e.g. "7d", "1M", "1y"')
1834
+ })
1835
+ ]).optional().describe("Period-over-period comparison window"),
1836
+ /** Category Field (X-Axis / Group By) */
1837
+ categoryField: z.string().optional().describe("Field for grouping (X-Axis)"),
1838
+ /**
1839
+ * Date Bucketing Granularity for `categoryField`
1840
+ *
1841
+ * When set and `categoryField` references a date/datetime field, the engine
1842
+ * buckets values into uniform `day` / `week` / `month` / `quarter` / `year`
1843
+ * periods server-side (PostgreSQL `date_trunc`, MySQL `date_format`, SQLite
1844
+ * `strftime`, MongoDB `$dateTrunc`; falls back to in-memory ISO-8601
1845
+ * bucketing otherwise). Without this, raw timestamps are grouped verbatim
1846
+ * which typically yields one bucket per row — making time-series charts
1847
+ * appear flat.
1848
+ *
1849
+ * Mirrors the `dateGranularity` shape of {@link GroupByNodeSchema}.
1850
+ */
1851
+ categoryGranularity: DateGranularity.optional().describe("Bucket categoryField date values into day/week/month/quarter/year periods"),
1852
+ /** Value Field (Y-Axis) */
1853
+ valueField: z.string().optional().describe("Field for values (Y-Axis)"),
1854
+ /** Aggregate operation */
1855
+ aggregate: z.enum(["count", "sum", "avg", "min", "max"]).optional().default("count").describe("Aggregate function"),
1856
+ /** Multi-measure definitions for pivot/matrix widgets */
1857
+ measures: z.array(WidgetMeasureSchema).optional().describe("Multiple measures for pivot/matrix analysis"),
1858
+ /**
1859
+ * Layout Position (React-Grid-Layout style)
1860
+ * x: column (0-11)
1861
+ * y: row
1862
+ * w: width (1-12)
1863
+ * h: height
1864
+ */
1865
+ layout: z.object({
1866
+ x: z.number(),
1867
+ y: z.number(),
1868
+ w: z.number(),
1869
+ h: z.number()
1870
+ }).describe("Grid layout position"),
1871
+ /** Widget specific options (colors, legend, etc.) */
1872
+ options: z.unknown().optional().describe("Widget specific configuration"),
1873
+ /** Responsive layout overrides per breakpoint */
1874
+ responsive: ResponsiveConfigSchema.optional().describe("Responsive layout configuration"),
1875
+ /** ARIA accessibility attributes */
1876
+ aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes")
1748
1877
  }));
1749
- lazySchema(() => z.object({
1750
- street: z.string().optional().describe("Street address"),
1751
- city: z.string().optional().describe("City name"),
1752
- state: z.string().optional().describe("State/Province"),
1753
- postalCode: z.string().optional().describe("Postal/ZIP code"),
1754
- country: z.string().optional().describe("Country name or code"),
1755
- countryCode: z.string().optional().describe("ISO country code (e.g., US, GB)"),
1756
- formatted: z.string().optional().describe("Formatted address string")
1878
+ var GlobalFilterOptionsFromSchema = lazySchema(() => z.object({
1879
+ /** Source object name to fetch options from */
1880
+ object: z.string().describe("Source object name"),
1881
+ /** Field to use as option value */
1882
+ valueField: z.string().describe("Field to use as option value"),
1883
+ /** Field to use as option label */
1884
+ labelField: z.string().describe("Field to use as option label"),
1885
+ /** Optional filter to apply when fetching options */
1886
+ filter: FilterConditionSchema.optional().describe("Filter to apply to source object")
1887
+ }).describe("Dynamic filter options from object"));
1888
+ var GlobalFilterSchema = lazySchema(() => z.object({
1889
+ /** Field name to filter on */
1890
+ field: z.string().describe("Field name to filter on"),
1891
+ /** Display label for the filter */
1892
+ label: I18nLabelSchema.optional().describe("Display label for the filter"),
1893
+ /** Filter input type */
1894
+ type: z.enum(["text", "select", "date", "number", "lookup"]).optional().describe("Filter input type"),
1895
+ /** Static options for select/lookup filters */
1896
+ options: z.array(z.object({
1897
+ value: z.union([z.string(), z.number(), z.boolean()]).describe("Option value"),
1898
+ label: I18nLabelSchema
1899
+ })).optional().describe("Static filter options"),
1900
+ /** Dynamic data binding for filter options */
1901
+ optionsFrom: GlobalFilterOptionsFromSchema.optional().describe("Dynamic filter options from object"),
1902
+ /** Default filter value */
1903
+ defaultValue: z.union([z.string(), z.number(), z.boolean()]).optional().describe("Default filter value"),
1904
+ /** Filter application scope */
1905
+ scope: z.enum(["dashboard", "widget"]).default("dashboard").describe("Filter application scope"),
1906
+ /** Widget IDs to apply this filter to (when scope is widget) */
1907
+ targetWidgets: z.array(z.string()).optional().describe("Widget IDs to apply this filter to")
1757
1908
  }));
1758
- var VectorConfigSchema = lazySchema(() => z.object({
1759
- dimensions: z.number().int().min(1).max(1e4).describe("Vector dimensionality (e.g., 1536 for OpenAI embeddings)"),
1760
- distanceMetric: z.enum(["cosine", "euclidean", "dotProduct", "manhattan"]).default("cosine").describe("Distance/similarity metric for vector search"),
1761
- normalized: z.boolean().default(false).describe("Whether vectors are normalized (unit length)"),
1762
- indexed: z.boolean().default(true).describe("Whether to create a vector index for fast similarity search"),
1763
- indexType: z.enum(["hnsw", "ivfflat", "flat"]).optional().describe("Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets)")
1909
+ var DashboardSchema = lazySchema(() => z.object({
1910
+ /** Machine name */
1911
+ name: SnakeCaseIdentifierSchema.describe("Dashboard unique name"),
1912
+ /** Display label */
1913
+ label: I18nLabelSchema.describe("Dashboard label"),
1914
+ /** Description */
1915
+ description: I18nLabelSchema.optional().describe("Dashboard description"),
1916
+ /** Structured header configuration */
1917
+ header: DashboardHeaderSchema.optional().describe("Dashboard header configuration"),
1918
+ /** Collection of widgets */
1919
+ widgets: z.array(DashboardWidgetSchema).describe("Widgets to display"),
1920
+ /** Grid column count — defaults to 12 for a standard 12-column grid */
1921
+ columns: z.number().int().min(1).max(24).optional().describe("Number of grid columns (default 12)"),
1922
+ /** Grid gap in Tailwind spacing units (e.g. 4 = 1rem) */
1923
+ gap: z.number().int().min(0).optional().describe("Grid gap in Tailwind spacing units"),
1924
+ /** Auto-refresh */
1925
+ refreshInterval: z.number().optional().describe("Auto-refresh interval in seconds"),
1926
+ /** Dashboard Date Range (Global time filter) */
1927
+ dateRange: z.object({
1928
+ field: z.string().optional().describe("Default date field name for time-based filtering"),
1929
+ defaultRange: 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"),
1930
+ allowCustomRange: z.boolean().default(true).describe("Allow users to pick a custom date range")
1931
+ }).optional().describe("Global dashboard date range filter configuration"),
1932
+ /** Global Filters */
1933
+ globalFilters: z.array(GlobalFilterSchema).optional().describe("Global filters that apply to all widgets in the dashboard"),
1934
+ /** ARIA accessibility attributes */
1935
+ aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes"),
1936
+ /** Performance optimization settings */
1937
+ performance: PerformanceConfigSchema.optional().describe("Performance optimization settings")
1764
1938
  }));
1765
- var FileAttachmentConfigSchema = lazySchema(() => z.object({
1766
- /** File Size Limits */
1767
- minSize: z.number().min(0).optional().describe("Minimum file size in bytes"),
1768
- maxSize: z.number().min(1).optional().describe("Maximum file size in bytes (e.g., 10485760 = 10MB)"),
1769
- /** File Type Restrictions */
1770
- allowedTypes: z.array(z.string()).optional().describe('Allowed file extensions (e.g., [".pdf", ".docx", ".jpg"])'),
1771
- blockedTypes: z.array(z.string()).optional().describe('Blocked file extensions (e.g., [".exe", ".bat", ".sh"])'),
1772
- allowedMimeTypes: z.array(z.string()).optional().describe('Allowed MIME types (e.g., ["image/jpeg", "application/pdf"])'),
1773
- blockedMimeTypes: z.array(z.string()).optional().describe("Blocked MIME types"),
1774
- /** Virus Scanning */
1775
- virusScan: z.boolean().default(false).describe("Enable virus scanning for uploaded files"),
1776
- virusScanProvider: z.enum(["clamav", "virustotal", "metadefender", "custom"]).optional().describe("Virus scanning service provider"),
1777
- virusScanOnUpload: z.boolean().default(true).describe("Scan files immediately on upload"),
1778
- quarantineOnThreat: z.boolean().default(true).describe("Quarantine files if threat detected"),
1779
- /** Storage Configuration */
1780
- storageProvider: z.string().optional().describe("Object storage provider name (references ObjectStorageConfig)"),
1781
- storageBucket: z.string().optional().describe("Target bucket name"),
1782
- storagePrefix: z.string().optional().describe('Storage path prefix (e.g., "uploads/documents/")'),
1783
- /** Image-Specific Validation */
1784
- imageValidation: z.object({
1785
- minWidth: z.number().min(1).optional().describe("Minimum image width in pixels"),
1786
- maxWidth: z.number().min(1).optional().describe("Maximum image width in pixels"),
1787
- minHeight: z.number().min(1).optional().describe("Minimum image height in pixels"),
1788
- maxHeight: z.number().min(1).optional().describe("Maximum image height in pixels"),
1789
- aspectRatio: z.string().optional().describe('Required aspect ratio (e.g., "16:9", "1:1")'),
1790
- generateThumbnails: z.boolean().default(false).describe("Auto-generate thumbnails"),
1791
- thumbnailSizes: z.array(z.object({
1792
- name: z.string().describe('Thumbnail variant name (e.g., "small", "medium", "large")'),
1793
- width: z.number().min(1).describe("Thumbnail width in pixels"),
1794
- height: z.number().min(1).describe("Thumbnail height in pixels"),
1795
- crop: z.boolean().default(false).describe("Crop to exact dimensions")
1796
- })).optional().describe("Thumbnail size configurations"),
1797
- preserveMetadata: z.boolean().default(false).describe("Preserve EXIF metadata"),
1798
- autoRotate: z.boolean().default(true).describe("Auto-rotate based on EXIF orientation")
1799
- }).optional().describe("Image-specific validation rules"),
1800
- /** Upload Behavior */
1801
- allowMultiple: z.boolean().default(false).describe("Allow multiple file uploads (overrides field.multiple)"),
1802
- allowReplace: z.boolean().default(true).describe("Allow replacing existing files"),
1803
- allowDelete: z.boolean().default(true).describe("Allow deleting uploaded files"),
1804
- requireUpload: z.boolean().default(false).describe("Require at least one file when field is required"),
1805
- /** Metadata Extraction */
1806
- extractMetadata: z.boolean().default(true).describe("Extract file metadata (name, size, type, etc.)"),
1807
- extractText: z.boolean().default(false).describe("Extract text content from documents (OCR/parsing)"),
1808
- /** Versioning */
1809
- versioningEnabled: z.boolean().default(false).describe("Keep previous versions of replaced files"),
1810
- maxVersions: z.number().min(1).optional().describe("Maximum number of versions to retain"),
1811
- /** Access Control */
1812
- publicRead: z.boolean().default(false).describe("Allow public read access to uploaded files"),
1813
- presignedUrlExpiry: z.number().min(60).max(604800).default(3600).describe("Presigned URL expiration in seconds (default: 1 hour)")
1814
- }).refine((data) => {
1815
- if (data.minSize !== void 0 && data.maxSize !== void 0 && data.minSize > data.maxSize) {
1816
- return false;
1817
- }
1818
- return true;
1819
- }, {
1820
- message: "minSize must be less than or equal to maxSize"
1821
- }).refine((data) => {
1822
- if (data.virusScanProvider !== void 0 && data.virusScan !== true) {
1823
- return false;
1824
- }
1825
- return true;
1826
- }, {
1827
- message: "virusScanProvider requires virusScan to be enabled"
1939
+ var Dashboard = {
1940
+ create: (config) => DashboardSchema.parse(config)
1941
+ };
1942
+ var ReportType = z.enum([
1943
+ "tabular",
1944
+ // Simple list
1945
+ "summary",
1946
+ // Grouped by row
1947
+ "matrix",
1948
+ // Grouped by row and column
1949
+ "joined"
1950
+ // Joined multiple blocks
1951
+ ]);
1952
+ var ReportColumnSchema = lazySchema(() => z.object({
1953
+ field: z.string().describe("Field name"),
1954
+ label: I18nLabelSchema.optional().describe("Override label"),
1955
+ aggregate: z.enum(["sum", "avg", "max", "min", "count", "unique"]).optional().describe("Aggregation function"),
1956
+ /** Responsive visibility/priority per breakpoint */
1957
+ responsive: ResponsiveConfigSchema.optional().describe("Responsive visibility for this column")
1828
1958
  }));
1829
- var DataQualityRulesSchema = lazySchema(() => z.object({
1830
- /** Enforce uniqueness constraint */
1831
- uniqueness: z.boolean().default(false).describe("Enforce unique values across all records"),
1832
- /** Completeness ratio (0-1) indicating minimum percentage of non-null values */
1833
- completeness: z.number().min(0).max(1).default(0).describe("Minimum ratio of non-null values (0-1, default: 0 = no requirement)"),
1834
- /** Accuracy validation against authoritative source */
1835
- accuracy: z.object({
1836
- source: z.string().describe('Reference data source for validation (e.g., "api.verify.com", "master_data")'),
1837
- threshold: z.number().min(0).max(1).describe("Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)")
1838
- }).optional().describe("Accuracy validation configuration")
1959
+ var ReportGroupingSchema = lazySchema(() => z.object({
1960
+ field: z.string().describe("Field to group by"),
1961
+ sortOrder: z.enum(["asc", "desc"]).default("asc"),
1962
+ dateGranularity: z.enum(["day", "week", "month", "quarter", "year"]).optional().describe("For date fields")
1839
1963
  }));
1840
- var ComputedFieldCacheSchema = lazySchema(() => z.object({
1841
- /** Enable caching for this computed field */
1842
- enabled: z.boolean().describe("Enable caching for computed field results"),
1843
- /** Time-to-live in seconds */
1844
- ttl: z.number().min(0).describe("Cache TTL in seconds (0 = no expiration)"),
1845
- /** Array of field paths that trigger cache invalidation when changed */
1846
- invalidateOn: z.array(z.string()).describe('Field paths that invalidate cache (e.g., ["inventory.quantity", "pricing.base_price"])')
1964
+ var ReportChartSchema = lazySchema(() => ChartConfigSchema.extend({
1965
+ /** Report-specific chart configuration */
1966
+ xAxis: z.string().describe("Grouping field for X-Axis"),
1967
+ yAxis: z.string().describe("Summary field for Y-Axis"),
1968
+ groupBy: z.string().optional().describe("Additional grouping field")
1847
1969
  }));
1848
- var FieldSchema = lazySchema(() => z.object({
1970
+ var JoinedReportBlockSchema = lazySchema(() => z.object({
1971
+ /** Stable id for the block (used as react key, telemetry, deeplinks). */
1972
+ name: SnakeCaseIdentifierSchema,
1973
+ /** Human label shown above the block. Falls back to `name`. */
1974
+ label: I18nLabelSchema.optional(),
1975
+ /** Optional description rendered below the label. */
1976
+ description: I18nLabelSchema.optional(),
1977
+ /** Block report type — `joined` is intentionally excluded (no recursion). */
1978
+ type: z.enum(["tabular", "summary", "matrix"]).default("tabular"),
1979
+ /** Object queried by this block. Defaults to the container's objectName. */
1980
+ objectName: z.string().optional(),
1981
+ /** Columns to display / aggregate. Same shape as `Report.columns`. */
1982
+ columns: z.array(ReportColumnSchema),
1983
+ /** Row groupings (same shape as `Report.groupingsDown`). */
1984
+ groupingsDown: z.array(ReportGroupingSchema).optional(),
1985
+ /** Column groupings — only meaningful when `type: matrix`. */
1986
+ groupingsAcross: z.array(ReportGroupingSchema).optional(),
1987
+ /** Block-specific filter, ANDed with the container filter at render time. */
1988
+ filter: FilterConditionSchema.optional(),
1989
+ /** Optional inline chart configuration. */
1990
+ chart: ReportChartSchema.optional()
1991
+ }));
1992
+ var ReportSchema = lazySchema(() => z.object({
1849
1993
  /** Identity */
1850
- name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe("Machine name (snake_case)").optional(),
1851
- label: z.string().optional().describe("Human readable label"),
1852
- type: FieldType.describe("Field Data Type"),
1853
- description: z.string().optional().describe("Tooltip/Help text"),
1854
- format: z.string().optional().describe("Format string (e.g. email, phone)"),
1855
- /** Storage Layer Mapping */
1856
- columnName: z.string().optional().describe("Physical column name in the target datasource. Defaults to the field key when not set."),
1857
- /** Database Constraints */
1858
- required: z.boolean().default(false).describe("Is required"),
1859
- searchable: z.boolean().default(false).describe("Is searchable"),
1860
- multiple: z.boolean().default(false).describe("Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image."),
1861
- unique: z.boolean().default(false).describe("Is unique constraint"),
1862
- defaultValue: z.unknown().optional().describe("Default value"),
1863
- /** Text/String Constraints */
1864
- maxLength: z.number().optional().describe("Max character length"),
1865
- minLength: z.number().optional().describe("Min character length"),
1866
- /** Number Constraints */
1867
- precision: z.number().optional().describe("Total digits"),
1868
- scale: z.number().optional().describe("Decimal places"),
1869
- min: z.number().optional().describe("Minimum value"),
1870
- max: z.number().optional().describe("Maximum value"),
1871
- /** Selection Options */
1872
- options: z.array(SelectOptionSchema).optional().describe("Static options for select/multiselect"),
1994
+ name: SnakeCaseIdentifierSchema.describe("Report unique name"),
1995
+ label: I18nLabelSchema.describe("Report label"),
1996
+ description: I18nLabelSchema.optional(),
1997
+ /** Data Source */
1998
+ objectName: z.string().describe("Primary object"),
1999
+ /** Report Configuration */
2000
+ type: ReportType.default("tabular").describe("Report format type"),
2001
+ columns: z.array(ReportColumnSchema).describe("Columns to display"),
2002
+ /** Grouping (for Summary/Matrix) */
2003
+ groupingsDown: z.array(ReportGroupingSchema).optional().describe("Row groupings"),
2004
+ groupingsAcross: z.array(ReportGroupingSchema).optional().describe("Column groupings (Matrix only)"),
2005
+ /** Filtering (MongoDB-style FilterCondition) */
2006
+ filter: FilterConditionSchema.optional().describe("Filter criteria"),
2007
+ /** Visualization */
2008
+ chart: ReportChartSchema.optional().describe("Embedded chart configuration"),
2009
+ /** ARIA accessibility attributes */
2010
+ aria: AriaPropsSchema.optional().describe("ARIA accessibility attributes"),
2011
+ /** Performance optimization settings */
2012
+ performance: PerformanceConfigSchema.optional().describe("Performance optimization settings"),
1873
2013
  /**
1874
- * Relationship Config
1875
- *
1876
- * Used by `lookup` and `master_detail` field types to define cross-object references.
1877
- * The `reference` property is **required** for these types it identifies the target
1878
- * object whose records this field links to. The engine uses `reference` during $expand
1879
- * post-processing to resolve foreign key IDs into full related objects via batch queries.
1880
- *
1881
- * For `master_detail` fields, the parent record controls the lifecycle of child records
1882
- * (e.g., cascade delete). For `lookup` fields, the reference is a soft link.
2014
+ * Joined report blocks — only meaningful when `type: 'joined'`.
2015
+ *
2016
+ * A joined report renders multiple independent sub-reports stacked
2017
+ * vertically in the same view. Each block declares its own object,
2018
+ * columns, groupings and filter. The container-level `filter` is ANDed
2019
+ * into every block at query time so a top-level scope (e.g. "this
2020
+ * quarter") flows down without per-block duplication.
2021
+ *
2022
+ * Renderers must ignore `blocks` when `type !== 'joined'`.
1883
2023
  */
1884
- reference: z.string().optional().describe(
1885
- "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."
1886
- ),
1887
- referenceFilters: z.array(z.string()).optional().describe('Filters applied to lookup dialogs (e.g. "active = true")'),
1888
- writeRequiresMasterRead: z.boolean().optional().describe("If true, user needs read access to master record to edit this field"),
1889
- deleteBehavior: z.enum(["set_null", "cascade", "restrict"]).optional().default("set_null").describe("What happens if referenced record is deleted"),
1890
- /** Calculation — CEL formula. Plain string accepted for back-compat; build emits canonical envelope. */
1891
- expression: ExpressionInputSchema.optional().describe("Formula expression (CEL). e.g. F`record.amount * 0.1`"),
1892
- summaryOperations: z.object({
1893
- object: z.string().describe("Source child object name for roll-up"),
1894
- field: z.string().describe("Field on child object to aggregate"),
1895
- function: z.enum(["count", "sum", "min", "max", "avg"]).describe("Aggregation function to apply")
1896
- }).optional().describe("Roll-up summary definition"),
1897
- /** Enhanced Field Type Configurations */
1898
- // Code field config
1899
- language: z.string().optional().describe("Programming language for syntax highlighting (e.g., javascript, python, sql)"),
1900
- theme: z.string().optional().describe("Code editor theme (e.g., dark, light, monokai)"),
1901
- lineNumbers: z.boolean().optional().describe("Show line numbers in code editor"),
1902
- // Rating field config
1903
- maxRating: z.number().optional().describe("Maximum rating value (default: 5)"),
1904
- allowHalf: z.boolean().optional().describe("Allow half-star ratings"),
1905
- // Location field config
1906
- displayMap: z.boolean().optional().describe("Display map widget for location field"),
1907
- allowGeocoding: z.boolean().optional().describe("Allow address-to-coordinate conversion"),
1908
- // Address field config
1909
- addressFormat: z.enum(["us", "uk", "international"]).optional().describe("Address format template"),
1910
- // Color field config
1911
- colorFormat: z.enum(["hex", "rgb", "rgba", "hsl"]).optional().describe("Color value format"),
1912
- allowAlpha: z.boolean().optional().describe("Allow transparency/alpha channel"),
1913
- presetColors: z.array(z.string()).optional().describe("Preset color options"),
1914
- // Slider field config
1915
- step: z.number().optional().describe("Step increment for slider (default: 1)"),
1916
- showValue: z.boolean().optional().describe("Display current value on slider"),
1917
- marks: z.record(z.string(), z.string()).optional().describe('Custom marks/labels at specific values (e.g., {0: "Low", 50: "Medium", 100: "High"})'),
1918
- // QR Code / Barcode field config
1919
- // Note: qrErrorCorrection is only applicable when barcodeFormat='qr'
1920
- // Runtime validation should enforce this constraint
1921
- barcodeFormat: z.enum(["qr", "ean13", "ean8", "code128", "code39", "upca", "upce"]).optional().describe("Barcode format type"),
1922
- qrErrorCorrection: z.enum(["L", "M", "Q", "H"]).optional().describe('QR code error correction level (L=7%, M=15%, Q=25%, H=30%). Only applicable when barcodeFormat is "qr"'),
1923
- displayValue: z.boolean().optional().describe("Display human-readable value below barcode/QR code"),
1924
- allowScanning: z.boolean().optional().describe("Enable camera scanning for barcode/QR code input"),
1925
- // Currency field config
1926
- currencyConfig: CurrencyConfigSchema.optional().describe("Configuration for currency field type"),
1927
- // Vector field config
1928
- vectorConfig: VectorConfigSchema.optional().describe("Configuration for vector field type (AI/ML embeddings)"),
1929
- // File attachment field config
1930
- fileAttachmentConfig: FileAttachmentConfigSchema.optional().describe("Configuration for file and attachment field types"),
1931
- /** Enhanced Security & Compliance */
1932
- // Encryption configuration
1933
- encryptionConfig: EncryptionConfigSchema.optional().describe("Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS)"),
1934
- // Data masking rules
1935
- maskingRule: MaskingRuleSchema.optional().describe("Data masking rules for PII protection"),
1936
- // Audit trail
1937
- auditTrail: z.boolean().default(false).describe("Enable detailed audit trail for this field (tracks all changes with user and timestamp)"),
1938
- /** Field Dependencies & Relationships */
1939
- // Field dependencies
1940
- dependencies: z.array(z.string()).optional().describe("Array of field names that this field depends on (for formulas, visibility rules, etc.)"),
1941
- /** Computed Field Optimization */
1942
- // Computed field caching
1943
- cached: ComputedFieldCacheSchema.optional().describe("Caching configuration for computed/formula fields"),
1944
- /** Data Quality & Governance */
1945
- // Data quality rules
1946
- dataQuality: DataQualityRulesSchema.optional().describe("Data quality validation and monitoring rules"),
1947
- /** Layout & Grouping */
1948
- group: z.string().optional().describe('Field group name for organizing fields in forms and layouts (e.g., "contact_info", "billing", "system")'),
1949
- /** Conditional Requirements */
1950
- conditionalRequired: ExpressionInputSchema.optional().describe("Predicate (CEL) \u2014 field is required when TRUE. e.g. P`record.status == 'closed_won'`"),
1951
- /** Security & Visibility */
1952
- hidden: z.boolean().default(false).describe("Hidden from default UI"),
1953
- readonly: z.boolean().default(false).describe("Read-only in UI"),
1954
- system: 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."),
1955
- sortable: z.boolean().optional().default(true).describe("Whether field is sortable in list views"),
1956
- inlineHelpText: z.string().optional().describe("Help text displayed below the field in forms"),
1957
- trackFeedHistory: z.boolean().optional().describe("Track field changes in Chatter/activity feed (Salesforce pattern)"),
1958
- caseSensitive: z.boolean().optional().describe("Whether text comparisons are case-sensitive"),
1959
- autonumberFormat: z.string().optional().describe('Auto-number display format pattern (e.g., "CASE-{0000}")'),
1960
- /** Indexing */
1961
- index: z.boolean().default(false).describe("Create standard database index"),
1962
- externalId: z.boolean().default(false).describe("Is external ID for upsert operations")
2024
+ blocks: z.array(JoinedReportBlockSchema).optional().describe("Sub-reports for type=joined")
1963
2025
  }));
2026
+ var Report = {
2027
+ create: (config) => ReportSchema.parse(config)
2028
+ };
2029
+
2030
+ // src/ui/report.form.ts
2031
+ var reportForm = defineForm({
2032
+ schemaId: "report",
2033
+ type: "simple",
2034
+ sections: [
2035
+ {
2036
+ label: "Basics",
2037
+ description: "Identity and data source.",
2038
+ columns: 2,
2039
+ fields: [
2040
+ { field: "name", type: "text", colSpan: 1, required: true, helpText: "snake_case unique identifier" },
2041
+ { field: "label", type: "text", colSpan: 1, required: true },
2042
+ { field: "description", type: "textarea", colSpan: 2 },
2043
+ { field: "objectName", widget: "ref:object", colSpan: 1, helpText: "Data source object" },
2044
+ { field: "type", colSpan: 1, helpText: "Report type: tabular/summary/matrix/joined" }
2045
+ ]
2046
+ },
2047
+ {
2048
+ label: "Columns",
2049
+ description: "Columns shown in the report output.",
2050
+ fields: [
2051
+ { field: "columns", type: "repeater", helpText: "Columns to display in the report" }
2052
+ ]
2053
+ },
2054
+ {
2055
+ label: "Groupings",
2056
+ description: "How rows (and columns, for matrix reports) are grouped.",
2057
+ fields: [
2058
+ { field: "groupingsDown", type: "repeater", helpText: "Row grouping levels" },
2059
+ // CEL visibility — only Matrix reports use column groupings.
2060
+ { field: "groupingsAcross", type: "repeater", visibleOn: "data.type == 'matrix'", helpText: "Column grouping levels (matrix only)" }
2061
+ ]
2062
+ },
2063
+ {
2064
+ label: "Joined blocks",
2065
+ description: "Additional blocks joined into a single report (joined reports only).",
2066
+ visibleOn: "data.type == 'joined'",
2067
+ fields: [
2068
+ { field: "blocks", type: "repeater", helpText: "Join multiple objects (joined report only)" }
2069
+ ]
2070
+ },
2071
+ {
2072
+ label: "Filter & chart",
2073
+ description: "Report-level filters and chart presentation.",
2074
+ collapsible: true,
2075
+ collapsed: true,
2076
+ fields: [
2077
+ { field: "filter", type: "repeater", helpText: "Report-level filters" },
2078
+ { field: "chart", type: "composite", helpText: "Chart config (type, legend, colors)" }
2079
+ ]
2080
+ },
2081
+ {
2082
+ label: "Advanced",
2083
+ description: "Accessibility and performance tuning.",
2084
+ collapsible: true,
2085
+ collapsed: true,
2086
+ fields: [
2087
+ { field: "aria", type: "composite", helpText: "Accessibility labels" },
2088
+ { field: "performance", type: "composite", helpText: "Caching and optimization" }
2089
+ ]
2090
+ }
2091
+ ]
2092
+ });
2093
+
2094
+ // src/ui/view.form.ts
2095
+ var viewForm = defineForm({
2096
+ schemaId: "view",
2097
+ type: "simple",
2098
+ sections: [
2099
+ {
2100
+ label: "Basics",
2101
+ description: "Identity and primary surface.",
2102
+ columns: 2,
2103
+ fields: [
2104
+ { field: "name", type: "text", required: true, colSpan: 1, helpText: "snake_case, unique per environment" },
2105
+ { field: "label", type: "text", required: true, colSpan: 1 },
2106
+ { field: "description", type: "textarea", colSpan: 2 },
2107
+ { field: "type", required: true, colSpan: 1, helpText: "Primary view surface" },
2108
+ { field: "data", widget: "json", colSpan: 2, helpText: 'Data source \u2014 e.g. {"provider":"object","object":"task"}' }
2109
+ ]
2110
+ },
2111
+ {
2112
+ label: "Columns & filters",
2113
+ description: "What rows show and how users filter them.",
2114
+ fields: [
2115
+ { field: "columns", type: "repeater", required: true, helpText: "Columns to display (field names from selected object)" },
2116
+ { field: "filter", type: "repeater", helpText: "Filter conditions" },
2117
+ { field: "sort", type: "repeater", helpText: "Default sort order" },
2118
+ { field: "searchableFields", widget: "string-tags", helpText: "Field names available for quick search" },
2119
+ { field: "filterableFields", widget: "string-tags", helpText: "Field names available for filtering" }
2120
+ ]
2121
+ },
2122
+ {
2123
+ label: "Table options",
2124
+ description: "Grid-only display options.",
2125
+ visibleOn: "data.type == 'grid' || data.type == null",
2126
+ collapsible: true,
2127
+ collapsed: true,
2128
+ columns: 2,
2129
+ fields: [
2130
+ { field: "resizable", colSpan: 1 },
2131
+ { field: "striped", colSpan: 1 },
2132
+ { field: "bordered", colSpan: 1 },
2133
+ { field: "compactToolbar", colSpan: 1 },
2134
+ { field: "rowHeight", colSpan: 1 },
2135
+ { field: "selection", type: "composite", colSpan: 2 },
2136
+ { field: "pagination", type: "composite", colSpan: 2 }
2137
+ ]
2138
+ },
2139
+ {
2140
+ label: "Kanban",
2141
+ description: "Kanban-specific board configuration.",
2142
+ visibleOn: "data.type == 'kanban'",
2143
+ fields: [{ field: "kanban", type: "composite" }]
2144
+ },
2145
+ {
2146
+ label: "Calendar",
2147
+ description: "Calendar-specific configuration.",
2148
+ visibleOn: "data.type == 'calendar'",
2149
+ fields: [{ field: "calendar", type: "composite" }]
2150
+ },
2151
+ {
2152
+ label: "Gantt",
2153
+ description: "Gantt-specific configuration.",
2154
+ visibleOn: "data.type == 'gantt'",
2155
+ fields: [{ field: "gantt", type: "composite" }]
2156
+ },
2157
+ {
2158
+ label: "Gallery",
2159
+ description: "Gallery-specific configuration.",
2160
+ visibleOn: "data.type == 'gallery'",
2161
+ fields: [{ field: "gallery", type: "composite" }]
2162
+ },
2163
+ {
2164
+ label: "Timeline",
2165
+ description: "Timeline-specific configuration.",
2166
+ visibleOn: "data.type == 'timeline'",
2167
+ fields: [{ field: "timeline", type: "composite" }]
2168
+ },
2169
+ {
2170
+ label: "Chart",
2171
+ description: "Chart-specific configuration.",
2172
+ visibleOn: "data.type == 'chart'",
2173
+ fields: [{ field: "chart", type: "composite" }]
2174
+ },
2175
+ {
2176
+ label: "Navigation & sharing",
2177
+ description: "Where this view appears and who can see it.",
2178
+ collapsible: true,
2179
+ collapsed: true,
2180
+ fields: [
2181
+ { field: "navigation", type: "composite" },
2182
+ { field: "sharing", type: "composite" }
2183
+ ]
2184
+ }
2185
+ ]
2186
+ });
2187
+
2188
+ // src/ui/app.form.ts
2189
+ var appForm = defineForm({
2190
+ schemaId: "app",
2191
+ type: "simple",
2192
+ sections: [
2193
+ {
2194
+ label: "Basics",
2195
+ description: "App identity and activation.",
2196
+ columns: 2,
2197
+ fields: [
2198
+ { field: "name", type: "text", required: true, colSpan: 1, helpText: "snake_case, unique" },
2199
+ { field: "label", type: "text", required: true, colSpan: 1 },
2200
+ { field: "description", type: "textarea", colSpan: 2 },
2201
+ { field: "version", type: "text", colSpan: 1 },
2202
+ { field: "icon", type: "text", colSpan: 1, helpText: 'Lucide icon name (e.g. "users", "briefcase")' },
2203
+ { field: "active", type: "boolean", colSpan: 1 },
2204
+ { field: "isDefault", type: "boolean", colSpan: 1, helpText: "Make this the default app for new users" }
2205
+ ]
2206
+ },
2207
+ {
2208
+ label: "Navigation",
2209
+ description: "Sidebar items and area grouping.",
2210
+ fields: [
2211
+ { field: "navigation", type: "composite", helpText: "Nav tree \u2014 recursive structure" },
2212
+ { field: "areas", type: "repeater", helpText: "Group items into collapsible areas" },
2213
+ { field: "homePageId", type: "text", helpText: "Landing page when app opens" },
2214
+ { field: "mobileNavigation", type: "composite", helpText: "Bottom tab bar config for mobile" }
2215
+ ]
2216
+ },
2217
+ {
2218
+ label: "Content",
2219
+ description: "Objects and APIs this app uses.",
2220
+ fields: [
2221
+ { field: "objects", widget: "object-selector", multiple: true, helpText: "Object names this app exposes" },
2222
+ { field: "apis", type: "composite", helpText: "API endpoint definitions" },
2223
+ { field: "defaultAgent", type: "text", helpText: "AI agent for the ambient assistant button" }
2224
+ ]
2225
+ },
2226
+ {
2227
+ label: "Branding",
2228
+ description: "Theme colors and logo.",
2229
+ collapsible: true,
2230
+ collapsed: true,
2231
+ fields: [{ field: "branding", type: "composite", helpText: "Primary/secondary colors, logo, theme" }]
2232
+ },
2233
+ {
2234
+ label: "Access & sharing",
2235
+ description: "Who can access this app and how it can be embedded.",
2236
+ collapsible: true,
2237
+ collapsed: true,
2238
+ fields: [
2239
+ { field: "requiredPermissions", widget: "string-tags", helpText: "Permissions needed to access this app" },
2240
+ { field: "sharing", type: "composite", helpText: "Public/internal/restricted access control" },
2241
+ { field: "embed", type: "composite", helpText: "iFrame embed configuration" },
2242
+ { field: "aria", type: "composite", helpText: "Accessibility labels" }
2243
+ ]
2244
+ }
2245
+ ]
2246
+ });
2247
+
2248
+ // src/ui/dashboard.form.ts
2249
+ var dashboardForm = defineForm({
2250
+ schemaId: "dashboard",
2251
+ type: "simple",
2252
+ sections: [
2253
+ {
2254
+ label: "Basics",
2255
+ description: "Dashboard identity and description.",
2256
+ columns: 2,
2257
+ fields: [
2258
+ { field: "name", type: "text", required: true, colSpan: 1, helpText: "snake_case unique identifier" },
2259
+ { field: "label", type: "text", required: true, colSpan: 1, helpText: "Display name" },
2260
+ { field: "description", type: "textarea", colSpan: 2 }
2261
+ ]
2262
+ },
2263
+ {
2264
+ label: "Layout",
2265
+ description: "Grid sizing and refresh cadence.",
2266
+ columns: 3,
2267
+ fields: [
2268
+ { field: "columns", type: "number", colSpan: 1, helpText: "Grid columns (default 12)" },
2269
+ { field: "gap", type: "number", colSpan: 1, helpText: "Grid gap (Tailwind units)" },
2270
+ { field: "refreshInterval", type: "number", colSpan: 1, helpText: "Auto-refresh (seconds)" },
2271
+ { field: "header", type: "composite", colSpan: 3, helpText: "Dashboard header config (title, subtitle, actions)" }
2272
+ ]
2273
+ },
2274
+ {
2275
+ label: "Widgets",
2276
+ description: "Cards and charts placed on the grid.",
2277
+ fields: [
2278
+ { field: "widgets", type: "repeater", required: true, helpText: "Dashboard widgets with position and sizing" }
2279
+ ]
2280
+ },
2281
+ {
2282
+ label: "Filters",
2283
+ description: "Default and global filters applied across widgets.",
2284
+ collapsible: true,
2285
+ collapsed: true,
2286
+ fields: [
2287
+ { field: "dateRange", type: "composite", helpText: "Default date range selector" },
2288
+ { field: "globalFilters", type: "repeater", helpText: "Filters applied to all widgets" }
2289
+ ]
2290
+ },
2291
+ {
2292
+ label: "Advanced",
2293
+ description: "Accessibility and performance tuning.",
2294
+ collapsible: true,
2295
+ collapsed: true,
2296
+ fields: [
2297
+ { field: "aria", type: "composite", helpText: "Accessibility labels" },
2298
+ { field: "performance", type: "composite", helpText: "Caching and optimization config" }
2299
+ ]
2300
+ }
2301
+ ]
2302
+ });
2303
+
2304
+ // src/ui/action.form.ts
2305
+ var actionForm = defineForm({
2306
+ schemaId: "action",
2307
+ type: "simple",
2308
+ sections: [
2309
+ {
2310
+ label: "Basics",
2311
+ description: "Action identity and presentation.",
2312
+ columns: 2,
2313
+ fields: [
2314
+ { field: "name", required: true, colSpan: 1, helpText: "Unique identifier (snake_case)" },
2315
+ { field: "label", required: true, colSpan: 1, helpText: "Button text shown to users" },
2316
+ { field: "objectName", widget: "ref:object", colSpan: 1, helpText: "Object this action belongs to (optional)" },
2317
+ { field: "icon", colSpan: 1, helpText: 'Lucide icon name (e.g., "check", "x-circle")' },
2318
+ { field: "type", required: true, colSpan: 1, helpText: "What happens when clicked" },
2319
+ { field: "variant", colSpan: 1, helpText: "Button style (primary=blue, danger=red, ghost=transparent)" }
2320
+ ]
2321
+ },
2322
+ {
2323
+ label: "Behavior",
2324
+ description: "Configure what happens when the action is triggered.",
2325
+ fields: [
2326
+ { field: "target", visibleOn: "data.type != 'script'", helpText: "URL, flow name, or API endpoint to call" },
2327
+ { field: "method", visibleOn: "data.type == 'api'", helpText: "HTTP method (GET, POST, PUT, DELETE)" },
2328
+ { field: "body", widget: "code", visibleOn: "data.type == 'script'", helpText: "JavaScript code to execute" },
2329
+ { field: "params", type: "repeater", helpText: "User input parameters (show form before executing)" },
2330
+ { field: "confirmText", helpText: 'Confirmation message (e.g., "Are you sure?")' },
2331
+ { field: "successMessage", helpText: "Success message after completion" },
2332
+ { field: "refreshAfter", helpText: "Refresh the list/page after action completes" }
2333
+ ]
2334
+ },
2335
+ {
2336
+ label: "Placement",
2337
+ description: "Where and when the action button appears.",
2338
+ collapsible: true,
2339
+ collapsed: true,
2340
+ fields: [
2341
+ { field: "locations", type: "repeater", helpText: "Where to show this action (toolbar, row menu, etc.)" },
2342
+ { field: "component", helpText: "How to render (button, icon, menu item)" },
2343
+ { field: "visible", widget: "textarea", helpText: "CEL expression: show only when condition is true" },
2344
+ { field: "disabled", widget: "textarea", helpText: "CEL expression: disable when condition is true" },
2345
+ { field: "shortcut", helpText: 'Keyboard shortcut (e.g., "Ctrl+S", "Cmd+Enter")' }
2346
+ ]
2347
+ },
2348
+ {
2349
+ label: "Advanced",
2350
+ description: "Bulk operations, AI exposure, and API request shape.",
2351
+ collapsible: true,
2352
+ collapsed: true,
2353
+ columns: 2,
2354
+ fields: [
2355
+ { field: "bulkEnabled", colSpan: 1, helpText: "Allow applying to multiple selected records" },
2356
+ { field: "aiExposed", colSpan: 1, helpText: "Allow AI agents to call this action" },
2357
+ { field: "recordIdParam", visibleOn: "data.type == 'api'", colSpan: 1, helpText: "Body parameter name for record ID" },
2358
+ { field: "recordIdField", visibleOn: "data.type == 'api' && data.recordIdParam", colSpan: 1, helpText: 'Field to use as record ID (default: "id")' },
2359
+ { field: "bodyShape", visibleOn: "data.type == 'api'", colSpan: 2, helpText: "Request body structure (flat or nested)" }
2360
+ ]
2361
+ }
2362
+ ]
2363
+ });
2364
+
2365
+ // src/ui/page.form.ts
2366
+ var pageForm = defineForm({
2367
+ schemaId: "page",
2368
+ type: "simple",
2369
+ sections: [
2370
+ {
2371
+ label: "Basics",
2372
+ description: "Page identity and template.",
2373
+ columns: 2,
2374
+ fields: [
2375
+ { field: "name", required: true, colSpan: 1, helpText: "Unique identifier (snake_case)" },
2376
+ { field: "label", required: true, colSpan: 1, helpText: "Page title shown to users" },
2377
+ { field: "icon", colSpan: 1, helpText: "Icon for navigation menu" },
2378
+ { field: "type", colSpan: 1, helpText: "Page type (record, home, app, dashboard, etc.)" },
2379
+ { field: "template", colSpan: 2, helpText: 'Layout template (e.g., "header-sidebar-main")' },
2380
+ { field: "description", widget: "textarea", colSpan: 2, helpText: "Page description for navigation" }
2381
+ ]
2382
+ },
2383
+ {
2384
+ label: "Data Context",
2385
+ description: "Record binding and page-local state.",
2386
+ fields: [
2387
+ { field: "object", widget: "ref:object", helpText: "Bound object (for Record pages)" },
2388
+ { field: "variables", type: "repeater", helpText: "Local page state variables" }
2389
+ ]
2390
+ },
2391
+ {
2392
+ label: "Layout",
2393
+ description: "Page regions and components placed within them.",
2394
+ fields: [
2395
+ { field: "regions", type: "repeater", required: true, helpText: "Layout regions (header, main, sidebar, footer) with components" }
2396
+ ]
2397
+ },
2398
+ {
2399
+ label: "Advanced",
2400
+ description: "Activation, audience, and accessibility.",
2401
+ collapsible: true,
2402
+ collapsed: true,
2403
+ fields: [
2404
+ { field: "isDefault", helpText: "Set as default page for this page type" },
2405
+ { field: "kind", helpText: "Page override mode: full or slotted (for record pages)" },
2406
+ { field: "assignedProfiles", widget: "string-tags", helpText: "Profiles that can access this page" },
2407
+ { field: "aria", type: "composite", helpText: "Accessibility attributes (ARIA labels, roles)" }
2408
+ ]
2409
+ }
2410
+ ]
2411
+ });
1964
2412
  var HookBodyCapability = z.enum([
1965
2413
  "api.read",
1966
2414
  "api.write",
@@ -3684,6 +4132,6 @@ function definePortal(config) {
3684
4132
  return PortalSchema.parse(config);
3685
4133
  }
3686
4134
 
3687
- export { AIChatWindowProps, Action, ActionNavItemSchema, ActionParamSchema, ActionSchema, ActionType, AddRecordConfigSchema, AnimationSchema, AnimationTriggerSchema, App, AppBrandingSchema, AppSchema, AppearanceConfigSchema, AriaPropsSchema, BlankPageLayoutItemSchema, BlankPageLayoutSchema, BorderRadiusSchema, BreakpointColumnMapSchema, BreakpointName, BreakpointOrderMapSchema, BreakpointsSchema, CalendarConfigSchema, ChartAnnotationSchema, ChartAxisSchema, ChartConfigSchema, ChartInteractionSchema, ChartSeriesSchema, ChartTypeSchema, ColorPaletteSchema, ColumnSummarySchema, ComponentAnimationSchema, ComponentPropsMap, ConflictResolutionSchema, Dashboard, DashboardHeaderActionSchema, DashboardHeaderSchema, DashboardNavItemSchema, DashboardSchema, DashboardWidgetSchema, DateFormatSchema, DensityMode, DensityModeSchema, DndConfigSchema, DragConstraintSchema, DragHandleSchema, DragItemSchema, DropEffectSchema, DropZoneSchema, EasingFunctionSchema, ElementButtonPropsSchema, ElementDataSourceSchema, ElementFilterPropsSchema, ElementFormPropsSchema, ElementImagePropsSchema, ElementNumberPropsSchema, ElementRecordPickerPropsSchema, ElementTextPropsSchema, EmbedConfigSchema, EvictionPolicySchema, FieldWidgetPropsSchema, FocusManagementSchema, FocusTrapConfigSchema, FormFieldSchema, FormSectionSchema, FormViewSchema, GalleryConfigSchema, GanttConfigSchema, GestureConfigSchema, GestureTypeSchema, GlobalFilterOptionsFromSchema, GlobalFilterSchema, GroupNavItemSchema, GroupingConfigSchema, GroupingFieldSchema, HttpMethodSchema, HttpRequestSchema, I18nLabelSchema, I18nObjectSchema, InterfacePageConfigSchema, JoinedReportBlockSchema, KanbanConfigSchema, KeyboardNavigationConfigSchema, KeyboardShortcutSchema, ListChartConfigSchema, ListColumnSchema, ListViewSchema, LocaleConfigSchema, LongPressGestureConfigSchema, MotionConfigSchema, NavigationAreaSchema, NavigationConfigSchema, NavigationItemSchema, NavigationModeSchema, NotificationActionSchema, NotificationConfigSchema, NotificationPositionSchema, NotificationSchema, NotificationSeveritySchema, NotificationTypeSchema, NumberFormatSchema, ObjectNavItemSchema, OfflineCacheConfigSchema, OfflineConfigSchema, OfflineStrategySchema, PageAccordionProps, PageCardProps, PageComponentSchema, PageComponentType, PageHeaderProps, PageNavItemSchema, PageRegionSchema, PageSchema, PageTabsProps, PageTransitionSchema, PageTypeSchema, PageVariableSchema, PaginationConfigSchema, PerformanceConfigSchema, PersistStorageSchema, PinchGestureConfigSchema, PluralRuleSchema, Portal, PortalActionNavItemSchema, PortalAnonymousEntrySchema, PortalAnonymousRouteSchema, PortalAuthModeSchema, PortalDashboardNavItemSchema, PortalLayoutSchema, PortalNavItemSchema, PortalRateLimitSchema, PortalSchema, PortalSeoSchema, PortalThemeSchema, PortalUrlNavItemSchema, PortalViewNavItemSchema, RecordActivityProps, RecordChatterProps, RecordDetailsProps, RecordHighlightsField, RecordHighlightsProps, RecordPathProps, RecordRelatedListProps, RecordReviewConfigSchema, Report, ReportChartSchema, ReportColumnSchema, ReportGroupingSchema, ReportNavItemSchema, ReportSchema, ReportType, ResponsiveConfigSchema, RowColorConfigSchema, RowHeightSchema, SelectionConfigSchema, ShadowSchema, SharingConfigSchema, SpacingSchema, SwipeDirectionSchema, SwipeGestureConfigSchema, SyncConfigSchema, ThemeMode, ThemeModeSchema, ThemeSchema, TimelineConfigSchema, TouchInteractionSchema, TouchTargetConfigSchema, TransitionConfigSchema, TransitionPresetSchema, TypographySchema, UrlNavItemSchema, UserActionsConfigSchema, ViewDataSchema, ViewFilterRuleSchema, ViewSchema, ViewSharingSchema, ViewTabSchema, VisualizationTypeSchema, WcagContrastLevel, WcagContrastLevelSchema, WidgetActionTypeSchema, WidgetColorVariantSchema, WidgetEventSchema, WidgetLifecycleSchema, WidgetManifestSchema, WidgetMeasureSchema, WidgetPropertySchema, WidgetSourceSchema, ZIndexSchema, defineApp, definePortal, defineView };
4135
+ export { AIChatWindowProps, Action, ActionNavItemSchema, ActionParamSchema, ActionSchema, ActionType, AddRecordConfigSchema, AnimationSchema, AnimationTriggerSchema, App, AppBrandingSchema, AppSchema, AppearanceConfigSchema, AriaPropsSchema, BlankPageLayoutItemSchema, BlankPageLayoutSchema, BorderRadiusSchema, BreakpointColumnMapSchema, BreakpointName, BreakpointOrderMapSchema, BreakpointsSchema, CalendarConfigSchema, ChartAnnotationSchema, ChartAxisSchema, ChartConfigSchema, ChartInteractionSchema, ChartSeriesSchema, ChartTypeSchema, ColorPaletteSchema, ColumnSummarySchema, ComponentAnimationSchema, ComponentNavItemSchema, ComponentPropsMap, ConflictResolutionSchema, Dashboard, DashboardHeaderActionSchema, DashboardHeaderSchema, DashboardNavItemSchema, DashboardSchema, DashboardWidgetSchema, DateFormatSchema, DensityMode, DensityModeSchema, DndConfigSchema, DragConstraintSchema, DragHandleSchema, DragItemSchema, DropEffectSchema, DropZoneSchema, EasingFunctionSchema, ElementButtonPropsSchema, ElementDataSourceSchema, ElementFilterPropsSchema, ElementFormPropsSchema, ElementImagePropsSchema, ElementNumberPropsSchema, ElementRecordPickerPropsSchema, ElementTextPropsSchema, EmbedConfigSchema, EvictionPolicySchema, FieldWidgetPropsSchema, FocusManagementSchema, FocusTrapConfigSchema, FormFieldSchema, FormSectionSchema, FormViewSchema, GalleryConfigSchema, GanttConfigSchema, GestureConfigSchema, GestureTypeSchema, GlobalFilterOptionsFromSchema, GlobalFilterSchema, GroupNavItemSchema, GroupingConfigSchema, GroupingFieldSchema, HttpMethodSchema, HttpRequestSchema, I18nLabelSchema, I18nObjectSchema, InterfacePageConfigSchema, JoinedReportBlockSchema, KanbanConfigSchema, KeyboardNavigationConfigSchema, KeyboardShortcutSchema, ListChartConfigSchema, ListColumnSchema, ListViewSchema, LocaleConfigSchema, LongPressGestureConfigSchema, MotionConfigSchema, NavigationAreaSchema, NavigationConfigSchema, NavigationItemSchema, NavigationModeSchema, NotificationActionSchema, NotificationConfigSchema, NotificationPositionSchema, NotificationSchema, NotificationSeveritySchema, NotificationTypeSchema, NumberFormatSchema, ObjectNavItemSchema, OfflineCacheConfigSchema, OfflineConfigSchema, OfflineStrategySchema, PageAccordionProps, PageCardProps, PageComponentSchema, PageComponentType, PageHeaderProps, PageNavItemSchema, PageRegionSchema, PageSchema, PageTabsProps, PageTransitionSchema, PageTypeSchema, PageVariableSchema, PaginationConfigSchema, PerformanceConfigSchema, PersistStorageSchema, PinchGestureConfigSchema, PluralRuleSchema, Portal, PortalActionNavItemSchema, PortalAnonymousEntrySchema, PortalAnonymousRouteSchema, PortalAuthModeSchema, PortalDashboardNavItemSchema, PortalLayoutSchema, PortalNavItemSchema, PortalRateLimitSchema, PortalSchema, PortalSeoSchema, PortalThemeSchema, PortalUrlNavItemSchema, PortalViewNavItemSchema, RecordActivityProps, RecordChatterProps, RecordDetailsProps, RecordHighlightsField, RecordHighlightsProps, RecordPathProps, RecordRelatedListProps, RecordReviewConfigSchema, Report, ReportChartSchema, ReportColumnSchema, ReportGroupingSchema, ReportNavItemSchema, ReportSchema, ReportType, ResponsiveConfigSchema, RowColorConfigSchema, RowHeightSchema, SelectionConfigSchema, ShadowSchema, SharingConfigSchema, SpacingSchema, SwipeDirectionSchema, SwipeGestureConfigSchema, SyncConfigSchema, ThemeMode, ThemeModeSchema, ThemeSchema, TimelineConfigSchema, TouchInteractionSchema, TouchTargetConfigSchema, TransitionConfigSchema, TransitionPresetSchema, TypographySchema, UrlNavItemSchema, UserActionsConfigSchema, ViewDataSchema, ViewFilterRuleSchema, ViewSchema, ViewSharingSchema, ViewTabSchema, VisualizationTypeSchema, WcagContrastLevel, WcagContrastLevelSchema, WidgetActionTypeSchema, WidgetColorVariantSchema, WidgetEventSchema, WidgetLifecycleSchema, WidgetManifestSchema, WidgetMeasureSchema, WidgetPropertySchema, WidgetSourceSchema, ZIndexSchema, actionForm, appForm, dashboardForm, defineApp, defineForm, definePortal, defineView, pageForm, reportForm, viewForm };
3688
4136
  //# sourceMappingURL=index.mjs.map
3689
4137
  //# sourceMappingURL=index.mjs.map