@plures/praxis 1.0.2 → 1.1.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 (518) hide show
  1. package/FRAMEWORK.md +55 -5
  2. package/LICENSE +21 -21
  3. package/README.md +162 -375
  4. package/core/codegen/docs-generator.ts +5 -2
  5. package/core/codegen/index.ts +1 -1
  6. package/core/codegen/ts-generator.ts +15 -15
  7. package/core/db-adapter/index.ts +2 -2
  8. package/core/db-adapter/sync-engine.ts +17 -6
  9. package/core/logic-engine/engine.ts +1 -1
  10. package/core/logic-engine/index.ts +2 -2
  11. package/core/logic-engine/protocol.ts +1 -1
  12. package/core/logic-engine/psf-adapter.ts +8 -4
  13. package/core/logic-engine/rules.ts +1 -1
  14. package/core/schema-engine/compiler.ts +53 -11
  15. package/core/schema-engine/generator.ts +17 -7
  16. package/core/schema-engine/index.ts +2 -2
  17. package/core/schema-engine/psf.ts +12 -3
  18. package/core/schema-engine/types.ts +3 -11
  19. package/core/schema-engine/validator.ts +112 -22
  20. package/dist/browser/engine-BjdqxeXG.d.ts +333 -0
  21. package/dist/browser/index.d.ts +3004 -0
  22. package/dist/browser/index.js +2892 -0
  23. package/dist/{src → browser}/integrations/svelte.d.ts +19 -17
  24. package/dist/browser/integrations/svelte.js +298 -0
  25. package/dist/node/auth-STARLY7I.js +207 -0
  26. package/dist/node/build-Y7OT5VBF.js +144 -0
  27. package/dist/node/canvas-UERZHJYW.js +362 -0
  28. package/dist/node/chunk-DSDC2JWZ.js +256 -0
  29. package/dist/node/chunk-FXQZXAWF.js +175 -0
  30. package/dist/node/chunk-N5Y37EUV.js +202 -0
  31. package/dist/node/chunk-QGM4M3NI.js +37 -0
  32. package/dist/node/chunk-RJMWCNHR.js +175 -0
  33. package/dist/node/chunk-SRM3OPPM.js +404 -0
  34. package/dist/node/chunk-UATVJBNV.js +175 -0
  35. package/dist/node/chunk-UY7YEBE2.js +159 -0
  36. package/dist/node/chunk-XCY2VIFX.js +143 -0
  37. package/dist/node/chunk-YXH4Y7ZZ.js +349 -0
  38. package/dist/node/cli/index.cjs +217418 -0
  39. package/dist/node/cli/index.d.cts +1 -0
  40. package/dist/node/cli/index.d.ts +1 -0
  41. package/dist/node/cli/index.js +690 -0
  42. package/dist/node/cloud/index.cjs +1043 -0
  43. package/dist/node/cloud/index.d.cts +864 -0
  44. package/dist/node/cloud/index.d.ts +864 -0
  45. package/dist/node/cloud/index.js +456 -0
  46. package/dist/node/cloud-AXOK4PSN.js +212 -0
  47. package/dist/node/component.cjs +374 -0
  48. package/dist/node/component.d.cts +125 -0
  49. package/dist/{src/core/component/generator.d.ts → node/component.d.ts} +11 -8
  50. package/dist/node/component.js +9 -0
  51. package/dist/node/components/index.cjs +216 -0
  52. package/dist/node/components/index.d.cts +43 -0
  53. package/dist/{src → node}/components/index.d.ts +8 -8
  54. package/dist/node/components/index.js +7 -0
  55. package/dist/node/create-TRLSVCNQ.js +584 -0
  56. package/dist/node/dev-PMJZUYGE.js +65 -0
  57. package/dist/node/engine-1iqLe6_P.d.ts +214 -0
  58. package/dist/node/engine-CVJobhHm.d.cts +214 -0
  59. package/dist/node/index.cjs +3247 -0
  60. package/dist/node/index.d.cts +2579 -0
  61. package/dist/node/index.d.ts +2579 -0
  62. package/dist/node/index.js +2098 -0
  63. package/dist/node/integrations/svelte.cjs +330 -0
  64. package/dist/node/integrations/svelte.d.cts +309 -0
  65. package/dist/node/integrations/svelte.d.ts +309 -0
  66. package/dist/node/integrations/svelte.js +300 -0
  67. package/dist/node/orchestrate-737TCL5H.js +127 -0
  68. package/dist/{src/core/protocol.d.ts → node/protocol-Qek7ebBl.d.cts} +11 -10
  69. package/dist/node/protocol-Qek7ebBl.d.ts +122 -0
  70. package/dist/node/schema.cjs +200 -0
  71. package/dist/{src/core/schema/types.d.ts → node/schema.d.cts} +30 -29
  72. package/dist/node/schema.d.ts +371 -0
  73. package/dist/node/schema.js +9 -0
  74. package/dist/{src/runtime/terminal-adapter.d.ts → node/terminal-adapter-07HGftGQ.d.ts} +86 -11
  75. package/dist/node/terminal-adapter-XLtCjjb_.d.cts +231 -0
  76. package/dist/node/verify-YBZ7W24H.js +213239 -0
  77. package/docs/MONETIZATION.md +21 -16
  78. package/docs/REACTIVE_REDESIGN.md +132 -0
  79. package/docs/README.md +47 -36
  80. package/docs/SVELTE_INTEGRATION_STRATEGY.md +68 -0
  81. package/docs/TERMINAL_NODE.md +27 -24
  82. package/docs/core/building-extensions.md +58 -61
  83. package/docs/core/cli-usage.md +59 -59
  84. package/docs/core/code-canvas-sync.md +28 -16
  85. package/docs/core/logic-engine.md +77 -82
  86. package/docs/core/pluresdb-integration.md +29 -39
  87. package/docs/core/schema-model.md +66 -52
  88. package/docs/core/ui-generation.md +57 -49
  89. package/docs/core/what-is-praxis.md +32 -15
  90. package/docs/guides/canvas.md +21 -5
  91. package/docs/guides/getting-started.md +13 -7
  92. package/docs/guides/history-state-pattern.md +65 -51
  93. package/docs/guides/orchestration.md +46 -32
  94. package/docs/guides/parallel-state-pattern.md +56 -72
  95. package/docs/guides/svelte-integration.md +45 -53
  96. package/docs/tutorials/README.md +16 -0
  97. package/docs/tutorials/ecommerce-cart.md +177 -95
  98. package/docs/tutorials/first-app.md +26 -41
  99. package/docs/tutorials/form-builder.md +191 -138
  100. package/docs/tutorials/todo-pluresdb.md +71 -69
  101. package/package.json +132 -96
  102. package/src/__tests__/actors.test.ts +68 -68
  103. package/src/__tests__/billing.test.ts +32 -32
  104. package/src/__tests__/canvas-components.test.ts +94 -73
  105. package/src/__tests__/cli-create.test.ts +28 -28
  106. package/src/__tests__/cloud.test.ts +36 -36
  107. package/src/__tests__/code-canvas-integration.test.ts +132 -141
  108. package/src/__tests__/docs-generator.test.ts +3 -9
  109. package/src/__tests__/dsl.test.ts +58 -64
  110. package/src/__tests__/edge-cases.test.ts +106 -108
  111. package/src/__tests__/engine.test.ts +51 -25
  112. package/src/__tests__/generators.test.ts +42 -44
  113. package/src/__tests__/introspection.test.ts +104 -114
  114. package/src/__tests__/pluresdb.test.ts +189 -187
  115. package/src/__tests__/protocol.test.ts +15 -15
  116. package/src/__tests__/provisioning.test.ts +61 -61
  117. package/src/__tests__/schema.test.ts +7 -11
  118. package/src/__tests__/state-docs-integration.test.ts +162 -145
  119. package/src/__tests__/svelte-integration.test.ts +16 -19
  120. package/src/__tests__/tauri-integration.test.ts +149 -147
  121. package/src/__tests__/terminal-node.test.ts +12 -7
  122. package/src/__tests__/unum-integration.test.ts +68 -68
  123. package/src/adapters/cli.ts +21 -15
  124. package/src/cli/commands/auth.ts +82 -78
  125. package/src/cli/commands/build.ts +29 -27
  126. package/src/cli/commands/canvas.ts +338 -127
  127. package/src/cli/commands/cloud.ts +47 -47
  128. package/src/cli/commands/create.ts +59 -47
  129. package/src/cli/commands/dev.ts +12 -12
  130. package/src/cli/commands/generate.ts +29 -40
  131. package/src/cli/commands/orchestrate.ts +24 -24
  132. package/src/cli/commands/verify.ts +49 -0
  133. package/src/cli/index.ts +21 -2
  134. package/src/cloud/README.md +28 -15
  135. package/src/cloud/auth.ts +55 -70
  136. package/src/cloud/billing.ts +59 -58
  137. package/src/cloud/client.ts +29 -35
  138. package/src/cloud/index.ts +19 -40
  139. package/src/cloud/marketplace.ts +69 -78
  140. package/src/cloud/provisioning.ts +42 -51
  141. package/src/cloud/relay/endpoints.ts +30 -34
  142. package/src/cloud/relay/health/index.ts +1 -1
  143. package/src/cloud/relay/stats/index.ts +1 -1
  144. package/src/cloud/relay/sync/index.ts +1 -1
  145. package/src/cloud/relay/usage/index.ts +1 -1
  146. package/src/cloud/sponsors.ts +31 -34
  147. package/src/cloud/types.ts +4 -4
  148. package/src/components/README.md +1 -0
  149. package/src/components/TerminalNode.svelte +457 -457
  150. package/src/components/index.ts +3 -4
  151. package/src/core/actors.ts +7 -7
  152. package/src/core/component/generator.ts +10 -28
  153. package/src/core/engine.ts +51 -24
  154. package/src/core/introspection.ts +37 -35
  155. package/src/core/logic/generator.ts +62 -62
  156. package/src/core/pluresdb/adapter.ts +8 -8
  157. package/src/core/pluresdb/generator.ts +39 -35
  158. package/src/core/pluresdb/index.ts +9 -12
  159. package/src/core/pluresdb/schema-registry.ts +22 -25
  160. package/src/core/pluresdb/store.ts +57 -57
  161. package/src/core/protocol.ts +14 -14
  162. package/src/core/reactive-engine.svelte.ts +65 -0
  163. package/src/core/reactive-engine.ts +67 -0
  164. package/src/core/rules.ts +4 -4
  165. package/src/core/schema/loader.common.ts +150 -0
  166. package/src/core/schema/loader.ts +19 -149
  167. package/src/core/schema/normalize.ts +34 -51
  168. package/src/core/schema/types.ts +47 -11
  169. package/src/dsl/index.ts +8 -8
  170. package/src/dsl.ts +11 -17
  171. package/src/examples/advanced-todo/App.svelte +506 -506
  172. package/src/examples/advanced-todo/README.md +58 -40
  173. package/src/examples/advanced-todo/index.ts +3 -3
  174. package/src/examples/auth-basic/index.ts +30 -30
  175. package/src/examples/cart/index.ts +50 -50
  176. package/src/examples/hero-ecommerce/index.ts +130 -157
  177. package/src/examples/svelte-counter/index.ts +22 -26
  178. package/src/flows.ts +6 -17
  179. package/src/index.browser.ts +204 -0
  180. package/src/index.ts +37 -42
  181. package/src/integrations/code-canvas.ts +237 -193
  182. package/src/integrations/pluresdb.ts +55 -35
  183. package/src/integrations/state-docs.ts +104 -104
  184. package/src/integrations/svelte.ts +35 -35
  185. package/src/integrations/tauri.ts +75 -73
  186. package/src/integrations/unum.ts +68 -61
  187. package/src/registry.ts +7 -14
  188. package/src/runtime/terminal-adapter.ts +31 -26
  189. package/src/step.ts +10 -16
  190. package/src/types.ts +1 -1
  191. package/templates/basic-app/README.md +6 -9
  192. package/templates/fullstack-app/README.md +10 -0
  193. package/dist/core/codegen/docs-generator.d.ts +0 -123
  194. package/dist/core/codegen/docs-generator.d.ts.map +0 -1
  195. package/dist/core/codegen/docs-generator.js +0 -674
  196. package/dist/core/codegen/docs-generator.js.map +0 -1
  197. package/dist/core/codegen/index.d.ts +0 -11
  198. package/dist/core/codegen/index.d.ts.map +0 -1
  199. package/dist/core/codegen/index.js +0 -13
  200. package/dist/core/codegen/index.js.map +0 -1
  201. package/dist/core/codegen/ts-generator.d.ts +0 -8
  202. package/dist/core/codegen/ts-generator.d.ts.map +0 -1
  203. package/dist/core/codegen/ts-generator.js +0 -8
  204. package/dist/core/codegen/ts-generator.js.map +0 -1
  205. package/dist/core/db-adapter/index.d.ts +0 -18
  206. package/dist/core/db-adapter/index.d.ts.map +0 -1
  207. package/dist/core/db-adapter/index.js +0 -23
  208. package/dist/core/db-adapter/index.js.map +0 -1
  209. package/dist/core/db-adapter/sync-engine.d.ts +0 -180
  210. package/dist/core/db-adapter/sync-engine.d.ts.map +0 -1
  211. package/dist/core/db-adapter/sync-engine.js +0 -342
  212. package/dist/core/db-adapter/sync-engine.js.map +0 -1
  213. package/dist/core/logic-engine/engine.d.ts +0 -8
  214. package/dist/core/logic-engine/engine.d.ts.map +0 -1
  215. package/dist/core/logic-engine/engine.js +0 -8
  216. package/dist/core/logic-engine/engine.js.map +0 -1
  217. package/dist/core/logic-engine/index.d.ts +0 -16
  218. package/dist/core/logic-engine/index.d.ts.map +0 -1
  219. package/dist/core/logic-engine/index.js +0 -16
  220. package/dist/core/logic-engine/index.js.map +0 -1
  221. package/dist/core/logic-engine/protocol.d.ts +0 -7
  222. package/dist/core/logic-engine/protocol.d.ts.map +0 -1
  223. package/dist/core/logic-engine/protocol.js +0 -7
  224. package/dist/core/logic-engine/protocol.js.map +0 -1
  225. package/dist/core/logic-engine/psf-adapter.d.ts +0 -88
  226. package/dist/core/logic-engine/psf-adapter.d.ts.map +0 -1
  227. package/dist/core/logic-engine/psf-adapter.js +0 -207
  228. package/dist/core/logic-engine/psf-adapter.js.map +0 -1
  229. package/dist/core/logic-engine/rules.d.ts +0 -7
  230. package/dist/core/logic-engine/rules.d.ts.map +0 -1
  231. package/dist/core/logic-engine/rules.js +0 -7
  232. package/dist/core/logic-engine/rules.js.map +0 -1
  233. package/dist/core/schema-engine/compiler.d.ts +0 -198
  234. package/dist/core/schema-engine/compiler.d.ts.map +0 -1
  235. package/dist/core/schema-engine/compiler.js +0 -262
  236. package/dist/core/schema-engine/compiler.js.map +0 -1
  237. package/dist/core/schema-engine/generator.d.ts +0 -115
  238. package/dist/core/schema-engine/generator.d.ts.map +0 -1
  239. package/dist/core/schema-engine/generator.js +0 -506
  240. package/dist/core/schema-engine/generator.js.map +0 -1
  241. package/dist/core/schema-engine/index.d.ts +0 -18
  242. package/dist/core/schema-engine/index.d.ts.map +0 -1
  243. package/dist/core/schema-engine/index.js +0 -18
  244. package/dist/core/schema-engine/index.js.map +0 -1
  245. package/dist/core/schema-engine/psf.d.ts +0 -612
  246. package/dist/core/schema-engine/psf.d.ts.map +0 -1
  247. package/dist/core/schema-engine/psf.js +0 -45
  248. package/dist/core/schema-engine/psf.js.map +0 -1
  249. package/dist/core/schema-engine/types.d.ts +0 -10
  250. package/dist/core/schema-engine/types.d.ts.map +0 -1
  251. package/dist/core/schema-engine/types.js +0 -7
  252. package/dist/core/schema-engine/types.js.map +0 -1
  253. package/dist/core/schema-engine/validator.d.ts +0 -140
  254. package/dist/core/schema-engine/validator.d.ts.map +0 -1
  255. package/dist/core/schema-engine/validator.js +0 -407
  256. package/dist/core/schema-engine/validator.js.map +0 -1
  257. package/dist/src/adapters/cli.d.ts +0 -43
  258. package/dist/src/adapters/cli.d.ts.map +0 -1
  259. package/dist/src/adapters/cli.js +0 -126
  260. package/dist/src/adapters/cli.js.map +0 -1
  261. package/dist/src/cli/commands/auth.d.ts +0 -26
  262. package/dist/src/cli/commands/auth.d.ts.map +0 -1
  263. package/dist/src/cli/commands/auth.js +0 -233
  264. package/dist/src/cli/commands/auth.js.map +0 -1
  265. package/dist/src/cli/commands/build.d.ts +0 -23
  266. package/dist/src/cli/commands/build.d.ts.map +0 -1
  267. package/dist/src/cli/commands/build.js +0 -162
  268. package/dist/src/cli/commands/build.js.map +0 -1
  269. package/dist/src/cli/commands/canvas.d.ts +0 -23
  270. package/dist/src/cli/commands/canvas.d.ts.map +0 -1
  271. package/dist/src/cli/commands/canvas.js +0 -215
  272. package/dist/src/cli/commands/canvas.js.map +0 -1
  273. package/dist/src/cli/commands/cloud.d.ts +0 -27
  274. package/dist/src/cli/commands/cloud.d.ts.map +0 -1
  275. package/dist/src/cli/commands/cloud.js +0 -232
  276. package/dist/src/cli/commands/cloud.js.map +0 -1
  277. package/dist/src/cli/commands/create.d.ts +0 -21
  278. package/dist/src/cli/commands/create.d.ts.map +0 -1
  279. package/dist/src/cli/commands/create.js +0 -621
  280. package/dist/src/cli/commands/create.js.map +0 -1
  281. package/dist/src/cli/commands/dev.d.ts +0 -21
  282. package/dist/src/cli/commands/dev.d.ts.map +0 -1
  283. package/dist/src/cli/commands/dev.js +0 -71
  284. package/dist/src/cli/commands/dev.js.map +0 -1
  285. package/dist/src/cli/commands/generate.d.ts +0 -25
  286. package/dist/src/cli/commands/generate.d.ts.map +0 -1
  287. package/dist/src/cli/commands/generate.js +0 -168
  288. package/dist/src/cli/commands/generate.js.map +0 -1
  289. package/dist/src/cli/commands/orchestrate.d.ts +0 -44
  290. package/dist/src/cli/commands/orchestrate.d.ts.map +0 -1
  291. package/dist/src/cli/commands/orchestrate.js +0 -150
  292. package/dist/src/cli/commands/orchestrate.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 -211
  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/cli/commands/index.d.ts +0 -7
  484. package/dist/tools/cli/commands/index.d.ts.map +0 -1
  485. package/dist/tools/cli/commands/index.js +0 -7
  486. package/dist/tools/cli/commands/index.js.map +0 -1
  487. package/dist/tools/cli/index.d.ts +0 -8
  488. package/dist/tools/cli/index.d.ts.map +0 -1
  489. package/dist/tools/cli/index.js +0 -9
  490. package/dist/tools/cli/index.js.map +0 -1
  491. package/dist/tools/watcher/index.d.ts +0 -105
  492. package/dist/tools/watcher/index.d.ts.map +0 -1
  493. package/dist/tools/watcher/index.js +0 -213
  494. package/dist/tools/watcher/index.js.map +0 -1
  495. package/dist/ui/canvas/canvas-projection.d.ts +0 -78
  496. package/dist/ui/canvas/canvas-projection.d.ts.map +0 -1
  497. package/dist/ui/canvas/canvas-projection.js +0 -416
  498. package/dist/ui/canvas/canvas-projection.js.map +0 -1
  499. package/dist/ui/canvas/canvas-state.d.ts +0 -200
  500. package/dist/ui/canvas/canvas-state.d.ts.map +0 -1
  501. package/dist/ui/canvas/canvas-state.js +0 -464
  502. package/dist/ui/canvas/canvas-state.js.map +0 -1
  503. package/dist/ui/canvas/components/index.d.ts +0 -95
  504. package/dist/ui/canvas/components/index.d.ts.map +0 -1
  505. package/dist/ui/canvas/components/index.js +0 -19
  506. package/dist/ui/canvas/components/index.js.map +0 -1
  507. package/dist/ui/canvas/index.d.ts +0 -32
  508. package/dist/ui/canvas/index.d.ts.map +0 -1
  509. package/dist/ui/canvas/index.js +0 -32
  510. package/dist/ui/canvas/index.js.map +0 -1
  511. package/dist/ui/svelte-generator/index.d.ts +0 -9
  512. package/dist/ui/svelte-generator/index.d.ts.map +0 -1
  513. package/dist/ui/svelte-generator/index.js +0 -11
  514. package/dist/ui/svelte-generator/index.js.map +0 -1
  515. package/dist/ui/svelte-generator/psf-generator.d.ts +0 -128
  516. package/dist/ui/svelte-generator/psf-generator.d.ts.map +0 -1
  517. package/dist/ui/svelte-generator/psf-generator.js +0 -506
  518. package/dist/ui/svelte-generator/psf-generator.js.map +0 -1
@@ -1,123 +0,0 @@
1
- /**
2
- * Svelte Counter Example
3
- *
4
- * Demonstrates Svelte v5 integration with a simple counter.
5
- * Shows how to connect Praxis logic to reactive Svelte stores.
6
- */
7
- import { createPraxisEngine, PraxisRegistry, defineFact, defineEvent, defineRule, findEvent, } from "../../index.js";
8
- import { createPraxisStore, createDerivedStore } from "../../integrations/svelte.js";
9
- // Define facts
10
- const CountIncremented = defineFact("CountIncremented");
11
- const CountDecremented = defineFact("CountDecremented");
12
- const CountReset = defineFact("CountReset");
13
- // Define events
14
- const Increment = defineEvent("INCREMENT");
15
- const Decrement = defineEvent("DECREMENT");
16
- const Reset = defineEvent("RESET");
17
- // Define rules
18
- const incrementRule = defineRule({
19
- id: "counter.increment",
20
- description: "Increment the counter",
21
- impl: (state, events) => {
22
- const incrementEvent = findEvent(events, Increment);
23
- if (!incrementEvent) {
24
- return [];
25
- }
26
- const amount = incrementEvent.payload.amount ?? 1;
27
- state.context.count += amount;
28
- state.context.history.push(state.context.count);
29
- return [CountIncremented.create({ amount })];
30
- },
31
- });
32
- const decrementRule = defineRule({
33
- id: "counter.decrement",
34
- description: "Decrement the counter",
35
- impl: (state, events) => {
36
- const decrementEvent = findEvent(events, Decrement);
37
- if (!decrementEvent) {
38
- return [];
39
- }
40
- const amount = decrementEvent.payload.amount ?? 1;
41
- state.context.count -= amount;
42
- state.context.history.push(state.context.count);
43
- return [CountDecremented.create({ amount })];
44
- },
45
- });
46
- const resetRule = defineRule({
47
- id: "counter.reset",
48
- description: "Reset the counter",
49
- impl: (state, events) => {
50
- const resetEvent = findEvent(events, Reset);
51
- if (!resetEvent) {
52
- return [];
53
- }
54
- state.context.count = 0;
55
- state.context.history = [0];
56
- return [CountReset.create({})];
57
- },
58
- });
59
- // Create and configure the engine
60
- function createCounterEngine() {
61
- const registry = new PraxisRegistry();
62
- registry.registerRule(incrementRule);
63
- registry.registerRule(decrementRule);
64
- registry.registerRule(resetRule);
65
- const engine = createPraxisEngine({
66
- initialContext: {
67
- count: 0,
68
- history: [0],
69
- },
70
- registry,
71
- });
72
- return engine;
73
- }
74
- // Create Svelte stores
75
- function createCounterStores() {
76
- const engine = createCounterEngine();
77
- const stateStore = createPraxisStore(engine);
78
- const countStore = createDerivedStore(engine, (ctx) => ctx.count);
79
- const historyStore = createDerivedStore(engine, (ctx) => ctx.history);
80
- return {
81
- engine,
82
- stateStore,
83
- countStore,
84
- historyStore,
85
- // Helper methods
86
- increment: (amount) => {
87
- engine.step([Increment.create({ amount })]);
88
- },
89
- decrement: (amount) => {
90
- engine.step([Decrement.create({ amount })]);
91
- },
92
- reset: () => {
93
- engine.step([Reset.create({})]);
94
- },
95
- };
96
- }
97
- // Example usage (non-Svelte demonstration)
98
- function runExample() {
99
- console.log("=== Svelte Counter Example ===\n");
100
- const { engine, countStore } = createCounterStores();
101
- // Subscribe to count changes
102
- console.log("Subscribing to count changes...\n");
103
- const unsubscribe = countStore.subscribe((count) => {
104
- console.log(`Count changed: ${count}`);
105
- });
106
- // Dispatch some events
107
- console.log("\nIncrementing by 1:");
108
- engine.step([Increment.create({})]);
109
- console.log("\nIncrementing by 5:");
110
- engine.step([Increment.create({ amount: 5 })]);
111
- console.log("\nDecrementing by 2:");
112
- engine.step([Decrement.create({ amount: 2 })]);
113
- console.log("\nResetting:");
114
- engine.step([Reset.create({})]);
115
- console.log("\nContext:", engine.getContext());
116
- unsubscribe();
117
- }
118
- // Run example if executed directly
119
- if (import.meta.url === `file://${process.argv[1]}`) {
120
- runExample();
121
- }
122
- export { createCounterEngine, createCounterStores, runExample };
123
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/examples/svelte-counter/index.ts"],"names":[],"mappings":"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"}
@@ -1,125 +0,0 @@
1
- /**
2
- * Flows and actors for orchestrating state transitions in Praxis.
3
- * Flows represent sequences of state transitions.
4
- * Actors are entities that maintain their own state and respond to events.
5
- */
6
- import type { PraxisState, PraxisEvent, StepResult, StepFunction } from './types.js';
7
- /**
8
- * A flow represents a sequence of events that need to occur.
9
- */
10
- export interface Flow<E extends PraxisEvent = PraxisEvent> {
11
- /** Unique identifier for the flow */
12
- id: string;
13
- /** Description of what the flow accomplishes */
14
- description?: string;
15
- /** Steps in the flow */
16
- steps: FlowStep<E>[];
17
- /** Current step index */
18
- currentStep: number;
19
- /** Whether the flow is complete */
20
- complete: boolean;
21
- /** Optional metadata */
22
- metadata?: Record<string, unknown>;
23
- }
24
- /**
25
- * A step in a flow.
26
- */
27
- export interface FlowStep<E extends PraxisEvent = PraxisEvent> {
28
- /** Step identifier */
29
- id: string;
30
- /** Expected event type for this step */
31
- expectedEventType: string;
32
- /** Optional validation function */
33
- validate?: (event: E) => boolean;
34
- /** Optional timeout in milliseconds */
35
- timeout?: number;
36
- }
37
- /**
38
- * An actor maintains its own state and responds to events.
39
- */
40
- export interface Actor<S extends PraxisState = PraxisState, E extends PraxisEvent = PraxisEvent> {
41
- /** Unique identifier for the actor */
42
- id: string;
43
- /** Current state of the actor */
44
- state: S;
45
- /** Step function for processing events */
46
- step: StepFunction<S, E>;
47
- /** Optional metadata */
48
- metadata?: {
49
- type?: string;
50
- created?: number;
51
- [key: string]: unknown;
52
- };
53
- }
54
- /**
55
- * Create a new flow.
56
- */
57
- export declare function createFlow<E extends PraxisEvent = PraxisEvent>(id: string, steps: FlowStep<E>[], description?: string): Flow<E>;
58
- /**
59
- * Advance a flow with an event.
60
- * Returns an updated flow and whether the flow accepted the event.
61
- */
62
- export declare function advanceFlow<E extends PraxisEvent = PraxisEvent>(flow: Flow<E>, event: E): {
63
- flow: Flow<E>;
64
- accepted: boolean;
65
- };
66
- /**
67
- * Check if a flow is waiting for a specific event type.
68
- */
69
- export declare function isFlowWaitingFor<E extends PraxisEvent = PraxisEvent>(flow: Flow<E>, eventType: string): boolean;
70
- /**
71
- * Create a new actor.
72
- */
73
- export declare function createActor<S extends PraxisState = PraxisState, E extends PraxisEvent = PraxisEvent>(id: string, initialState: S, stepFunction: StepFunction<S, E>, type?: string): Actor<S, E>;
74
- /**
75
- * Process an event through an actor.
76
- * Returns the updated actor and any effects.
77
- */
78
- export declare function processActorEvent<S extends PraxisState = PraxisState, E extends PraxisEvent = PraxisEvent>(actor: Actor<S, E>, event: E): {
79
- actor: Actor<S, E>;
80
- result: StepResult<S>;
81
- };
82
- /**
83
- * Actor system for managing multiple actors.
84
- */
85
- export declare class ActorSystem<S extends PraxisState = PraxisState, E extends PraxisEvent = PraxisEvent> {
86
- private actors;
87
- /**
88
- * Register an actor in the system.
89
- */
90
- register(actor: Actor<S, E>): void;
91
- /**
92
- * Unregister an actor from the system.
93
- */
94
- unregister(id: string): boolean;
95
- /**
96
- * Get an actor by ID.
97
- */
98
- get(id: string): Actor<S, E> | undefined;
99
- /**
100
- * Get all actors.
101
- */
102
- getAll(): Actor<S, E>[];
103
- /**
104
- * Send an event to a specific actor.
105
- */
106
- send(actorId: string, event: E): StepResult<S> | undefined;
107
- /**
108
- * Broadcast an event to all actors.
109
- * Returns a map of actor IDs to their results.
110
- */
111
- broadcast(event: E): Map<string, StepResult<S>>;
112
- /**
113
- * Clear all actors from the system.
114
- */
115
- clear(): void;
116
- /**
117
- * Get the number of actors in the system.
118
- */
119
- size(): number;
120
- }
121
- /**
122
- * Create a new actor system.
123
- */
124
- export declare function createActorSystem<S extends PraxisState = PraxisState, E extends PraxisEvent = PraxisEvent>(): ActorSystem<S, E>;
125
- //# sourceMappingURL=flows.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flows.d.ts","sourceRoot":"","sources":["../../src/flows.ts"],"names":[],"mappings":"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"}
package/dist/src/flows.js DELETED
@@ -1,160 +0,0 @@
1
- /**
2
- * Flows and actors for orchestrating state transitions in Praxis.
3
- * Flows represent sequences of state transitions.
4
- * Actors are entities that maintain their own state and respond to events.
5
- */
6
- /**
7
- * Create a new flow.
8
- */
9
- export function createFlow(id, steps, description) {
10
- return {
11
- id,
12
- description,
13
- steps,
14
- currentStep: 0,
15
- complete: false,
16
- };
17
- }
18
- /**
19
- * Advance a flow with an event.
20
- * Returns an updated flow and whether the flow accepted the event.
21
- */
22
- export function advanceFlow(flow, event) {
23
- if (flow.complete) {
24
- return { flow, accepted: false };
25
- }
26
- const currentStep = flow.steps[flow.currentStep];
27
- if (!currentStep) {
28
- return { flow, accepted: false };
29
- }
30
- // Check if event matches expected type
31
- if (currentStep.expectedEventType !== event.type) {
32
- return { flow, accepted: false };
33
- }
34
- // Validate event if validator is provided
35
- if (currentStep.validate && !currentStep.validate(event)) {
36
- return { flow, accepted: false };
37
- }
38
- // Advance to next step
39
- const nextStep = flow.currentStep + 1;
40
- const complete = nextStep >= flow.steps.length;
41
- const updatedFlow = {
42
- ...flow,
43
- currentStep: nextStep,
44
- complete,
45
- };
46
- return { flow: updatedFlow, accepted: true };
47
- }
48
- /**
49
- * Check if a flow is waiting for a specific event type.
50
- */
51
- export function isFlowWaitingFor(flow, eventType) {
52
- if (flow.complete) {
53
- return false;
54
- }
55
- const currentStep = flow.steps[flow.currentStep];
56
- return currentStep?.expectedEventType === eventType;
57
- }
58
- /**
59
- * Create a new actor.
60
- */
61
- export function createActor(id, initialState, stepFunction, type) {
62
- return {
63
- id,
64
- state: initialState,
65
- step: stepFunction,
66
- metadata: {
67
- type,
68
- created: Date.now(),
69
- },
70
- };
71
- }
72
- /**
73
- * Process an event through an actor.
74
- * Returns the updated actor and any effects.
75
- */
76
- export function processActorEvent(actor, event) {
77
- const result = actor.step(actor.state, event);
78
- const updatedActor = {
79
- ...actor,
80
- state: result.state,
81
- };
82
- return { actor: updatedActor, result };
83
- }
84
- /**
85
- * Actor system for managing multiple actors.
86
- */
87
- export class ActorSystem {
88
- actors = new Map();
89
- /**
90
- * Register an actor in the system.
91
- */
92
- register(actor) {
93
- if (this.actors.has(actor.id)) {
94
- throw new Error(`Actor with id '${actor.id}' already exists`);
95
- }
96
- this.actors.set(actor.id, actor);
97
- }
98
- /**
99
- * Unregister an actor from the system.
100
- */
101
- unregister(id) {
102
- return this.actors.delete(id);
103
- }
104
- /**
105
- * Get an actor by ID.
106
- */
107
- get(id) {
108
- return this.actors.get(id);
109
- }
110
- /**
111
- * Get all actors.
112
- */
113
- getAll() {
114
- return Array.from(this.actors.values());
115
- }
116
- /**
117
- * Send an event to a specific actor.
118
- */
119
- send(actorId, event) {
120
- const actor = this.actors.get(actorId);
121
- if (!actor) {
122
- return undefined;
123
- }
124
- const { actor: updatedActor, result } = processActorEvent(actor, event);
125
- this.actors.set(actorId, updatedActor);
126
- return result;
127
- }
128
- /**
129
- * Broadcast an event to all actors.
130
- * Returns a map of actor IDs to their results.
131
- */
132
- broadcast(event) {
133
- const results = new Map();
134
- for (const [id, actor] of this.actors) {
135
- const { actor: updatedActor, result } = processActorEvent(actor, event);
136
- this.actors.set(id, updatedActor);
137
- results.set(id, result);
138
- }
139
- return results;
140
- }
141
- /**
142
- * Clear all actors from the system.
143
- */
144
- clear() {
145
- this.actors.clear();
146
- }
147
- /**
148
- * Get the number of actors in the system.
149
- */
150
- size() {
151
- return this.actors.size;
152
- }
153
- }
154
- /**
155
- * Create a new actor system.
156
- */
157
- export function createActorSystem() {
158
- return new ActorSystem();
159
- }
160
- //# sourceMappingURL=flows.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flows.js","sourceRoot":"","sources":["../../src/flows.ts"],"names":[],"mappings":"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"}
@@ -1,77 +0,0 @@
1
- /**
2
- * Praxis - Practical, Provable Application Logic
3
- *
4
- * A typed, functional application logic engine built on strong types.
5
- *
6
- * Core concepts:
7
- * - Facts: typed propositions about the domain
8
- * - Events: temporally ordered facts meant to drive change
9
- * - Rules: pure functions that derive new facts from context + events
10
- * - Constraints: invariants that must always hold
11
- * - Flows: orchestrated behaviors
12
- * - Actors: effectful units that perform side effects
13
- *
14
- * @example
15
- * ```typescript
16
- * import { createPraxisEngine, PraxisRegistry, defineFact, defineEvent, defineRule } from "@plures/praxis";
17
- *
18
- * // Define facts and events
19
- * const UserLoggedIn = defineFact<"UserLoggedIn", { userId: string }>("UserLoggedIn");
20
- * const Login = defineEvent<"LOGIN", { username: string }>("LOGIN");
21
- *
22
- * // Define rules
23
- * const loginRule = defineRule({
24
- * id: "auth.login",
25
- * description: "Process login event",
26
- * impl: (state, events) => {
27
- * const loginEvent = events.find(Login.is);
28
- * if (loginEvent) {
29
- * return [UserLoggedIn.create({ userId: loginEvent.payload.username })];
30
- * }
31
- * return [];
32
- * }
33
- * });
34
- *
35
- * // Create engine
36
- * const registry = new PraxisRegistry();
37
- * registry.registerRule(loginRule);
38
- *
39
- * const engine = createPraxisEngine({
40
- * initialContext: {},
41
- * registry
42
- * });
43
- *
44
- * // Dispatch events
45
- * const result = engine.step([Login.create({ username: "alice" })]);
46
- * console.log(result.state.facts); // [{ tag: "UserLoggedIn", payload: { userId: "alice" } }]
47
- * ```
48
- */
49
- export type { PraxisFact, PraxisEvent, PraxisState, PraxisDiagnostics, PraxisStepConfig, PraxisStepResult, PraxisStepFn, } from "./core/protocol.js";
50
- export { PRAXIS_PROTOCOL_VERSION } from "./core/protocol.js";
51
- export type { RuleId, ConstraintId, RuleFn, ConstraintFn, RuleDescriptor, ConstraintDescriptor, PraxisModule, } from "./core/rules.js";
52
- export { PraxisRegistry } from "./core/rules.js";
53
- export type { PraxisEngineOptions } from "./core/engine.js";
54
- export { LogicEngine, createPraxisEngine } from "./core/engine.js";
55
- export type { Actor } from "./core/actors.js";
56
- export { ActorManager, createTimerActor } from "./core/actors.js";
57
- export type { RuleNode, ConstraintNode, GraphEdge, RegistryGraph, RuleSchema, ConstraintSchema, RegistrySchema, RegistryStats, } from "./core/introspection.js";
58
- export { RegistryIntrospector, createIntrospector } from "./core/introspection.js";
59
- export { defineFact, defineEvent, defineRule, defineConstraint, defineModule, filterEvents, filterFacts, findEvent, findFact, } from "./dsl/index.js";
60
- export type { FactDefinition, EventDefinition, DefineRuleOptions, DefineConstraintOptions, DefineModuleOptions, } from "./dsl/index.js";
61
- export type { TerminalExecutionResult, TerminalNodeState, TerminalAdapterOptions, CommandExecutor, } from "./runtime/terminal-adapter.js";
62
- export { TerminalAdapter, createTerminalAdapter, runTerminalCommand, createMockExecutor, } from "./runtime/terminal-adapter.js";
63
- export type { PraxisSchema, NodeDefinition, NodeBindings, TerminalNodeProps, OrchestrationDefinition, ValidationResult, ValidationError, ModelDefinition, ComponentDefinition, LogicDefinition, } from "./core/schema/types.js";
64
- export { validateSchema, createSchemaTemplate } from "./core/schema/types.js";
65
- export type { LoaderOptions, LoaderResult, } from "./core/schema/loader.js";
66
- export { loadSchema, loadSchemaFromJson, loadSchemaFromYaml, loadSchemaFromFile, validateForGeneration, } from "./core/schema/loader.js";
67
- export type { PraxisDB, UnsubscribeFn, EventStreamEntry, PraxisDBStoreOptions, StoredSchema, PluresDBGeneratorOptions, GeneratedPluresDBFile, PluresDBAdapter, PluresDBAdapterOptions, } from "./integrations/pluresdb.js";
68
- export { InMemoryPraxisDB, createInMemoryDB, PraxisDBStore, createPraxisDBStore, PRAXIS_PATHS, getFactPath, getEventPath, generateId, PraxisSchemaRegistry, createSchemaRegistry, registerSchema, getSchemaPath, PluresDBGenerator, createPluresDBGenerator, createPluresDBAdapter, attachToEngine, } from "./integrations/pluresdb.js";
69
- export type { UnumStore, UnumChannel, UnumMessage, UnumIdentity, UnumAdapterConfig, UnumAdapter, } from "./integrations/unum.js";
70
- export { createUnumAdapter, attachUnumToEngine, } from "./integrations/unum.js";
71
- export type { CanvasNode, CanvasEdge, CanvasNodeStyle, CanvasEdgeStyle, CanvasDocument, LifecycleState, ActivityState, CanvasEditorConfig, GuardianResult, GuardianError, GuardianWarning, } from "./integrations/code-canvas.js";
72
- export { schemaToCanvas, canvasToSchema, canvasToYaml, canvasToMermaid, validateWithGuardian, createCanvasEditor, } from "./integrations/code-canvas.js";
73
- export type { StateDocsConfig, GeneratedDoc, StateMachineDoc, StateDoc, TransitionDoc, } from "./integrations/state-docs.js";
74
- export { StateDocsGenerator, createStateDocsGenerator, generateDocs, } from "./integrations/state-docs.js";
75
- export type { TauriAppConfig, TauriWindowConfig, TauriSecurityConfig, TauriUpdateConfig, TauriPlugin, TauriCommand, TauriEvent, TauriFS, TauriFileEntry, TauriTray, TauriMenuItem, TauriNotification, TauriNotificationOptions, TauriBridge, TauriUpdateInfo, TauriPraxisAdapter, } from "./integrations/tauri.js";
76
- export { createMockTauriBridge, createTauriPraxisAdapter, attachTauriToEngine, generateTauriConfig, } from "./integrations/tauri.js";
77
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js DELETED
@@ -1,64 +0,0 @@
1
- /**
2
- * Praxis - Practical, Provable Application Logic
3
- *
4
- * A typed, functional application logic engine built on strong types.
5
- *
6
- * Core concepts:
7
- * - Facts: typed propositions about the domain
8
- * - Events: temporally ordered facts meant to drive change
9
- * - Rules: pure functions that derive new facts from context + events
10
- * - Constraints: invariants that must always hold
11
- * - Flows: orchestrated behaviors
12
- * - Actors: effectful units that perform side effects
13
- *
14
- * @example
15
- * ```typescript
16
- * import { createPraxisEngine, PraxisRegistry, defineFact, defineEvent, defineRule } from "@plures/praxis";
17
- *
18
- * // Define facts and events
19
- * const UserLoggedIn = defineFact<"UserLoggedIn", { userId: string }>("UserLoggedIn");
20
- * const Login = defineEvent<"LOGIN", { username: string }>("LOGIN");
21
- *
22
- * // Define rules
23
- * const loginRule = defineRule({
24
- * id: "auth.login",
25
- * description: "Process login event",
26
- * impl: (state, events) => {
27
- * const loginEvent = events.find(Login.is);
28
- * if (loginEvent) {
29
- * return [UserLoggedIn.create({ userId: loginEvent.payload.username })];
30
- * }
31
- * return [];
32
- * }
33
- * });
34
- *
35
- * // Create engine
36
- * const registry = new PraxisRegistry();
37
- * registry.registerRule(loginRule);
38
- *
39
- * const engine = createPraxisEngine({
40
- * initialContext: {},
41
- * registry
42
- * });
43
- *
44
- * // Dispatch events
45
- * const result = engine.step([Login.create({ username: "alice" })]);
46
- * console.log(result.state.facts); // [{ tag: "UserLoggedIn", payload: { userId: "alice" } }]
47
- * ```
48
- */
49
- export { PRAXIS_PROTOCOL_VERSION } from "./core/protocol.js";
50
- export { PraxisRegistry } from "./core/rules.js";
51
- export { LogicEngine, createPraxisEngine } from "./core/engine.js";
52
- export { ActorManager, createTimerActor } from "./core/actors.js";
53
- export { RegistryIntrospector, createIntrospector } from "./core/introspection.js";
54
- // DSL helpers
55
- export { defineFact, defineEvent, defineRule, defineConstraint, defineModule, filterEvents, filterFacts, findEvent, findFact, } from "./dsl/index.js";
56
- export { TerminalAdapter, createTerminalAdapter, runTerminalCommand, createMockExecutor, } from "./runtime/terminal-adapter.js";
57
- export { validateSchema, createSchemaTemplate } from "./core/schema/types.js";
58
- export { loadSchema, loadSchemaFromJson, loadSchemaFromYaml, loadSchemaFromFile, validateForGeneration, } from "./core/schema/loader.js";
59
- export { InMemoryPraxisDB, createInMemoryDB, PraxisDBStore, createPraxisDBStore, PRAXIS_PATHS, getFactPath, getEventPath, generateId, PraxisSchemaRegistry, createSchemaRegistry, registerSchema, getSchemaPath, PluresDBGenerator, createPluresDBGenerator, createPluresDBAdapter, attachToEngine, } from "./integrations/pluresdb.js";
60
- export { createUnumAdapter, attachUnumToEngine, } from "./integrations/unum.js";
61
- export { schemaToCanvas, canvasToSchema, canvasToYaml, canvasToMermaid, validateWithGuardian, createCanvasEditor, } from "./integrations/code-canvas.js";
62
- export { StateDocsGenerator, createStateDocsGenerator, generateDocs, } from "./integrations/state-docs.js";
63
- export { createMockTauriBridge, createTauriPraxisAdapter, attachTauriToEngine, generateTauriConfig, } from "./integrations/tauri.js";
64
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAYH,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAY7D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIjD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAInE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAalE,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAEnF,cAAc;AACd,OAAO,EACL,UAAU,EACV,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,SAAS,EACT,QAAQ,GACT,MAAM,gBAAgB,CAAC;AAgBxB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AAevC,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAO9E,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAcjC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,cAAc,GACf,MAAM,4BAA4B,CAAC;AAWpC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAgBhC,OAAO,EACL,cAAc,EACd,cAAc,EACd,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AAUvC,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,YAAY,GACb,MAAM,8BAA8B,CAAC;AAqBtC,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC"}