@objectstack/spec 0.3.2 → 0.4.1

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 (523) hide show
  1. package/README.md +32 -10
  2. package/dist/ai/agent.zod.d.ts +12 -12
  3. package/dist/ai/conversation.zod.d.ts +54 -54
  4. package/dist/ai/cost.zod.d.ts +135 -135
  5. package/dist/ai/index.d.ts +1 -1
  6. package/dist/ai/index.d.ts.map +1 -1
  7. package/dist/ai/index.js +1 -1
  8. package/dist/ai/model-registry.zod.d.ts +91 -91
  9. package/dist/ai/nlq.zod.d.ts +72 -72
  10. package/dist/ai/{workflow-automation.zod.d.ts → orchestration.zod.d.ts} +51 -50
  11. package/dist/ai/orchestration.zod.d.ts.map +1 -0
  12. package/dist/ai/{workflow-automation.zod.js → orchestration.zod.js} +26 -25
  13. package/dist/ai/predictive.zod.d.ts +27 -27
  14. package/dist/ai/rag-pipeline.zod.d.ts +102 -102
  15. package/dist/api/contract.zod.d.ts +213 -197
  16. package/dist/api/contract.zod.d.ts.map +1 -1
  17. package/dist/{system → api}/discovery.zod.d.ts +26 -26
  18. package/dist/api/discovery.zod.d.ts.map +1 -0
  19. package/dist/{system → api}/discovery.zod.js +9 -9
  20. package/dist/{system/api.zod.d.ts → api/endpoint.zod.d.ts} +53 -57
  21. package/dist/api/endpoint.zod.d.ts.map +1 -0
  22. package/dist/{system/api.zod.js → api/endpoint.zod.js} +3 -6
  23. package/dist/api/index.d.ts +6 -0
  24. package/dist/api/index.d.ts.map +1 -1
  25. package/dist/api/index.js +6 -0
  26. package/dist/api/odata.zod.d.ts +482 -0
  27. package/dist/api/odata.zod.d.ts.map +1 -0
  28. package/dist/api/odata.zod.js +401 -0
  29. package/dist/{system → api}/realtime.zod.d.ts +4 -4
  30. package/dist/api/realtime.zod.d.ts.map +1 -0
  31. package/dist/api/router.zod.d.ts +182 -0
  32. package/dist/api/router.zod.d.ts.map +1 -0
  33. package/dist/api/router.zod.js +103 -0
  34. package/dist/{system/auth.zod.d.ts → auth/config.zod.d.ts} +199 -199
  35. package/dist/auth/config.zod.d.ts.map +1 -0
  36. package/dist/{system → auth}/identity.zod.d.ts +8 -8
  37. package/dist/auth/identity.zod.d.ts.map +1 -0
  38. package/dist/auth/index.d.ts +8 -0
  39. package/dist/auth/index.d.ts.map +1 -0
  40. package/dist/auth/index.js +23 -0
  41. package/dist/{system → auth}/organization.zod.d.ts +7 -7
  42. package/dist/auth/organization.zod.d.ts.map +1 -0
  43. package/dist/{system → auth}/policy.zod.d.ts +3 -3
  44. package/dist/auth/policy.zod.d.ts.map +1 -0
  45. package/dist/{system/auth-protocol.d.ts → auth/protocol.d.ts} +1 -1
  46. package/dist/auth/protocol.d.ts.map +1 -0
  47. package/dist/{system → auth}/role.zod.d.ts +14 -0
  48. package/dist/auth/role.zod.d.ts.map +1 -0
  49. package/dist/{system → auth}/role.zod.js +16 -1
  50. package/dist/auth/scim.zod.d.ts +2732 -0
  51. package/dist/auth/scim.zod.d.ts.map +1 -0
  52. package/dist/auth/scim.zod.js +811 -0
  53. package/dist/automation/approval.zod.d.ts +643 -0
  54. package/dist/automation/approval.zod.d.ts.map +1 -0
  55. package/dist/automation/approval.zod.js +84 -0
  56. package/dist/automation/connector.zod.d.ts +1284 -0
  57. package/dist/automation/connector.zod.d.ts.map +1 -0
  58. package/dist/automation/connector.zod.js +500 -0
  59. package/dist/automation/etl.zod.d.ts +623 -0
  60. package/dist/automation/etl.zod.d.ts.map +1 -0
  61. package/dist/automation/etl.zod.js +359 -0
  62. package/dist/{data → automation}/flow.zod.d.ts +40 -22
  63. package/dist/automation/flow.zod.d.ts.map +1 -0
  64. package/dist/{data → automation}/flow.zod.js +6 -1
  65. package/dist/automation/index.d.ts +8 -0
  66. package/dist/automation/index.d.ts.map +1 -0
  67. package/dist/automation/index.js +23 -0
  68. package/dist/automation/sync.zod.d.ts +854 -0
  69. package/dist/automation/sync.zod.d.ts.map +1 -0
  70. package/dist/automation/sync.zod.js +444 -0
  71. package/dist/{system → automation}/webhook.zod.d.ts +26 -3
  72. package/dist/automation/webhook.zod.d.ts.map +1 -0
  73. package/dist/{system → automation}/webhook.zod.js +27 -3
  74. package/dist/automation/workflow.zod.d.ts +2059 -0
  75. package/dist/automation/workflow.zod.d.ts.map +1 -0
  76. package/dist/{data → automation}/workflow.zod.js +40 -2
  77. package/dist/data/dataset.zod.d.ts +2 -2
  78. package/dist/data/field.zod.d.ts +779 -219
  79. package/dist/data/field.zod.d.ts.map +1 -1
  80. package/dist/data/field.zod.js +128 -16
  81. package/dist/data/filter.zod.d.ts +167 -30
  82. package/dist/data/filter.zod.d.ts.map +1 -1
  83. package/dist/data/filter.zod.js +25 -13
  84. package/dist/data/hook.zod.d.ts +191 -0
  85. package/dist/data/hook.zod.d.ts.map +1 -0
  86. package/dist/data/hook.zod.js +144 -0
  87. package/dist/data/index.d.ts +4 -17
  88. package/dist/data/index.d.ts.map +1 -1
  89. package/dist/data/index.js +4 -17
  90. package/dist/data/mapping.zod.d.ts +117 -93
  91. package/dist/data/mapping.zod.d.ts.map +1 -1
  92. package/dist/data/mapping.zod.js +16 -3
  93. package/dist/data/object.zod.d.ts +485 -131
  94. package/dist/data/object.zod.d.ts.map +1 -1
  95. package/dist/data/object.zod.js +87 -42
  96. package/dist/data/query.zod.d.ts +98 -169
  97. package/dist/data/query.zod.d.ts.map +1 -1
  98. package/dist/data/query.zod.js +42 -130
  99. package/dist/data/validation.zod.d.ts +166 -26
  100. package/dist/data/validation.zod.d.ts.map +1 -1
  101. package/dist/data/validation.zod.js +38 -16
  102. package/dist/hub/composer.zod.d.ts +871 -0
  103. package/dist/hub/composer.zod.d.ts.map +1 -0
  104. package/dist/hub/composer.zod.js +111 -0
  105. package/dist/hub/index.d.ts +6 -0
  106. package/dist/hub/index.d.ts.map +1 -0
  107. package/dist/hub/index.js +22 -0
  108. package/dist/{system → hub}/license.zod.d.ts +13 -9
  109. package/dist/hub/license.zod.d.ts.map +1 -0
  110. package/dist/{system → hub}/license.zod.js +5 -3
  111. package/dist/hub/marketplace.zod.d.ts +191 -0
  112. package/dist/hub/marketplace.zod.d.ts.map +1 -0
  113. package/dist/hub/marketplace.zod.js +85 -0
  114. package/dist/hub/space.zod.d.ts +383 -0
  115. package/dist/hub/space.zod.d.ts.map +1 -0
  116. package/dist/hub/space.zod.js +103 -0
  117. package/dist/{system → hub}/tenant.zod.d.ts +73 -47
  118. package/dist/hub/tenant.zod.d.ts.map +1 -0
  119. package/dist/{system → hub}/tenant.zod.js +36 -10
  120. package/dist/index.d.ts +11 -4
  121. package/dist/index.d.ts.map +1 -1
  122. package/dist/index.js +15 -5
  123. package/dist/permission/index.d.ts +14 -0
  124. package/dist/permission/index.d.ts.map +1 -0
  125. package/dist/permission/index.js +29 -0
  126. package/dist/{data → permission}/permission.zod.d.ts +48 -3
  127. package/dist/permission/permission.zod.d.ts.map +1 -0
  128. package/dist/{data → permission}/permission.zod.js +26 -2
  129. package/dist/permission/rls.zod.d.ts +605 -0
  130. package/dist/permission/rls.zod.d.ts.map +1 -0
  131. package/dist/permission/rls.zod.js +615 -0
  132. package/dist/permission/sharing.zod.d.ts +146 -0
  133. package/dist/permission/sharing.zod.d.ts.map +1 -0
  134. package/dist/permission/sharing.zod.js +88 -0
  135. package/dist/{system → permission}/territory.zod.d.ts +13 -0
  136. package/dist/permission/territory.zod.d.ts.map +1 -0
  137. package/dist/{system → permission}/territory.zod.js +15 -1
  138. package/dist/shared/identifiers.zod.d.ts +87 -0
  139. package/dist/shared/identifiers.zod.d.ts.map +1 -0
  140. package/dist/shared/identifiers.zod.js +101 -0
  141. package/dist/shared/index.d.ts +6 -0
  142. package/dist/shared/index.d.ts.map +1 -0
  143. package/dist/shared/index.js +21 -0
  144. package/dist/stack.zod.d.ts +19869 -0
  145. package/dist/stack.zod.d.ts.map +1 -0
  146. package/dist/stack.zod.js +248 -0
  147. package/dist/system/audit.zod.d.ts +58 -58
  148. package/dist/system/context.zod.d.ts +56 -0
  149. package/dist/system/context.zod.d.ts.map +1 -0
  150. package/dist/system/context.zod.js +43 -0
  151. package/dist/system/datasource.zod.d.ts +40 -6
  152. package/dist/system/datasource.zod.d.ts.map +1 -1
  153. package/dist/system/datasource.zod.js +17 -13
  154. package/dist/system/driver/mongo.zod.d.ts +107 -0
  155. package/dist/system/driver/mongo.zod.d.ts.map +1 -0
  156. package/dist/system/driver/mongo.zod.js +80 -0
  157. package/dist/system/driver/postgres.zod.d.ts +134 -0
  158. package/dist/system/driver/postgres.zod.d.ts.map +1 -0
  159. package/dist/system/driver/postgres.zod.js +88 -0
  160. package/dist/system/driver.zod.d.ts +2249 -488
  161. package/dist/system/driver.zod.d.ts.map +1 -1
  162. package/dist/system/driver.zod.js +99 -0
  163. package/dist/system/events.zod.d.ts +8 -5
  164. package/dist/system/events.zod.d.ts.map +1 -1
  165. package/dist/system/events.zod.js +5 -1
  166. package/dist/system/feature.zod.d.ts +131 -0
  167. package/dist/system/feature.zod.d.ts.map +1 -0
  168. package/dist/system/feature.zod.js +45 -0
  169. package/dist/system/index.d.ts +11 -20
  170. package/dist/system/index.d.ts.map +1 -1
  171. package/dist/system/index.js +15 -20
  172. package/dist/system/job.zod.d.ts +5 -5
  173. package/dist/system/logger.zod.d.ts +111 -0
  174. package/dist/system/logger.zod.d.ts.map +1 -0
  175. package/dist/system/logger.zod.js +75 -0
  176. package/dist/system/manifest.zod.d.ts +136 -18
  177. package/dist/system/manifest.zod.d.ts.map +1 -1
  178. package/dist/system/manifest.zod.js +28 -0
  179. package/dist/system/plugin.zod.d.ts +598 -318
  180. package/dist/system/plugin.zod.d.ts.map +1 -1
  181. package/dist/system/plugin.zod.js +13 -0
  182. package/dist/system/scoped-storage.zod.d.ts +81 -0
  183. package/dist/system/scoped-storage.zod.d.ts.map +1 -0
  184. package/dist/system/scoped-storage.zod.js +66 -0
  185. package/dist/ui/action.zod.d.ts +42 -17
  186. package/dist/ui/action.zod.d.ts.map +1 -1
  187. package/dist/ui/action.zod.js +30 -1
  188. package/dist/ui/app.zod.d.ts +26 -11
  189. package/dist/ui/app.zod.d.ts.map +1 -1
  190. package/dist/ui/app.zod.js +32 -4
  191. package/dist/ui/block.zod.d.ts +265 -0
  192. package/dist/ui/block.zod.d.ts.map +1 -0
  193. package/dist/ui/block.zod.js +90 -0
  194. package/dist/ui/component.zod.d.ts +265 -0
  195. package/dist/ui/component.zod.d.ts.map +1 -0
  196. package/dist/ui/component.zod.js +90 -0
  197. package/dist/ui/dashboard.zod.d.ts +15 -15
  198. package/dist/ui/dashboard.zod.d.ts.map +1 -1
  199. package/dist/ui/dashboard.zod.js +18 -8
  200. package/dist/ui/index.d.ts +1 -0
  201. package/dist/ui/index.d.ts.map +1 -1
  202. package/dist/ui/index.js +1 -0
  203. package/dist/ui/page.zod.d.ts +23 -5
  204. package/dist/ui/page.zod.d.ts.map +1 -1
  205. package/dist/ui/page.zod.js +37 -4
  206. package/dist/ui/report.zod.d.ts +12 -12
  207. package/dist/ui/theme.zod.d.ts +42 -42
  208. package/dist/ui/view.zod.d.ts +302 -290
  209. package/dist/ui/view.zod.d.ts.map +1 -1
  210. package/dist/ui/view.zod.js +32 -3
  211. package/dist/ui/widget.zod.d.ts +730 -29
  212. package/dist/ui/widget.zod.d.ts.map +1 -1
  213. package/dist/ui/widget.zod.js +294 -1
  214. package/json-schema/ai/{AIWorkflowAutomation.json → AIOrchestration.json} +5 -5
  215. package/json-schema/ai/{AIWorkflowExecutionResult.json → AIOrchestrationExecutionResult.json} +2 -2
  216. package/json-schema/ai/{AIWorkflowTrigger.json → AIOrchestrationTrigger.json} +2 -2
  217. package/json-schema/ai/{BatchAIWorkflowExecution.json → BatchAIOrchestrationExecution.json} +3 -3
  218. package/json-schema/{system → api}/ApiEndpoint.json +3 -1
  219. package/json-schema/{system → api}/ApiRoutes.json +7 -7
  220. package/json-schema/{system → api}/Discovery.json +7 -7
  221. package/json-schema/api/ExportRequest.json +402 -438
  222. package/json-schema/{system → api}/HttpMethod.json +3 -1
  223. package/json-schema/api/ODataError.json +65 -0
  224. package/json-schema/api/ODataFilterFunction.json +39 -0
  225. package/json-schema/api/ODataFilterOperator.json +24 -0
  226. package/json-schema/api/ODataMetadata.json +115 -0
  227. package/json-schema/api/ODataQuery.json +89 -0
  228. package/json-schema/api/ODataResponse.json +37 -0
  229. package/json-schema/api/RouteCategory.json +17 -0
  230. package/json-schema/api/RouteDefinition.json +77 -0
  231. package/json-schema/api/RouterConfig.json +117 -0
  232. package/json-schema/{system → auth}/Role.json +3 -2
  233. package/json-schema/auth/SCIMAddress.json +50 -0
  234. package/json-schema/auth/SCIMEmail.json +38 -0
  235. package/json-schema/auth/SCIMEnterpriseUser.json +55 -0
  236. package/json-schema/auth/SCIMError.json +52 -0
  237. package/json-schema/auth/SCIMGroup.json +102 -0
  238. package/json-schema/auth/SCIMGroupReference.json +36 -0
  239. package/json-schema/auth/SCIMListResponse.json +606 -0
  240. package/json-schema/auth/SCIMMemberReference.json +36 -0
  241. package/json-schema/auth/SCIMMeta.json +35 -0
  242. package/json-schema/auth/SCIMName.json +36 -0
  243. package/json-schema/auth/SCIMPatchOperation.json +31 -0
  244. package/json-schema/auth/SCIMPatchRequest.json +56 -0
  245. package/json-schema/auth/SCIMPhoneNumber.json +40 -0
  246. package/json-schema/auth/SCIMUser.json +462 -0
  247. package/json-schema/automation/ApprovalAction.json +35 -0
  248. package/json-schema/automation/ApprovalActionType.json +15 -0
  249. package/json-schema/automation/ApprovalProcess.json +326 -0
  250. package/json-schema/automation/ApprovalStep.json +147 -0
  251. package/json-schema/automation/ApproverType.json +16 -0
  252. package/json-schema/automation/AuthField.json +73 -0
  253. package/json-schema/automation/Authentication.json +159 -0
  254. package/json-schema/automation/AuthenticationType.json +18 -0
  255. package/json-schema/automation/ConflictResolution.json +16 -0
  256. package/json-schema/automation/Connector.json +440 -0
  257. package/json-schema/automation/ConnectorCategory.json +26 -0
  258. package/json-schema/automation/ConnectorInstance.json +69 -0
  259. package/json-schema/automation/ConnectorOperation.json +117 -0
  260. package/json-schema/automation/ConnectorTrigger.json +54 -0
  261. package/json-schema/automation/DataDestinationConfig.json +89 -0
  262. package/json-schema/automation/DataSourceConfig.json +34 -0
  263. package/json-schema/automation/DataSyncConfig.json +355 -0
  264. package/json-schema/automation/ETLDestination.json +57 -0
  265. package/json-schema/automation/ETLEndpointType.json +19 -0
  266. package/json-schema/automation/ETLPipeline.json +252 -0
  267. package/json-schema/automation/ETLPipelineRun.json +107 -0
  268. package/json-schema/automation/ETLRunStatus.json +17 -0
  269. package/json-schema/automation/ETLSource.json +60 -0
  270. package/json-schema/{data/LogicOperator.json → automation/ETLSyncMode.json} +5 -5
  271. package/json-schema/automation/ETLTransformation.json +46 -0
  272. package/json-schema/automation/ETLTransformationType.json +21 -0
  273. package/json-schema/automation/FieldMapping.json +36 -0
  274. package/json-schema/{data → automation}/Flow.json +31 -1
  275. package/json-schema/{data → automation}/FlowEdge.json +9 -0
  276. package/json-schema/automation/OAuth2Config.json +43 -0
  277. package/json-schema/automation/OperationParameter.json +59 -0
  278. package/json-schema/automation/OperationType.json +17 -0
  279. package/json-schema/automation/SyncDirection.json +14 -0
  280. package/json-schema/automation/SyncExecutionResult.json +135 -0
  281. package/json-schema/automation/SyncExecutionStatus.json +17 -0
  282. package/json-schema/{data/TriggerTiming.json → automation/SyncMode.json} +5 -4
  283. package/json-schema/{data/WorkflowRule.json → automation/TimeTrigger.json} +35 -25
  284. package/json-schema/{system → automation}/Webhook.json +3 -1
  285. package/json-schema/{system → automation}/WebhookReceiver.json +3 -1
  286. package/json-schema/automation/WorkflowRule.json +1032 -0
  287. package/json-schema/data/AggregationNode.json +23 -0
  288. package/json-schema/data/AsyncValidation.json +49 -2
  289. package/json-schema/data/ComparisonOperator.json +52 -0
  290. package/json-schema/data/ConditionalValidation.json +693 -46
  291. package/json-schema/data/CrossFieldValidation.json +33 -2
  292. package/json-schema/data/CurrencyConfig.json +35 -0
  293. package/json-schema/data/CurrencyValue.json +26 -0
  294. package/json-schema/data/CustomValidator.json +37 -10
  295. package/json-schema/data/Field.json +92 -4
  296. package/json-schema/data/FieldOperators.json +78 -0
  297. package/json-schema/data/FieldReference.json +19 -0
  298. package/json-schema/data/FieldType.json +12 -2
  299. package/json-schema/data/FormatValidation.json +33 -2
  300. package/json-schema/data/Hook.json +95 -0
  301. package/json-schema/data/HookContext.json +88 -0
  302. package/json-schema/data/HookEvent.json +29 -0
  303. package/json-schema/data/Index.json +10 -0
  304. package/json-schema/data/JSONValidation.json +85 -0
  305. package/json-schema/data/JoinNode.json +197 -213
  306. package/json-schema/data/JoinStrategy.json +15 -0
  307. package/json-schema/data/NormalizedFilter.json +234 -0
  308. package/json-schema/data/Object.json +1642 -32
  309. package/json-schema/data/ObjectCapabilities.json +30 -12
  310. package/json-schema/data/Query.json +246 -262
  311. package/json-schema/data/RangeOperator.json +26 -0
  312. package/json-schema/data/ScriptValidation.json +33 -2
  313. package/json-schema/data/SearchConfig.json +36 -0
  314. package/json-schema/data/SelectOption.json +4 -2
  315. package/json-schema/data/StateMachineValidation.json +33 -2
  316. package/json-schema/data/UniquenessValidation.json +33 -2
  317. package/json-schema/data/ValidationRule.json +693 -46
  318. package/json-schema/data/VectorConfig.json +51 -0
  319. package/json-schema/hub/BillOfMaterials.json +70 -0
  320. package/json-schema/hub/ComposerRequest.json +86 -0
  321. package/json-schema/hub/ComposerResponse.json +483 -0
  322. package/json-schema/hub/ConflictReport.json +53 -0
  323. package/json-schema/hub/DependencyRequirement.json +36 -0
  324. package/json-schema/hub/DeploymentTarget.json +38 -0
  325. package/json-schema/hub/HubSpace.json +279 -0
  326. package/json-schema/{system → hub}/License.json +11 -3
  327. package/json-schema/hub/MarketplacePlugin.json +141 -0
  328. package/json-schema/hub/PluginAuthor.json +26 -0
  329. package/json-schema/hub/PluginPricing.json +43 -0
  330. package/json-schema/hub/SpaceSubscription.json +77 -0
  331. package/json-schema/hub/SubscriptionStatus.json +16 -0
  332. package/json-schema/{system → hub}/Tenant.json +3 -5
  333. package/json-schema/permission/CriteriaSharingRule.json +82 -0
  334. package/json-schema/{data → permission}/OWDModel.json +2 -1
  335. package/json-schema/{data → permission}/ObjectPermission.json +15 -0
  336. package/json-schema/permission/OwnerSharingRule.json +102 -0
  337. package/json-schema/{data → permission}/PermissionSet.json +18 -1
  338. package/json-schema/permission/RLSConfig.json +59 -0
  339. package/json-schema/permission/RLSEvaluationResult.json +40 -0
  340. package/json-schema/{data/TriggerAction.json → permission/RLSOperation.json} +5 -3
  341. package/json-schema/permission/RLSUserContext.json +51 -0
  342. package/json-schema/permission/RowLevelSecurityPolicy.json +77 -0
  343. package/json-schema/permission/ShareRecipientType.json +16 -0
  344. package/json-schema/{data → permission}/SharingLevel.json +2 -1
  345. package/json-schema/permission/SharingRule.json +182 -0
  346. package/json-schema/{data → permission}/SharingRuleType.json +1 -3
  347. package/json-schema/{system → permission}/Territory.json +3 -1
  348. package/json-schema/shared/EventName.json +12 -0
  349. package/json-schema/shared/SnakeCaseIdentifier.json +12 -0
  350. package/json-schema/shared/SystemIdentifier.json +12 -0
  351. package/json-schema/system/Datasource.json +35 -0
  352. package/json-schema/system/DriverCapabilities.json +10 -0
  353. package/json-schema/system/DriverInterface.json +10 -0
  354. package/json-schema/system/DriverOptions.json +11 -0
  355. package/json-schema/system/Event.json +3 -2
  356. package/json-schema/system/FeatureFlag.json +87 -0
  357. package/json-schema/system/FeatureStrategy.json +16 -0
  358. package/json-schema/system/FileMetadata.json +43 -0
  359. package/json-schema/system/KernelContext.json +62 -0
  360. package/json-schema/system/LogEntry.json +63 -0
  361. package/json-schema/system/LogFormat.json +15 -0
  362. package/json-schema/system/LogLevel.json +17 -0
  363. package/json-schema/system/LoggerConfig.json +70 -0
  364. package/json-schema/system/Manifest.json +80 -0
  365. package/json-schema/system/MongoConfig.json +82 -0
  366. package/json-schema/system/PluginContext.json +8 -1
  367. package/json-schema/system/PostgresConfig.json +98 -0
  368. package/json-schema/system/RuntimeMode.json +16 -0
  369. package/json-schema/system/ScopedStorageConfig.json +54 -0
  370. package/json-schema/system/StorageAdapterType.json +17 -0
  371. package/json-schema/system/StorageScope.json +18 -0
  372. package/json-schema/ui/Action.json +25 -4
  373. package/json-schema/ui/ActionParam.json +12 -2
  374. package/json-schema/ui/App.json +18 -7
  375. package/json-schema/ui/ChartType.json +9 -1
  376. package/json-schema/ui/Dashboard.json +9 -1
  377. package/json-schema/ui/DashboardNavItem.json +3 -1
  378. package/json-schema/ui/DashboardWidget.json +9 -1
  379. package/json-schema/ui/FieldWidgetProps.json +92 -4
  380. package/json-schema/ui/FormView.json +4 -1
  381. package/json-schema/ui/GroupNavItem.json +3 -1
  382. package/json-schema/ui/ListView.json +7 -1
  383. package/json-schema/ui/NavigationItem.json +15 -5
  384. package/json-schema/ui/ObjectNavItem.json +3 -1
  385. package/json-schema/ui/Page.json +36 -4
  386. package/json-schema/ui/PageCardProps.json +32 -0
  387. package/json-schema/ui/PageComponent.json +33 -3
  388. package/json-schema/ui/PageComponentType.json +32 -0
  389. package/json-schema/ui/PageHeaderProps.json +39 -0
  390. package/json-schema/ui/PageNavItem.json +3 -1
  391. package/json-schema/ui/PageRegion.json +33 -3
  392. package/json-schema/ui/PageTabsProps.json +55 -0
  393. package/json-schema/ui/RecordDetailsProps.json +37 -0
  394. package/json-schema/ui/RecordHighlightsProps.json +24 -0
  395. package/json-schema/ui/RecordRelatedListProps.json +39 -0
  396. package/json-schema/ui/UrlNavItem.json +3 -1
  397. package/json-schema/ui/View.json +22 -4
  398. package/json-schema/ui/WidgetEvent.json +42 -0
  399. package/json-schema/ui/WidgetLifecycle.json +40 -0
  400. package/json-schema/ui/WidgetManifest.json +262 -0
  401. package/json-schema/ui/WidgetProperty.json +58 -0
  402. package/llms.txt +182 -0
  403. package/package.json +38 -16
  404. package/prompts/README.md +18 -0
  405. package/prompts/architecture.md +81 -0
  406. package/prompts/create-new-project.md +85 -0
  407. package/prompts/implement-objectai.md +39 -0
  408. package/prompts/implement-objectos.md +48 -0
  409. package/prompts/implement-objectql.md +39 -0
  410. package/prompts/implement-objectui.md +46 -0
  411. package/prompts/instructions.md +91 -0
  412. package/dist/ai/workflow-automation.zod.d.ts.map +0 -1
  413. package/dist/data/flow.zod.d.ts.map +0 -1
  414. package/dist/data/permission.zod.d.ts.map +0 -1
  415. package/dist/data/sharing.zod.d.ts +0 -63
  416. package/dist/data/sharing.zod.d.ts.map +0 -1
  417. package/dist/data/sharing.zod.js +0 -57
  418. package/dist/data/trigger.zod.d.ts +0 -354
  419. package/dist/data/trigger.zod.d.ts.map +0 -1
  420. package/dist/data/trigger.zod.js +0 -195
  421. package/dist/data/workflow.zod.d.ts +0 -986
  422. package/dist/data/workflow.zod.d.ts.map +0 -1
  423. package/dist/system/api.zod.d.ts.map +0 -1
  424. package/dist/system/auth-protocol.d.ts.map +0 -1
  425. package/dist/system/auth.zod.d.ts.map +0 -1
  426. package/dist/system/discovery.zod.d.ts.map +0 -1
  427. package/dist/system/identity.zod.d.ts.map +0 -1
  428. package/dist/system/license.zod.d.ts.map +0 -1
  429. package/dist/system/organization.zod.d.ts.map +0 -1
  430. package/dist/system/policy.zod.d.ts.map +0 -1
  431. package/dist/system/realtime.zod.d.ts.map +0 -1
  432. package/dist/system/role.zod.d.ts.map +0 -1
  433. package/dist/system/tenant.zod.d.ts.map +0 -1
  434. package/dist/system/territory.zod.d.ts.map +0 -1
  435. package/dist/system/webhook.zod.d.ts.map +0 -1
  436. package/json-schema/README.md +0 -127
  437. package/json-schema/data/FieldMapping.json +0 -83
  438. package/json-schema/data/FilterNode.json +0 -52
  439. package/json-schema/data/FilterOperator.json +0 -26
  440. package/json-schema/data/Mapping.json +0 -598
  441. package/json-schema/data/SharingRule.json +0 -58
  442. package/json-schema/data/TransformType.json +0 -18
  443. package/json-schema/data/Trigger.json +0 -73
  444. package/json-schema/data/TriggerContext.json +0 -61
  445. /package/dist/{system → api}/realtime.zod.js +0 -0
  446. /package/dist/{system/auth.zod.js → auth/config.zod.js} +0 -0
  447. /package/dist/{system → auth}/identity.zod.js +0 -0
  448. /package/dist/{system → auth}/organization.zod.js +0 -0
  449. /package/dist/{system → auth}/policy.zod.js +0 -0
  450. /package/dist/{system/auth-protocol.js → auth/protocol.js} +0 -0
  451. /package/json-schema/{system → api}/ApiCapabilities.json +0 -0
  452. /package/json-schema/{system → api}/ApiMapping.json +0 -0
  453. /package/json-schema/{system → api}/Presence.json +0 -0
  454. /package/json-schema/{system → api}/PresenceStatus.json +0 -0
  455. /package/json-schema/{system → api}/RateLimit.json +0 -0
  456. /package/json-schema/{system → api}/RealtimeAction.json +0 -0
  457. /package/json-schema/{system → api}/RealtimeEvent.json +0 -0
  458. /package/json-schema/{system → api}/RealtimeEventType.json +0 -0
  459. /package/json-schema/{system → api}/Subscription.json +0 -0
  460. /package/json-schema/{system → api}/SubscriptionEvent.json +0 -0
  461. /package/json-schema/{system → api}/TransportProtocol.json +0 -0
  462. /package/json-schema/{system → auth}/Account.json +0 -0
  463. /package/json-schema/{system → auth}/AccountLinkingConfig.json +0 -0
  464. /package/json-schema/{system → auth}/AuditPolicy.json +0 -0
  465. /package/json-schema/{system → auth}/AuthConfig.json +0 -0
  466. /package/json-schema/{system → auth}/AuthPluginConfig.json +0 -0
  467. /package/json-schema/{system → auth}/AuthStrategy.json +0 -0
  468. /package/json-schema/{system → auth}/CSRFConfig.json +0 -0
  469. /package/json-schema/{system → auth}/DatabaseAdapter.json +0 -0
  470. /package/json-schema/{system → auth}/DatabaseMapping.json +0 -0
  471. /package/json-schema/{system → auth}/EmailPasswordConfig.json +0 -0
  472. /package/json-schema/{system → auth}/EnterpriseAuthConfig.json +0 -0
  473. /package/json-schema/{system → auth}/Invitation.json +0 -0
  474. /package/json-schema/{system → auth}/InvitationStatus.json +0 -0
  475. /package/json-schema/{system → auth}/LDAPConfig.json +0 -0
  476. /package/json-schema/{system → auth}/MagicLinkConfig.json +0 -0
  477. /package/json-schema/{system → auth}/Member.json +0 -0
  478. /package/json-schema/{system → auth}/NetworkPolicy.json +0 -0
  479. /package/json-schema/{system → auth}/OAuthProvider.json +0 -0
  480. /package/json-schema/{system → auth}/OIDCConfig.json +0 -0
  481. /package/json-schema/{system → auth}/Organization.json +0 -0
  482. /package/json-schema/{system → auth}/PasskeyConfig.json +0 -0
  483. /package/json-schema/{system → auth}/PasswordPolicy.json +0 -0
  484. /package/json-schema/{system → auth}/Policy.json +0 -0
  485. /package/json-schema/{system → auth}/RateLimitConfig.json +0 -0
  486. /package/json-schema/{system → auth}/SAMLConfig.json +0 -0
  487. /package/json-schema/{system → auth}/Session.json +0 -0
  488. /package/json-schema/{system → auth}/SessionConfig.json +0 -0
  489. /package/json-schema/{system → auth}/SessionPolicy.json +0 -0
  490. /package/json-schema/{system → auth}/StandardAuthProvider.json +0 -0
  491. /package/json-schema/{system → auth}/TwoFactorConfig.json +0 -0
  492. /package/json-schema/{system → auth}/User.json +0 -0
  493. /package/json-schema/{system → auth}/UserFieldMapping.json +0 -0
  494. /package/json-schema/{system → auth}/VerificationToken.json +0 -0
  495. /package/json-schema/{data → automation}/CustomScriptAction.json +0 -0
  496. /package/json-schema/{data → automation}/EmailAlertAction.json +0 -0
  497. /package/json-schema/{data → automation}/FieldUpdateAction.json +0 -0
  498. /package/json-schema/{data → automation}/FlowNode.json +0 -0
  499. /package/json-schema/{data → automation}/FlowNodeAction.json +0 -0
  500. /package/json-schema/{data → automation}/FlowVariable.json +0 -0
  501. /package/json-schema/{data → automation}/HttpCallAction.json +0 -0
  502. /package/json-schema/{data → automation}/PushNotificationAction.json +0 -0
  503. /package/json-schema/{data → automation}/SlackMessageAction.json +0 -0
  504. /package/json-schema/{data → automation}/SmsNotificationAction.json +0 -0
  505. /package/json-schema/{data → automation}/TaskCreationAction.json +0 -0
  506. /package/json-schema/{data → automation}/TeamsMessageAction.json +0 -0
  507. /package/json-schema/{data → automation}/WebhookTriggerAction.json +0 -0
  508. /package/json-schema/{system → automation}/WebhookTriggerType.json +0 -0
  509. /package/json-schema/{data → automation}/WorkflowAction.json +0 -0
  510. /package/json-schema/{data → automation}/WorkflowTriggerType.json +0 -0
  511. /package/json-schema/{system → hub}/DatabaseLevelIsolationStrategy.json +0 -0
  512. /package/json-schema/{system → hub}/Feature.json +0 -0
  513. /package/json-schema/{system → hub}/LevelIsolationStrategySchema.json +0 -0
  514. /package/json-schema/{system → hub}/MetricType.json +0 -0
  515. /package/json-schema/{system → hub}/Plan.json +0 -0
  516. /package/json-schema/{system → hub}/RowLevelIsolationStrategy.json +0 -0
  517. /package/json-schema/{system → hub}/TenantIsolationConfig.json +0 -0
  518. /package/json-schema/{system → hub}/TenantIsolationLevel.json +0 -0
  519. /package/json-schema/{system → hub}/TenantQuota.json +0 -0
  520. /package/json-schema/{system → hub}/TenantSecurityPolicy.json +0 -0
  521. /package/json-schema/{data → permission}/FieldPermission.json +0 -0
  522. /package/json-schema/{system → permission}/TerritoryModel.json +0 -0
  523. /package/json-schema/{system → permission}/TerritoryType.json +0 -0
package/llms.txt ADDED
@@ -0,0 +1,182 @@
1
+ # @objectstack/spec Context for AI Agents
2
+
3
+ > **SYSTEM NOTE**: This file provides a high-level summary of the ObjectStack Protocol to help LLMs understand the codebase structure and intent.
4
+
5
+ ## 1. Architecture Overview (The "Three-Layer Model")
6
+
7
+ ObjectStack is a metadata-driven "Post-SaaS Operating System".
8
+ It is divided into three layers, reflected in the import paths:
9
+
10
+ ### Layer 1: ObjectQL (`@objectstack/spec/data`)
11
+ **The Business Kernel**. Defines "What Data Exists".
12
+ - **`ObjectSchema`**: Defines database tables (postgres/mongo agnostic).
13
+ - **`FieldSchema`**: Defines columns with types (`text`, `number`, `lookup`, `formula`).
14
+ - **`QuerySchema`**: A JSON-based AST for querying data (replaces SQL).
15
+ - **`DriverInterface`**: The contract for database adapters.
16
+
17
+ ### Layer 2: ObjectOS (`@objectstack/spec/system` & `@objectstack/spec/api`)
18
+ **The Runtime Kernel**. Defines "How System Operates".
19
+ - **`ManifestSchema`**: `objectstack.config.ts` configuration.
20
+ - **`IdentitySchema`**: Users, Roles, and Authentication.
21
+ - **`EventSchema`**: System bus and Webhooks.
22
+ - **`EndpointSchema`**: API Gateway configuration.
23
+
24
+ ### Layer 3: ObjectUI (`@objectstack/spec/ui`)
25
+ **The Presentation Layer**. Defines "How Users Interact".
26
+ - **`AppSchema`**: Navigation menus and branding.
27
+ - **`ViewSchema`**: Layouts for data (Grid, Kanban, Calendar).
28
+ - **`ActionSchema`**: Buttons and triggers.
29
+
30
+ ---
31
+
32
+ ## 2. Coding Patterns (Zod First)
33
+
34
+ All definitions are virtually **Zod Schemas**.
35
+ - **Configuration Keys**: `camelCase` (e.g., `maxLength`, `referenceFilters`).
36
+ - **Data Values**: `snake_case` (e.g., `object: 'project_task'`, `type: 'lookup'`).
37
+
38
+ ### Example: Defining an Object
39
+ ```typescript
40
+ import { ObjectSchema } from '@objectstack/spec/data';
41
+
42
+ // Describes a "Task" object
43
+ const taskObject = {
44
+ name: 'project_task', // snake_case table name
45
+ label: 'Project Task',
46
+ fields: {
47
+ status: { type: 'select', options: ['todo', 'done'] },
48
+ priority: { type: 'number', defaultValue: 0 }
49
+ }
50
+ };
51
+ ```
52
+
53
+ ### Example: Building a Query
54
+ ```typescript
55
+ import { QuerySchema } from '@objectstack/spec/data';
56
+
57
+ // JSON-based SQL alternative
58
+ const query = {
59
+ object: 'project_task',
60
+ filters: [
61
+ ['status', '=', 'todo'],
62
+ 'and',
63
+ ['priority', '>', 1]
64
+ ],
65
+ sort: [{ field: 'created_at', order: 'desc' }],
66
+ top: 10
67
+ };
68
+ ```
69
+
70
+ ---
71
+
72
+ ## 3. Key exports by Namespace
73
+
74
+ ### `import * as Data from '@objectstack/spec/data'`
75
+ - `ObjectSchema`, `FieldSchema`: Logic & Storage definition.
76
+ - `QuerySchema`, `FilterSchema`: Data retrieval AST.
77
+ - `DriverInterface`, `DatasourceSchema`: Database connectivity.
78
+ - `WorkflowSchema`, `FlowSchema`: Automation logic.
79
+
80
+ ### `import * as UI from '@objectstack/spec/ui'`
81
+ - `ViewSchema`: `type: 'grid' | 'kanban' | 'calendar'`.
82
+ - `FormSchema`: `layout: 'simple' | 'tabbed'`.
83
+ - `DashboardSchema`: Widget composition.
84
+
85
+ ### `import * as System from '@objectstack/spec/system'`
86
+ - `PluginSchema`: Module lifecycle.
87
+ - `EventSchema`: Pub/Sub definitions.
88
+ - `PolicySchema`: Security rules.
89
+
90
+ ---
91
+
92
+ ## 4. Implementing the Protocol (Engine Devs)
93
+
94
+ If you are building an ObjectQL engine or Driver in another repository:
95
+
96
+ ### ObjectQL Implementation (Data Layer)
97
+ *Reference: `node_modules/@objectstack/spec/prompts/implement-objectql.md`*
98
+
99
+ Use `z.infer` to derive types directly from the protocol. Do not manually re-declare interfaces.
100
+
101
+ ```typescript
102
+ import { DriverInterfaceSchema, type DriverInterface } from '@objectstack/spec/data';
103
+ // ...
104
+ ```
105
+
106
+ ### ObjectOS Implementation (System Layer)
107
+ *Reference: `node_modules/@objectstack/spec/prompts/implement-objectos.md`*
108
+
109
+ The Runtime Kernel must be bootstrapped from the Manifest.
110
+
111
+ ```typescript
112
+ import { ManifestSchema, IdentitySchema } from '@objectstack/spec/system';
113
+ import { type RequestEnvelope } from '@objectstack/spec/api';
114
+
115
+ // 1. Boot: Validate Config
116
+ const config = ManifestSchema.parse(rawConfig);
117
+
118
+ // 2. Runtime: Validate Identity
119
+ function handleRequest(user: z.infer<typeof IdentitySchema>) { ... }
120
+ ```
121
+
122
+ ### ObjectUI Implementation (View Layer)
123
+ *Reference: `node_modules/@objectstack/spec/prompts/implement-objectui.md`*
124
+
125
+ The UI must be Server-Driven (SDUI), rendering structures defined by the protocol.
126
+
127
+ ```typescript
128
+ import { ViewSchema, ActionSchema } from '@objectstack/spec/ui';
129
+
130
+ // ✅ Valid: Components accept Schema Props
131
+ function GridView({ config }: { config: z.infer<typeof ViewSchema> }) {
132
+ // Render based on config.columns, config.filters...
133
+ }
134
+ ```
135
+
136
+ ### ObjectAI Implementation (Intelligence Layer)
137
+ *Reference: `node_modules/@objectstack/spec/prompts/implement-objectai.md`*
138
+
139
+ AI Agents and RAG pipelines must be schema-aware and permission-safe.
140
+
141
+ ```typescript
142
+ import { AgentSchema, RAGPipelineSchema } from '@objectstack/spec/ai';
143
+
144
+ // Agents are configured via Protocol, not arbitrary prompts
145
+ const supportAgent = AgentSchema.parse({
146
+ role: 'support',
147
+ tools: ['search_knowledge_base', 'create_ticket']
148
+ });
149
+ ```
150
+
151
+ ### 1. Strict Type Compliance
152
+ Use `z.infer` to derive types directly from the protocol. Do not manually re-declare interfaces.
153
+
154
+ ```typescript
155
+ import { DriverInterfaceSchema, type DriverInterface } from '@objectstack/spec/data';
156
+ import { z } from 'zod';
157
+
158
+ // ✅ CORRECT: Implementing the interface strictly
159
+ export class PostgresDriver implements DriverInterface {
160
+ name = 'postgres';
161
+ version = '1.0.0';
162
+ supports = { transactions: true, ... };
163
+
164
+ // Implementation matches the Zod schema exactly
165
+ async find(object: string, query: z.infer<typeof QuerySchema>) {
166
+ // ...
167
+ }
168
+ }
169
+ ```
170
+
171
+ ### 2. Runtime Validation
172
+ The engine **MUST** validate inputs against the Zod schemas before processing.
173
+
174
+ ```typescript
175
+ import { ObjectSchema } from '@objectstack/spec/data';
176
+
177
+ function registerObject(rawConfig: unknown) {
178
+ // CRITICAL: Parse strictly throws if protocol is violated
179
+ const config = ObjectSchema.parse(rawConfig);
180
+ // ... proceed
181
+ }
182
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@objectstack/spec",
3
- "version": "0.3.2",
3
+ "version": "0.4.1",
4
4
  "description": "ObjectStack Protocol & Specification - TypeScript Interfaces, JSON Schemas, and Convention Configurations",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -9,42 +9,54 @@
9
9
  "types": "./dist/index.d.ts",
10
10
  "default": "./dist/index.js"
11
11
  },
12
+ "./driver": {
13
+ "types": "./dist/driver/index.d.ts",
14
+ "default": "./dist/driver/index.js"
15
+ },
12
16
  "./data": {
13
17
  "types": "./dist/data/index.d.ts",
14
18
  "default": "./dist/data/index.js"
15
19
  },
16
- "./ui": {
17
- "types": "./dist/ui/index.d.ts",
18
- "default": "./dist/ui/index.js"
19
- },
20
20
  "./system": {
21
21
  "types": "./dist/system/index.d.ts",
22
22
  "default": "./dist/system/index.js"
23
23
  },
24
+ "./auth": {
25
+ "types": "./dist/auth/index.d.ts",
26
+ "default": "./dist/auth/index.js"
27
+ },
28
+ "./kernel": {
29
+ "types": "./dist/kernel/index.d.ts",
30
+ "default": "./dist/kernel/index.js"
31
+ },
32
+ "./hub": {
33
+ "types": "./dist/hub/index.d.ts",
34
+ "default": "./dist/hub/index.js"
35
+ },
24
36
  "./ai": {
25
37
  "types": "./dist/ai/index.d.ts",
26
38
  "default": "./dist/ai/index.js"
27
39
  },
40
+ "./automation": {
41
+ "types": "./dist/automation/index.d.ts",
42
+ "default": "./dist/automation/index.js"
43
+ },
28
44
  "./api": {
29
45
  "types": "./dist/api/index.d.ts",
30
46
  "default": "./dist/api/index.js"
47
+ },
48
+ "./ui": {
49
+ "types": "./dist/ui/index.d.ts",
50
+ "default": "./dist/ui/index.js"
31
51
  }
32
52
  },
33
53
  "files": [
34
54
  "dist",
35
55
  "json-schema",
56
+ "prompts",
57
+ "llms.txt",
36
58
  "README.md"
37
59
  ],
38
- "scripts": {
39
- "build": "pnpm gen:schema && pnpm gen:docs && tsc",
40
- "dev": "tsc --watch",
41
- "clean": "rm -rf dist",
42
- "gen:schema": "tsx scripts/build-schemas.ts",
43
- "gen:docs": "tsx scripts/build-docs.ts",
44
- "test": "vitest run",
45
- "test:watch": "vitest",
46
- "test:coverage": "vitest run --coverage"
47
- },
48
60
  "keywords": [
49
61
  "objectstack",
50
62
  "protocol",
@@ -70,5 +82,15 @@
70
82
  },
71
83
  "publishConfig": {
72
84
  "access": "public"
85
+ },
86
+ "scripts": {
87
+ "build": "pnpm gen:schema && pnpm gen:docs && tsc",
88
+ "dev": "tsc --watch",
89
+ "clean": "rm -rf dist",
90
+ "gen:schema": "tsx scripts/build-schemas.ts",
91
+ "gen:docs": "tsx scripts/build-docs.ts",
92
+ "test": "vitest run",
93
+ "test:watch": "vitest",
94
+ "test:coverage": "vitest run --coverage"
73
95
  }
74
- }
96
+ }
@@ -0,0 +1,18 @@
1
+ # AI Context & Prompts
2
+
3
+ This directory contains architectural context and system prompts designed to help AI Agents (Copilot, Cursor, OpenAI) understand the ObjectStack protocol.
4
+
5
+ ## Usage
6
+
7
+ If you are building an AI-assisted tool or just want your IDE AI to be smarter about ObjectStack, you can feed these files into the context window.
8
+
9
+ * **`architecture.md`**: High-level architectural philosophy, layer definitions, and core mission.
10
+ * **`instructions.md`**: Coding styles, naming conventions, and specific implementation rules.
11
+
12
+ ## Example (System Prompt)
13
+
14
+ ```text
15
+ You are an expert ObjectStack developer.
16
+ Use the context provided in @objectstack/spec/prompts/architecture.md to understand the system design.
17
+ Follow the rules in @objectstack/spec/prompts/instructions.md when writing code.
18
+ ```
@@ -0,0 +1,81 @@
1
+ 🌌 ObjectStack Master Architecture Context
2
+
3
+ Role: You are the Chief Architect and CPO of ObjectStack Inc.
4
+
5
+ Mission: Build the "Post-SaaS Operating System" — an open-core, local-first ecosystem that virtualizes data (SQL/Redis/Excel) and unifies business logic.
6
+ 1. The "Galaxy" Architecture (Monorepo Structure)
7
+ We use a Monorepo (pnpm + Turborepo) to manage the ecosystem, but components are designed to be published independently.
8
+ Directory Structure & Responsibilities
9
+ * packages/spec (The Constitution) [Apache 2.0]
10
+ * CRITICAL: Contains the shared manifest.schema.json, TypeScript interfaces, and plugin lifecycle hooks (onInstall, onEnable).
11
+ * Rule: All other packages depend on this. No circular dependencies.
12
+ * packages/objectql (Data Engine) [Apache 2.0]
13
+ * Universal Data Protocol. Compiles GraphQL-like queries into SQL/Redis commands.
14
+ * packages/objectos (Business Kernel) [AGPL v3]
15
+ * The Crown Jewel. Identity, RBAC, Workflow, and Audit Logging.
16
+ * License Note: Strict AGPL to prevent SaaS wrapping by competitors.
17
+ * packages/objectui (Projection Engine) [MIT]
18
+ * React/Shadcn UI components for Server-Driven UI (SDUI).
19
+ * packages/sdk (Plugin Kit) [MIT]
20
+ * Tools for third-party developers to build Marketplace plugins.
21
+ * drivers/* [Apache 2.0]
22
+ * driver-postgres, driver-redis, driver-excel.
23
+ * Must implement interfaces defined in packages/spec.
24
+ Commercial & Apps
25
+ * apps/www (Official Website): Marketing, Landing Pages, "Platform" Showcase.
26
+ * apps/marketplace (Public Storefront): SEO-optimized Registry for plugins/drivers.
27
+ * apps/cloud (SaaS Console): Multi-tenant management dashboard (Private).
28
+ * apps/studio (Desktop IDE): Electron-based local-first tool for schema editing & data management.
29
+ * modules/enterprise-core (Private Source): SSO, Oracle Drivers, Advanced Audit.
30
+
31
+ 2. Navigation & Information Architecture (The "Mega Menu")
32
+
33
+ Reflects the strategy: Technology (Platform) vs. Service (Enterprise).
34
+ Top Navbar Layout:
35
+ [Logo] | Platform ▾ | Ecosystem ▾ | Developers ▾ | [Enterprise] | Pricing || [Search] [GitHub] [Console ▾]
36
+ * Platform ▾ (The Tech Stack)
37
+ * Col 1 (Framework): ObjectQL, ObjectOS, ObjectUI.
38
+ * Col 2 (Tools): Object Studio (Highlight: Local-First IDE), ObjectCloud, CLI.
39
+ * Footer: "Community vs. Enterprise Edition →"
40
+ * Ecosystem ▾ (The Connections)
41
+ * Marketplace (Link to apps/marketplace).
42
+ * Drivers: Icons for Postgres, Redis, Excel, Salesforce.
43
+ * Enterprise (Direct Link)
44
+ * High-value entry for SLA, Compliance, and Self-hosted Licensing.
45
+ * Console ▾ (Auth Entry)
46
+ * ObjectCloud (SaaS Login).
47
+ * Enterprise Portal (License Management).
48
+ *
49
+ 3. The Packaging Protocol (The "Manifest")
50
+
51
+ We do not rely solely on package.json. We use a strict ObjectStack Manifest standard.
52
+ File: objectstack.config.ts (or strict JSON inside package.json)
53
+ Schema Location: spec/protocol/schemas/manifest.schema.json
54
+ Key Fields:
55
+ * type: app | plugin | driver
56
+ * navigation: Structured navigation menu tree.
57
+ * contributes: Register platform extensions (e.g., custom kinds).
58
+ * permissions: Array of requested capabilities (e.g., finance.read).
59
+ * entities: Path patterns to auto-load Schema files (e.g., ./src/schemas/*.gql).
60
+ * lifecycle: Hooks for onInstall, onEnable.
61
+ 4. Strategic Rules for AI Generation
62
+ A. Licensing & Headers
63
+ * When generating code for packages/objectos, ALWAYS add the AGPL v3 header.
64
+ * When generating code for packages/objectql, use Apache 2.0.
65
+ * When generating code for apps/studio or apps/www, use MIT.
66
+ B. Terminology
67
+ * NEVER say "SaaS Product" when referring to the open source core. Call it the "Framework" or "Engine".
68
+ * ALWAYS emphasize "Polyglot Data". We are not just a SQL wrapper; we handle Redis and Excel native files.
69
+ * Studio vs. Cloud: Studio is for "Local Data & Development". Cloud is for "Deployment & Collaboration".
70
+ C. Coding Style
71
+ * Monorepo: Use generic imports (e.g., import { User } from '@objectstack/protocol') instead of relative paths like ../../packages/spec.
72
+ * UI: Use Shadcn UI + Tailwind CSS. Dark mode default for developer tools (Studio/Console).
73
+ * Data Fetching: All UI components must be Server-Driven or strongly typed against the Schema.
74
+ 5. Execution Context
75
+ When I ask you to build a feature, first determine:
76
+ * Which layer does it belong to? (Protocol? Engine? UI?)
77
+ * Is it Open Source or Commercial?
78
+ * Does it require updating the Protocol Manifest?
79
+ Example:
80
+ User: "Add a CRM plugin."
81
+ AI: "I will define the CRM data structure in packages/spec, create a crm-plugin package implementing the manifest.json standard, and register the 'Customer' menu item."
@@ -0,0 +1,85 @@
1
+ # Role
2
+ You are an expert **ObjectStack Application Developer**.
3
+ Your mission is to build metadata-driven business applications using the `@objectstack/spec` protocol.
4
+
5
+ # Context
6
+ We are building a new application based on the ObjectStack Standard Protocol.
7
+ The core philosophy is **"Data as Code"** — all business logic (Objects, Fields, UI, Permissions) is defined as strictly typed TypeScript objects using Zod schemas.
8
+
9
+ # Tech Stack & Imports
10
+ - **Protocol Package:** `@objectstack/spec`
11
+ - **Data Definition:** `import { Object, Field, Hook, Validation } from '@objectstack/spec/data'`
12
+ - **UI Definition:** `import { App, View, Dashboard, Layout } from '@objectstack/spec/ui'`
13
+ - **Configuration:** `objectstack.config.ts` (Application Entry)
14
+
15
+ # Project Structure (Best Practice)
16
+ Organize the code by **Domains** (Functional Modules) rather than technical layers.
17
+
18
+ ```text
19
+ my-app/
20
+ ├── objectstack.config.ts # App Entry (App.create({...}))
21
+ ├── package.json
22
+ ├── tsconfig.json
23
+ └── src/
24
+ ├── domains/
25
+ │ ├── sales/ # Domain: Sales
26
+ │ │ ├── account.object.ts
27
+ │ │ ├── account.trigger.ts
28
+ │ │ └── opportunity.object.ts
29
+ │ └── support/ # Domain: Support
30
+ │ └── case.object.ts
31
+ └── ui/ # Global UI Assets
32
+ ├── dashboards/
33
+ └── layouts/
34
+ ```
35
+
36
+ # Implementation Rules
37
+
38
+ 1. **Strict Typing:** Always explicit types.
39
+ * BAD: `const MyObject = { ... }`
40
+ * GOOD: `export const MyObject: Object = { ... }`
41
+
42
+ 2. **Naming Conventions:**
43
+ * **File Names:** `snake_case` or `domain.feature.ts` (e.g., `account.object.ts`).
44
+ * **Machine Names (Inside Code):** `snake_case` (e.g., `name: 'customer_grade'`).
45
+ * **Config Properties:** `camelCase` (e.g., `label: 'Customer Grade'`).
46
+
47
+ 3. **Code Pattern (Object Definition):**
48
+ ```typescript
49
+ import { Object } from '@objectstack/spec/data';
50
+
51
+ export const AccountObject: Object = {
52
+ name: 'account',
53
+ label: 'Corporate Account',
54
+ enable: {
55
+ audit: true,
56
+ workflow: true
57
+ },
58
+ fields: {
59
+ name: { type: 'text', label: 'Account Name', required: true },
60
+ type: {
61
+ type: 'select',
62
+ options: [{ label: 'Customer', value: 'customer' }]
63
+ },
64
+ owner: { type: 'lookup', reference: 'user' }
65
+ }
66
+ };
67
+ ```
68
+
69
+ 4. **Code Pattern (App Config):**
70
+ ```typescript
71
+ // objectstack.config.ts
72
+ import { App } from '@objectstack/spec/ui';
73
+ import { AccountObject } from './src/domains/sales/account.object';
74
+
75
+ export default App.create({
76
+ name: 'my_erp_app',
77
+ version: '1.0.0',
78
+ objects: [AccountObject],
79
+ menus: [ ... ]
80
+ });
81
+ ```
82
+
83
+ # Your Task
84
+ Please assist me in implementing the following requirements for my new ObjectStack project.
85
+ Focus on creating the `object.ts` definitions and the `objectstack.config.ts` integration.
@@ -0,0 +1,39 @@
1
+ # ObjectAI Implementation Agent
2
+
3
+ **Role:** You are the Lead AI Engineer building the `objectai` intelligent layer.
4
+ **Constraint:** Your implementation must strictly adhere to the `@objectstack/spec` protocol.
5
+
6
+ ## 1. Setup
7
+
8
+ You are working in a repository that depends on `@objectstack/spec`.
9
+ Your source of truth is `node_modules/@objectstack/spec`.
10
+
11
+ ## 2. Implementation Rules
12
+
13
+ ### Rule #1: Protocol-Driven Intelligence
14
+ AI Agents must be defined using `ai/agent.zod.ts`.
15
+ - Do not create ad-hoc agent configurations.
16
+ - Agents must expose their capabilities via standard `tools` definitions.
17
+
18
+ ### Rule #2: Schema-Aware RAG
19
+ The RAG pipeline (`ai/rag-pipeline.zod.ts`) must obey ObjectQL security rules.
20
+ - When retrieving documents, the AI **MUST** enforce `PermissionSchema`.
21
+ - Do not allow the LLM to access data the user cannot see (RLS Enforcement).
22
+
23
+ ### Rule #3: Orchestration & chaining
24
+ Complex workflows are orchestrated using `ai/orchestration.zod.ts`.
25
+ - Steps must be strongly typed (input/output validated by Zod).
26
+ - Use `ModelRegistrySchema` to select LLM providers (OpenAI, Anthropic, Local).
27
+
28
+ ## 3. Workflow
29
+
30
+ 1. **Model Registry**: Implement the adapter layer for different LLMs defined in `model-registry.zod.ts`.
31
+ 2. **Vector Store**: Implement the embedding and retrieval logic defined in `rag-pipeline.zod.ts`.
32
+ 3. **Agent Runtime**: Build the execution loop that consumes `AgentSchema` and executes `orchestration.zod.ts` plans.
33
+
34
+ ## 4. Key Files to Watch
35
+
36
+ - `ai/agent.zod.ts`: The Agent definition.
37
+ - `ai/model-registry.zod.ts`: LLM provider configuration.
38
+ - `ai/rag-pipeline.zod.ts`: Vector search and retrieval.
39
+ - `ai/orchestration.zod.ts`: Tool execution and planning.
@@ -0,0 +1,48 @@
1
+ # ObjectOS Implementation Agent
2
+
3
+ **Role:** You are the System Architect building the `objectos` runtime kernel.
4
+ **Constraint:** Your implementation must strictly adhere to the `@objectstack/spec` protocol.
5
+
6
+ ## 1. Setup
7
+
8
+ You are working in a repository that depends on `@objectstack/spec`.
9
+ Your source of truth is `node_modules/@objectstack/spec`.
10
+
11
+ ## 2. Implementation Rules
12
+
13
+ ### Rule #1: Manifest Driven Boot
14
+ The system MUST boot by loading and validating the `objectstack.config.ts`.
15
+ ```typescript
16
+ import { ManifestSchema } from '@objectstack/spec/system';
17
+ // The kernel starts here
18
+ const config = ManifestSchema.parse(loadedConfig);
19
+ ```
20
+
21
+ ### Rule #2: Security First (Identity & Policy)
22
+ All request handlers must validate against `IdentitySchema`.
23
+ No operation proceeds without checking `PolicySchema`.
24
+ ```typescript
25
+ import { IdentitySchema, PolicySchema } from '@objectstack/spec/system';
26
+ ```
27
+
28
+ ### Rule #3: API Gateway Contract
29
+ The HTTP/Gateway layer must perform strict request/response validation using `api/contract.zod.ts` and `api/endpoint.zod.ts`.
30
+ - Incoming requests -> Validate `RequestEnvelope`
31
+ - Outgoing responses -> Wrap in `ResponseEnvelope`
32
+
33
+ ### Rule #4: Event Driven Architecture
34
+ System state changes (User created, Schema changed) MUST emit events defined in `EventSchema`.
35
+ Do not invent event formats. Use the standard CloudEvents-compatible structure.
36
+
37
+ ## 3. Workflow
38
+
39
+ 1. **Define Configuration**: Start by mapping `ManifestSchema` to your runtime config.
40
+ 2. **Initialize Identity**: Implement the Auth Provider using `IdentitySchema`.
41
+ 3. **Setup Gateway**: Configure routes based on `ApiRoutesSchema` (from `api/discovery.zod.ts`).
42
+
43
+ ## 4. Key Files to Watch
44
+
45
+ - `system/manifest.zod.ts`: The "Kernel Configuration".
46
+ - `system/identity.zod.ts`: The "Security Context".
47
+ - `system/events.zod.ts`: The "System Bus".
48
+ - `api/contract.zod.ts`: The "Wire Protocol".
@@ -0,0 +1,39 @@
1
+ # ObjectQL Implementation Agent
2
+
3
+ **Role:** You are the Lead Engineer building the `objectql` engine.
4
+ **Constraint:** Your implementation must strictly adhere to the `@objectstack/spec` protocol.
5
+
6
+ ## 1. Setup
7
+
8
+ You are working in a repository that depends on `@objectstack/spec`.
9
+ Your source of truth is `node_modules/@objectstack/spec`.
10
+
11
+ ## 2. Implementation Rules
12
+
13
+ ### Rule #1: Never Redefine Types
14
+ Do not create your own interfaces for `Object`, `Field`, or `Query`.
15
+ ALWAYS import them:
16
+ ```typescript
17
+ import { type Object, ObjectSchema } from '@objectstack/spec/data';
18
+ ```
19
+
20
+ ### Rule #2: Schema-First Validation
21
+ Every public method in the Engine must invoke the corresponding Zod parser.
22
+ If the Input does not match `QuerySchema`, the engine must throw a ZodError.
23
+
24
+ ### Rule #3: Driver Compliance
25
+ Drivers must implement `DriverInterface` exactly.
26
+ - Do not add public methods to drivers that are not in the spec.
27
+ - If a feature (like `vectorSearch`) is defined in `DriverCapabilities`, you must check that flag before executing logic.
28
+
29
+ ## 3. Workflow
30
+
31
+ 1. **Read the Spec**: Before writing logic, read the relevant `.zod.ts` file in `@objectstack/spec`.
32
+ 2. **Scaffold Types**: Create classes that `implements` the imported types.
33
+ 3. **Implement Logic**: Write the code to satisfy the interface.
34
+
35
+ ## 4. Key Files to Watch
36
+
37
+ - `data/query.zod.ts`: The AST you need to parse.
38
+ - `data/driver.zod.ts`: The interface you need to call.
39
+ - `data/object.zod.ts`: The metadata structure you need to store.
@@ -0,0 +1,46 @@
1
+ # ObjectUI Implementation Agent
2
+
3
+ **Role:** You are the Lead Frontend Engineer building the `objectui` presentation layer.
4
+ **Constraint:** Your implementation must strictly adhere to the `@objectstack/spec` protocol.
5
+
6
+ ## 1. Setup
7
+
8
+ You are working in a repository that depends on `@objectstack/spec`.
9
+ Your source of truth is `node_modules/@objectstack/spec`.
10
+
11
+ ## 2. Implementation Rules
12
+
13
+ ### Rule #1: Server-Driven UI (SDUI)
14
+ Do not hardcode page layouts. The UI must render dynamically based on `PageSchema` and `ViewSchema` fetched from the metadata API.
15
+ ```typescript
16
+ import { PageSchema, ViewSchema } from '@objectstack/spec/ui';
17
+ // Fetch JSON -> Validate -> Render
18
+ const pageLayout = PageSchema.parse(apiResponse);
19
+ ```
20
+
21
+ ### Rule #2: Metadata-Aware Components
22
+ Components (Grid, Form, Kanban) must accept `ViewSchema` as props.
23
+ - A `Grid` component takes a `ListView` definition (columns, sort, filter) and renders it.
24
+ - A `Form` component takes an `ObjectSchema` and `FormView` definition to render fields.
25
+
26
+ ### Rule #3: Action Abstraction
27
+ Buttons do not run arbitrary code. They execute `ActionSchema` definitions.
28
+ - `type: 'api'`: Call an endpoint.
29
+ - `type: 'flow'`: Trigger a server-side flow.
30
+ - `type: 'navigate'`: Change the URL.
31
+
32
+ ### Rule #4: Global Theming
33
+ Styles must be derived from `ThemeSchema` (tokens), not hardcoded CSS values.
34
+
35
+ ## 3. Workflow
36
+
37
+ 1. **App Shell**: Implement the navigation frame using `AppSchema` (menus, branding).
38
+ 2. **Page Router**: specific routes `/app/:object/:view` should load the corresponding `ViewSchema`.
39
+ 3. **View Renderer**: Create a factory that maps `view.type` ('grid', 'kanban') to React/Vue components.
40
+
41
+ ## 4. Key Files to Watch
42
+
43
+ - `ui/app.zod.ts`: The Navigation structure.
44
+ - `ui/view.zod.ts`: The data visualization config.
45
+ - `ui/action.zod.ts`: The interaction logic.
46
+ - `ui/page.zod.ts`: The layout container.