@plures/praxis 0.2.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (486) hide show
  1. package/README.md +188 -61
  2. package/core/codegen/docs-generator.ts +808 -0
  3. package/core/codegen/index.ts +27 -0
  4. package/core/codegen/ts-generator.ts +15 -0
  5. package/core/db-adapter/index.ts +52 -0
  6. package/core/db-adapter/sync-engine.ts +450 -0
  7. package/core/logic-engine/engine.ts +12 -0
  8. package/core/logic-engine/index.ts +16 -0
  9. package/core/logic-engine/protocol.ts +16 -0
  10. package/core/logic-engine/psf-adapter.ts +269 -0
  11. package/core/logic-engine/rules.ts +16 -0
  12. package/core/schema-engine/compiler.ts +431 -0
  13. package/core/schema-engine/generator.ts +635 -0
  14. package/core/schema-engine/index.ts +18 -0
  15. package/core/schema-engine/psf.ts +664 -0
  16. package/core/schema-engine/types.ts +63 -0
  17. package/core/schema-engine/validator.ts +541 -0
  18. package/dist/core/codegen/docs-generator.d.ts +123 -0
  19. package/dist/core/codegen/docs-generator.d.ts.map +1 -0
  20. package/dist/core/codegen/docs-generator.js +674 -0
  21. package/dist/core/codegen/docs-generator.js.map +1 -0
  22. package/dist/core/codegen/index.d.ts +11 -0
  23. package/dist/core/codegen/index.d.ts.map +1 -0
  24. package/dist/core/codegen/index.js +13 -0
  25. package/dist/core/codegen/index.js.map +1 -0
  26. package/dist/core/codegen/ts-generator.d.ts +8 -0
  27. package/dist/core/codegen/ts-generator.d.ts.map +1 -0
  28. package/dist/core/codegen/ts-generator.js +8 -0
  29. package/dist/core/codegen/ts-generator.js.map +1 -0
  30. package/dist/core/db-adapter/index.d.ts +18 -0
  31. package/dist/core/db-adapter/index.d.ts.map +1 -0
  32. package/dist/core/db-adapter/index.js +23 -0
  33. package/dist/core/db-adapter/index.js.map +1 -0
  34. package/dist/core/db-adapter/sync-engine.d.ts +180 -0
  35. package/dist/core/db-adapter/sync-engine.d.ts.map +1 -0
  36. package/dist/core/db-adapter/sync-engine.js +342 -0
  37. package/dist/core/db-adapter/sync-engine.js.map +1 -0
  38. package/dist/core/logic-engine/engine.d.ts +8 -0
  39. package/dist/core/logic-engine/engine.d.ts.map +1 -0
  40. package/dist/core/logic-engine/engine.js +8 -0
  41. package/dist/core/logic-engine/engine.js.map +1 -0
  42. package/dist/core/logic-engine/index.d.ts +16 -0
  43. package/dist/core/logic-engine/index.d.ts.map +1 -0
  44. package/dist/core/logic-engine/index.js +16 -0
  45. package/dist/core/logic-engine/index.js.map +1 -0
  46. package/dist/core/logic-engine/protocol.d.ts +7 -0
  47. package/dist/core/logic-engine/protocol.d.ts.map +1 -0
  48. package/dist/core/logic-engine/protocol.js +7 -0
  49. package/dist/core/logic-engine/protocol.js.map +1 -0
  50. package/dist/core/logic-engine/psf-adapter.d.ts +88 -0
  51. package/dist/core/logic-engine/psf-adapter.d.ts.map +1 -0
  52. package/dist/core/logic-engine/psf-adapter.js +207 -0
  53. package/dist/core/logic-engine/psf-adapter.js.map +1 -0
  54. package/dist/core/logic-engine/rules.d.ts +7 -0
  55. package/dist/core/logic-engine/rules.d.ts.map +1 -0
  56. package/dist/core/logic-engine/rules.js +7 -0
  57. package/dist/core/logic-engine/rules.js.map +1 -0
  58. package/dist/core/schema-engine/compiler.d.ts +198 -0
  59. package/dist/core/schema-engine/compiler.d.ts.map +1 -0
  60. package/dist/core/schema-engine/compiler.js +262 -0
  61. package/dist/core/schema-engine/compiler.js.map +1 -0
  62. package/dist/core/schema-engine/generator.d.ts +115 -0
  63. package/dist/core/schema-engine/generator.d.ts.map +1 -0
  64. package/dist/core/schema-engine/generator.js +506 -0
  65. package/dist/core/schema-engine/generator.js.map +1 -0
  66. package/dist/core/schema-engine/index.d.ts +18 -0
  67. package/dist/core/schema-engine/index.d.ts.map +1 -0
  68. package/dist/core/schema-engine/index.js +18 -0
  69. package/dist/core/schema-engine/index.js.map +1 -0
  70. package/dist/core/schema-engine/psf.d.ts +612 -0
  71. package/dist/core/schema-engine/psf.d.ts.map +1 -0
  72. package/dist/core/schema-engine/psf.js +45 -0
  73. package/dist/core/schema-engine/psf.js.map +1 -0
  74. package/dist/core/schema-engine/types.d.ts +10 -0
  75. package/dist/core/schema-engine/types.d.ts.map +1 -0
  76. package/dist/core/schema-engine/types.js +7 -0
  77. package/dist/core/schema-engine/types.js.map +1 -0
  78. package/dist/core/schema-engine/validator.d.ts +140 -0
  79. package/dist/core/schema-engine/validator.d.ts.map +1 -0
  80. package/dist/core/schema-engine/validator.js +407 -0
  81. package/dist/core/schema-engine/validator.js.map +1 -0
  82. package/dist/src/adapters/cli.d.ts.map +1 -0
  83. package/dist/src/adapters/cli.js.map +1 -0
  84. package/dist/src/cli/commands/auth.d.ts.map +1 -0
  85. package/dist/src/cli/commands/auth.js.map +1 -0
  86. package/dist/src/cli/commands/build.d.ts +23 -0
  87. package/dist/src/cli/commands/build.d.ts.map +1 -0
  88. package/dist/src/cli/commands/build.js +162 -0
  89. package/dist/src/cli/commands/build.js.map +1 -0
  90. package/dist/src/cli/commands/canvas.d.ts +23 -0
  91. package/dist/src/cli/commands/canvas.d.ts.map +1 -0
  92. package/dist/src/cli/commands/canvas.js +215 -0
  93. package/dist/src/cli/commands/canvas.js.map +1 -0
  94. package/dist/src/cli/commands/cloud.d.ts.map +1 -0
  95. package/dist/src/cli/commands/cloud.js.map +1 -0
  96. package/dist/src/cli/commands/create.d.ts +21 -0
  97. package/dist/src/cli/commands/create.d.ts.map +1 -0
  98. package/dist/src/cli/commands/create.js +621 -0
  99. package/dist/src/cli/commands/create.js.map +1 -0
  100. package/dist/src/cli/commands/dev.d.ts +21 -0
  101. package/dist/src/cli/commands/dev.d.ts.map +1 -0
  102. package/dist/src/cli/commands/dev.js +71 -0
  103. package/dist/src/cli/commands/dev.js.map +1 -0
  104. package/dist/src/cli/commands/generate.d.ts.map +1 -0
  105. package/dist/src/cli/commands/generate.js.map +1 -0
  106. package/dist/src/cli/commands/orchestrate.d.ts +44 -0
  107. package/dist/src/cli/commands/orchestrate.d.ts.map +1 -0
  108. package/dist/src/cli/commands/orchestrate.js +150 -0
  109. package/dist/src/cli/commands/orchestrate.js.map +1 -0
  110. package/dist/{cli → src/cli}/index.d.ts.map +1 -1
  111. package/dist/{cli → src/cli}/index.js +53 -21
  112. package/dist/src/cli/index.js.map +1 -0
  113. package/dist/src/cloud/auth.d.ts.map +1 -0
  114. package/dist/src/cloud/auth.js.map +1 -0
  115. package/dist/src/cloud/billing.d.ts.map +1 -0
  116. package/dist/src/cloud/billing.js.map +1 -0
  117. package/dist/src/cloud/client.d.ts.map +1 -0
  118. package/dist/src/cloud/client.js.map +1 -0
  119. package/dist/src/cloud/index.d.ts.map +1 -0
  120. package/dist/src/cloud/index.js.map +1 -0
  121. package/dist/src/cloud/marketplace.d.ts.map +1 -0
  122. package/dist/src/cloud/marketplace.js.map +1 -0
  123. package/dist/src/cloud/provisioning.d.ts.map +1 -0
  124. package/dist/src/cloud/provisioning.js.map +1 -0
  125. package/dist/src/cloud/relay/endpoints.d.ts.map +1 -0
  126. package/dist/src/cloud/relay/endpoints.js.map +1 -0
  127. package/dist/src/cloud/relay/health/index.d.ts.map +1 -0
  128. package/dist/src/cloud/relay/health/index.js.map +1 -0
  129. package/dist/src/cloud/relay/stats/index.d.ts.map +1 -0
  130. package/dist/src/cloud/relay/stats/index.js.map +1 -0
  131. package/dist/src/cloud/relay/sync/index.d.ts.map +1 -0
  132. package/dist/src/cloud/relay/sync/index.js.map +1 -0
  133. package/dist/src/cloud/relay/usage/index.d.ts.map +1 -0
  134. package/dist/src/cloud/relay/usage/index.js.map +1 -0
  135. package/dist/src/cloud/sponsors.d.ts.map +1 -0
  136. package/dist/src/cloud/sponsors.js.map +1 -0
  137. package/dist/src/cloud/types.d.ts.map +1 -0
  138. package/dist/src/cloud/types.js.map +1 -0
  139. package/dist/src/components/index.d.ts.map +1 -0
  140. package/dist/src/components/index.js.map +1 -0
  141. package/dist/src/core/actors.d.ts.map +1 -0
  142. package/dist/src/core/actors.js.map +1 -0
  143. package/dist/src/core/component/generator.d.ts.map +1 -0
  144. package/dist/{core → src/core}/component/generator.js +45 -3
  145. package/dist/src/core/component/generator.js.map +1 -0
  146. package/dist/src/core/engine.d.ts.map +1 -0
  147. package/dist/src/core/engine.js.map +1 -0
  148. package/dist/src/core/introspection.d.ts.map +1 -0
  149. package/dist/src/core/introspection.js.map +1 -0
  150. package/dist/src/core/logic/generator.d.ts.map +1 -0
  151. package/dist/{core → src/core}/logic/generator.js +35 -4
  152. package/dist/src/core/logic/generator.js.map +1 -0
  153. package/dist/src/core/pluresdb/adapter.d.ts +72 -0
  154. package/dist/src/core/pluresdb/adapter.d.ts.map +1 -0
  155. package/dist/src/core/pluresdb/adapter.js +73 -0
  156. package/dist/src/core/pluresdb/adapter.js.map +1 -0
  157. package/dist/src/core/pluresdb/generator.d.ts.map +1 -0
  158. package/dist/{core → src/core}/pluresdb/generator.js +33 -4
  159. package/dist/src/core/pluresdb/generator.js.map +1 -0
  160. package/dist/src/core/pluresdb/index.d.ts +15 -0
  161. package/dist/src/core/pluresdb/index.d.ts.map +1 -0
  162. package/dist/src/core/pluresdb/index.js +11 -0
  163. package/dist/src/core/pluresdb/index.js.map +1 -0
  164. package/dist/src/core/pluresdb/schema-registry.d.ts +104 -0
  165. package/dist/src/core/pluresdb/schema-registry.d.ts.map +1 -0
  166. package/dist/src/core/pluresdb/schema-registry.js +130 -0
  167. package/dist/src/core/pluresdb/schema-registry.js.map +1 -0
  168. package/dist/src/core/pluresdb/store.d.ts +199 -0
  169. package/dist/src/core/pluresdb/store.d.ts.map +1 -0
  170. package/dist/src/core/pluresdb/store.js +344 -0
  171. package/dist/src/core/pluresdb/store.js.map +1 -0
  172. package/dist/src/core/protocol.d.ts.map +1 -0
  173. package/dist/src/core/protocol.js.map +1 -0
  174. package/dist/src/core/rules.d.ts.map +1 -0
  175. package/dist/src/core/rules.js.map +1 -0
  176. package/dist/src/core/schema/loader.d.ts.map +1 -0
  177. package/dist/src/core/schema/loader.js.map +1 -0
  178. package/dist/src/core/schema/normalize.d.ts.map +1 -0
  179. package/dist/src/core/schema/normalize.js.map +1 -0
  180. package/dist/src/core/schema/types.d.ts.map +1 -0
  181. package/dist/src/core/schema/types.js.map +1 -0
  182. package/dist/src/dsl/index.d.ts.map +1 -0
  183. package/dist/src/dsl/index.js.map +1 -0
  184. package/dist/src/dsl.d.ts.map +1 -0
  185. package/dist/src/dsl.js.map +1 -0
  186. package/dist/src/examples/advanced-todo/index.d.ts.map +1 -0
  187. package/dist/src/examples/advanced-todo/index.js.map +1 -0
  188. package/dist/src/examples/auth-basic/index.d.ts.map +1 -0
  189. package/dist/src/examples/auth-basic/index.js.map +1 -0
  190. package/dist/src/examples/cart/index.d.ts.map +1 -0
  191. package/dist/src/examples/cart/index.js.map +1 -0
  192. package/dist/src/examples/hero-ecommerce/index.d.ts.map +1 -0
  193. package/dist/src/examples/hero-ecommerce/index.js.map +1 -0
  194. package/dist/src/examples/svelte-counter/index.d.ts.map +1 -0
  195. package/dist/src/examples/svelte-counter/index.js.map +1 -0
  196. package/dist/src/flows.d.ts.map +1 -0
  197. package/dist/src/flows.js.map +1 -0
  198. package/dist/{index.d.ts → src/index.d.ts} +12 -2
  199. package/dist/src/index.d.ts.map +1 -0
  200. package/dist/{index.js → src/index.js} +6 -1
  201. package/dist/src/index.js.map +1 -0
  202. package/dist/src/integrations/code-canvas.d.ts +265 -0
  203. package/dist/src/integrations/code-canvas.d.ts.map +1 -0
  204. package/dist/src/integrations/code-canvas.js +451 -0
  205. package/dist/src/integrations/code-canvas.js.map +1 -0
  206. package/dist/src/integrations/pluresdb.d.ts +117 -0
  207. package/dist/src/integrations/pluresdb.d.ts.map +1 -0
  208. package/dist/src/integrations/pluresdb.js +117 -0
  209. package/dist/src/integrations/pluresdb.js.map +1 -0
  210. package/dist/src/integrations/state-docs.d.ts +191 -0
  211. package/dist/src/integrations/state-docs.d.ts.map +1 -0
  212. package/dist/src/integrations/state-docs.js +515 -0
  213. package/dist/src/integrations/state-docs.js.map +1 -0
  214. package/dist/src/integrations/svelte.d.ts.map +1 -0
  215. package/dist/src/integrations/svelte.js.map +1 -0
  216. package/dist/src/integrations/tauri.d.ts +360 -0
  217. package/dist/src/integrations/tauri.d.ts.map +1 -0
  218. package/dist/src/integrations/tauri.js +278 -0
  219. package/dist/src/integrations/tauri.js.map +1 -0
  220. package/dist/src/integrations/unum.d.ts +159 -0
  221. package/dist/src/integrations/unum.d.ts.map +1 -0
  222. package/dist/src/integrations/unum.js +240 -0
  223. package/dist/src/integrations/unum.js.map +1 -0
  224. package/dist/src/registry.d.ts.map +1 -0
  225. package/dist/src/registry.js.map +1 -0
  226. package/dist/{runtime → src/runtime}/terminal-adapter.d.ts +58 -7
  227. package/dist/src/runtime/terminal-adapter.d.ts.map +1 -0
  228. package/dist/src/runtime/terminal-adapter.js +237 -0
  229. package/dist/src/runtime/terminal-adapter.js.map +1 -0
  230. package/dist/src/step.d.ts.map +1 -0
  231. package/dist/src/step.js.map +1 -0
  232. package/dist/src/types.d.ts.map +1 -0
  233. package/dist/{cloud → src}/types.js.map +1 -1
  234. package/dist/tools/cli/commands/index.d.ts +7 -0
  235. package/dist/tools/cli/commands/index.d.ts.map +1 -0
  236. package/dist/tools/cli/commands/index.js +7 -0
  237. package/dist/tools/cli/commands/index.js.map +1 -0
  238. package/dist/tools/cli/index.d.ts +8 -0
  239. package/dist/tools/cli/index.d.ts.map +1 -0
  240. package/dist/tools/cli/index.js +9 -0
  241. package/dist/tools/cli/index.js.map +1 -0
  242. package/dist/tools/watcher/index.d.ts +105 -0
  243. package/dist/tools/watcher/index.d.ts.map +1 -0
  244. package/dist/tools/watcher/index.js +213 -0
  245. package/dist/tools/watcher/index.js.map +1 -0
  246. package/dist/ui/canvas/canvas-projection.d.ts +78 -0
  247. package/dist/ui/canvas/canvas-projection.d.ts.map +1 -0
  248. package/dist/ui/canvas/canvas-projection.js +416 -0
  249. package/dist/ui/canvas/canvas-projection.js.map +1 -0
  250. package/dist/ui/canvas/canvas-state.d.ts +200 -0
  251. package/dist/ui/canvas/canvas-state.d.ts.map +1 -0
  252. package/dist/ui/canvas/canvas-state.js +464 -0
  253. package/dist/ui/canvas/canvas-state.js.map +1 -0
  254. package/dist/ui/canvas/components/index.d.ts +95 -0
  255. package/dist/ui/canvas/components/index.d.ts.map +1 -0
  256. package/dist/ui/canvas/components/index.js +19 -0
  257. package/dist/ui/canvas/components/index.js.map +1 -0
  258. package/dist/ui/canvas/index.d.ts +32 -0
  259. package/dist/ui/canvas/index.d.ts.map +1 -0
  260. package/dist/ui/canvas/index.js +32 -0
  261. package/dist/ui/canvas/index.js.map +1 -0
  262. package/dist/ui/svelte-generator/index.d.ts +9 -0
  263. package/dist/ui/svelte-generator/index.d.ts.map +1 -0
  264. package/dist/ui/svelte-generator/index.js +11 -0
  265. package/dist/ui/svelte-generator/index.js.map +1 -0
  266. package/dist/ui/svelte-generator/psf-generator.d.ts +128 -0
  267. package/dist/ui/svelte-generator/psf-generator.d.ts.map +1 -0
  268. package/dist/ui/svelte-generator/psf-generator.js +506 -0
  269. package/dist/ui/svelte-generator/psf-generator.js.map +1 -0
  270. package/docs/README.md +155 -0
  271. package/docs/core/building-extensions.md +553 -0
  272. package/docs/core/cli-usage.md +498 -0
  273. package/docs/core/code-canvas-sync.md +468 -0
  274. package/docs/core/logic-engine.md +566 -0
  275. package/docs/core/pluresdb-integration.md +646 -0
  276. package/docs/core/schema-model.md +414 -0
  277. package/docs/core/ui-generation.md +580 -0
  278. package/docs/core/what-is-praxis.md +240 -0
  279. package/docs/tutorials/README.md +84 -0
  280. package/docs/tutorials/ecommerce-cart.md +631 -0
  281. package/docs/tutorials/first-app.md +529 -0
  282. package/docs/tutorials/form-builder.md +620 -0
  283. package/docs/tutorials/todo-pluresdb.md +589 -0
  284. package/package.json +1 -1
  285. package/src/__tests__/canvas-components.test.ts +450 -0
  286. package/src/__tests__/cli-create.test.ts +178 -0
  287. package/src/__tests__/code-canvas-integration.test.ts +277 -0
  288. package/src/__tests__/docs-generator.test.ts +181 -0
  289. package/src/__tests__/generators.test.ts +3 -2
  290. package/src/__tests__/pluresdb.test.ts +457 -0
  291. package/src/__tests__/psf-schema-engine.test.ts +450 -0
  292. package/src/__tests__/state-docs-integration.test.ts +297 -0
  293. package/src/__tests__/tauri-integration.test.ts +298 -0
  294. package/src/__tests__/terminal-node.test.ts +1 -1
  295. package/src/__tests__/unum-integration.test.ts +142 -0
  296. package/src/cli/commands/build.ts +203 -0
  297. package/src/cli/commands/canvas.ts +246 -0
  298. package/src/cli/commands/create.ts +666 -0
  299. package/src/cli/commands/dev.ts +95 -0
  300. package/src/cli/commands/orchestrate.ts +212 -0
  301. package/src/cli/index.ts +48 -21
  302. package/src/core/component/generator.ts +45 -3
  303. package/src/core/logic/generator.ts +39 -4
  304. package/src/core/pluresdb/adapter.ts +117 -0
  305. package/src/core/pluresdb/generator.ts +33 -4
  306. package/src/core/pluresdb/index.ts +37 -0
  307. package/src/core/pluresdb/schema-registry.ts +162 -0
  308. package/src/core/pluresdb/store.ts +443 -0
  309. package/src/index.ts +109 -0
  310. package/src/integrations/code-canvas.ts +717 -0
  311. package/src/integrations/pluresdb.ts +140 -29
  312. package/src/integrations/state-docs.ts +710 -0
  313. package/src/integrations/tauri.ts +638 -0
  314. package/src/integrations/unum.ts +395 -0
  315. package/src/runtime/terminal-adapter.ts +178 -23
  316. package/dist/adapters/cli.d.ts.map +0 -1
  317. package/dist/adapters/cli.js.map +0 -1
  318. package/dist/cli/commands/auth.d.ts.map +0 -1
  319. package/dist/cli/commands/auth.js.map +0 -1
  320. package/dist/cli/commands/cloud.d.ts.map +0 -1
  321. package/dist/cli/commands/cloud.js.map +0 -1
  322. package/dist/cli/commands/generate.d.ts.map +0 -1
  323. package/dist/cli/commands/generate.js.map +0 -1
  324. package/dist/cli/index.js.map +0 -1
  325. package/dist/cloud/auth.d.ts.map +0 -1
  326. package/dist/cloud/auth.js.map +0 -1
  327. package/dist/cloud/billing.d.ts.map +0 -1
  328. package/dist/cloud/billing.js.map +0 -1
  329. package/dist/cloud/client.d.ts.map +0 -1
  330. package/dist/cloud/client.js.map +0 -1
  331. package/dist/cloud/index.d.ts.map +0 -1
  332. package/dist/cloud/index.js.map +0 -1
  333. package/dist/cloud/marketplace.d.ts.map +0 -1
  334. package/dist/cloud/marketplace.js.map +0 -1
  335. package/dist/cloud/provisioning.d.ts.map +0 -1
  336. package/dist/cloud/provisioning.js.map +0 -1
  337. package/dist/cloud/relay/endpoints.d.ts.map +0 -1
  338. package/dist/cloud/relay/endpoints.js.map +0 -1
  339. package/dist/cloud/relay/health/index.d.ts.map +0 -1
  340. package/dist/cloud/relay/health/index.js.map +0 -1
  341. package/dist/cloud/relay/stats/index.d.ts.map +0 -1
  342. package/dist/cloud/relay/stats/index.js.map +0 -1
  343. package/dist/cloud/relay/sync/index.d.ts.map +0 -1
  344. package/dist/cloud/relay/sync/index.js.map +0 -1
  345. package/dist/cloud/relay/usage/index.d.ts.map +0 -1
  346. package/dist/cloud/relay/usage/index.js.map +0 -1
  347. package/dist/cloud/sponsors.d.ts.map +0 -1
  348. package/dist/cloud/sponsors.js.map +0 -1
  349. package/dist/cloud/types.d.ts.map +0 -1
  350. package/dist/components/index.d.ts.map +0 -1
  351. package/dist/components/index.js.map +0 -1
  352. package/dist/core/actors.d.ts.map +0 -1
  353. package/dist/core/actors.js.map +0 -1
  354. package/dist/core/component/generator.d.ts.map +0 -1
  355. package/dist/core/component/generator.js.map +0 -1
  356. package/dist/core/engine.d.ts.map +0 -1
  357. package/dist/core/engine.js.map +0 -1
  358. package/dist/core/introspection.d.ts.map +0 -1
  359. package/dist/core/introspection.js.map +0 -1
  360. package/dist/core/logic/generator.d.ts.map +0 -1
  361. package/dist/core/logic/generator.js.map +0 -1
  362. package/dist/core/pluresdb/generator.d.ts.map +0 -1
  363. package/dist/core/pluresdb/generator.js.map +0 -1
  364. package/dist/core/protocol.d.ts.map +0 -1
  365. package/dist/core/protocol.js.map +0 -1
  366. package/dist/core/rules.d.ts.map +0 -1
  367. package/dist/core/rules.js.map +0 -1
  368. package/dist/core/schema/loader.d.ts.map +0 -1
  369. package/dist/core/schema/loader.js.map +0 -1
  370. package/dist/core/schema/normalize.d.ts.map +0 -1
  371. package/dist/core/schema/normalize.js.map +0 -1
  372. package/dist/core/schema/types.d.ts.map +0 -1
  373. package/dist/core/schema/types.js.map +0 -1
  374. package/dist/dsl/index.d.ts.map +0 -1
  375. package/dist/dsl/index.js.map +0 -1
  376. package/dist/dsl.d.ts.map +0 -1
  377. package/dist/dsl.js.map +0 -1
  378. package/dist/examples/advanced-todo/index.d.ts.map +0 -1
  379. package/dist/examples/advanced-todo/index.js.map +0 -1
  380. package/dist/examples/auth-basic/index.d.ts.map +0 -1
  381. package/dist/examples/auth-basic/index.js.map +0 -1
  382. package/dist/examples/cart/index.d.ts.map +0 -1
  383. package/dist/examples/cart/index.js.map +0 -1
  384. package/dist/examples/hero-ecommerce/index.d.ts.map +0 -1
  385. package/dist/examples/hero-ecommerce/index.js.map +0 -1
  386. package/dist/examples/svelte-counter/index.d.ts.map +0 -1
  387. package/dist/examples/svelte-counter/index.js.map +0 -1
  388. package/dist/flows.d.ts.map +0 -1
  389. package/dist/flows.js.map +0 -1
  390. package/dist/index.d.ts.map +0 -1
  391. package/dist/index.js.map +0 -1
  392. package/dist/integrations/pluresdb.d.ts +0 -56
  393. package/dist/integrations/pluresdb.d.ts.map +0 -1
  394. package/dist/integrations/pluresdb.js +0 -46
  395. package/dist/integrations/pluresdb.js.map +0 -1
  396. package/dist/integrations/svelte.d.ts.map +0 -1
  397. package/dist/integrations/svelte.js.map +0 -1
  398. package/dist/registry.d.ts.map +0 -1
  399. package/dist/registry.js.map +0 -1
  400. package/dist/runtime/terminal-adapter.d.ts.map +0 -1
  401. package/dist/runtime/terminal-adapter.js +0 -113
  402. package/dist/runtime/terminal-adapter.js.map +0 -1
  403. package/dist/step.d.ts.map +0 -1
  404. package/dist/step.js.map +0 -1
  405. package/dist/types.d.ts.map +0 -1
  406. package/dist/types.js.map +0 -1
  407. /package/dist/{adapters → src/adapters}/cli.d.ts +0 -0
  408. /package/dist/{adapters → src/adapters}/cli.js +0 -0
  409. /package/dist/{cli → src/cli}/commands/auth.d.ts +0 -0
  410. /package/dist/{cli → src/cli}/commands/auth.js +0 -0
  411. /package/dist/{cli → src/cli}/commands/cloud.d.ts +0 -0
  412. /package/dist/{cli → src/cli}/commands/cloud.js +0 -0
  413. /package/dist/{cli → src/cli}/commands/generate.d.ts +0 -0
  414. /package/dist/{cli → src/cli}/commands/generate.js +0 -0
  415. /package/dist/{cli → src/cli}/index.d.ts +0 -0
  416. /package/dist/{cloud → src/cloud}/auth.d.ts +0 -0
  417. /package/dist/{cloud → src/cloud}/auth.js +0 -0
  418. /package/dist/{cloud → src/cloud}/billing.d.ts +0 -0
  419. /package/dist/{cloud → src/cloud}/billing.js +0 -0
  420. /package/dist/{cloud → src/cloud}/client.d.ts +0 -0
  421. /package/dist/{cloud → src/cloud}/client.js +0 -0
  422. /package/dist/{cloud → src/cloud}/index.d.ts +0 -0
  423. /package/dist/{cloud → src/cloud}/index.js +0 -0
  424. /package/dist/{cloud → src/cloud}/marketplace.d.ts +0 -0
  425. /package/dist/{cloud → src/cloud}/marketplace.js +0 -0
  426. /package/dist/{cloud → src/cloud}/provisioning.d.ts +0 -0
  427. /package/dist/{cloud → src/cloud}/provisioning.js +0 -0
  428. /package/dist/{cloud → src/cloud}/relay/endpoints.d.ts +0 -0
  429. /package/dist/{cloud → src/cloud}/relay/endpoints.js +0 -0
  430. /package/dist/{cloud → src/cloud}/relay/health/index.d.ts +0 -0
  431. /package/dist/{cloud → src/cloud}/relay/health/index.js +0 -0
  432. /package/dist/{cloud → src/cloud}/relay/stats/index.d.ts +0 -0
  433. /package/dist/{cloud → src/cloud}/relay/stats/index.js +0 -0
  434. /package/dist/{cloud → src/cloud}/relay/sync/index.d.ts +0 -0
  435. /package/dist/{cloud → src/cloud}/relay/sync/index.js +0 -0
  436. /package/dist/{cloud → src/cloud}/relay/usage/index.d.ts +0 -0
  437. /package/dist/{cloud → src/cloud}/relay/usage/index.js +0 -0
  438. /package/dist/{cloud → src/cloud}/sponsors.d.ts +0 -0
  439. /package/dist/{cloud → src/cloud}/sponsors.js +0 -0
  440. /package/dist/{cloud → src/cloud}/types.d.ts +0 -0
  441. /package/dist/{cloud → src/cloud}/types.js +0 -0
  442. /package/dist/{components → src/components}/index.d.ts +0 -0
  443. /package/dist/{components → src/components}/index.js +0 -0
  444. /package/dist/{core → src/core}/actors.d.ts +0 -0
  445. /package/dist/{core → src/core}/actors.js +0 -0
  446. /package/dist/{core → src/core}/component/generator.d.ts +0 -0
  447. /package/dist/{core → src/core}/engine.d.ts +0 -0
  448. /package/dist/{core → src/core}/engine.js +0 -0
  449. /package/dist/{core → src/core}/introspection.d.ts +0 -0
  450. /package/dist/{core → src/core}/introspection.js +0 -0
  451. /package/dist/{core → src/core}/logic/generator.d.ts +0 -0
  452. /package/dist/{core → src/core}/pluresdb/generator.d.ts +0 -0
  453. /package/dist/{core → src/core}/protocol.d.ts +0 -0
  454. /package/dist/{core → src/core}/protocol.js +0 -0
  455. /package/dist/{core → src/core}/rules.d.ts +0 -0
  456. /package/dist/{core → src/core}/rules.js +0 -0
  457. /package/dist/{core → src/core}/schema/loader.d.ts +0 -0
  458. /package/dist/{core → src/core}/schema/loader.js +0 -0
  459. /package/dist/{core → src/core}/schema/normalize.d.ts +0 -0
  460. /package/dist/{core → src/core}/schema/normalize.js +0 -0
  461. /package/dist/{core → src/core}/schema/types.d.ts +0 -0
  462. /package/dist/{core → src/core}/schema/types.js +0 -0
  463. /package/dist/{dsl → src/dsl}/index.d.ts +0 -0
  464. /package/dist/{dsl → src/dsl}/index.js +0 -0
  465. /package/dist/{dsl.d.ts → src/dsl.d.ts} +0 -0
  466. /package/dist/{dsl.js → src/dsl.js} +0 -0
  467. /package/dist/{examples → src/examples}/advanced-todo/index.d.ts +0 -0
  468. /package/dist/{examples → src/examples}/advanced-todo/index.js +0 -0
  469. /package/dist/{examples → src/examples}/auth-basic/index.d.ts +0 -0
  470. /package/dist/{examples → src/examples}/auth-basic/index.js +0 -0
  471. /package/dist/{examples → src/examples}/cart/index.d.ts +0 -0
  472. /package/dist/{examples → src/examples}/cart/index.js +0 -0
  473. /package/dist/{examples → src/examples}/hero-ecommerce/index.d.ts +0 -0
  474. /package/dist/{examples → src/examples}/hero-ecommerce/index.js +0 -0
  475. /package/dist/{examples → src/examples}/svelte-counter/index.d.ts +0 -0
  476. /package/dist/{examples → src/examples}/svelte-counter/index.js +0 -0
  477. /package/dist/{flows.d.ts → src/flows.d.ts} +0 -0
  478. /package/dist/{flows.js → src/flows.js} +0 -0
  479. /package/dist/{integrations → src/integrations}/svelte.d.ts +0 -0
  480. /package/dist/{integrations → src/integrations}/svelte.js +0 -0
  481. /package/dist/{registry.d.ts → src/registry.d.ts} +0 -0
  482. /package/dist/{registry.js → src/registry.js} +0 -0
  483. /package/dist/{step.d.ts → src/step.d.ts} +0 -0
  484. /package/dist/{step.js → src/step.js} +0 -0
  485. /package/dist/{types.d.ts → src/types.d.ts} +0 -0
  486. /package/dist/{types.js → src/types.js} +0 -0
@@ -0,0 +1,664 @@
1
+ /**
2
+ * Praxis Schema Format (PSF) Types
3
+ *
4
+ * PSF is the canonical AST format that serves as the single source of truth.
5
+ * All code, canvas, and documentation are derived from or synchronized with PSF.
6
+ *
7
+ * Design principles:
8
+ * - JSON-serializable for persistence and transmission
9
+ * - Supports bidirectional code ↔ canvas sync
10
+ * - Complete representation of all Praxis concepts
11
+ * - Extensible with metadata and custom properties
12
+ */
13
+
14
+ /**
15
+ * PSF Schema version
16
+ */
17
+ export const PSF_VERSION = '1.0.0' as const;
18
+
19
+ /**
20
+ * Root PSF Schema Document
21
+ */
22
+ export interface PSFSchema {
23
+ /** PSF format version */
24
+ $version: typeof PSF_VERSION;
25
+ /** Schema identifier */
26
+ id: string;
27
+ /** Human-readable name */
28
+ name: string;
29
+ /** Description */
30
+ description?: string;
31
+ /** Creation timestamp */
32
+ createdAt?: string;
33
+ /** Last modified timestamp */
34
+ modifiedAt?: string;
35
+ /** Facts defined in this schema */
36
+ facts: PSFFact[];
37
+ /** Events defined in this schema */
38
+ events: PSFEvent[];
39
+ /** Rules defined in this schema */
40
+ rules: PSFRule[];
41
+ /** Constraints defined in this schema */
42
+ constraints: PSFConstraint[];
43
+ /** Data models */
44
+ models: PSFModel[];
45
+ /** UI Components */
46
+ components: PSFComponent[];
47
+ /** Flows/Orchestrations */
48
+ flows: PSFFlow[];
49
+ /** Documentation metadata */
50
+ docs?: PSFDocs;
51
+ /** Additional metadata */
52
+ metadata?: Record<string, unknown>;
53
+ /** Canvas layout information for visual editing */
54
+ canvas?: PSFCanvasLayout;
55
+ }
56
+
57
+ /**
58
+ * PSF Fact Definition
59
+ */
60
+ export interface PSFFact {
61
+ /** Unique identifier */
62
+ id: string;
63
+ /** Fact tag (for type discrimination) */
64
+ tag: string;
65
+ /** Description */
66
+ description?: string;
67
+ /** Payload schema */
68
+ payload: PSFPayloadSchema;
69
+ /** Documentation hints */
70
+ docs?: PSFDocsHint;
71
+ /** Canvas position */
72
+ position?: PSFPosition;
73
+ /** Metadata */
74
+ meta?: Record<string, unknown>;
75
+ }
76
+
77
+ /**
78
+ * PSF Event Definition
79
+ */
80
+ export interface PSFEvent {
81
+ /** Unique identifier */
82
+ id: string;
83
+ /** Event tag (for type discrimination) */
84
+ tag: string;
85
+ /** Description */
86
+ description?: string;
87
+ /** Payload schema */
88
+ payload: PSFPayloadSchema;
89
+ /** Documentation hints */
90
+ docs?: PSFDocsHint;
91
+ /** Canvas position */
92
+ position?: PSFPosition;
93
+ /** Metadata */
94
+ meta?: Record<string, unknown>;
95
+ }
96
+
97
+ /**
98
+ * PSF Rule Definition
99
+ */
100
+ export interface PSFRule {
101
+ /** Unique identifier */
102
+ id: string;
103
+ /** Human-readable name */
104
+ name?: string;
105
+ /** Description */
106
+ description: string;
107
+ /** Events that trigger this rule */
108
+ triggers?: string[];
109
+ /** Condition expression (DSL or reference) */
110
+ when?: PSFExpression;
111
+ /** Action expression (DSL or reference) */
112
+ then: PSFExpression;
113
+ /** Priority (higher executes first) */
114
+ priority?: number;
115
+ /** Documentation hints */
116
+ docs?: PSFDocsHint;
117
+ /** Canvas position */
118
+ position?: PSFPosition;
119
+ /** Metadata */
120
+ meta?: Record<string, unknown>;
121
+ }
122
+
123
+ /**
124
+ * PSF Constraint Definition
125
+ */
126
+ export interface PSFConstraint {
127
+ /** Unique identifier */
128
+ id: string;
129
+ /** Human-readable name */
130
+ name?: string;
131
+ /** Description */
132
+ description: string;
133
+ /** Check expression */
134
+ check: PSFExpression;
135
+ /** Error message when violated */
136
+ errorMessage: string;
137
+ /** Severity level */
138
+ severity?: 'error' | 'warning' | 'info';
139
+ /** Documentation hints */
140
+ docs?: PSFDocsHint;
141
+ /** Canvas position */
142
+ position?: PSFPosition;
143
+ /** Metadata */
144
+ meta?: Record<string, unknown>;
145
+ }
146
+
147
+ /**
148
+ * PSF Data Model
149
+ */
150
+ export interface PSFModel {
151
+ /** Unique identifier */
152
+ id: string;
153
+ /** Model name */
154
+ name: string;
155
+ /** Description */
156
+ description?: string;
157
+ /** Fields */
158
+ fields: PSFField[];
159
+ /** Relationships to other models */
160
+ relationships?: PSFRelationship[];
161
+ /** Indexes */
162
+ indexes?: PSFIndex[];
163
+ /** Model-level constraints */
164
+ constraints?: PSFModelConstraint[];
165
+ /** Documentation hints */
166
+ docs?: PSFDocsHint;
167
+ /** Canvas position */
168
+ position?: PSFPosition;
169
+ /** Metadata */
170
+ meta?: Record<string, unknown>;
171
+ }
172
+
173
+ /**
174
+ * PSF Model Field
175
+ */
176
+ export interface PSFField {
177
+ /** Field name */
178
+ name: string;
179
+ /** Field type */
180
+ type: PSFFieldType;
181
+ /** Is optional */
182
+ optional?: boolean;
183
+ /** Default value */
184
+ default?: unknown;
185
+ /** Description */
186
+ description?: string;
187
+ /** Validation rules */
188
+ validation?: PSFValidation[];
189
+ /** UI hints for form generation */
190
+ ui?: PSFUIHint;
191
+ }
192
+
193
+ /**
194
+ * PSF Field Type
195
+ */
196
+ export type PSFFieldType =
197
+ | 'string'
198
+ | 'number'
199
+ | 'boolean'
200
+ | 'date'
201
+ | 'datetime'
202
+ | 'uuid'
203
+ | { array: PSFFieldType }
204
+ | { object: Record<string, PSFField> }
205
+ | { reference: string }
206
+ | { enum: string[] }
207
+ | { union: PSFFieldType[] };
208
+
209
+ /**
210
+ * PSF Validation Rule
211
+ */
212
+ export interface PSFValidation {
213
+ /** Validation type */
214
+ type: 'required' | 'min' | 'max' | 'minLength' | 'maxLength' | 'pattern' | 'email' | 'url' | 'custom';
215
+ /** Validation value */
216
+ value?: unknown;
217
+ /** Error message */
218
+ message?: string;
219
+ }
220
+
221
+ /**
222
+ * PSF Model Constraint
223
+ */
224
+ export interface PSFModelConstraint {
225
+ /** Constraint identifier */
226
+ id: string;
227
+ /** Constraint type */
228
+ type: 'unique' | 'check' | 'foreign_key';
229
+ /** Fields involved */
230
+ fields: string[];
231
+ /** Description */
232
+ description?: string;
233
+ /** Additional options */
234
+ options?: Record<string, unknown>;
235
+ }
236
+
237
+ /**
238
+ * PSF Relationship
239
+ */
240
+ export interface PSFRelationship {
241
+ /** Relationship name */
242
+ name: string;
243
+ /** Relationship type */
244
+ type: 'one-to-one' | 'one-to-many' | 'many-to-many';
245
+ /** Target model */
246
+ target: string;
247
+ /** Foreign key field */
248
+ foreignKey?: string;
249
+ /** Cascade behavior */
250
+ cascade?: boolean;
251
+ }
252
+
253
+ /**
254
+ * PSF Index
255
+ */
256
+ export interface PSFIndex {
257
+ /** Index name */
258
+ name: string;
259
+ /** Fields to index */
260
+ fields: string[];
261
+ /** Is unique index */
262
+ unique?: boolean;
263
+ /** Index type */
264
+ type?: 'btree' | 'hash' | 'fulltext';
265
+ }
266
+
267
+ /**
268
+ * PSF Component Definition
269
+ */
270
+ export interface PSFComponent {
271
+ /** Unique identifier */
272
+ id: string;
273
+ /** Component name */
274
+ name: string;
275
+ /** Component type */
276
+ type: 'form' | 'display' | 'list' | 'navigation' | 'editor' | 'custom';
277
+ /** Description */
278
+ description?: string;
279
+ /** Bound model */
280
+ model?: string;
281
+ /** Component properties */
282
+ props: PSFComponentProp[];
283
+ /** Component events */
284
+ events: PSFComponentEvent[];
285
+ /** Layout configuration */
286
+ layout?: PSFLayout;
287
+ /** Styling configuration */
288
+ styling?: PSFStyling;
289
+ /** Documentation hints */
290
+ docs?: PSFDocsHint;
291
+ /** Canvas position */
292
+ position?: PSFPosition;
293
+ /** Metadata */
294
+ meta?: Record<string, unknown>;
295
+ }
296
+
297
+ /**
298
+ * PSF Component Property
299
+ */
300
+ export interface PSFComponentProp {
301
+ /** Property name */
302
+ name: string;
303
+ /** Property type */
304
+ type: string;
305
+ /** Is required */
306
+ required?: boolean;
307
+ /** Default value */
308
+ default?: unknown;
309
+ /** Description */
310
+ description?: string;
311
+ /** Binding expression */
312
+ binding?: PSFExpression;
313
+ }
314
+
315
+ /**
316
+ * PSF Component Event
317
+ */
318
+ export interface PSFComponentEvent {
319
+ /** Event name */
320
+ name: string;
321
+ /** Payload type */
322
+ payload?: string;
323
+ /** Description */
324
+ description?: string;
325
+ /** Handler expression */
326
+ handler?: PSFExpression;
327
+ }
328
+
329
+ /**
330
+ * PSF Layout Configuration
331
+ */
332
+ export interface PSFLayout {
333
+ /** Layout type */
334
+ type: 'stack' | 'grid' | 'flex' | 'absolute';
335
+ /** Direction */
336
+ direction?: 'horizontal' | 'vertical';
337
+ /** Gap between items */
338
+ gap?: number | string;
339
+ /** Padding */
340
+ padding?: number | string;
341
+ /** Alignment */
342
+ align?: 'start' | 'center' | 'end' | 'stretch';
343
+ /** Justify */
344
+ justify?: 'start' | 'center' | 'end' | 'between' | 'around';
345
+ }
346
+
347
+ /**
348
+ * PSF Styling Configuration
349
+ */
350
+ export interface PSFStyling {
351
+ /** CSS classes */
352
+ classes?: string[];
353
+ /** Inline styles */
354
+ styles?: Record<string, string>;
355
+ /** Theme tokens */
356
+ theme?: Record<string, string>;
357
+ /** Variant */
358
+ variant?: string;
359
+ }
360
+
361
+ /**
362
+ * PSF Flow/Orchestration
363
+ */
364
+ export interface PSFFlow {
365
+ /** Unique identifier */
366
+ id: string;
367
+ /** Flow name */
368
+ name: string;
369
+ /** Description */
370
+ description?: string;
371
+ /** Flow type */
372
+ type: 'sequence' | 'parallel' | 'state-machine' | 'saga';
373
+ /** Flow steps */
374
+ steps: PSFFlowStep[];
375
+ /** Initial state/step */
376
+ initial?: string;
377
+ /** Error handling */
378
+ errorHandling?: PSFErrorHandling;
379
+ /** Documentation hints */
380
+ docs?: PSFDocsHint;
381
+ /** Canvas position */
382
+ position?: PSFPosition;
383
+ /** Metadata */
384
+ meta?: Record<string, unknown>;
385
+ }
386
+
387
+ /**
388
+ * PSF Flow Step
389
+ */
390
+ export interface PSFFlowStep {
391
+ /** Step identifier */
392
+ id: string;
393
+ /** Step name */
394
+ name?: string;
395
+ /** Step type */
396
+ type: 'action' | 'condition' | 'wait' | 'parallel' | 'terminal';
397
+ /** Action expression */
398
+ action?: PSFExpression;
399
+ /** Condition expression */
400
+ condition?: PSFExpression;
401
+ /** Next step(s) */
402
+ next?: string | { [key: string]: string };
403
+ /** Timeout in milliseconds */
404
+ timeout?: number;
405
+ /** Retry configuration */
406
+ retry?: PSFRetry;
407
+ }
408
+
409
+ /**
410
+ * PSF Retry Configuration
411
+ */
412
+ export interface PSFRetry {
413
+ /** Maximum retry attempts */
414
+ maxAttempts: number;
415
+ /** Delay between retries (ms) */
416
+ delay: number;
417
+ /** Exponential backoff factor */
418
+ backoff?: number;
419
+ }
420
+
421
+ /**
422
+ * PSF Error Handling
423
+ */
424
+ export interface PSFErrorHandling {
425
+ /** Global error handler */
426
+ handler?: PSFExpression;
427
+ /** Compensation flow */
428
+ compensation?: string;
429
+ /** Error policy */
430
+ policy: 'fail-fast' | 'continue' | 'compensate';
431
+ }
432
+
433
+ /**
434
+ * PSF Documentation
435
+ */
436
+ export interface PSFDocs {
437
+ /** Overview */
438
+ overview?: string;
439
+ /** Getting started guide */
440
+ gettingStarted?: string;
441
+ /** Examples */
442
+ examples?: PSFExample[];
443
+ /** Additional sections */
444
+ sections?: PSFDocSection[];
445
+ /** API documentation configuration */
446
+ api?: PSFAPIDoc;
447
+ }
448
+
449
+ /**
450
+ * PSF Documentation Hint (for individual elements)
451
+ */
452
+ export interface PSFDocsHint {
453
+ /** Brief summary */
454
+ summary?: string;
455
+ /** Detailed description */
456
+ details?: string;
457
+ /** Examples */
458
+ examples?: string[];
459
+ /** See also references */
460
+ seeAlso?: string[];
461
+ /** Tags for categorization */
462
+ tags?: string[];
463
+ /** Deprecation notice */
464
+ deprecated?: string | boolean;
465
+ }
466
+
467
+ /**
468
+ * PSF Example
469
+ */
470
+ export interface PSFExample {
471
+ /** Example name */
472
+ name: string;
473
+ /** Description */
474
+ description?: string;
475
+ /** Code snippet */
476
+ code: string;
477
+ /** Language */
478
+ language?: string;
479
+ }
480
+
481
+ /**
482
+ * PSF Documentation Section
483
+ */
484
+ export interface PSFDocSection {
485
+ /** Section title */
486
+ title: string;
487
+ /** Section content (markdown) */
488
+ content: string;
489
+ /** Subsections */
490
+ children?: PSFDocSection[];
491
+ }
492
+
493
+ /**
494
+ * PSF API Documentation Configuration
495
+ */
496
+ export interface PSFAPIDoc {
497
+ /** Generate API docs */
498
+ generate?: boolean;
499
+ /** Output format */
500
+ format?: 'markdown' | 'html' | 'json';
501
+ /** Include private members */
502
+ includePrivate?: boolean;
503
+ }
504
+
505
+ /**
506
+ * PSF Expression (can be inline or reference)
507
+ */
508
+ export type PSFExpression =
509
+ | { inline: string; language?: 'typescript' | 'javascript' }
510
+ | { ref: string };
511
+
512
+ /**
513
+ * PSF Position (for canvas layout)
514
+ */
515
+ export interface PSFPosition {
516
+ /** X coordinate */
517
+ x: number;
518
+ /** Y coordinate */
519
+ y: number;
520
+ /** Width (optional) */
521
+ width?: number;
522
+ /** Height (optional) */
523
+ height?: number;
524
+ }
525
+
526
+ /**
527
+ * PSF UI Hint (for form generation)
528
+ */
529
+ export interface PSFUIHint {
530
+ /** Display label */
531
+ label?: string;
532
+ /** Placeholder text */
533
+ placeholder?: string;
534
+ /** Help text */
535
+ help?: string;
536
+ /** Input type override */
537
+ inputType?: string;
538
+ /** Component to use */
539
+ component?: string;
540
+ /** Hidden from UI */
541
+ hidden?: boolean;
542
+ /** Read-only */
543
+ readonly?: boolean;
544
+ /** Display order */
545
+ order?: number;
546
+ }
547
+
548
+ /**
549
+ * PSF Payload Schema
550
+ */
551
+ export interface PSFPayloadSchema {
552
+ /** Schema type (usually 'object') */
553
+ type: 'object';
554
+ /** Properties */
555
+ properties: Record<string, PSFPropertySchema>;
556
+ /** Required properties */
557
+ required?: string[];
558
+ }
559
+
560
+ /**
561
+ * PSF Property Schema
562
+ */
563
+ export interface PSFPropertySchema {
564
+ /** Property type */
565
+ type: PSFFieldType | 'string' | 'number' | 'boolean' | 'array' | 'object';
566
+ /** Description */
567
+ description?: string;
568
+ /** Default value */
569
+ default?: unknown;
570
+ /** Array items schema */
571
+ items?: PSFPropertySchema;
572
+ /** Nested properties (for object type) */
573
+ properties?: Record<string, PSFPropertySchema>;
574
+ }
575
+
576
+ /**
577
+ * PSF Canvas Layout (for visual editor)
578
+ */
579
+ export interface PSFCanvasLayout {
580
+ /** Viewport settings */
581
+ viewport?: {
582
+ x: number;
583
+ y: number;
584
+ zoom: number;
585
+ };
586
+ /** Grid settings */
587
+ grid?: {
588
+ enabled: boolean;
589
+ size: number;
590
+ snap: boolean;
591
+ };
592
+ /** Node groups */
593
+ groups?: PSFCanvasGroup[];
594
+ /** Connections between nodes */
595
+ connections?: PSFCanvasConnection[];
596
+ }
597
+
598
+ /**
599
+ * PSF Canvas Group
600
+ */
601
+ export interface PSFCanvasGroup {
602
+ /** Group identifier */
603
+ id: string;
604
+ /** Group name */
605
+ name: string;
606
+ /** Color */
607
+ color?: string;
608
+ /** Collapsed state */
609
+ collapsed?: boolean;
610
+ /** Position */
611
+ position: PSFPosition;
612
+ /** Member node IDs */
613
+ members: string[];
614
+ }
615
+
616
+ /**
617
+ * PSF Canvas Connection
618
+ */
619
+ export interface PSFCanvasConnection {
620
+ /** Connection identifier */
621
+ id: string;
622
+ /** Source node ID */
623
+ source: string;
624
+ /** Source port */
625
+ sourcePort?: string;
626
+ /** Target node ID */
627
+ target: string;
628
+ /** Target port */
629
+ targetPort?: string;
630
+ /** Connection type */
631
+ type?: 'data' | 'control' | 'event';
632
+ /** Label */
633
+ label?: string;
634
+ }
635
+
636
+ /**
637
+ * Create an empty PSF Schema
638
+ */
639
+ export function createEmptyPSFSchema(id: string, name: string): PSFSchema {
640
+ return {
641
+ $version: PSF_VERSION,
642
+ id,
643
+ name,
644
+ createdAt: new Date().toISOString(),
645
+ modifiedAt: new Date().toISOString(),
646
+ facts: [],
647
+ events: [],
648
+ rules: [],
649
+ constraints: [],
650
+ models: [],
651
+ components: [],
652
+ flows: [],
653
+ docs: {},
654
+ };
655
+ }
656
+
657
+ /**
658
+ * Generate a unique ID for PSF elements
659
+ */
660
+ export function generatePSFId(prefix: string = ''): string {
661
+ const timestamp = Date.now().toString(36);
662
+ const random = Math.random().toString(36).substring(2, 8);
663
+ return prefix ? `${prefix}_${timestamp}_${random}` : `${timestamp}_${random}`;
664
+ }
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Schema Engine Types
3
+ *
4
+ * Re-exports types from the schema engine for external use.
5
+ */
6
+
7
+ // PSF Types
8
+ export type {
9
+ PSFSchema,
10
+ PSFFact,
11
+ PSFEvent,
12
+ PSFRule,
13
+ PSFConstraint,
14
+ PSFModel,
15
+ PSFComponent,
16
+ PSFFlow,
17
+ PSFFlowStep,
18
+ PSFField,
19
+ PSFFieldType,
20
+ PSFPayloadSchema,
21
+ PSFPropertySchema,
22
+ PSFExpression,
23
+ PSFPosition,
24
+ PSFLayout,
25
+ PSFStyling,
26
+ PSFValidation,
27
+ PSFRelationship,
28
+ PSFIndex,
29
+ PSFCanvasLayout,
30
+ PSFCanvasGroup,
31
+ PSFCanvasConnection,
32
+ PSFDocs,
33
+ PSFDocsHint,
34
+ PSFUIHint,
35
+ } from './psf.js';
36
+
37
+ // Compiler Types
38
+ export type {
39
+ DSLSchema,
40
+ DSLFact,
41
+ DSLEvent,
42
+ DSLRule,
43
+ DSLConstraint,
44
+ DSLModel,
45
+ DSLComponent,
46
+ CompilationResult,
47
+ CompilationError,
48
+ SourceLocation,
49
+ } from './compiler.js';
50
+
51
+ // Generator Types
52
+ export type {
53
+ GeneratorOptions,
54
+ GeneratedFile,
55
+ GenerationResult,
56
+ } from './generator.js';
57
+
58
+ // Validator Types
59
+ export type {
60
+ ValidationResult,
61
+ ValidationError,
62
+ ValidationOptions,
63
+ } from './validator.js';