@objectstack/spec 0.3.2 → 0.3.3

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 (396) 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 +65 -65
  4. package/dist/ai/cost.zod.d.ts +125 -125
  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 +94 -94
  9. package/dist/ai/nlq.zod.d.ts +70 -70
  10. package/dist/ai/{workflow-automation.zod.d.ts → orchestration.zod.d.ts} +50 -49
  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 +31 -31
  14. package/dist/ai/rag-pipeline.zod.d.ts +86 -86
  15. package/dist/api/contract.zod.d.ts +121 -105
  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 +4 -0
  24. package/dist/api/index.d.ts.map +1 -1
  25. package/dist/api/index.js +4 -0
  26. package/dist/{system → api}/realtime.zod.d.ts +4 -4
  27. package/dist/api/realtime.zod.d.ts.map +1 -0
  28. package/dist/api/router.zod.d.ts +182 -0
  29. package/dist/api/router.zod.d.ts.map +1 -0
  30. package/dist/api/router.zod.js +103 -0
  31. package/dist/{system/auth.zod.d.ts → auth/config.zod.d.ts} +191 -191
  32. package/dist/auth/config.zod.d.ts.map +1 -0
  33. package/dist/{system → auth}/identity.zod.d.ts +8 -8
  34. package/dist/auth/identity.zod.d.ts.map +1 -0
  35. package/dist/auth/index.d.ts +7 -0
  36. package/dist/auth/index.d.ts.map +1 -0
  37. package/dist/auth/index.js +22 -0
  38. package/dist/{system → auth}/organization.zod.d.ts +5 -5
  39. package/dist/auth/organization.zod.d.ts.map +1 -0
  40. package/dist/{system → auth}/policy.zod.d.ts +3 -3
  41. package/dist/auth/policy.zod.d.ts.map +1 -0
  42. package/dist/{system/auth-protocol.d.ts → auth/protocol.d.ts} +1 -1
  43. package/dist/auth/protocol.d.ts.map +1 -0
  44. package/dist/auth/role.zod.d.ts.map +1 -0
  45. package/dist/{data → automation}/flow.zod.d.ts +34 -16
  46. package/dist/automation/flow.zod.d.ts.map +1 -0
  47. package/dist/{data → automation}/flow.zod.js +6 -1
  48. package/dist/automation/index.d.ts +4 -0
  49. package/dist/automation/index.d.ts.map +1 -0
  50. package/dist/automation/index.js +19 -0
  51. package/dist/{system → automation}/webhook.zod.d.ts +2 -2
  52. package/dist/automation/webhook.zod.d.ts.map +1 -0
  53. package/dist/automation/workflow.zod.d.ts +2045 -0
  54. package/dist/automation/workflow.zod.d.ts.map +1 -0
  55. package/dist/{data → automation}/workflow.zod.js +24 -1
  56. package/dist/data/dataset.zod.d.ts +2 -2
  57. package/dist/data/field.zod.d.ts +443 -213
  58. package/dist/data/field.zod.d.ts.map +1 -1
  59. package/dist/data/field.zod.js +29 -1
  60. package/dist/data/filter.zod.d.ts +167 -30
  61. package/dist/data/filter.zod.d.ts.map +1 -1
  62. package/dist/data/filter.zod.js +25 -13
  63. package/dist/data/hook.zod.d.ts +191 -0
  64. package/dist/data/hook.zod.d.ts.map +1 -0
  65. package/dist/data/hook.zod.js +144 -0
  66. package/dist/data/index.d.ts +4 -17
  67. package/dist/data/index.d.ts.map +1 -1
  68. package/dist/data/index.js +4 -17
  69. package/dist/data/mapping.zod.d.ts +103 -91
  70. package/dist/data/mapping.zod.d.ts.map +1 -1
  71. package/dist/data/object.zod.d.ts +387 -127
  72. package/dist/data/object.zod.d.ts.map +1 -1
  73. package/dist/data/object.zod.js +87 -42
  74. package/dist/data/query.zod.d.ts +98 -169
  75. package/dist/data/query.zod.d.ts.map +1 -1
  76. package/dist/data/query.zod.js +42 -130
  77. package/dist/data/validation.zod.d.ts +166 -26
  78. package/dist/data/validation.zod.d.ts.map +1 -1
  79. package/dist/data/validation.zod.js +38 -16
  80. package/dist/{system → driver}/datasource.zod.d.ts +42 -8
  81. package/dist/driver/datasource.zod.d.ts.map +1 -0
  82. package/dist/{system → driver}/datasource.zod.js +17 -13
  83. package/dist/driver/driver.zod.d.ts +3392 -0
  84. package/dist/driver/driver.zod.d.ts.map +1 -0
  85. package/dist/{system → driver}/driver.zod.js +99 -0
  86. package/dist/driver/index.d.ts +5 -0
  87. package/dist/driver/index.d.ts.map +1 -0
  88. package/dist/driver/index.js +20 -0
  89. package/dist/driver/mongo.zod.d.ts +107 -0
  90. package/dist/driver/mongo.zod.d.ts.map +1 -0
  91. package/dist/driver/mongo.zod.js +80 -0
  92. package/dist/driver/postgres.zod.d.ts +134 -0
  93. package/dist/driver/postgres.zod.d.ts.map +1 -0
  94. package/dist/driver/postgres.zod.js +88 -0
  95. package/dist/hub/composer.zod.d.ts +2768 -0
  96. package/dist/hub/composer.zod.d.ts.map +1 -0
  97. package/dist/hub/composer.zod.js +111 -0
  98. package/dist/hub/index.d.ts +6 -0
  99. package/dist/hub/index.d.ts.map +1 -0
  100. package/dist/hub/index.js +22 -0
  101. package/dist/{system → hub}/license.zod.d.ts +11 -7
  102. package/dist/hub/license.zod.d.ts.map +1 -0
  103. package/dist/{system → hub}/license.zod.js +5 -3
  104. package/dist/hub/marketplace.zod.d.ts +191 -0
  105. package/dist/hub/marketplace.zod.d.ts.map +1 -0
  106. package/dist/hub/marketplace.zod.js +85 -0
  107. package/dist/hub/space.zod.d.ts +383 -0
  108. package/dist/hub/space.zod.d.ts.map +1 -0
  109. package/dist/hub/space.zod.js +103 -0
  110. package/dist/{system → hub}/tenant.zod.d.ts +73 -47
  111. package/dist/hub/tenant.zod.d.ts.map +1 -0
  112. package/dist/{system → hub}/tenant.zod.js +36 -10
  113. package/dist/index.d.ts +11 -4
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +12 -5
  116. package/dist/kernel/context.zod.d.ts +56 -0
  117. package/dist/kernel/context.zod.d.ts.map +1 -0
  118. package/dist/kernel/context.zod.js +43 -0
  119. package/dist/kernel/index.d.ts +12 -0
  120. package/dist/kernel/index.d.ts.map +1 -0
  121. package/dist/kernel/index.js +27 -0
  122. package/dist/kernel/logger.zod.d.ts +111 -0
  123. package/dist/kernel/logger.zod.d.ts.map +1 -0
  124. package/dist/kernel/logger.zod.js +75 -0
  125. package/dist/kernel/manifest.zod.d.ts +2153 -0
  126. package/dist/kernel/manifest.zod.d.ts.map +1 -0
  127. package/dist/{system → kernel}/manifest.zod.js +40 -0
  128. package/dist/{system → kernel}/plugin.zod.d.ts +598 -318
  129. package/dist/kernel/plugin.zod.d.ts.map +1 -0
  130. package/dist/{system → kernel}/plugin.zod.js +13 -0
  131. package/dist/kernel/scoped-storage.zod.d.ts +81 -0
  132. package/dist/kernel/scoped-storage.zod.d.ts.map +1 -0
  133. package/dist/kernel/scoped-storage.zod.js +66 -0
  134. package/dist/permission/index.d.ts +12 -0
  135. package/dist/permission/index.d.ts.map +1 -0
  136. package/dist/permission/index.js +27 -0
  137. package/dist/{data → permission}/permission.zod.d.ts +34 -3
  138. package/dist/permission/permission.zod.d.ts.map +1 -0
  139. package/dist/{data → permission}/permission.zod.js +10 -1
  140. package/dist/permission/sharing.zod.d.ts +146 -0
  141. package/dist/permission/sharing.zod.d.ts.map +1 -0
  142. package/dist/permission/sharing.zod.js +88 -0
  143. package/dist/permission/territory.zod.d.ts.map +1 -0
  144. package/dist/system/audit.zod.d.ts +52 -52
  145. package/dist/system/events.zod.d.ts +17 -17
  146. package/dist/system/index.d.ts +1 -20
  147. package/dist/system/index.d.ts.map +1 -1
  148. package/dist/system/index.js +3 -20
  149. package/dist/system/job.zod.d.ts +13 -13
  150. package/dist/ui/action.zod.d.ts +13 -13
  151. package/dist/ui/app.zod.d.ts +11 -11
  152. package/dist/ui/dashboard.zod.d.ts +12 -12
  153. package/dist/ui/page.zod.d.ts +2 -2
  154. package/dist/ui/report.zod.d.ts +7 -7
  155. package/dist/ui/theme.zod.d.ts +42 -42
  156. package/dist/ui/view.zod.d.ts +55 -55
  157. package/dist/ui/widget.zod.d.ts +61 -28
  158. package/dist/ui/widget.zod.d.ts.map +1 -1
  159. package/json-schema/ai/{AIWorkflowAutomation.json → AIOrchestration.json} +5 -5
  160. package/json-schema/ai/{AIWorkflowExecutionResult.json → AIOrchestrationExecutionResult.json} +2 -2
  161. package/json-schema/ai/{AIWorkflowTrigger.json → AIOrchestrationTrigger.json} +2 -2
  162. package/json-schema/ai/{BatchAIWorkflowExecution.json → BatchAIOrchestrationExecution.json} +3 -3
  163. package/json-schema/{system → api}/ApiEndpoint.json +3 -1
  164. package/json-schema/{system → api}/ApiRoutes.json +7 -7
  165. package/json-schema/{system → api}/Discovery.json +7 -7
  166. package/json-schema/api/ExportRequest.json +402 -438
  167. package/json-schema/{system → api}/HttpMethod.json +3 -1
  168. package/json-schema/api/RouteCategory.json +17 -0
  169. package/json-schema/api/RouteDefinition.json +77 -0
  170. package/json-schema/api/RouterConfig.json +117 -0
  171. package/json-schema/{data → automation}/Flow.json +31 -1
  172. package/json-schema/{data → automation}/FlowEdge.json +9 -0
  173. package/json-schema/{data/WorkflowRule.json → automation/TimeTrigger.json} +35 -25
  174. package/json-schema/automation/WorkflowRule.json +1031 -0
  175. package/json-schema/data/AggregationNode.json +23 -0
  176. package/json-schema/data/AsyncValidation.json +49 -2
  177. package/json-schema/data/ComparisonOperator.json +52 -0
  178. package/json-schema/data/ConditionalValidation.json +693 -46
  179. package/json-schema/data/CrossFieldValidation.json +33 -2
  180. package/json-schema/data/CurrencyConfig.json +35 -0
  181. package/json-schema/data/CurrencyValue.json +26 -0
  182. package/json-schema/data/CustomValidator.json +37 -10
  183. package/json-schema/data/Field.json +30 -0
  184. package/json-schema/data/FieldOperators.json +78 -0
  185. package/json-schema/data/FieldReference.json +19 -0
  186. package/json-schema/data/FormatValidation.json +33 -2
  187. package/json-schema/data/Hook.json +95 -0
  188. package/json-schema/data/HookContext.json +88 -0
  189. package/json-schema/data/HookEvent.json +29 -0
  190. package/json-schema/data/Index.json +10 -0
  191. package/json-schema/data/JSONValidation.json +85 -0
  192. package/json-schema/data/JoinNode.json +197 -213
  193. package/json-schema/data/{TriggerAction.json → JoinStrategy.json} +6 -5
  194. package/json-schema/data/NormalizedFilter.json +234 -0
  195. package/json-schema/data/Object.json +1580 -28
  196. package/json-schema/data/ObjectCapabilities.json +30 -12
  197. package/json-schema/data/Query.json +246 -262
  198. package/json-schema/data/RangeOperator.json +26 -0
  199. package/json-schema/data/ScriptValidation.json +33 -2
  200. package/json-schema/data/SearchConfig.json +36 -0
  201. package/json-schema/data/StateMachineValidation.json +33 -2
  202. package/json-schema/data/UniquenessValidation.json +33 -2
  203. package/json-schema/data/ValidationRule.json +693 -46
  204. package/json-schema/{system → driver}/Datasource.json +35 -0
  205. package/json-schema/{system → driver}/DriverCapabilities.json +10 -0
  206. package/json-schema/{system → driver}/DriverInterface.json +10 -0
  207. package/json-schema/{system → driver}/DriverOptions.json +11 -0
  208. package/json-schema/driver/MongoConfig.json +82 -0
  209. package/json-schema/driver/PostgresConfig.json +98 -0
  210. package/json-schema/hub/BillOfMaterials.json +70 -0
  211. package/json-schema/hub/ComposerRequest.json +86 -0
  212. package/json-schema/hub/ComposerResponse.json +2645 -0
  213. package/json-schema/hub/ConflictReport.json +53 -0
  214. package/json-schema/hub/DependencyRequirement.json +36 -0
  215. package/json-schema/hub/DeploymentTarget.json +38 -0
  216. package/json-schema/hub/HubSpace.json +279 -0
  217. package/json-schema/{system → hub}/License.json +11 -3
  218. package/json-schema/hub/MarketplacePlugin.json +141 -0
  219. package/json-schema/hub/PluginAuthor.json +26 -0
  220. package/json-schema/hub/PluginPricing.json +43 -0
  221. package/json-schema/hub/SpaceSubscription.json +77 -0
  222. package/json-schema/hub/SubscriptionStatus.json +16 -0
  223. package/json-schema/{system → hub}/Tenant.json +3 -5
  224. package/json-schema/kernel/FileMetadata.json +43 -0
  225. package/json-schema/kernel/KernelContext.json +62 -0
  226. package/json-schema/kernel/LogEntry.json +63 -0
  227. package/json-schema/kernel/LogFormat.json +15 -0
  228. package/json-schema/kernel/LogLevel.json +17 -0
  229. package/json-schema/kernel/LoggerConfig.json +70 -0
  230. package/json-schema/kernel/Manifest.json +2557 -0
  231. package/json-schema/{system → kernel}/PluginContext.json +8 -1
  232. package/json-schema/kernel/RuntimeMode.json +16 -0
  233. package/json-schema/kernel/ScopedStorageConfig.json +54 -0
  234. package/json-schema/kernel/StorageAdapterType.json +17 -0
  235. package/json-schema/kernel/StorageScope.json +18 -0
  236. package/json-schema/permission/CriteriaSharingRule.json +82 -0
  237. package/json-schema/{data → permission}/OWDModel.json +2 -1
  238. package/json-schema/{data → permission}/ObjectPermission.json +15 -0
  239. package/json-schema/permission/OwnerSharingRule.json +102 -0
  240. package/json-schema/{data → permission}/PermissionSet.json +15 -0
  241. package/json-schema/permission/ShareRecipientType.json +16 -0
  242. package/json-schema/{data → permission}/SharingLevel.json +2 -1
  243. package/json-schema/permission/SharingRule.json +182 -0
  244. package/json-schema/{data → permission}/SharingRuleType.json +1 -3
  245. package/json-schema/ui/FieldWidgetProps.json +30 -0
  246. package/llms.txt +182 -0
  247. package/package.json +38 -16
  248. package/prompts/README.md +18 -0
  249. package/prompts/architecture.md +81 -0
  250. package/prompts/implement-objectai.md +39 -0
  251. package/prompts/implement-objectos.md +48 -0
  252. package/prompts/implement-objectql.md +39 -0
  253. package/prompts/implement-objectui.md +46 -0
  254. package/prompts/instructions.md +91 -0
  255. package/dist/ai/workflow-automation.zod.d.ts.map +0 -1
  256. package/dist/data/flow.zod.d.ts.map +0 -1
  257. package/dist/data/permission.zod.d.ts.map +0 -1
  258. package/dist/data/sharing.zod.d.ts +0 -63
  259. package/dist/data/sharing.zod.d.ts.map +0 -1
  260. package/dist/data/sharing.zod.js +0 -57
  261. package/dist/data/trigger.zod.d.ts +0 -354
  262. package/dist/data/trigger.zod.d.ts.map +0 -1
  263. package/dist/data/trigger.zod.js +0 -195
  264. package/dist/data/workflow.zod.d.ts +0 -986
  265. package/dist/data/workflow.zod.d.ts.map +0 -1
  266. package/dist/system/api.zod.d.ts.map +0 -1
  267. package/dist/system/auth-protocol.d.ts.map +0 -1
  268. package/dist/system/auth.zod.d.ts.map +0 -1
  269. package/dist/system/datasource.zod.d.ts.map +0 -1
  270. package/dist/system/discovery.zod.d.ts.map +0 -1
  271. package/dist/system/driver.zod.d.ts +0 -1631
  272. package/dist/system/driver.zod.d.ts.map +0 -1
  273. package/dist/system/identity.zod.d.ts.map +0 -1
  274. package/dist/system/license.zod.d.ts.map +0 -1
  275. package/dist/system/manifest.zod.d.ts +0 -397
  276. package/dist/system/manifest.zod.d.ts.map +0 -1
  277. package/dist/system/organization.zod.d.ts.map +0 -1
  278. package/dist/system/plugin.zod.d.ts.map +0 -1
  279. package/dist/system/policy.zod.d.ts.map +0 -1
  280. package/dist/system/realtime.zod.d.ts.map +0 -1
  281. package/dist/system/role.zod.d.ts.map +0 -1
  282. package/dist/system/tenant.zod.d.ts.map +0 -1
  283. package/dist/system/territory.zod.d.ts.map +0 -1
  284. package/dist/system/webhook.zod.d.ts.map +0 -1
  285. package/json-schema/README.md +0 -127
  286. package/json-schema/data/FieldMapping.json +0 -83
  287. package/json-schema/data/FilterNode.json +0 -52
  288. package/json-schema/data/FilterOperator.json +0 -26
  289. package/json-schema/data/LogicOperator.json +0 -14
  290. package/json-schema/data/Mapping.json +0 -598
  291. package/json-schema/data/SharingRule.json +0 -58
  292. package/json-schema/data/TransformType.json +0 -18
  293. package/json-schema/data/Trigger.json +0 -73
  294. package/json-schema/data/TriggerContext.json +0 -61
  295. package/json-schema/data/TriggerTiming.json +0 -13
  296. package/json-schema/system/Manifest.json +0 -315
  297. /package/dist/{system → api}/realtime.zod.js +0 -0
  298. /package/dist/{system/auth.zod.js → auth/config.zod.js} +0 -0
  299. /package/dist/{system → auth}/identity.zod.js +0 -0
  300. /package/dist/{system → auth}/organization.zod.js +0 -0
  301. /package/dist/{system → auth}/policy.zod.js +0 -0
  302. /package/dist/{system/auth-protocol.js → auth/protocol.js} +0 -0
  303. /package/dist/{system → auth}/role.zod.d.ts +0 -0
  304. /package/dist/{system → auth}/role.zod.js +0 -0
  305. /package/dist/{system → automation}/webhook.zod.js +0 -0
  306. /package/dist/{system → permission}/territory.zod.d.ts +0 -0
  307. /package/dist/{system → permission}/territory.zod.js +0 -0
  308. /package/json-schema/{system → api}/ApiCapabilities.json +0 -0
  309. /package/json-schema/{system → api}/ApiMapping.json +0 -0
  310. /package/json-schema/{system → api}/Presence.json +0 -0
  311. /package/json-schema/{system → api}/PresenceStatus.json +0 -0
  312. /package/json-schema/{system → api}/RateLimit.json +0 -0
  313. /package/json-schema/{system → api}/RealtimeAction.json +0 -0
  314. /package/json-schema/{system → api}/RealtimeEvent.json +0 -0
  315. /package/json-schema/{system → api}/RealtimeEventType.json +0 -0
  316. /package/json-schema/{system → api}/Subscription.json +0 -0
  317. /package/json-schema/{system → api}/SubscriptionEvent.json +0 -0
  318. /package/json-schema/{system → api}/TransportProtocol.json +0 -0
  319. /package/json-schema/{system → auth}/Account.json +0 -0
  320. /package/json-schema/{system → auth}/AccountLinkingConfig.json +0 -0
  321. /package/json-schema/{system → auth}/AuditPolicy.json +0 -0
  322. /package/json-schema/{system → auth}/AuthConfig.json +0 -0
  323. /package/json-schema/{system → auth}/AuthPluginConfig.json +0 -0
  324. /package/json-schema/{system → auth}/AuthStrategy.json +0 -0
  325. /package/json-schema/{system → auth}/CSRFConfig.json +0 -0
  326. /package/json-schema/{system → auth}/DatabaseAdapter.json +0 -0
  327. /package/json-schema/{system → auth}/DatabaseMapping.json +0 -0
  328. /package/json-schema/{system → auth}/EmailPasswordConfig.json +0 -0
  329. /package/json-schema/{system → auth}/EnterpriseAuthConfig.json +0 -0
  330. /package/json-schema/{system → auth}/Invitation.json +0 -0
  331. /package/json-schema/{system → auth}/InvitationStatus.json +0 -0
  332. /package/json-schema/{system → auth}/LDAPConfig.json +0 -0
  333. /package/json-schema/{system → auth}/MagicLinkConfig.json +0 -0
  334. /package/json-schema/{system → auth}/Member.json +0 -0
  335. /package/json-schema/{system → auth}/NetworkPolicy.json +0 -0
  336. /package/json-schema/{system → auth}/OAuthProvider.json +0 -0
  337. /package/json-schema/{system → auth}/OIDCConfig.json +0 -0
  338. /package/json-schema/{system → auth}/Organization.json +0 -0
  339. /package/json-schema/{system → auth}/PasskeyConfig.json +0 -0
  340. /package/json-schema/{system → auth}/PasswordPolicy.json +0 -0
  341. /package/json-schema/{system → auth}/Policy.json +0 -0
  342. /package/json-schema/{system → auth}/RateLimitConfig.json +0 -0
  343. /package/json-schema/{system → auth}/Role.json +0 -0
  344. /package/json-schema/{system → auth}/SAMLConfig.json +0 -0
  345. /package/json-schema/{system → auth}/Session.json +0 -0
  346. /package/json-schema/{system → auth}/SessionConfig.json +0 -0
  347. /package/json-schema/{system → auth}/SessionPolicy.json +0 -0
  348. /package/json-schema/{system → auth}/StandardAuthProvider.json +0 -0
  349. /package/json-schema/{system → auth}/TwoFactorConfig.json +0 -0
  350. /package/json-schema/{system → auth}/User.json +0 -0
  351. /package/json-schema/{system → auth}/UserFieldMapping.json +0 -0
  352. /package/json-schema/{system → auth}/VerificationToken.json +0 -0
  353. /package/json-schema/{data → automation}/CustomScriptAction.json +0 -0
  354. /package/json-schema/{data → automation}/EmailAlertAction.json +0 -0
  355. /package/json-schema/{data → automation}/FieldUpdateAction.json +0 -0
  356. /package/json-schema/{data → automation}/FlowNode.json +0 -0
  357. /package/json-schema/{data → automation}/FlowNodeAction.json +0 -0
  358. /package/json-schema/{data → automation}/FlowVariable.json +0 -0
  359. /package/json-schema/{data → automation}/HttpCallAction.json +0 -0
  360. /package/json-schema/{data → automation}/PushNotificationAction.json +0 -0
  361. /package/json-schema/{data → automation}/SlackMessageAction.json +0 -0
  362. /package/json-schema/{data → automation}/SmsNotificationAction.json +0 -0
  363. /package/json-schema/{data → automation}/TaskCreationAction.json +0 -0
  364. /package/json-schema/{data → automation}/TeamsMessageAction.json +0 -0
  365. /package/json-schema/{system → automation}/Webhook.json +0 -0
  366. /package/json-schema/{system → automation}/WebhookReceiver.json +0 -0
  367. /package/json-schema/{data → automation}/WebhookTriggerAction.json +0 -0
  368. /package/json-schema/{system → automation}/WebhookTriggerType.json +0 -0
  369. /package/json-schema/{data → automation}/WorkflowAction.json +0 -0
  370. /package/json-schema/{data → automation}/WorkflowTriggerType.json +0 -0
  371. /package/json-schema/{system → driver}/DatasourceCapabilities.json +0 -0
  372. /package/json-schema/{system → driver}/DriverDefinition.json +0 -0
  373. /package/json-schema/{system → driver}/DriverType.json +0 -0
  374. /package/json-schema/{system → hub}/DatabaseLevelIsolationStrategy.json +0 -0
  375. /package/json-schema/{system → hub}/Feature.json +0 -0
  376. /package/json-schema/{system → hub}/LevelIsolationStrategySchema.json +0 -0
  377. /package/json-schema/{system → hub}/MetricType.json +0 -0
  378. /package/json-schema/{system → hub}/Plan.json +0 -0
  379. /package/json-schema/{system → hub}/RowLevelIsolationStrategy.json +0 -0
  380. /package/json-schema/{system → hub}/TenantIsolationConfig.json +0 -0
  381. /package/json-schema/{system → hub}/TenantIsolationLevel.json +0 -0
  382. /package/json-schema/{system → hub}/TenantQuota.json +0 -0
  383. /package/json-schema/{system → hub}/TenantSecurityPolicy.json +0 -0
  384. /package/json-schema/{system → kernel}/I18nContext.json +0 -0
  385. /package/json-schema/{system → kernel}/Logger.json +0 -0
  386. /package/json-schema/{system → kernel}/ObjectQLClient.json +0 -0
  387. /package/json-schema/{system → kernel}/Plugin.json +0 -0
  388. /package/json-schema/{system → kernel}/PluginLifecycle.json +0 -0
  389. /package/json-schema/{system → kernel}/Router.json +0 -0
  390. /package/json-schema/{system → kernel}/Scheduler.json +0 -0
  391. /package/json-schema/{system → kernel}/ScopedStorage.json +0 -0
  392. /package/json-schema/{system → kernel}/SystemAPI.json +0 -0
  393. /package/json-schema/{data → permission}/FieldPermission.json +0 -0
  394. /package/json-schema/{system → permission}/Territory.json +0 -0
  395. /package/json-schema/{system → permission}/TerritoryModel.json +0 -0
  396. /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.3.3",
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/protocol (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/protocol.
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: packages/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/protocol.
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/protocol, create a crm-plugin package implementing the manifest.json standard, and register the 'Customer' menu item."
@@ -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.
@@ -0,0 +1,91 @@
1
+ # 📜 ObjectStack Protocol & Metamodel Architect
2
+
3
+ **Role:** You are the **Chief Protocol Architect** for ObjectStack.
4
+ **Context:** You are defining the "DNA" and "Constitution" of a metadata-driven low-code platform.
5
+ **Location:** `packages/spec` repository.
6
+
7
+ Mission: Build the "Post-SaaS Operating System" — an open-core, local-first ecosystem that virtualizes data (SQL/Redis/Excel) and unifies business logic.
8
+
9
+ **PRIME DIRECTIVES:**
10
+
11
+ 1. **Zod First:** ALL definitions must start with a **Zod Schema**. We need runtime validation for the CLI and JSON Schema generation for the IDE.
12
+ 2. **Type Derivation:** TypeScript interfaces must be inferred from Zod (`z.infer<typeof X>`).
13
+ 3. **No Business Logic:** This repository contains ONLY definitions (Schemas, Types, Constants).
14
+ 4. **Naming Convention:**
15
+ * **Configuration Keys (TS Props):** `camelCase` (e.g., `maxLength`, `referenceFilters`).
16
+ * **Machine Names (Data Values):** `snake_case` (e.g., `name: 'first_name'`, `object: 'project_task'`).
17
+ 5. **Best Practice Mandate:**
18
+ * **Ignore Status Quo:** Do not let current implementation limitations constrain the design.
19
+ * **Benchmark:** Align with industry leaders (Salesforce, ServiceNow, Kubernetes) for structural decisions.
20
+ * **Philosophy:** "Data as Code", Idempotency, and Immutable Infrastructure are the defaults.
21
+ * **Style:** Enforce `camelCase` for all schema property keys (e.g. `maxLength`, `referenceFilters` NOT `max_length`, `reference_filters`).
22
+
23
+ ---
24
+
25
+ ## 📘 1. The Metamodel Standards (Knowledge Base)
26
+
27
+ ### **A. DATA PROTOCOL (`src/data/*.zod.ts`)**
28
+ *Core Business Logic & Data Model*
29
+
30
+ * **Field (`src/data/field.zod.ts`)**:
31
+ * **Type Enum**: `text`, `textarea`, `number`, `boolean`, `select`, `lookup`, `formula`, ...
32
+ * **Props**: `name` (snake_case), `label`, `type`, `multiple` (Array support), `reference` (Target Object).
33
+ * **Object (`src/data/object.zod.ts`)**:
34
+ * **Props**: `name` (snake_case), `label`, `fields` (Map), `enable` (Capabilities: `trackHistory`, `apiEnabled`).
35
+ * **Flow (`src/data/flow.zod.ts`)**: Visual Logic Orchestration (`autolaunched`, `screen`, `schedule`).
36
+ * **Logic**: `validation.zod.ts` (Rules), `permission.zod.ts` (ACL), `workflow.zod.ts` (State Machine).
37
+
38
+ ### **B. UI PROTOCOL (`src/ui/*.zod.ts`)**
39
+ *Presentation & Interaction*
40
+
41
+ * **View (`src/ui/view.zod.ts`)**:
42
+ * **ListView**: `grid`, `kanban`, `calendar`, `gantt`.
43
+ * **FormView**: `simple`, `tabbed`, `wizard`.
44
+ * **App (`src/ui/app.zod.ts`)**:
45
+ * **Navigation**: Structured Menu Tree (`ObjectNavItem`, `DashboardNavItem`).
46
+ * **Branding**: Logo, Colors.
47
+ * **Dashboard (`src/ui/dashboard.zod.ts`)**: Grid layout widgets.
48
+ * **Report (`src/ui/report.zod.ts`)**: Analytics (`tabular`, `summary`, `matrix`, `chart`).
49
+ * **Action (`src/ui/action.zod.ts`)**: Buttons, URL jumps, Screen Flows.
50
+
51
+ ### **C. SYSTEM PROTOCOL (`src/system/*.zod.ts`)**
52
+ *Runtime Configuration*
53
+
54
+ * **Manifest (`src/system/manifest.zod.ts`)**: Package definition (`objectstack.config.ts`).
55
+ * **Datasource (`src/system/datasource.zod.ts`)**: External Data Connections (SQL, NoSQL, SaaS).
56
+ * **API (`src/system/api.zod.ts`)**: REST/GraphQL Endpoint Definitions.
57
+ * **Translation (`src/system/translation.zod.ts`)**: Internationalization (i18n).
58
+
59
+ ---
60
+
61
+ ## 🛠️ 2. Coding Patterns
62
+
63
+ ### **Naming Convention Example**
64
+
65
+ ```typescript
66
+ export const FieldSchema = z.object({
67
+ // CONFIGURATION KEY -> camelCase
68
+ maxLength: z.number().optional(),
69
+ defaultValue: z.any().optional(),
70
+
71
+ // SYSTEM IENTIFIER RULES -> snake_case
72
+ name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Machine name (snake_case)'),
73
+ });
74
+ ```
75
+
76
+ ### **Directory Structure**
77
+
78
+ * `packages/spec/src/data/`: ObjectQL (Object, Query, Driver).
79
+ * `packages/spec/src/ai/`: ObjectQL (Agent, RAG, Orchestration).
80
+ * `packages/spec/src/ui/`: ObjectUI (App, View, Action).
81
+ * `packages/spec/src/system/`: ObjectOS (Manifest, Identity, Events).
82
+ * `packages/spec/src/api/`: ObjectOS (Contract, Endpoint, Realtime).
83
+
84
+ ---
85
+
86
+ ## 🤖 3. Interaction Shortcuts
87
+
88
+ * **"Create Field Protocol"** → Implement `src/data/field.zod.ts`.
89
+ * **"Create Object Protocol"** → Implement `src/data/object.zod.ts`.
90
+ * **"Create UI Protocol"** → Implement `src/ui/view.zod.ts`.
91
+ * **"Create App Protocol"** → Implement `src/ui/app.zod.ts`.
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-automation.zod.d.ts","sourceRoot":"","sources":["../../src/ai/workflow-automation.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;GAaG;AAEH;;;GAGG;AACH,eAAO,MAAM,uBAAuB,6GAQlC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,+JAW3B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY;IACvB,oBAAoB;;;;IAKpB,0BAA0B;;;IAI1B,0BAA0B;;;IAI1B,2BAA2B;;;IAI3B,sCAAsC;;;IAItC,kCAAkC;;IAGlC,kCAAkC;;;IAIlC,qBAAqB;;;IAIrB,4BAA4B;;IAG5B,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGpB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;EAIvC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;EAQjC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;EAKrC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,0BAA0B;IACrC,eAAe;;;;IAKf,oBAAoB;;IAGpB,4BAA4B;;IAG5B,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAQrC,qBAAqB;;IAGrB,eAAe;;QAtGf,oBAAoB;;;;QAKpB,0BAA0B;;;QAI1B,0BAA0B;;;QAI1B,2BAA2B;;;QAI3B,sCAAsC;;;QAItC,kCAAkC;;QAGlC,kCAAkC;;;QAIlC,qBAAqB;;;QAIrB,4BAA4B;;QAG5B,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsEpB,sBAAsB;;;;;;;;;;;;;;;;;IAGtB,wBAAwB;;;IAIxB,2BAA2B;;;IAI3B,2BAA2B;;;;IAK3B,aAAa;;;IAIb,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMf,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;EAMzC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqB1C,CAAC;AAGH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"flow.zod.d.ts","sourceRoot":"","sources":["../../src/data/flow.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,cAAc,6KAczB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;EAK7B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;IAKzB,oDAAoD;;IAGpD,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEnC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;IAKzB,+DAA+D;;;;;;;;;;;;;;;EAI/D,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU;IACrB,eAAe;;;;IAKf,mBAAmB;;IAGnB,8BAA8B;;;;;;;;;;;;;;;;;IAG9B,uBAAuB;;;;;QAtCvB,oDAAoD;;QAGpD,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAanC,+DAA+D;;;;;;;;;;;;;;;;IA0B/D,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGvB,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAC9C,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"permission.zod.d.ts","sourceRoot":"","sources":["../../src/data/permission.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,sBAAsB;IACjC,gBAAgB;;IAEhB,gDAAgD;;IAEhD,gDAAgD;;IAEhD,kDAAkD;;IAGlD;;;;OAIG;;IAGH;;;;OAIG;;;;;;;;;;;;;;;;EAEH,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB;IAChC,yBAAyB;;IAEzB,0BAA0B;;;;;;;;EAE1B,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB;IAC9B,iCAAiC;;IAGjC,oBAAoB;;IAGpB,+CAA+C;;IAG/C,2DAA2D;;QArD3D,gBAAgB;;QAEhB,gDAAgD;;QAEhD,gDAAgD;;QAEhD,kDAAkD;;QAGlD;;;;WAIG;;QAGH;;;;WAIG;;;;;;;;;;;;;;;;;IAoCH,uEAAuE;;QA5BvE,yBAAyB;;QAEzB,0BAA0B;;;;;;;;;IA6B1B,gDAAgD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEhD,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}