@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,199 +0,0 @@
1
- /**
2
- * PraxisDB Store
3
- *
4
- * Connects Praxis Facts, Events, Rules, and Constraints to PluresDB.
5
- * Provides CRDT-backed storage for facts and append-only event streams.
6
- */
7
- import type { PraxisDB, UnsubscribeFn } from "./adapter.js";
8
- import type { PraxisRegistry } from "../rules.js";
9
- import type { PraxisFact, PraxisEvent } from "../protocol.js";
10
- /**
11
- * Key paths for Praxis data in PluresDB
12
- */
13
- export declare const PRAXIS_PATHS: {
14
- /** Base path for all Praxis data */
15
- readonly BASE: "/_praxis";
16
- /** Path for facts storage */
17
- readonly FACTS: "/_praxis/facts";
18
- /** Path for events storage */
19
- readonly EVENTS: "/_praxis/events";
20
- /** Path for schema registry */
21
- readonly SCHEMAS: "/_praxis/schemas";
22
- };
23
- /**
24
- * Generate a fact key path
25
- * @param factTag The fact type tag
26
- * @param id Optional unique identifier for the fact instance
27
- */
28
- export declare function getFactPath(factTag: string, id?: string): string;
29
- /**
30
- * Generate an event stream key path
31
- * @param eventTag The event type tag
32
- */
33
- export declare function getEventPath(eventTag: string): string;
34
- /**
35
- * Generate a unique ID for facts or events
36
- * Uses timestamp and random string for uniqueness
37
- */
38
- export declare function generateId(): string;
39
- /**
40
- * Event stream entry with timestamp
41
- */
42
- export interface EventStreamEntry {
43
- /** The event data */
44
- event: PraxisEvent;
45
- /** Timestamp when the event was appended */
46
- timestamp: number;
47
- /** Optional sequence number */
48
- sequence?: number;
49
- }
50
- /**
51
- * Options for creating a PraxisDBStore
52
- */
53
- export interface PraxisDBStoreOptions<TContext = unknown> {
54
- /** The PraxisDB instance to use */
55
- db: PraxisDB;
56
- /** The PraxisRegistry for rules and constraints */
57
- registry: PraxisRegistry<TContext>;
58
- /** Initial context for rule evaluation */
59
- initialContext?: TContext;
60
- }
61
- /**
62
- * PraxisDBStore
63
- *
64
- * Manages persistence and reactive updates for Praxis state in PluresDB.
65
- *
66
- * - Facts are stored as CRDT-backed documents under `/_praxis/facts/<factTag>/<id>`
67
- * - Events are stored as append-only streams under `/_praxis/events/<eventTag>`
68
- * - Rules are triggered automatically when watched keys change
69
- * - Constraints are run before writing mutated state
70
- */
71
- /**
72
- * Error handler callback for rule execution errors
73
- */
74
- export type RuleErrorHandler = (ruleId: string, error: unknown) => void;
75
- export declare class PraxisDBStore<TContext = unknown> {
76
- private db;
77
- private registry;
78
- private context;
79
- private subscriptions;
80
- private factWatchers;
81
- private onRuleError;
82
- constructor(options: PraxisDBStoreOptions<TContext> & {
83
- onRuleError?: RuleErrorHandler;
84
- });
85
- /**
86
- * Store a fact in PluresDB
87
- *
88
- * Facts are stored under `/_praxis/facts/<factTag>/<id>`
89
- * If no id is provided in the payload, a timestamp-based id is used.
90
- *
91
- * @param fact The fact to store
92
- * @returns Promise that resolves when the fact is stored
93
- */
94
- storeFact(fact: PraxisFact): Promise<void>;
95
- /**
96
- * Store multiple facts in PluresDB
97
- *
98
- * @param facts The facts to store
99
- */
100
- storeFacts(facts: PraxisFact[]): Promise<void>;
101
- /**
102
- * Internal method to persist a fact without constraint checking
103
- * Used by both storeFact and derived fact storage
104
- */
105
- private persistFact;
106
- /**
107
- * Get a fact by tag and id
108
- *
109
- * @param factTag The fact type tag
110
- * @param id The fact id
111
- * @returns The fact or undefined if not found
112
- */
113
- getFact(factTag: string, id: string): Promise<PraxisFact | undefined>;
114
- /**
115
- * Append an event to the event stream
116
- *
117
- * Events are stored as append-only streams under `/_praxis/events/<eventTag>`
118
- *
119
- * @param event The event to append
120
- */
121
- appendEvent(event: PraxisEvent): Promise<void>;
122
- /**
123
- * Append multiple events to their respective streams
124
- *
125
- * @param events The events to append
126
- */
127
- appendEvents(events: PraxisEvent[]): Promise<void>;
128
- /**
129
- * Get events from a stream
130
- *
131
- * @param eventTag The event type tag
132
- * @param options Query options
133
- * @returns Array of event stream entries
134
- */
135
- getEvents(eventTag: string, options?: {
136
- since?: number;
137
- limit?: number;
138
- }): Promise<EventStreamEntry[]>;
139
- /**
140
- * Watch a fact path for changes
141
- *
142
- * @param factTag The fact type tag to watch
143
- * @param callback Called when facts of this type change
144
- * @returns Unsubscribe function
145
- */
146
- watchFacts(factTag: string, callback: (facts: PraxisFact[]) => void): UnsubscribeFn;
147
- /**
148
- * Check constraints against the current state with new facts
149
- */
150
- private checkConstraints;
151
- /**
152
- * Trigger rules when new facts are added
153
- *
154
- * This method is called after facts are stored. It can be extended
155
- * for derived fact computation where rules generate new facts based
156
- * on existing facts. Currently implemented as a hook point for future
157
- * enhancements.
158
- *
159
- * @param _newFacts The newly stored facts (unused in current implementation)
160
- */
161
- private triggerRules;
162
- /**
163
- * Trigger rules when events are appended
164
- */
165
- private triggerRulesForEvents;
166
- /**
167
- * Update the context
168
- */
169
- updateContext(context: TContext): void;
170
- /**
171
- * Get the current context
172
- */
173
- getContext(): TContext;
174
- /**
175
- * Dispose of all subscriptions
176
- */
177
- dispose(): void;
178
- }
179
- /**
180
- * Create a new PraxisDBStore
181
- *
182
- * @param db The PraxisDB instance to use
183
- * @param registry The PraxisRegistry for rules and constraints
184
- * @param initialContext Optional initial context
185
- * @param onRuleError Optional error handler for rule execution errors
186
- * @returns PraxisDBStore instance
187
- *
188
- * @example
189
- * ```typescript
190
- * const db = createInMemoryDB();
191
- * const registry = new PraxisRegistry();
192
- * const store = createPraxisDBStore(db, registry);
193
- *
194
- * await store.storeFact({ tag: "UserLoggedIn", payload: { userId: "alice" } });
195
- * await store.appendEvent({ tag: "LOGIN", payload: { username: "alice" } });
196
- * ```
197
- */
198
- export declare function createPraxisDBStore<TContext = unknown>(db: PraxisDB, registry: PraxisRegistry<TContext>, initialContext?: TContext, onRuleError?: RuleErrorHandler): PraxisDBStore<TContext>;
199
- //# sourceMappingURL=store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/core/pluresdb/store.ts"],"names":[],"mappings":"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"}
@@ -1,344 +0,0 @@
1
- /**
2
- * PraxisDB Store
3
- *
4
- * Connects Praxis Facts, Events, Rules, and Constraints to PluresDB.
5
- * Provides CRDT-backed storage for facts and append-only event streams.
6
- */
7
- /**
8
- * Key paths for Praxis data in PluresDB
9
- */
10
- export const PRAXIS_PATHS = {
11
- /** Base path for all Praxis data */
12
- BASE: "/_praxis",
13
- /** Path for facts storage */
14
- FACTS: "/_praxis/facts",
15
- /** Path for events storage */
16
- EVENTS: "/_praxis/events",
17
- /** Path for schema registry */
18
- SCHEMAS: "/_praxis/schemas",
19
- };
20
- /**
21
- * Generate a fact key path
22
- * @param factTag The fact type tag
23
- * @param id Optional unique identifier for the fact instance
24
- */
25
- export function getFactPath(factTag, id) {
26
- if (id) {
27
- return `${PRAXIS_PATHS.FACTS}/${factTag}/${id}`;
28
- }
29
- return `${PRAXIS_PATHS.FACTS}/${factTag}`;
30
- }
31
- /**
32
- * Generate an event stream key path
33
- * @param eventTag The event type tag
34
- */
35
- export function getEventPath(eventTag) {
36
- return `${PRAXIS_PATHS.EVENTS}/${eventTag}`;
37
- }
38
- /**
39
- * Generate a unique ID for facts or events
40
- * Uses timestamp and random string for uniqueness
41
- */
42
- export function generateId() {
43
- return `${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
44
- }
45
- /**
46
- * Default error handler that logs to console
47
- */
48
- const defaultErrorHandler = (ruleId, error) => {
49
- // Default behavior: silent in production, can be overridden
50
- if (typeof process !== "undefined" && process.env?.NODE_ENV === "development") {
51
- console.error(`Error executing rule "${ruleId}":`, error);
52
- }
53
- };
54
- export class PraxisDBStore {
55
- db;
56
- registry;
57
- context;
58
- subscriptions = [];
59
- factWatchers = new Map();
60
- onRuleError;
61
- constructor(options) {
62
- this.db = options.db;
63
- this.registry = options.registry;
64
- this.context = options.initialContext ?? {};
65
- this.onRuleError = options.onRuleError ?? defaultErrorHandler;
66
- }
67
- /**
68
- * Store a fact in PluresDB
69
- *
70
- * Facts are stored under `/_praxis/facts/<factTag>/<id>`
71
- * If no id is provided in the payload, a timestamp-based id is used.
72
- *
73
- * @param fact The fact to store
74
- * @returns Promise that resolves when the fact is stored
75
- */
76
- async storeFact(fact) {
77
- // Run constraints before storing
78
- const constraintResult = await this.checkConstraints([fact]);
79
- if (!constraintResult.valid) {
80
- throw new Error(`Constraint violation: ${constraintResult.errors.join(", ")}`);
81
- }
82
- await this.persistFact(fact);
83
- // Trigger rule evaluation - facts stored directly may trigger derived computations
84
- await this.triggerRules([fact]);
85
- }
86
- /**
87
- * Store multiple facts in PluresDB
88
- *
89
- * @param facts The facts to store
90
- */
91
- async storeFacts(facts) {
92
- // Run constraints before storing
93
- const constraintResult = await this.checkConstraints(facts);
94
- if (!constraintResult.valid) {
95
- throw new Error(`Constraint violation: ${constraintResult.errors.join(", ")}`);
96
- }
97
- for (const fact of facts) {
98
- await this.persistFact(fact);
99
- }
100
- // Trigger rule evaluation
101
- await this.triggerRules(facts);
102
- }
103
- /**
104
- * Internal method to persist a fact without constraint checking
105
- * Used by both storeFact and derived fact storage
106
- */
107
- async persistFact(fact) {
108
- const payload = fact.payload;
109
- const id = payload?.id ?? generateId();
110
- const path = getFactPath(fact.tag, id);
111
- await this.db.set(path, fact);
112
- }
113
- /**
114
- * Get a fact by tag and id
115
- *
116
- * @param factTag The fact type tag
117
- * @param id The fact id
118
- * @returns The fact or undefined if not found
119
- */
120
- async getFact(factTag, id) {
121
- const path = getFactPath(factTag, id);
122
- return this.db.get(path);
123
- }
124
- /**
125
- * Append an event to the event stream
126
- *
127
- * Events are stored as append-only streams under `/_praxis/events/<eventTag>`
128
- *
129
- * @param event The event to append
130
- */
131
- async appendEvent(event) {
132
- const path = getEventPath(event.tag);
133
- // Get existing events for this tag
134
- const existingEvents = await this.db.get(path) ?? [];
135
- // Create new entry
136
- const entry = {
137
- event,
138
- timestamp: Date.now(),
139
- sequence: existingEvents.length,
140
- };
141
- // Append and store
142
- const newEvents = [...existingEvents, entry];
143
- await this.db.set(path, newEvents);
144
- // Trigger rules with this event
145
- await this.triggerRulesForEvents([event]);
146
- }
147
- /**
148
- * Append multiple events to their respective streams
149
- *
150
- * @param events The events to append
151
- */
152
- async appendEvents(events) {
153
- // Group events by tag for efficient storage
154
- const eventsByTag = new Map();
155
- for (const event of events) {
156
- const existing = eventsByTag.get(event.tag) ?? [];
157
- eventsByTag.set(event.tag, [...existing, event]);
158
- }
159
- // Append each group
160
- for (const [tag, tagEvents] of eventsByTag) {
161
- const path = getEventPath(tag);
162
- const existingEvents = await this.db.get(path) ?? [];
163
- let sequence = existingEvents.length;
164
- const newEntries = tagEvents.map(event => ({
165
- event,
166
- timestamp: Date.now(),
167
- sequence: sequence++,
168
- }));
169
- await this.db.set(path, [...existingEvents, ...newEntries]);
170
- }
171
- // Trigger rules
172
- await this.triggerRulesForEvents(events);
173
- }
174
- /**
175
- * Get events from a stream
176
- *
177
- * @param eventTag The event type tag
178
- * @param options Query options
179
- * @returns Array of event stream entries
180
- */
181
- async getEvents(eventTag, options) {
182
- const path = getEventPath(eventTag);
183
- const events = await this.db.get(path) ?? [];
184
- let result = events;
185
- if (options?.since !== undefined) {
186
- const sinceTimestamp = options.since;
187
- result = result.filter(e => e.timestamp > sinceTimestamp);
188
- }
189
- if (options?.limit !== undefined) {
190
- result = result.slice(-options.limit);
191
- }
192
- return result;
193
- }
194
- /**
195
- * Watch a fact path for changes
196
- *
197
- * @param factTag The fact type tag to watch
198
- * @param callback Called when facts of this type change
199
- * @returns Unsubscribe function
200
- */
201
- watchFacts(factTag, callback) {
202
- const path = getFactPath(factTag);
203
- // Register the callback
204
- if (!this.factWatchers.has(factTag)) {
205
- this.factWatchers.set(factTag, new Set());
206
- }
207
- const watchers = this.factWatchers.get(factTag);
208
- if (watchers) {
209
- watchers.add(callback);
210
- }
211
- // Watch the path in the DB
212
- const unsubscribe = this.db.watch(path, (fact) => {
213
- callback([fact]);
214
- });
215
- this.subscriptions.push(unsubscribe);
216
- return () => {
217
- unsubscribe();
218
- this.factWatchers.get(factTag)?.delete(callback);
219
- };
220
- }
221
- /**
222
- * Check constraints against the current state with new facts
223
- */
224
- async checkConstraints(newFacts) {
225
- const constraints = this.registry.getAllConstraints();
226
- const errors = [];
227
- // Build a minimal state for constraint checking
228
- const state = {
229
- context: this.context,
230
- facts: newFacts,
231
- meta: {},
232
- };
233
- for (const constraint of constraints) {
234
- try {
235
- const result = constraint.impl(state);
236
- if (result === false) {
237
- errors.push(`Constraint "${constraint.id}" violated`);
238
- }
239
- else if (typeof result === "string") {
240
- errors.push(result);
241
- }
242
- }
243
- catch (error) {
244
- errors.push(`Error checking constraint "${constraint.id}": ${error instanceof Error ? error.message : String(error)}`);
245
- }
246
- }
247
- return {
248
- valid: errors.length === 0,
249
- errors,
250
- };
251
- }
252
- /**
253
- * Trigger rules when new facts are added
254
- *
255
- * This method is called after facts are stored. It can be extended
256
- * for derived fact computation where rules generate new facts based
257
- * on existing facts. Currently implemented as a hook point for future
258
- * enhancements.
259
- *
260
- * @param _newFacts The newly stored facts (unused in current implementation)
261
- */
262
- async triggerRules(_newFacts) {
263
- // Rules are typically triggered by events, not facts
264
- // This method serves as a hook for derived fact computation
265
- // which can be implemented by subclasses or future enhancements
266
- }
267
- /**
268
- * Trigger rules when events are appended
269
- */
270
- async triggerRulesForEvents(events) {
271
- const rules = this.registry.getAllRules();
272
- // Build state for rule evaluation
273
- const state = {
274
- context: this.context,
275
- facts: [],
276
- meta: {},
277
- };
278
- // Execute each rule
279
- const derivedFacts = [];
280
- for (const rule of rules) {
281
- try {
282
- const facts = rule.impl(state, events);
283
- derivedFacts.push(...facts);
284
- }
285
- catch (error) {
286
- this.onRuleError(rule.id, error);
287
- }
288
- }
289
- // Store derived facts (without re-triggering rules to avoid infinite loops)
290
- if (derivedFacts.length > 0) {
291
- const constraintResult = await this.checkConstraints(derivedFacts);
292
- if (constraintResult.valid) {
293
- for (const fact of derivedFacts) {
294
- await this.persistFact(fact);
295
- }
296
- }
297
- }
298
- }
299
- /**
300
- * Update the context
301
- */
302
- updateContext(context) {
303
- this.context = context;
304
- }
305
- /**
306
- * Get the current context
307
- */
308
- getContext() {
309
- return this.context;
310
- }
311
- /**
312
- * Dispose of all subscriptions
313
- */
314
- dispose() {
315
- for (const unsubscribe of this.subscriptions) {
316
- unsubscribe();
317
- }
318
- this.subscriptions = [];
319
- this.factWatchers.clear();
320
- }
321
- }
322
- /**
323
- * Create a new PraxisDBStore
324
- *
325
- * @param db The PraxisDB instance to use
326
- * @param registry The PraxisRegistry for rules and constraints
327
- * @param initialContext Optional initial context
328
- * @param onRuleError Optional error handler for rule execution errors
329
- * @returns PraxisDBStore instance
330
- *
331
- * @example
332
- * ```typescript
333
- * const db = createInMemoryDB();
334
- * const registry = new PraxisRegistry();
335
- * const store = createPraxisDBStore(db, registry);
336
- *
337
- * await store.storeFact({ tag: "UserLoggedIn", payload: { userId: "alice" } });
338
- * await store.appendEvent({ tag: "LOGIN", payload: { username: "alice" } });
339
- * ```
340
- */
341
- export function createPraxisDBStore(db, registry, initialContext, onRuleError) {
342
- return new PraxisDBStore({ db, registry, initialContext, onRuleError });
343
- }
344
- //# sourceMappingURL=store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/core/pluresdb/store.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/core/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAG,OAAgB,CAAC;AAExD;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,qCAAqC;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,IAAI,EAAE,sBAAsB,GAAG,YAAY,CAAC;IAC5C,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mDAAmD;IACnD,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,KAAK,EAAE,WAAW,CAAC;IACnB,8DAA8D;IAC9D,WAAW,EAAE,iBAAiB,EAAE,CAAC;CAClC;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,WAAW,EAAE,EACrB,MAAM,EAAE,gBAAgB,KACrB,gBAAgB,CAAC"}
@@ -1,46 +0,0 @@
1
- /**
2
- * Core Praxis Protocol
3
- *
4
- * Language-neutral, JSON-friendly protocol that forms the foundation of Praxis.
5
- * This protocol is designed to be stable and portable across languages (TypeScript, C#, PowerShell, etc.)
6
- *
7
- * The protocol defines the conceptual core of the engine:
8
- * - Pure, deterministic, data in → data out
9
- * - No side effects, no global state
10
- * - All higher-level TypeScript APIs are built on top of this protocol
11
- *
12
- * ## Protocol Versioning
13
- *
14
- * The Praxis protocol follows semantic versioning (MAJOR.MINOR.PATCH):
15
- * - MAJOR: Breaking changes to core protocol types or semantics
16
- * - MINOR: Backward-compatible additions to protocol (new optional fields)
17
- * - PATCH: Clarifications, documentation updates, no functional changes
18
- *
19
- * Current version: 1.0.0
20
- *
21
- * ### Stability Guarantees
22
- *
23
- * 1. **Core Types Stability**: The following types are considered stable and will not
24
- * change in backward-incompatible ways within the same major version:
25
- * - PraxisFact (tag, payload structure)
26
- * - PraxisEvent (tag, payload structure)
27
- * - PraxisState (context, facts, meta structure)
28
- * - PraxisStepFn signature
29
- *
30
- * 2. **JSON Compatibility**: All protocol types will remain JSON-serializable.
31
- * No non-JSON-safe types (functions, symbols, etc.) will be added to the protocol.
32
- *
33
- * 3. **Cross-Language Compatibility**: Protocol changes will be coordinated across
34
- * all official language implementations (TypeScript, C#, PowerShell) to ensure
35
- * interoperability.
36
- *
37
- * 4. **Migration Path**: Major version changes will be accompanied by:
38
- * - Migration guide
39
- * - Deprecation warnings in previous version
40
- * - Compatibility shims where possible
41
- */
42
- /**
43
- * Protocol version following semantic versioning
44
- */
45
- export const PRAXIS_PROTOCOL_VERSION = "1.0.0";
46
- //# sourceMappingURL=protocol.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/core/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,OAAgB,CAAC"}