@plures/praxis 1.0.3 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (530) hide show
  1. package/FRAMEWORK.md +55 -5
  2. package/README.md +162 -375
  3. package/core/codegen/docs-generator.ts +5 -2
  4. package/core/codegen/index.ts +1 -1
  5. package/core/db-adapter/index.ts +2 -2
  6. package/core/db-adapter/sync-engine.ts +17 -6
  7. package/core/logic-engine/engine.ts +1 -1
  8. package/core/logic-engine/index.ts +2 -2
  9. package/core/logic-engine/protocol.ts +1 -1
  10. package/core/logic-engine/psf-adapter.ts +8 -4
  11. package/core/logic-engine/rules.ts +1 -1
  12. package/core/schema-engine/compiler.ts +53 -11
  13. package/core/schema-engine/generator.ts +17 -7
  14. package/core/schema-engine/index.ts +2 -2
  15. package/core/schema-engine/psf.ts +12 -3
  16. package/core/schema-engine/types.ts +3 -11
  17. package/core/schema-engine/validator.ts +112 -22
  18. package/dist/browser/engine-BjdqxeXG.d.ts +333 -0
  19. package/dist/browser/index.d.ts +3004 -0
  20. package/dist/browser/index.js +2892 -0
  21. package/dist/{src → browser}/integrations/svelte.d.ts +19 -17
  22. package/dist/browser/integrations/svelte.js +298 -0
  23. package/dist/node/auth-STARLY7I.js +207 -0
  24. package/dist/node/build-Y7OT5VBF.js +144 -0
  25. package/dist/node/canvas-UERZHJYW.js +362 -0
  26. package/dist/node/chunk-DSDC2JWZ.js +256 -0
  27. package/dist/node/chunk-FXQZXAWF.js +175 -0
  28. package/dist/node/chunk-N5Y37EUV.js +202 -0
  29. package/dist/node/chunk-QGM4M3NI.js +37 -0
  30. package/dist/node/chunk-RJMWCNHR.js +175 -0
  31. package/dist/node/chunk-SRM3OPPM.js +404 -0
  32. package/dist/node/chunk-UATVJBNV.js +175 -0
  33. package/dist/node/chunk-UY7YEBE2.js +159 -0
  34. package/dist/node/chunk-XCY2VIFX.js +143 -0
  35. package/dist/node/chunk-YXH4Y7ZZ.js +349 -0
  36. package/dist/node/cli/index.cjs +215139 -0
  37. package/dist/node/cli/index.d.cts +1 -0
  38. package/dist/node/cli/index.d.ts +1 -0
  39. package/dist/node/cli/index.js +690 -0
  40. package/dist/node/cloud/index.cjs +1043 -0
  41. package/dist/node/cloud/index.d.cts +864 -0
  42. package/dist/node/cloud/index.d.ts +864 -0
  43. package/dist/node/cloud/index.js +456 -0
  44. package/dist/node/cloud-AXOK4PSN.js +212 -0
  45. package/dist/node/component.cjs +374 -0
  46. package/dist/node/component.d.cts +125 -0
  47. package/dist/{src/core/component/generator.d.ts → node/component.d.ts} +11 -8
  48. package/dist/node/component.js +9 -0
  49. package/dist/node/components/index.cjs +216 -0
  50. package/dist/node/components/index.d.cts +43 -0
  51. package/dist/{src → node}/components/index.d.ts +8 -8
  52. package/dist/node/components/index.js +7 -0
  53. package/dist/node/create-TRLSVCNQ.js +584 -0
  54. package/dist/node/dev-PMJZUYGE.js +65 -0
  55. package/dist/node/engine-1iqLe6_P.d.ts +214 -0
  56. package/dist/node/engine-CVJobhHm.d.cts +214 -0
  57. package/dist/node/index.cjs +3247 -0
  58. package/dist/node/index.d.cts +2579 -0
  59. package/dist/node/index.d.ts +2579 -0
  60. package/dist/node/index.js +2098 -0
  61. package/dist/node/integrations/svelte.cjs +330 -0
  62. package/dist/node/integrations/svelte.d.cts +309 -0
  63. package/dist/node/integrations/svelte.d.ts +309 -0
  64. package/dist/node/integrations/svelte.js +300 -0
  65. package/dist/node/orchestrate-737TCL5H.js +127 -0
  66. package/dist/{src/core/protocol.d.ts → node/protocol-Qek7ebBl.d.cts} +11 -10
  67. package/dist/node/protocol-Qek7ebBl.d.ts +122 -0
  68. package/dist/node/schema.cjs +200 -0
  69. package/dist/{src/core/schema/types.d.ts → node/schema.d.cts} +30 -29
  70. package/dist/node/schema.d.ts +371 -0
  71. package/dist/node/schema.js +9 -0
  72. package/dist/{src/runtime/terminal-adapter.d.ts → node/terminal-adapter-07HGftGQ.d.ts} +86 -11
  73. package/dist/node/terminal-adapter-XLtCjjb_.d.cts +231 -0
  74. package/dist/node/verify-QRYKRIDU.js +210960 -0
  75. package/docs/MONETIZATION.md +21 -16
  76. package/docs/REACTIVE_REDESIGN.md +132 -0
  77. package/docs/README.md +47 -36
  78. package/docs/SVELTE_INTEGRATION_STRATEGY.md +68 -0
  79. package/docs/TERMINAL_NODE.md +27 -24
  80. package/docs/core/building-extensions.md +58 -61
  81. package/docs/core/cli-usage.md +59 -59
  82. package/docs/core/code-canvas-sync.md +28 -16
  83. package/docs/core/logic-engine.md +77 -82
  84. package/docs/core/pluresdb-integration.md +29 -39
  85. package/docs/core/schema-model.md +66 -52
  86. package/docs/core/ui-generation.md +57 -49
  87. package/docs/core/what-is-praxis.md +32 -15
  88. package/docs/guides/canvas.md +21 -5
  89. package/docs/guides/getting-started.md +13 -7
  90. package/docs/guides/history-state-pattern.md +65 -51
  91. package/docs/guides/orchestration.md +46 -32
  92. package/docs/guides/parallel-state-pattern.md +56 -72
  93. package/docs/guides/svelte-integration.md +45 -53
  94. package/docs/tutorials/README.md +16 -0
  95. package/docs/tutorials/ecommerce-cart.md +177 -95
  96. package/docs/tutorials/first-app.md +26 -41
  97. package/docs/tutorials/form-builder.md +191 -138
  98. package/docs/tutorials/todo-pluresdb.md +71 -69
  99. package/package.json +58 -23
  100. package/src/__tests__/actors.test.ts +68 -68
  101. package/src/__tests__/billing.test.ts +32 -32
  102. package/src/__tests__/canvas-components.test.ts +94 -73
  103. package/src/__tests__/cli-create.test.ts +28 -28
  104. package/src/__tests__/cloud.test.ts +36 -36
  105. package/src/__tests__/code-canvas-integration.test.ts +132 -141
  106. package/src/__tests__/docs-generator.test.ts +3 -9
  107. package/src/__tests__/dsl.test.ts +58 -64
  108. package/src/__tests__/edge-cases.test.ts +106 -108
  109. package/src/__tests__/engine.test.ts +51 -25
  110. package/src/__tests__/generators.test.ts +42 -44
  111. package/src/__tests__/introspection.test.ts +104 -114
  112. package/src/__tests__/pluresdb.test.ts +189 -187
  113. package/src/__tests__/protocol.test.ts +15 -15
  114. package/src/__tests__/provisioning.test.ts +61 -61
  115. package/src/__tests__/schema.test.ts +7 -11
  116. package/src/__tests__/state-docs-integration.test.ts +162 -145
  117. package/src/__tests__/svelte-integration.test.ts +16 -19
  118. package/src/__tests__/tauri-integration.test.ts +149 -147
  119. package/src/__tests__/terminal-node.test.ts +12 -7
  120. package/src/__tests__/unum-integration.test.ts +68 -68
  121. package/src/adapters/cli.ts +21 -15
  122. package/src/cli/commands/auth.ts +82 -78
  123. package/src/cli/commands/build.ts +29 -27
  124. package/src/cli/commands/canvas.ts +338 -127
  125. package/src/cli/commands/cloud.ts +47 -47
  126. package/src/cli/commands/create.ts +59 -47
  127. package/src/cli/commands/dev.ts +12 -12
  128. package/src/cli/commands/generate.ts +29 -40
  129. package/src/cli/commands/orchestrate.ts +24 -24
  130. package/src/cli/commands/verify.ts +7 -8
  131. package/src/cli/index.ts +14 -10
  132. package/src/cloud/README.md +28 -15
  133. package/src/cloud/auth.ts +55 -70
  134. package/src/cloud/billing.ts +59 -58
  135. package/src/cloud/client.ts +29 -35
  136. package/src/cloud/index.ts +19 -40
  137. package/src/cloud/marketplace.ts +69 -78
  138. package/src/cloud/provisioning.ts +42 -51
  139. package/src/cloud/relay/endpoints.ts +30 -34
  140. package/src/cloud/relay/health/index.ts +1 -1
  141. package/src/cloud/relay/stats/index.ts +1 -1
  142. package/src/cloud/relay/sync/index.ts +1 -1
  143. package/src/cloud/relay/usage/index.ts +1 -1
  144. package/src/cloud/sponsors.ts +31 -34
  145. package/src/cloud/types.ts +4 -4
  146. package/src/components/README.md +1 -0
  147. package/src/components/index.ts +3 -4
  148. package/src/core/actors.ts +7 -7
  149. package/src/core/component/generator.ts +10 -28
  150. package/src/core/engine.ts +51 -24
  151. package/src/core/introspection.ts +37 -35
  152. package/src/core/logic/generator.ts +62 -62
  153. package/src/core/pluresdb/adapter.ts +8 -8
  154. package/src/core/pluresdb/generator.ts +39 -35
  155. package/src/core/pluresdb/index.ts +9 -12
  156. package/src/core/pluresdb/schema-registry.ts +22 -25
  157. package/src/core/pluresdb/store.ts +57 -57
  158. package/src/core/protocol.ts +14 -14
  159. package/src/core/reactive-engine.svelte.ts +65 -0
  160. package/src/core/reactive-engine.ts +67 -0
  161. package/src/core/rules.ts +4 -4
  162. package/src/core/schema/loader.common.ts +150 -0
  163. package/src/core/schema/loader.ts +19 -149
  164. package/src/core/schema/normalize.ts +34 -51
  165. package/src/core/schema/types.ts +47 -11
  166. package/src/dsl/index.ts +8 -8
  167. package/src/dsl.ts +11 -17
  168. package/src/examples/advanced-todo/README.md +58 -40
  169. package/src/examples/advanced-todo/index.ts +3 -3
  170. package/src/examples/auth-basic/index.ts +30 -30
  171. package/src/examples/cart/index.ts +50 -50
  172. package/src/examples/hero-ecommerce/index.ts +130 -157
  173. package/src/examples/svelte-counter/index.ts +22 -26
  174. package/src/flows.ts +6 -17
  175. package/src/index.browser.ts +204 -0
  176. package/src/index.ts +37 -42
  177. package/src/integrations/code-canvas.ts +237 -193
  178. package/src/integrations/pluresdb.ts +55 -35
  179. package/src/integrations/state-docs.ts +104 -104
  180. package/src/integrations/svelte.ts +35 -35
  181. package/src/integrations/tauri.ts +75 -73
  182. package/src/integrations/unum.ts +68 -61
  183. package/src/registry.ts +7 -14
  184. package/src/runtime/terminal-adapter.ts +31 -26
  185. package/src/step.ts +10 -16
  186. package/src/types.ts +1 -1
  187. package/templates/basic-app/README.md +6 -9
  188. package/templates/fullstack-app/README.md +10 -0
  189. package/dist/core/codegen/docs-generator.d.ts +0 -123
  190. package/dist/core/codegen/docs-generator.d.ts.map +0 -1
  191. package/dist/core/codegen/docs-generator.js +0 -674
  192. package/dist/core/codegen/docs-generator.js.map +0 -1
  193. package/dist/core/codegen/index.d.ts +0 -11
  194. package/dist/core/codegen/index.d.ts.map +0 -1
  195. package/dist/core/codegen/index.js +0 -13
  196. package/dist/core/codegen/index.js.map +0 -1
  197. package/dist/core/codegen/ts-generator.d.ts +0 -8
  198. package/dist/core/codegen/ts-generator.d.ts.map +0 -1
  199. package/dist/core/codegen/ts-generator.js +0 -8
  200. package/dist/core/codegen/ts-generator.js.map +0 -1
  201. package/dist/core/db-adapter/index.d.ts +0 -18
  202. package/dist/core/db-adapter/index.d.ts.map +0 -1
  203. package/dist/core/db-adapter/index.js +0 -23
  204. package/dist/core/db-adapter/index.js.map +0 -1
  205. package/dist/core/db-adapter/sync-engine.d.ts +0 -180
  206. package/dist/core/db-adapter/sync-engine.d.ts.map +0 -1
  207. package/dist/core/db-adapter/sync-engine.js +0 -342
  208. package/dist/core/db-adapter/sync-engine.js.map +0 -1
  209. package/dist/core/logic-engine/engine.d.ts +0 -8
  210. package/dist/core/logic-engine/engine.d.ts.map +0 -1
  211. package/dist/core/logic-engine/engine.js +0 -8
  212. package/dist/core/logic-engine/engine.js.map +0 -1
  213. package/dist/core/logic-engine/index.d.ts +0 -16
  214. package/dist/core/logic-engine/index.d.ts.map +0 -1
  215. package/dist/core/logic-engine/index.js +0 -16
  216. package/dist/core/logic-engine/index.js.map +0 -1
  217. package/dist/core/logic-engine/protocol.d.ts +0 -7
  218. package/dist/core/logic-engine/protocol.d.ts.map +0 -1
  219. package/dist/core/logic-engine/protocol.js +0 -7
  220. package/dist/core/logic-engine/protocol.js.map +0 -1
  221. package/dist/core/logic-engine/psf-adapter.d.ts +0 -88
  222. package/dist/core/logic-engine/psf-adapter.d.ts.map +0 -1
  223. package/dist/core/logic-engine/psf-adapter.js +0 -207
  224. package/dist/core/logic-engine/psf-adapter.js.map +0 -1
  225. package/dist/core/logic-engine/rules.d.ts +0 -7
  226. package/dist/core/logic-engine/rules.d.ts.map +0 -1
  227. package/dist/core/logic-engine/rules.js +0 -7
  228. package/dist/core/logic-engine/rules.js.map +0 -1
  229. package/dist/core/schema-engine/compiler.d.ts +0 -198
  230. package/dist/core/schema-engine/compiler.d.ts.map +0 -1
  231. package/dist/core/schema-engine/compiler.js +0 -262
  232. package/dist/core/schema-engine/compiler.js.map +0 -1
  233. package/dist/core/schema-engine/generator.d.ts +0 -115
  234. package/dist/core/schema-engine/generator.d.ts.map +0 -1
  235. package/dist/core/schema-engine/generator.js +0 -506
  236. package/dist/core/schema-engine/generator.js.map +0 -1
  237. package/dist/core/schema-engine/index.d.ts +0 -18
  238. package/dist/core/schema-engine/index.d.ts.map +0 -1
  239. package/dist/core/schema-engine/index.js +0 -18
  240. package/dist/core/schema-engine/index.js.map +0 -1
  241. package/dist/core/schema-engine/psf.d.ts +0 -612
  242. package/dist/core/schema-engine/psf.d.ts.map +0 -1
  243. package/dist/core/schema-engine/psf.js +0 -45
  244. package/dist/core/schema-engine/psf.js.map +0 -1
  245. package/dist/core/schema-engine/types.d.ts +0 -10
  246. package/dist/core/schema-engine/types.d.ts.map +0 -1
  247. package/dist/core/schema-engine/types.js +0 -7
  248. package/dist/core/schema-engine/types.js.map +0 -1
  249. package/dist/core/schema-engine/validator.d.ts +0 -140
  250. package/dist/core/schema-engine/validator.d.ts.map +0 -1
  251. package/dist/core/schema-engine/validator.js +0 -407
  252. package/dist/core/schema-engine/validator.js.map +0 -1
  253. package/dist/src/adapters/cli.d.ts +0 -43
  254. package/dist/src/adapters/cli.d.ts.map +0 -1
  255. package/dist/src/adapters/cli.js +0 -126
  256. package/dist/src/adapters/cli.js.map +0 -1
  257. package/dist/src/cli/commands/auth.d.ts +0 -26
  258. package/dist/src/cli/commands/auth.d.ts.map +0 -1
  259. package/dist/src/cli/commands/auth.js +0 -233
  260. package/dist/src/cli/commands/auth.js.map +0 -1
  261. package/dist/src/cli/commands/build.d.ts +0 -23
  262. package/dist/src/cli/commands/build.d.ts.map +0 -1
  263. package/dist/src/cli/commands/build.js +0 -162
  264. package/dist/src/cli/commands/build.js.map +0 -1
  265. package/dist/src/cli/commands/canvas.d.ts +0 -23
  266. package/dist/src/cli/commands/canvas.d.ts.map +0 -1
  267. package/dist/src/cli/commands/canvas.js +0 -215
  268. package/dist/src/cli/commands/canvas.js.map +0 -1
  269. package/dist/src/cli/commands/cloud.d.ts +0 -27
  270. package/dist/src/cli/commands/cloud.d.ts.map +0 -1
  271. package/dist/src/cli/commands/cloud.js +0 -232
  272. package/dist/src/cli/commands/cloud.js.map +0 -1
  273. package/dist/src/cli/commands/create.d.ts +0 -21
  274. package/dist/src/cli/commands/create.d.ts.map +0 -1
  275. package/dist/src/cli/commands/create.js +0 -621
  276. package/dist/src/cli/commands/create.js.map +0 -1
  277. package/dist/src/cli/commands/dev.d.ts +0 -21
  278. package/dist/src/cli/commands/dev.d.ts.map +0 -1
  279. package/dist/src/cli/commands/dev.js +0 -71
  280. package/dist/src/cli/commands/dev.js.map +0 -1
  281. package/dist/src/cli/commands/generate.d.ts +0 -25
  282. package/dist/src/cli/commands/generate.d.ts.map +0 -1
  283. package/dist/src/cli/commands/generate.js +0 -168
  284. package/dist/src/cli/commands/generate.js.map +0 -1
  285. package/dist/src/cli/commands/orchestrate.d.ts +0 -44
  286. package/dist/src/cli/commands/orchestrate.d.ts.map +0 -1
  287. package/dist/src/cli/commands/orchestrate.js +0 -150
  288. package/dist/src/cli/commands/orchestrate.js.map +0 -1
  289. package/dist/src/cli/commands/verify.d.ts +0 -10
  290. package/dist/src/cli/commands/verify.d.ts.map +0 -1
  291. package/dist/src/cli/commands/verify.js +0 -39
  292. package/dist/src/cli/commands/verify.js.map +0 -1
  293. package/dist/src/cli/index.d.ts +0 -8
  294. package/dist/src/cli/index.d.ts.map +0 -1
  295. package/dist/src/cli/index.js +0 -226
  296. package/dist/src/cli/index.js.map +0 -1
  297. package/dist/src/cloud/auth.d.ts +0 -51
  298. package/dist/src/cloud/auth.d.ts.map +0 -1
  299. package/dist/src/cloud/auth.js +0 -194
  300. package/dist/src/cloud/auth.js.map +0 -1
  301. package/dist/src/cloud/billing.d.ts +0 -184
  302. package/dist/src/cloud/billing.d.ts.map +0 -1
  303. package/dist/src/cloud/billing.js +0 -179
  304. package/dist/src/cloud/billing.js.map +0 -1
  305. package/dist/src/cloud/client.d.ts +0 -39
  306. package/dist/src/cloud/client.d.ts.map +0 -1
  307. package/dist/src/cloud/client.js +0 -176
  308. package/dist/src/cloud/client.js.map +0 -1
  309. package/dist/src/cloud/index.d.ts +0 -44
  310. package/dist/src/cloud/index.d.ts.map +0 -1
  311. package/dist/src/cloud/index.js +0 -44
  312. package/dist/src/cloud/index.js.map +0 -1
  313. package/dist/src/cloud/marketplace.d.ts +0 -166
  314. package/dist/src/cloud/marketplace.d.ts.map +0 -1
  315. package/dist/src/cloud/marketplace.js +0 -159
  316. package/dist/src/cloud/marketplace.js.map +0 -1
  317. package/dist/src/cloud/provisioning.d.ts +0 -110
  318. package/dist/src/cloud/provisioning.d.ts.map +0 -1
  319. package/dist/src/cloud/provisioning.js +0 -148
  320. package/dist/src/cloud/provisioning.js.map +0 -1
  321. package/dist/src/cloud/relay/endpoints.d.ts +0 -62
  322. package/dist/src/cloud/relay/endpoints.d.ts.map +0 -1
  323. package/dist/src/cloud/relay/endpoints.js +0 -217
  324. package/dist/src/cloud/relay/endpoints.js.map +0 -1
  325. package/dist/src/cloud/relay/health/index.d.ts +0 -5
  326. package/dist/src/cloud/relay/health/index.d.ts.map +0 -1
  327. package/dist/src/cloud/relay/health/index.js +0 -9
  328. package/dist/src/cloud/relay/health/index.js.map +0 -1
  329. package/dist/src/cloud/relay/stats/index.d.ts +0 -5
  330. package/dist/src/cloud/relay/stats/index.d.ts.map +0 -1
  331. package/dist/src/cloud/relay/stats/index.js +0 -9
  332. package/dist/src/cloud/relay/stats/index.js.map +0 -1
  333. package/dist/src/cloud/relay/sync/index.d.ts +0 -5
  334. package/dist/src/cloud/relay/sync/index.d.ts.map +0 -1
  335. package/dist/src/cloud/relay/sync/index.js +0 -9
  336. package/dist/src/cloud/relay/sync/index.js.map +0 -1
  337. package/dist/src/cloud/relay/usage/index.d.ts +0 -5
  338. package/dist/src/cloud/relay/usage/index.d.ts.map +0 -1
  339. package/dist/src/cloud/relay/usage/index.js +0 -9
  340. package/dist/src/cloud/relay/usage/index.js.map +0 -1
  341. package/dist/src/cloud/sponsors.d.ts +0 -81
  342. package/dist/src/cloud/sponsors.d.ts.map +0 -1
  343. package/dist/src/cloud/sponsors.js +0 -130
  344. package/dist/src/cloud/sponsors.js.map +0 -1
  345. package/dist/src/cloud/types.d.ts +0 -169
  346. package/dist/src/cloud/types.d.ts.map +0 -1
  347. package/dist/src/cloud/types.js +0 -7
  348. package/dist/src/cloud/types.js.map +0 -1
  349. package/dist/src/components/index.d.ts.map +0 -1
  350. package/dist/src/components/index.js +0 -17
  351. package/dist/src/components/index.js.map +0 -1
  352. package/dist/src/core/actors.d.ts +0 -95
  353. package/dist/src/core/actors.d.ts.map +0 -1
  354. package/dist/src/core/actors.js +0 -158
  355. package/dist/src/core/actors.js.map +0 -1
  356. package/dist/src/core/component/generator.d.ts.map +0 -1
  357. package/dist/src/core/component/generator.js +0 -349
  358. package/dist/src/core/component/generator.js.map +0 -1
  359. package/dist/src/core/engine.d.ts +0 -92
  360. package/dist/src/core/engine.d.ts.map +0 -1
  361. package/dist/src/core/engine.js +0 -199
  362. package/dist/src/core/engine.js.map +0 -1
  363. package/dist/src/core/introspection.d.ts +0 -141
  364. package/dist/src/core/introspection.d.ts.map +0 -1
  365. package/dist/src/core/introspection.js +0 -208
  366. package/dist/src/core/introspection.js.map +0 -1
  367. package/dist/src/core/logic/generator.d.ts +0 -76
  368. package/dist/src/core/logic/generator.d.ts.map +0 -1
  369. package/dist/src/core/logic/generator.js +0 -370
  370. package/dist/src/core/logic/generator.js.map +0 -1
  371. package/dist/src/core/pluresdb/adapter.d.ts +0 -72
  372. package/dist/src/core/pluresdb/adapter.d.ts.map +0 -1
  373. package/dist/src/core/pluresdb/adapter.js +0 -73
  374. package/dist/src/core/pluresdb/adapter.js.map +0 -1
  375. package/dist/src/core/pluresdb/generator.d.ts +0 -58
  376. package/dist/src/core/pluresdb/generator.d.ts.map +0 -1
  377. package/dist/src/core/pluresdb/generator.js +0 -191
  378. package/dist/src/core/pluresdb/generator.js.map +0 -1
  379. package/dist/src/core/pluresdb/index.d.ts +0 -15
  380. package/dist/src/core/pluresdb/index.d.ts.map +0 -1
  381. package/dist/src/core/pluresdb/index.js +0 -11
  382. package/dist/src/core/pluresdb/index.js.map +0 -1
  383. package/dist/src/core/pluresdb/schema-registry.d.ts +0 -104
  384. package/dist/src/core/pluresdb/schema-registry.d.ts.map +0 -1
  385. package/dist/src/core/pluresdb/schema-registry.js +0 -130
  386. package/dist/src/core/pluresdb/schema-registry.js.map +0 -1
  387. package/dist/src/core/pluresdb/store.d.ts +0 -199
  388. package/dist/src/core/pluresdb/store.d.ts.map +0 -1
  389. package/dist/src/core/pluresdb/store.js +0 -344
  390. package/dist/src/core/pluresdb/store.js.map +0 -1
  391. package/dist/src/core/protocol.d.ts.map +0 -1
  392. package/dist/src/core/protocol.js +0 -46
  393. package/dist/src/core/protocol.js.map +0 -1
  394. package/dist/src/core/rules.d.ts +0 -120
  395. package/dist/src/core/rules.d.ts.map +0 -1
  396. package/dist/src/core/rules.js +0 -81
  397. package/dist/src/core/rules.js.map +0 -1
  398. package/dist/src/core/schema/loader.d.ts +0 -47
  399. package/dist/src/core/schema/loader.d.ts.map +0 -1
  400. package/dist/src/core/schema/loader.js +0 -189
  401. package/dist/src/core/schema/loader.js.map +0 -1
  402. package/dist/src/core/schema/normalize.d.ts +0 -72
  403. package/dist/src/core/schema/normalize.d.ts.map +0 -1
  404. package/dist/src/core/schema/normalize.js +0 -190
  405. package/dist/src/core/schema/normalize.js.map +0 -1
  406. package/dist/src/core/schema/types.d.ts.map +0 -1
  407. package/dist/src/core/schema/types.js +0 -161
  408. package/dist/src/core/schema/types.js.map +0 -1
  409. package/dist/src/dsl/index.d.ts +0 -152
  410. package/dist/src/dsl/index.d.ts.map +0 -1
  411. package/dist/src/dsl/index.js +0 -132
  412. package/dist/src/dsl/index.js.map +0 -1
  413. package/dist/src/dsl.d.ts +0 -124
  414. package/dist/src/dsl.d.ts.map +0 -1
  415. package/dist/src/dsl.js +0 -130
  416. package/dist/src/dsl.js.map +0 -1
  417. package/dist/src/examples/advanced-todo/index.d.ts +0 -55
  418. package/dist/src/examples/advanced-todo/index.d.ts.map +0 -1
  419. package/dist/src/examples/advanced-todo/index.js +0 -222
  420. package/dist/src/examples/advanced-todo/index.js.map +0 -1
  421. package/dist/src/examples/auth-basic/index.d.ts +0 -17
  422. package/dist/src/examples/auth-basic/index.d.ts.map +0 -1
  423. package/dist/src/examples/auth-basic/index.js +0 -122
  424. package/dist/src/examples/auth-basic/index.js.map +0 -1
  425. package/dist/src/examples/cart/index.d.ts +0 -19
  426. package/dist/src/examples/cart/index.d.ts.map +0 -1
  427. package/dist/src/examples/cart/index.js +0 -202
  428. package/dist/src/examples/cart/index.js.map +0 -1
  429. package/dist/src/examples/hero-ecommerce/index.d.ts +0 -39
  430. package/dist/src/examples/hero-ecommerce/index.d.ts.map +0 -1
  431. package/dist/src/examples/hero-ecommerce/index.js +0 -506
  432. package/dist/src/examples/hero-ecommerce/index.js.map +0 -1
  433. package/dist/src/examples/svelte-counter/index.d.ts +0 -31
  434. package/dist/src/examples/svelte-counter/index.d.ts.map +0 -1
  435. package/dist/src/examples/svelte-counter/index.js +0 -123
  436. package/dist/src/examples/svelte-counter/index.js.map +0 -1
  437. package/dist/src/flows.d.ts +0 -125
  438. package/dist/src/flows.d.ts.map +0 -1
  439. package/dist/src/flows.js +0 -160
  440. package/dist/src/flows.js.map +0 -1
  441. package/dist/src/index.d.ts +0 -77
  442. package/dist/src/index.d.ts.map +0 -1
  443. package/dist/src/index.js +0 -64
  444. package/dist/src/index.js.map +0 -1
  445. package/dist/src/integrations/code-canvas.d.ts +0 -265
  446. package/dist/src/integrations/code-canvas.d.ts.map +0 -1
  447. package/dist/src/integrations/code-canvas.js +0 -451
  448. package/dist/src/integrations/code-canvas.js.map +0 -1
  449. package/dist/src/integrations/pluresdb.d.ts +0 -117
  450. package/dist/src/integrations/pluresdb.d.ts.map +0 -1
  451. package/dist/src/integrations/pluresdb.js +0 -117
  452. package/dist/src/integrations/pluresdb.js.map +0 -1
  453. package/dist/src/integrations/state-docs.d.ts +0 -191
  454. package/dist/src/integrations/state-docs.d.ts.map +0 -1
  455. package/dist/src/integrations/state-docs.js +0 -515
  456. package/dist/src/integrations/state-docs.js.map +0 -1
  457. package/dist/src/integrations/svelte.d.ts.map +0 -1
  458. package/dist/src/integrations/svelte.js +0 -447
  459. package/dist/src/integrations/svelte.js.map +0 -1
  460. package/dist/src/integrations/tauri.d.ts +0 -360
  461. package/dist/src/integrations/tauri.d.ts.map +0 -1
  462. package/dist/src/integrations/tauri.js +0 -278
  463. package/dist/src/integrations/tauri.js.map +0 -1
  464. package/dist/src/integrations/unum.d.ts +0 -159
  465. package/dist/src/integrations/unum.d.ts.map +0 -1
  466. package/dist/src/integrations/unum.js +0 -240
  467. package/dist/src/integrations/unum.js.map +0 -1
  468. package/dist/src/registry.d.ts +0 -94
  469. package/dist/src/registry.d.ts.map +0 -1
  470. package/dist/src/registry.js +0 -181
  471. package/dist/src/registry.js.map +0 -1
  472. package/dist/src/runtime/terminal-adapter.d.ts.map +0 -1
  473. package/dist/src/runtime/terminal-adapter.js +0 -239
  474. package/dist/src/runtime/terminal-adapter.js.map +0 -1
  475. package/dist/src/step.d.ts +0 -34
  476. package/dist/src/step.d.ts.map +0 -1
  477. package/dist/src/step.js +0 -111
  478. package/dist/src/step.js.map +0 -1
  479. package/dist/src/types.d.ts +0 -63
  480. package/dist/src/types.d.ts.map +0 -1
  481. package/dist/src/types.js +0 -6
  482. package/dist/src/types.js.map +0 -1
  483. package/dist/tools/ast-analyzer/src/ast-analyzer.d.ts +0 -8
  484. package/dist/tools/ast-analyzer/src/ast-analyzer.d.ts.map +0 -1
  485. package/dist/tools/ast-analyzer/src/ast-analyzer.js +0 -119
  486. package/dist/tools/ast-analyzer/src/ast-analyzer.js.map +0 -1
  487. package/dist/tools/cli/commands/index.d.ts +0 -7
  488. package/dist/tools/cli/commands/index.d.ts.map +0 -1
  489. package/dist/tools/cli/commands/index.js +0 -7
  490. package/dist/tools/cli/commands/index.js.map +0 -1
  491. package/dist/tools/cli/index.d.ts +0 -8
  492. package/dist/tools/cli/index.d.ts.map +0 -1
  493. package/dist/tools/cli/index.js +0 -9
  494. package/dist/tools/cli/index.js.map +0 -1
  495. package/dist/tools/watcher/index.d.ts +0 -105
  496. package/dist/tools/watcher/index.d.ts.map +0 -1
  497. package/dist/tools/watcher/index.js +0 -213
  498. package/dist/tools/watcher/index.js.map +0 -1
  499. package/dist/ui/canvas/canvas-projection.d.ts +0 -78
  500. package/dist/ui/canvas/canvas-projection.d.ts.map +0 -1
  501. package/dist/ui/canvas/canvas-projection.js +0 -416
  502. package/dist/ui/canvas/canvas-projection.js.map +0 -1
  503. package/dist/ui/canvas/canvas-state.d.ts +0 -200
  504. package/dist/ui/canvas/canvas-state.d.ts.map +0 -1
  505. package/dist/ui/canvas/canvas-state.js +0 -464
  506. package/dist/ui/canvas/canvas-state.js.map +0 -1
  507. package/dist/ui/canvas/components/index.d.ts +0 -95
  508. package/dist/ui/canvas/components/index.d.ts.map +0 -1
  509. package/dist/ui/canvas/components/index.js +0 -19
  510. package/dist/ui/canvas/components/index.js.map +0 -1
  511. package/dist/ui/canvas/index.d.ts +0 -32
  512. package/dist/ui/canvas/index.d.ts.map +0 -1
  513. package/dist/ui/canvas/index.js +0 -32
  514. package/dist/ui/canvas/index.js.map +0 -1
  515. package/dist/ui/canvas-inspector/src/server.d.ts +0 -2
  516. package/dist/ui/canvas-inspector/src/server.d.ts.map +0 -1
  517. package/dist/ui/canvas-inspector/src/server.js +0 -248
  518. package/dist/ui/canvas-inspector/src/server.js.map +0 -1
  519. package/dist/ui/canvas-inspector/src/verify-fsm-implementation.d.ts +0 -5
  520. package/dist/ui/canvas-inspector/src/verify-fsm-implementation.d.ts.map +0 -1
  521. package/dist/ui/canvas-inspector/src/verify-fsm-implementation.js +0 -58
  522. package/dist/ui/canvas-inspector/src/verify-fsm-implementation.js.map +0 -1
  523. package/dist/ui/svelte-generator/index.d.ts +0 -9
  524. package/dist/ui/svelte-generator/index.d.ts.map +0 -1
  525. package/dist/ui/svelte-generator/index.js +0 -11
  526. package/dist/ui/svelte-generator/index.js.map +0 -1
  527. package/dist/ui/svelte-generator/psf-generator.d.ts +0 -128
  528. package/dist/ui/svelte-generator/psf-generator.d.ts.map +0 -1
  529. package/dist/ui/svelte-generator/psf-generator.js +0 -506
  530. package/dist/ui/svelte-generator/psf-generator.js.map +0 -1
@@ -7,6 +7,7 @@ Praxis is a **schema-driven application framework** that unifies data modeling,
7
7
  ### 1. Schema as Single Source of Truth
8
8
 
9
9
  In Praxis, everything starts with a schema. The **Praxis Schema Format (PSF)** defines your:
10
+
10
11
  - Data models and relationships
11
12
  - Business logic (facts, events, rules, constraints)
12
13
  - UI components and their behavior
@@ -14,6 +15,7 @@ In Praxis, everything starts with a schema. The **Praxis Schema Format (PSF)** d
14
15
  - Documentation and diagrams
15
16
 
16
17
  From this single schema, Praxis generates:
18
+
17
19
  - TypeScript types and interfaces
18
20
  - Svelte UI components
19
21
  - Database schemas for PluresDB
@@ -23,12 +25,14 @@ From this single schema, Praxis generates:
23
25
  ### 2. Pure, Functional Logic
24
26
 
25
27
  The Praxis logic engine is built on pure functions:
28
+
26
29
  - **Facts**: Typed propositions about your domain ("User is logged in", "Cart contains 3 items")
27
30
  - **Events**: Things that happen ("User clicked login", "Item added to cart")
28
31
  - **Rules**: Pure functions that derive facts from events
29
32
  - **Constraints**: Invariants that must always hold
30
33
 
31
34
  This makes your application logic:
35
+
32
36
  - Predictable and testable
33
37
  - Serializable (JSON-friendly for cross-language support)
34
38
  - Easy to reason about and debug
@@ -36,6 +40,7 @@ This makes your application logic:
36
40
  ### 3. Local-First by Default
37
41
 
38
42
  Praxis applications work offline first:
43
+
39
44
  - Data stored locally in PluresDB
40
45
  - Changes sync when connected
41
46
  - Conflict resolution built-in
@@ -44,6 +49,7 @@ Praxis applications work offline first:
44
49
  ### 4. Visual and Code Workflows
45
50
 
46
51
  Praxis supports both visual and code-based development:
52
+
47
53
  - **CodeCanvas**: Visual schema and logic editor
48
54
  - **Code-first**: Write TypeScript schemas directly
49
55
  - **Bidirectional sync**: Changes in either flow back to the other
@@ -55,36 +61,36 @@ flowchart LR
55
61
  subgraph Define["1. Define Schema"]
56
62
  PSF[schema.psf.json]
57
63
  end
58
-
64
+
59
65
  subgraph Generate["2. Generate Code"]
60
66
  Types[Types]
61
67
  Components[Components]
62
68
  Logic[Logic]
63
69
  Docs[Docs]
64
70
  end
65
-
71
+
66
72
  subgraph Build["3. Build App"]
67
73
  UI[UI Layer]
68
74
  Engine[Logic Engine]
69
75
  Data[Data Layer]
70
76
  end
71
-
77
+
72
78
  subgraph Deploy["4. Deploy"]
73
79
  Web[Web]
74
80
  Desktop[Desktop]
75
81
  Mobile[Mobile]
76
82
  end
77
-
83
+
78
84
  PSF --> Types
79
85
  PSF --> Components
80
86
  PSF --> Logic
81
87
  PSF --> Docs
82
-
88
+
83
89
  Types --> UI
84
90
  Components --> UI
85
91
  Logic --> Engine
86
92
  Types --> Data
87
-
93
+
88
94
  UI --> Web
89
95
  UI --> Desktop
90
96
  UI --> Mobile
@@ -162,6 +168,7 @@ console.log(engine.getContext()); // { count: 1 }
162
168
  ### Praxis Schema Format (PSF)
163
169
 
164
170
  The JSON/AST format that defines your application:
171
+
165
172
  - Version-controlled and diff-friendly
166
173
  - Human-readable and machine-parseable
167
174
  - Supports composition and inheritance
@@ -170,6 +177,7 @@ The JSON/AST format that defines your application:
170
177
  ### Logic Engine
171
178
 
172
179
  The pure functional core:
180
+
173
181
  - Processes events to produce facts
174
182
  - Maintains immutable state
175
183
  - Supports undo/redo and time-travel
@@ -178,6 +186,7 @@ The pure functional core:
178
186
  ### Component Factory
179
187
 
180
188
  Generates Svelte components:
189
+
181
190
  - Form components with validation
182
191
  - List and display components
183
192
  - Navigation components
@@ -186,6 +195,7 @@ Generates Svelte components:
186
195
  ### PluresDB Integration
187
196
 
188
197
  Local-first data layer:
198
+
189
199
  - Reactive queries and subscriptions
190
200
  - Automatic sync with conflict resolution
191
201
  - Event sourcing support
@@ -194,6 +204,7 @@ Local-first data layer:
194
204
  ### CodeCanvas
195
205
 
196
206
  Visual development environment:
207
+
197
208
  - Drag-and-drop schema design
198
209
  - Logic flow visualization
199
210
  - Live component preview
@@ -202,35 +213,41 @@ Visual development environment:
202
213
  ## Use Cases
203
214
 
204
215
  ### Web Applications
216
+
205
217
  Build modern single-page applications with reactive data and offline support.
206
218
 
207
219
  ### Desktop Applications
220
+
208
221
  Use Tauri to create cross-platform desktop apps from the same codebase.
209
222
 
210
223
  ### Mobile Applications
224
+
211
225
  Deploy to mobile with Svelte Native or Tauri Mobile.
212
226
 
213
227
  ### Distributed Systems
228
+
214
229
  Coordinate multiple nodes with built-in DSC/MCP orchestration.
215
230
 
216
231
  ### Knowledge Management
232
+
217
233
  Create interconnected data systems with PluresDB relationships.
218
234
 
219
235
  ## Comparison
220
236
 
221
- | Feature | Praxis | Traditional MVC | Redux | XState |
222
- |---------|--------|-----------------|-------|--------|
223
- | Schema-driven | ✅ | ❌ | ❌ | ❌ |
224
- | Logic engine | ✅ | ❌ | ✅ | ✅ |
225
- | UI generation | ✅ | ❌ | ❌ | ❌ |
226
- | Local-first | ✅ | ❌ | ❌ | ❌ |
227
- | Visual editor | ✅ | ❌ | ❌ | ✅ |
228
- | Cross-language | ✅ | ❌ | ❌ | ❌ |
229
- | Auto-docs | ✅ | ❌ | ❌ | ❌ |
237
+ | Feature | Praxis | Traditional MVC | Redux | XState |
238
+ | -------------- | ------ | --------------- | ----- | ------ |
239
+ | Schema-driven | ✅ | ❌ | ❌ | ❌ |
240
+ | Logic engine | ✅ | ❌ | ✅ | ✅ |
241
+ | UI generation | ✅ | ❌ | ❌ | ❌ |
242
+ | Local-first | ✅ | ❌ | ❌ | ❌ |
243
+ | Visual editor | ✅ | ❌ | ❌ | ✅ |
244
+ | Cross-language | ✅ | ❌ | ❌ | ❌ |
245
+ | Auto-docs | ✅ | ❌ | ❌ | ❌ |
230
246
 
231
247
  ## Getting Started
232
248
 
233
249
  Ready to build with Praxis? Check out:
250
+
234
251
  - [Getting Started Guide](../guides/getting-started.md)
235
252
  - [Schema Model](./schema-model.md)
236
253
  - [Example Applications](../../examples/)
@@ -5,6 +5,7 @@ CodeCanvas is the visual IDE for the Praxis framework. It provides a graphical i
5
5
  ## Overview
6
6
 
7
7
  CodeCanvas enables:
8
+
8
9
  - **Visual Schema Design**: Drag-and-drop model and component design
9
10
  - **Logic Flow Editor**: Build rules and state machines visually
10
11
  - **Component Preview**: See generated components in real-time
@@ -36,6 +37,7 @@ praxis canvas --new
36
37
  ### 1. Schema Editor
37
38
 
38
39
  **Model Designer**:
40
+
39
41
  - Drag models onto canvas
40
42
  - Define fields with visual editor
41
43
  - Set relationships between models
@@ -43,6 +45,7 @@ praxis canvas --new
43
45
  - Preview generated PluresDB schema
44
46
 
45
47
  **Component Designer**:
48
+
46
49
  - Create components from templates
47
50
  - Bind components to models
48
51
  - Configure props and events
@@ -52,6 +55,7 @@ praxis canvas --new
52
55
  ### 2. Logic Flow Editor
53
56
 
54
57
  **Flow Canvas**:
58
+
55
59
  - Visual state machine designer
56
60
  - Connect facts, events, and rules
57
61
  - Define transitions with conditions
@@ -59,6 +63,7 @@ praxis canvas --new
59
63
  - Export to Praxis logic code
60
64
 
61
65
  **Rule Builder**:
66
+
62
67
  - Visual rule editor
63
68
  - Condition builder with drag-and-drop
64
69
  - Action designer
@@ -68,6 +73,7 @@ praxis canvas --new
68
73
  ### 3. Component Preview
69
74
 
70
75
  **Live Preview**:
76
+
71
77
  - Real-time component rendering
72
78
  - Interactive component testing
73
79
  - Props editor
@@ -75,6 +81,7 @@ praxis canvas --new
75
81
  - Responsive preview modes
76
82
 
77
83
  **Code Sync**:
84
+
78
85
  - Two-way sync with files
79
86
  - Live reload on changes
80
87
  - Conflict resolution
@@ -83,6 +90,7 @@ praxis canvas --new
83
90
  ### 4. Orchestration View
84
91
 
85
92
  **System Topology**:
93
+
86
94
  - Node visualization
87
95
  - Connection mapping
88
96
  - State distribution view
@@ -90,6 +98,7 @@ praxis canvas --new
90
98
  - Performance metrics
91
99
 
92
100
  **DSC Designer**:
101
+
93
102
  - Visual DSC configuration
94
103
  - Node role assignment
95
104
  - State sync configuration
@@ -98,6 +107,7 @@ praxis canvas --new
98
107
  ### 5. Documentation Browser
99
108
 
100
109
  **Interactive Docs**:
110
+
101
111
  - Schema documentation
102
112
  - API reference
103
113
  - Component catalog
@@ -143,11 +153,11 @@ export const config: CanvasConfig = {
143
153
  // Server settings
144
154
  port: 3000,
145
155
  host: 'localhost',
146
-
156
+
147
157
  // Editor settings
148
158
  mode: 'edit', // 'edit' | 'view' | 'present'
149
159
  theme: 'dark', // 'light' | 'dark' | 'auto'
150
-
160
+
151
161
  // Features
152
162
  features: {
153
163
  collaboration: true,
@@ -155,21 +165,21 @@ export const config: CanvasConfig = {
155
165
  versionHistory: true,
156
166
  aiAssist: false,
157
167
  },
158
-
168
+
159
169
  // Preview settings
160
170
  preview: {
161
171
  autoRefresh: true,
162
172
  refreshInterval: 1000,
163
173
  iframe: true,
164
174
  },
165
-
175
+
166
176
  // Code sync
167
177
  sync: {
168
178
  enabled: true,
169
179
  watchFiles: true,
170
180
  conflictResolution: 'ask', // 'ask' | 'canvas' | 'code'
171
181
  },
172
-
182
+
173
183
  // Export settings
174
184
  export: {
175
185
  format: 'typescript',
@@ -263,6 +273,7 @@ code --install-extension plures.praxis-canvas
263
273
  ```
264
274
 
265
275
  Features:
276
+
266
277
  - Open Canvas from editor
267
278
  - Inline previews
268
279
  - Quick navigation
@@ -273,6 +284,7 @@ Features:
273
284
  ### Canvas won't start
274
285
 
275
286
  Check:
287
+
276
288
  - Port 3000 is available
277
289
  - Schema file path is correct
278
290
  - Dependencies are installed
@@ -280,6 +292,7 @@ Check:
280
292
  ### Changes not syncing
281
293
 
282
294
  Solutions:
295
+
283
296
  - Enable sync in config
284
297
  - Check file permissions
285
298
  - Restart Canvas with `--force-sync`
@@ -287,6 +300,7 @@ Solutions:
287
300
  ### Preview not updating
288
301
 
289
302
  Try:
303
+
290
304
  - Clear browser cache
291
305
  - Disable ad blockers
292
306
  - Check preview refresh settings
@@ -336,6 +350,7 @@ features: {
336
350
  ```
337
351
 
338
352
  AI can:
353
+
339
354
  - Suggest models from descriptions
340
355
  - Generate rules from natural language
341
356
  - Optimize logic flows
@@ -358,6 +373,7 @@ praxis export --source canvas --format typescript
358
373
  ### Export Diagrams
359
374
 
360
375
  Export visual diagrams:
376
+
361
377
  - PNG/SVG for documentation
362
378
  - Mermaid for markdown
363
379
  - DOT for Graphviz
@@ -5,6 +5,7 @@ Welcome to Praxis, the full-stack application framework for the Plures ecosystem
5
5
  ## What is Praxis?
6
6
 
7
7
  Praxis is a **schema-driven framework** that unifies:
8
+
8
9
  - **Logic Engine**: Facts, events, rules, and constraints for business logic
9
10
  - **Component Generation**: Auto-generate UI from schemas
10
11
  - **Local-First Data**: PluresDB for reactive, offline-capable storage
@@ -28,6 +29,7 @@ npm install -g @plures/praxis
28
29
  ```
29
30
 
30
31
  Verify installation:
32
+
31
33
  ```bash
32
34
  praxis --version
33
35
  ```
@@ -43,6 +45,7 @@ npm install
43
45
  ```
44
46
 
45
47
  This creates a basic Praxis app with:
48
+
46
49
  - Schema setup
47
50
  - Logic engine configuration
48
51
  - Svelte UI scaffolding
@@ -76,7 +79,7 @@ export const appSchema: PraxisSchema = {
76
79
  version: '1.0.0',
77
80
  name: 'MyFirstApp',
78
81
  description: 'My first Praxis application',
79
-
82
+
80
83
  // Define data models
81
84
  models: [
82
85
  {
@@ -88,12 +91,10 @@ export const appSchema: PraxisSchema = {
88
91
  { name: 'completed', type: 'boolean', default: false },
89
92
  { name: 'createdAt', type: 'date' },
90
93
  ],
91
- indexes: [
92
- { name: 'by_created', fields: ['createdAt'] },
93
- ],
94
+ indexes: [{ name: 'by_created', fields: ['createdAt'] }],
94
95
  },
95
96
  ],
96
-
97
+
97
98
  // Define UI components
98
99
  components: [
99
100
  {
@@ -109,7 +110,7 @@ export const appSchema: PraxisSchema = {
109
110
  description: 'List of all tasks',
110
111
  },
111
112
  ],
112
-
113
+
113
114
  // Define business logic
114
115
  logic: [
115
116
  {
@@ -168,6 +169,7 @@ praxis generate --schema src/schemas/app.schema.ts
168
169
  ```
169
170
 
170
171
  This generates:
172
+
171
173
  - `src/components/TaskForm.svelte` - Form component
172
174
  - `src/components/TaskList.svelte` - List component
173
175
  - `src/logic/facts.ts` - Fact definitions
@@ -213,7 +215,7 @@ Edit `src/App.svelte`:
213
215
  import { engine } from './logic/engine';
214
216
  import TaskForm from './components/TaskForm.svelte';
215
217
  import TaskList from './components/TaskList.svelte';
216
-
218
+
217
219
  const store = createPraxisStore(engine);
218
220
  </script>
219
221
 
@@ -245,6 +247,7 @@ Open http://localhost:5173 to see your app!
245
247
  ### Schemas
246
248
 
247
249
  Schemas are the single source of truth. They define:
250
+
248
251
  - **Models**: Data structures and relationships
249
252
  - **Components**: UI elements and their behavior
250
253
  - **Logic**: Facts, events, rules, and constraints
@@ -253,6 +256,7 @@ Schemas are the single source of truth. They define:
253
256
  ### Logic Engine
254
257
 
255
258
  The Praxis logic engine processes:
259
+
256
260
  - **Events**: Things that happen (user actions, external triggers)
257
261
  - **Facts**: Derived information about the domain
258
262
  - **Rules**: Pure functions that transform events into facts
@@ -261,6 +265,7 @@ The Praxis logic engine processes:
261
265
  ### Component Generation
262
266
 
263
267
  Components are generated from schemas but can be customized:
268
+
264
269
  - Generated components provide scaffolding
265
270
  - Extend with custom behavior and styling
266
271
  - Regenerate safely (customizations preserved in separate files)
@@ -268,6 +273,7 @@ Components are generated from schemas but can be customized:
268
273
  ### Local-First Data
269
274
 
270
275
  PluresDB provides:
276
+
271
277
  - Reactive data storage
272
278
  - Offline operation
273
279
  - Automatic sync when connected
@@ -63,7 +63,9 @@ interface AppContext {
63
63
  page: string;
64
64
  }
65
65
 
66
- const engine = createPraxisEngine<AppContext>({ /* ... */ });
66
+ const engine = createPraxisEngine<AppContext>({
67
+ /* ... */
68
+ });
67
69
  const history = new HistoryStateManager<AppContext>(100);
68
70
 
69
71
  // Record initial state
@@ -174,12 +176,12 @@ Praxis provides first-class Svelte 5 support with runes:
174
176
  import { createMyEngine, Login, Logout } from './my-engine';
175
177
 
176
178
  const engine = createMyEngine();
177
- const {
178
- context,
179
- dispatch,
180
- undo,
181
- redo,
182
- canUndo,
179
+ const {
180
+ context,
181
+ dispatch,
182
+ undo,
183
+ redo,
184
+ canUndo,
183
185
  canRedo,
184
186
  snapshots,
185
187
  historyIndex
@@ -226,13 +228,13 @@ Praxis provides first-class Svelte 5 support with runes:
226
228
  import { createMyEngine } from './my-engine';
227
229
 
228
230
  const engine = createMyEngine();
229
- const { context, snapshots, goToSnapshot, historyIndex } =
231
+ const { context, snapshots, goToSnapshot, historyIndex } =
230
232
  usePraxisEngine(engine, { enableHistory: true });
231
233
  </script>
232
234
 
233
235
  <div class="debugger">
234
236
  <h2>Time-Travel Debugger</h2>
235
-
237
+
236
238
  <div class="timeline">
237
239
  {#each snapshots as snapshot, index}
238
240
  <button
@@ -277,27 +279,39 @@ interface AuthContext {
277
279
  }
278
280
 
279
281
  // Define facts
280
- const UserAuthenticated = defineFact<'UserAuthenticated', {
281
- userId: string;
282
- name: string
283
- }>('UserAuthenticated');
282
+ const UserAuthenticated = defineFact<
283
+ 'UserAuthenticated',
284
+ {
285
+ userId: string;
286
+ name: string;
287
+ }
288
+ >('UserAuthenticated');
284
289
 
285
- const NavigatedToPage = defineFact<'NavigatedToPage', {
286
- page: string
287
- }>('NavigatedToPage');
290
+ const NavigatedToPage = defineFact<
291
+ 'NavigatedToPage',
292
+ {
293
+ page: string;
294
+ }
295
+ >('NavigatedToPage');
288
296
 
289
297
  // Define events
290
- const Login = defineEvent<'LOGIN', {
291
- username: string;
292
- password: string
293
- }>('LOGIN');
298
+ const Login = defineEvent<
299
+ 'LOGIN',
300
+ {
301
+ username: string;
302
+ password: string;
303
+ }
304
+ >('LOGIN');
294
305
 
295
306
  const Logout = defineEvent<'LOGOUT', {}>('LOGOUT');
296
307
 
297
- const NavigateTo = defineEvent<'NAVIGATE_TO', {
298
- page: string;
299
- requiresAuth?: boolean;
300
- }>('NAVIGATE_TO');
308
+ const NavigateTo = defineEvent<
309
+ 'NAVIGATE_TO',
310
+ {
311
+ page: string;
312
+ requiresAuth?: boolean;
313
+ }
314
+ >('NAVIGATE_TO');
301
315
 
302
316
  // Define rules
303
317
  const loginRule = defineRule<AuthContext>({
@@ -317,9 +331,7 @@ const loginRule = defineRule<AuthContext>({
317
331
  state.context.attemptedSecurePage = null;
318
332
  }
319
333
 
320
- return [
321
- UserAuthenticated.create({ userId: username, name: username })
322
- ];
334
+ return [UserAuthenticated.create({ userId: username, name: username })];
323
335
  },
324
336
  });
325
337
 
@@ -394,9 +406,9 @@ export { Login, Logout, NavigateTo };
394
406
  });
395
407
 
396
408
  function login() {
397
- dispatch([Login.create({
398
- username: 'alice',
399
- password: 'secret123'
409
+ dispatch([Login.create({
410
+ username: 'alice',
411
+ password: 'secret123'
400
412
  })], 'User Login');
401
413
  }
402
414
 
@@ -405,16 +417,16 @@ export { Login, Logout, NavigateTo };
405
417
  }
406
418
 
407
419
  function goToProfile() {
408
- dispatch([NavigateTo.create({
409
- page: 'profile',
410
- requiresAuth: true
420
+ dispatch([NavigateTo.create({
421
+ page: 'profile',
422
+ requiresAuth: true
411
423
  })], 'Navigate to Profile');
412
424
  }
413
425
 
414
426
  function returnToPrevious() {
415
427
  if (context.previousPage) {
416
- dispatch([NavigateTo.create({
417
- page: context.previousPage
428
+ dispatch([NavigateTo.create({
429
+ page: context.previousPage
418
430
  })], 'Return to Previous Page');
419
431
  } else if (canUndo) {
420
432
  undo();
@@ -506,7 +518,7 @@ function handleLogout() {
506
518
  // Clear when starting new workflow
507
519
  function startNewProject() {
508
520
  historyEngine.clearHistory();
509
- historyEngine.dispatch([CreateProject.create({})],'New Project');
521
+ historyEngine.dispatch([CreateProject.create({})], 'New Project');
510
522
  }
511
523
  ```
512
524
 
@@ -516,10 +528,10 @@ function startNewProject() {
516
528
  interface AppContext {
517
529
  // Application state
518
530
  user: User | null;
519
-
531
+
520
532
  // Built-in history tracking in context
521
533
  navigationHistory: string[];
522
-
534
+
523
535
  // Previous state for quick back
524
536
  previousView: string | null;
525
537
  }
@@ -530,11 +542,11 @@ const navigationRule = defineRule<AppContext>({
530
542
  impl: (state, events) => {
531
543
  const nav = findEvent(events, Navigate);
532
544
  if (!nav) return [];
533
-
545
+
534
546
  state.context.previousView = state.context.currentView;
535
547
  state.context.navigationHistory.push(nav.payload.page);
536
548
  state.context.currentView = nav.payload.page;
537
-
549
+
538
550
  return [];
539
551
  },
540
552
  });
@@ -571,13 +583,13 @@ const errorRecoveryRule = defineRule<AppContext>({
571
583
  impl: (state, events) => {
572
584
  const error = findEvent(events, ErrorOccurred);
573
585
  if (!error) return [];
574
-
586
+
575
587
  // Log error with context
576
588
  console.error('Error at state:', state.context);
577
-
589
+
578
590
  // You can use history to diagnose or recover
579
591
  // historyEngine.undo() to revert to last good state
580
-
592
+
581
593
  return [ErrorLogged.create({ error: error.payload })];
582
594
  },
583
595
  });
@@ -585,14 +597,14 @@ const errorRecoveryRule = defineRule<AppContext>({
585
597
 
586
598
  ## Comparison with XState
587
599
 
588
- | Feature | XState | Praxis |
589
- |---------|--------|--------|
590
- | **Built-in History States** | ✅ Native support | ✅ Pattern-based implementation |
591
- | **History Types** | Shallow/Deep | Configurable via HistoryStateManager |
592
- | **Time-Travel** | Via DevTools | ✅ Built into usePraxisEngine |
593
- | **Undo/Redo** | Custom implementation | ✅ Built-in with createHistoryEngine |
594
- | **Snapshot Support** | ✅ Via snapshot() | ✅ Via usePraxisEngine snapshots |
595
- | **History Size Limits** | Manual | ✅ Automatic with maxHistorySize |
600
+ | Feature | XState | Praxis |
601
+ | --------------------------- | --------------------- | ------------------------------------ |
602
+ | **Built-in History States** | ✅ Native support | ✅ Pattern-based implementation |
603
+ | **History Types** | Shallow/Deep | Configurable via HistoryStateManager |
604
+ | **Time-Travel** | Via DevTools | ✅ Built into usePraxisEngine |
605
+ | **Undo/Redo** | Custom implementation | ✅ Built-in with createHistoryEngine |
606
+ | **Snapshot Support** | ✅ Via snapshot() | ✅ Via usePraxisEngine snapshots |
607
+ | **History Size Limits** | Manual | ✅ Automatic with maxHistorySize |
596
608
 
597
609
  ## Summary
598
610
 
@@ -606,6 +618,7 @@ The history state pattern in Praxis provides:
606
618
  - ✅ **Auth Flow Support**: Return to previous states after authentication
607
619
 
608
620
  The pattern is designed to be:
621
+
609
622
  - **Simple**: Easy to understand and use
610
623
  - **Flexible**: Works with any Praxis engine
611
624
  - **Performant**: Configurable history limits
@@ -613,6 +626,7 @@ The pattern is designed to be:
613
626
  - **Framework-Agnostic**: Use with or without Svelte
614
627
 
615
628
  For more examples, see:
629
+
616
630
  - [Svelte Counter Example](/src/examples/svelte-counter/index.ts)
617
631
  - [Auth Basic Example](/src/examples/auth-basic/index.ts)
618
632
  - [Svelte Integration Tests](/src/__tests__/svelte-integration.test.ts)