@plures/praxis 1.0.3 → 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 (534) 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 -97
  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 +7 -8
  133. package/src/cli/index.ts +14 -10
  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/commands/verify.d.ts +0 -10
  294. package/dist/src/cli/commands/verify.d.ts.map +0 -1
  295. package/dist/src/cli/commands/verify.js +0 -39
  296. package/dist/src/cli/commands/verify.js.map +0 -1
  297. package/dist/src/cli/index.d.ts +0 -8
  298. package/dist/src/cli/index.d.ts.map +0 -1
  299. package/dist/src/cli/index.js +0 -226
  300. package/dist/src/cli/index.js.map +0 -1
  301. package/dist/src/cloud/auth.d.ts +0 -51
  302. package/dist/src/cloud/auth.d.ts.map +0 -1
  303. package/dist/src/cloud/auth.js +0 -194
  304. package/dist/src/cloud/auth.js.map +0 -1
  305. package/dist/src/cloud/billing.d.ts +0 -184
  306. package/dist/src/cloud/billing.d.ts.map +0 -1
  307. package/dist/src/cloud/billing.js +0 -179
  308. package/dist/src/cloud/billing.js.map +0 -1
  309. package/dist/src/cloud/client.d.ts +0 -39
  310. package/dist/src/cloud/client.d.ts.map +0 -1
  311. package/dist/src/cloud/client.js +0 -176
  312. package/dist/src/cloud/client.js.map +0 -1
  313. package/dist/src/cloud/index.d.ts +0 -44
  314. package/dist/src/cloud/index.d.ts.map +0 -1
  315. package/dist/src/cloud/index.js +0 -44
  316. package/dist/src/cloud/index.js.map +0 -1
  317. package/dist/src/cloud/marketplace.d.ts +0 -166
  318. package/dist/src/cloud/marketplace.d.ts.map +0 -1
  319. package/dist/src/cloud/marketplace.js +0 -159
  320. package/dist/src/cloud/marketplace.js.map +0 -1
  321. package/dist/src/cloud/provisioning.d.ts +0 -110
  322. package/dist/src/cloud/provisioning.d.ts.map +0 -1
  323. package/dist/src/cloud/provisioning.js +0 -148
  324. package/dist/src/cloud/provisioning.js.map +0 -1
  325. package/dist/src/cloud/relay/endpoints.d.ts +0 -62
  326. package/dist/src/cloud/relay/endpoints.d.ts.map +0 -1
  327. package/dist/src/cloud/relay/endpoints.js +0 -217
  328. package/dist/src/cloud/relay/endpoints.js.map +0 -1
  329. package/dist/src/cloud/relay/health/index.d.ts +0 -5
  330. package/dist/src/cloud/relay/health/index.d.ts.map +0 -1
  331. package/dist/src/cloud/relay/health/index.js +0 -9
  332. package/dist/src/cloud/relay/health/index.js.map +0 -1
  333. package/dist/src/cloud/relay/stats/index.d.ts +0 -5
  334. package/dist/src/cloud/relay/stats/index.d.ts.map +0 -1
  335. package/dist/src/cloud/relay/stats/index.js +0 -9
  336. package/dist/src/cloud/relay/stats/index.js.map +0 -1
  337. package/dist/src/cloud/relay/sync/index.d.ts +0 -5
  338. package/dist/src/cloud/relay/sync/index.d.ts.map +0 -1
  339. package/dist/src/cloud/relay/sync/index.js +0 -9
  340. package/dist/src/cloud/relay/sync/index.js.map +0 -1
  341. package/dist/src/cloud/relay/usage/index.d.ts +0 -5
  342. package/dist/src/cloud/relay/usage/index.d.ts.map +0 -1
  343. package/dist/src/cloud/relay/usage/index.js +0 -9
  344. package/dist/src/cloud/relay/usage/index.js.map +0 -1
  345. package/dist/src/cloud/sponsors.d.ts +0 -81
  346. package/dist/src/cloud/sponsors.d.ts.map +0 -1
  347. package/dist/src/cloud/sponsors.js +0 -130
  348. package/dist/src/cloud/sponsors.js.map +0 -1
  349. package/dist/src/cloud/types.d.ts +0 -169
  350. package/dist/src/cloud/types.d.ts.map +0 -1
  351. package/dist/src/cloud/types.js +0 -7
  352. package/dist/src/cloud/types.js.map +0 -1
  353. package/dist/src/components/index.d.ts.map +0 -1
  354. package/dist/src/components/index.js +0 -17
  355. package/dist/src/components/index.js.map +0 -1
  356. package/dist/src/core/actors.d.ts +0 -95
  357. package/dist/src/core/actors.d.ts.map +0 -1
  358. package/dist/src/core/actors.js +0 -158
  359. package/dist/src/core/actors.js.map +0 -1
  360. package/dist/src/core/component/generator.d.ts.map +0 -1
  361. package/dist/src/core/component/generator.js +0 -349
  362. package/dist/src/core/component/generator.js.map +0 -1
  363. package/dist/src/core/engine.d.ts +0 -92
  364. package/dist/src/core/engine.d.ts.map +0 -1
  365. package/dist/src/core/engine.js +0 -199
  366. package/dist/src/core/engine.js.map +0 -1
  367. package/dist/src/core/introspection.d.ts +0 -141
  368. package/dist/src/core/introspection.d.ts.map +0 -1
  369. package/dist/src/core/introspection.js +0 -208
  370. package/dist/src/core/introspection.js.map +0 -1
  371. package/dist/src/core/logic/generator.d.ts +0 -76
  372. package/dist/src/core/logic/generator.d.ts.map +0 -1
  373. package/dist/src/core/logic/generator.js +0 -370
  374. package/dist/src/core/logic/generator.js.map +0 -1
  375. package/dist/src/core/pluresdb/adapter.d.ts +0 -72
  376. package/dist/src/core/pluresdb/adapter.d.ts.map +0 -1
  377. package/dist/src/core/pluresdb/adapter.js +0 -73
  378. package/dist/src/core/pluresdb/adapter.js.map +0 -1
  379. package/dist/src/core/pluresdb/generator.d.ts +0 -58
  380. package/dist/src/core/pluresdb/generator.d.ts.map +0 -1
  381. package/dist/src/core/pluresdb/generator.js +0 -191
  382. package/dist/src/core/pluresdb/generator.js.map +0 -1
  383. package/dist/src/core/pluresdb/index.d.ts +0 -15
  384. package/dist/src/core/pluresdb/index.d.ts.map +0 -1
  385. package/dist/src/core/pluresdb/index.js +0 -11
  386. package/dist/src/core/pluresdb/index.js.map +0 -1
  387. package/dist/src/core/pluresdb/schema-registry.d.ts +0 -104
  388. package/dist/src/core/pluresdb/schema-registry.d.ts.map +0 -1
  389. package/dist/src/core/pluresdb/schema-registry.js +0 -130
  390. package/dist/src/core/pluresdb/schema-registry.js.map +0 -1
  391. package/dist/src/core/pluresdb/store.d.ts +0 -199
  392. package/dist/src/core/pluresdb/store.d.ts.map +0 -1
  393. package/dist/src/core/pluresdb/store.js +0 -344
  394. package/dist/src/core/pluresdb/store.js.map +0 -1
  395. package/dist/src/core/protocol.d.ts.map +0 -1
  396. package/dist/src/core/protocol.js +0 -46
  397. package/dist/src/core/protocol.js.map +0 -1
  398. package/dist/src/core/rules.d.ts +0 -120
  399. package/dist/src/core/rules.d.ts.map +0 -1
  400. package/dist/src/core/rules.js +0 -81
  401. package/dist/src/core/rules.js.map +0 -1
  402. package/dist/src/core/schema/loader.d.ts +0 -47
  403. package/dist/src/core/schema/loader.d.ts.map +0 -1
  404. package/dist/src/core/schema/loader.js +0 -189
  405. package/dist/src/core/schema/loader.js.map +0 -1
  406. package/dist/src/core/schema/normalize.d.ts +0 -72
  407. package/dist/src/core/schema/normalize.d.ts.map +0 -1
  408. package/dist/src/core/schema/normalize.js +0 -190
  409. package/dist/src/core/schema/normalize.js.map +0 -1
  410. package/dist/src/core/schema/types.d.ts.map +0 -1
  411. package/dist/src/core/schema/types.js +0 -161
  412. package/dist/src/core/schema/types.js.map +0 -1
  413. package/dist/src/dsl/index.d.ts +0 -152
  414. package/dist/src/dsl/index.d.ts.map +0 -1
  415. package/dist/src/dsl/index.js +0 -132
  416. package/dist/src/dsl/index.js.map +0 -1
  417. package/dist/src/dsl.d.ts +0 -124
  418. package/dist/src/dsl.d.ts.map +0 -1
  419. package/dist/src/dsl.js +0 -130
  420. package/dist/src/dsl.js.map +0 -1
  421. package/dist/src/examples/advanced-todo/index.d.ts +0 -55
  422. package/dist/src/examples/advanced-todo/index.d.ts.map +0 -1
  423. package/dist/src/examples/advanced-todo/index.js +0 -222
  424. package/dist/src/examples/advanced-todo/index.js.map +0 -1
  425. package/dist/src/examples/auth-basic/index.d.ts +0 -17
  426. package/dist/src/examples/auth-basic/index.d.ts.map +0 -1
  427. package/dist/src/examples/auth-basic/index.js +0 -122
  428. package/dist/src/examples/auth-basic/index.js.map +0 -1
  429. package/dist/src/examples/cart/index.d.ts +0 -19
  430. package/dist/src/examples/cart/index.d.ts.map +0 -1
  431. package/dist/src/examples/cart/index.js +0 -202
  432. package/dist/src/examples/cart/index.js.map +0 -1
  433. package/dist/src/examples/hero-ecommerce/index.d.ts +0 -39
  434. package/dist/src/examples/hero-ecommerce/index.d.ts.map +0 -1
  435. package/dist/src/examples/hero-ecommerce/index.js +0 -506
  436. package/dist/src/examples/hero-ecommerce/index.js.map +0 -1
  437. package/dist/src/examples/svelte-counter/index.d.ts +0 -31
  438. package/dist/src/examples/svelte-counter/index.d.ts.map +0 -1
  439. package/dist/src/examples/svelte-counter/index.js +0 -123
  440. package/dist/src/examples/svelte-counter/index.js.map +0 -1
  441. package/dist/src/flows.d.ts +0 -125
  442. package/dist/src/flows.d.ts.map +0 -1
  443. package/dist/src/flows.js +0 -160
  444. package/dist/src/flows.js.map +0 -1
  445. package/dist/src/index.d.ts +0 -77
  446. package/dist/src/index.d.ts.map +0 -1
  447. package/dist/src/index.js +0 -64
  448. package/dist/src/index.js.map +0 -1
  449. package/dist/src/integrations/code-canvas.d.ts +0 -265
  450. package/dist/src/integrations/code-canvas.d.ts.map +0 -1
  451. package/dist/src/integrations/code-canvas.js +0 -451
  452. package/dist/src/integrations/code-canvas.js.map +0 -1
  453. package/dist/src/integrations/pluresdb.d.ts +0 -117
  454. package/dist/src/integrations/pluresdb.d.ts.map +0 -1
  455. package/dist/src/integrations/pluresdb.js +0 -117
  456. package/dist/src/integrations/pluresdb.js.map +0 -1
  457. package/dist/src/integrations/state-docs.d.ts +0 -191
  458. package/dist/src/integrations/state-docs.d.ts.map +0 -1
  459. package/dist/src/integrations/state-docs.js +0 -515
  460. package/dist/src/integrations/state-docs.js.map +0 -1
  461. package/dist/src/integrations/svelte.d.ts.map +0 -1
  462. package/dist/src/integrations/svelte.js +0 -447
  463. package/dist/src/integrations/svelte.js.map +0 -1
  464. package/dist/src/integrations/tauri.d.ts +0 -360
  465. package/dist/src/integrations/tauri.d.ts.map +0 -1
  466. package/dist/src/integrations/tauri.js +0 -278
  467. package/dist/src/integrations/tauri.js.map +0 -1
  468. package/dist/src/integrations/unum.d.ts +0 -159
  469. package/dist/src/integrations/unum.d.ts.map +0 -1
  470. package/dist/src/integrations/unum.js +0 -240
  471. package/dist/src/integrations/unum.js.map +0 -1
  472. package/dist/src/registry.d.ts +0 -94
  473. package/dist/src/registry.d.ts.map +0 -1
  474. package/dist/src/registry.js +0 -181
  475. package/dist/src/registry.js.map +0 -1
  476. package/dist/src/runtime/terminal-adapter.d.ts.map +0 -1
  477. package/dist/src/runtime/terminal-adapter.js +0 -239
  478. package/dist/src/runtime/terminal-adapter.js.map +0 -1
  479. package/dist/src/step.d.ts +0 -34
  480. package/dist/src/step.d.ts.map +0 -1
  481. package/dist/src/step.js +0 -111
  482. package/dist/src/step.js.map +0 -1
  483. package/dist/src/types.d.ts +0 -63
  484. package/dist/src/types.d.ts.map +0 -1
  485. package/dist/src/types.js +0 -6
  486. package/dist/src/types.js.map +0 -1
  487. package/dist/tools/ast-analyzer/src/ast-analyzer.d.ts +0 -8
  488. package/dist/tools/ast-analyzer/src/ast-analyzer.d.ts.map +0 -1
  489. package/dist/tools/ast-analyzer/src/ast-analyzer.js +0 -119
  490. package/dist/tools/ast-analyzer/src/ast-analyzer.js.map +0 -1
  491. package/dist/tools/cli/commands/index.d.ts +0 -7
  492. package/dist/tools/cli/commands/index.d.ts.map +0 -1
  493. package/dist/tools/cli/commands/index.js +0 -7
  494. package/dist/tools/cli/commands/index.js.map +0 -1
  495. package/dist/tools/cli/index.d.ts +0 -8
  496. package/dist/tools/cli/index.d.ts.map +0 -1
  497. package/dist/tools/cli/index.js +0 -9
  498. package/dist/tools/cli/index.js.map +0 -1
  499. package/dist/tools/watcher/index.d.ts +0 -105
  500. package/dist/tools/watcher/index.d.ts.map +0 -1
  501. package/dist/tools/watcher/index.js +0 -213
  502. package/dist/tools/watcher/index.js.map +0 -1
  503. package/dist/ui/canvas/canvas-projection.d.ts +0 -78
  504. package/dist/ui/canvas/canvas-projection.d.ts.map +0 -1
  505. package/dist/ui/canvas/canvas-projection.js +0 -416
  506. package/dist/ui/canvas/canvas-projection.js.map +0 -1
  507. package/dist/ui/canvas/canvas-state.d.ts +0 -200
  508. package/dist/ui/canvas/canvas-state.d.ts.map +0 -1
  509. package/dist/ui/canvas/canvas-state.js +0 -464
  510. package/dist/ui/canvas/canvas-state.js.map +0 -1
  511. package/dist/ui/canvas/components/index.d.ts +0 -95
  512. package/dist/ui/canvas/components/index.d.ts.map +0 -1
  513. package/dist/ui/canvas/components/index.js +0 -19
  514. package/dist/ui/canvas/components/index.js.map +0 -1
  515. package/dist/ui/canvas/index.d.ts +0 -32
  516. package/dist/ui/canvas/index.d.ts.map +0 -1
  517. package/dist/ui/canvas/index.js +0 -32
  518. package/dist/ui/canvas/index.js.map +0 -1
  519. package/dist/ui/canvas-inspector/src/server.d.ts +0 -2
  520. package/dist/ui/canvas-inspector/src/server.d.ts.map +0 -1
  521. package/dist/ui/canvas-inspector/src/server.js +0 -248
  522. package/dist/ui/canvas-inspector/src/server.js.map +0 -1
  523. package/dist/ui/canvas-inspector/src/verify-fsm-implementation.d.ts +0 -5
  524. package/dist/ui/canvas-inspector/src/verify-fsm-implementation.d.ts.map +0 -1
  525. package/dist/ui/canvas-inspector/src/verify-fsm-implementation.js +0 -58
  526. package/dist/ui/canvas-inspector/src/verify-fsm-implementation.js.map +0 -1
  527. package/dist/ui/svelte-generator/index.d.ts +0 -9
  528. package/dist/ui/svelte-generator/index.d.ts.map +0 -1
  529. package/dist/ui/svelte-generator/index.js +0 -11
  530. package/dist/ui/svelte-generator/index.js.map +0 -1
  531. package/dist/ui/svelte-generator/psf-generator.d.ts +0 -128
  532. package/dist/ui/svelte-generator/psf-generator.d.ts.map +0 -1
  533. package/dist/ui/svelte-generator/psf-generator.js +0 -506
  534. package/dist/ui/svelte-generator/psf-generator.js.map +0 -1
@@ -1,349 +0,0 @@
1
- /**
2
- * Praxis Component Generator
3
- *
4
- * Generates Svelte components from schema definitions.
5
- */
6
- /**
7
- * Component generator class
8
- */
9
- export class ComponentGenerator {
10
- config;
11
- constructor(config) {
12
- this.config = config;
13
- }
14
- /**
15
- * Generate component from definition
16
- */
17
- generateComponent(component, model) {
18
- const files = [];
19
- const errors = [];
20
- try {
21
- // Generate main component file
22
- const componentFile = this.generateComponentFile(component, model);
23
- files.push(componentFile);
24
- // Generate TypeScript types if enabled
25
- if (this.config.typescript) {
26
- const typesFile = this.generateTypesFile(component, model);
27
- files.push(typesFile);
28
- }
29
- // Generate tests if enabled
30
- if (this.config.includeTests) {
31
- const testFile = this.generateTestFile(component);
32
- files.push(testFile);
33
- }
34
- // Generate docs if enabled
35
- if (this.config.includeDocs) {
36
- const docsFile = this.generateDocsFile(component);
37
- files.push(docsFile);
38
- }
39
- }
40
- catch (error) {
41
- errors.push({
42
- message: error instanceof Error ? error.message : 'Unknown error',
43
- component: component.name,
44
- });
45
- }
46
- return {
47
- success: errors.length === 0,
48
- files,
49
- errors,
50
- };
51
- }
52
- /**
53
- * Generate component file
54
- */
55
- generateComponentFile(component, model) {
56
- // Note: ext could be used for file naming in future versions
57
- // const ext = this.config.typescript ? 'ts' : 'js';
58
- const content = this.generateSvelteComponent(component, model);
59
- return {
60
- path: `${this.config.outputDir}/${component.name}.svelte`,
61
- content,
62
- type: 'component',
63
- };
64
- }
65
- /**
66
- * Generate Svelte component code
67
- */
68
- generateSvelteComponent(component, model) {
69
- const script = this.generateScript(component, model);
70
- const template = this.generateTemplate(component, model);
71
- const styles = this.generateStyles(component);
72
- return `<script${this.config.typescript ? ' lang="ts"' : ''}>
73
- ${script}
74
- </script>
75
-
76
- ${template}
77
-
78
- ${styles ? `<style>\n${styles}\n</style>` : ''}`;
79
- }
80
- /**
81
- * Generate component script
82
- */
83
- generateScript(component, _model // Prefix with _ to indicate intentionally unused
84
- ) {
85
- const lines = [];
86
- // Import statements
87
- lines.push(` import { createPraxisStore } from '@plures/praxis/svelte';`);
88
- lines.push('');
89
- // Props
90
- if (component.props && component.props.length > 0) {
91
- component.props.forEach((prop) => {
92
- const typeAnnotation = this.config.typescript ? `: ${prop.type}` : '';
93
- const defaultValue = prop.default !== undefined ? ` = ${JSON.stringify(prop.default)}` : '';
94
- lines.push(` export let ${prop.name}${typeAnnotation}${defaultValue};`);
95
- });
96
- lines.push('');
97
- }
98
- // Component logic based on component type
99
- switch (component.type) {
100
- case 'form':
101
- lines.push(' // Form handling logic');
102
- lines.push(' import { createEventDispatcher } from "svelte";');
103
- lines.push(' const dispatch = createEventDispatcher();');
104
- lines.push('');
105
- lines.push(' function handleSubmit() {');
106
- lines.push(' dispatch("submit", data);');
107
- lines.push(' }');
108
- lines.push('');
109
- lines.push(' function handleReset() {');
110
- lines.push(' data = { ...initialData };');
111
- lines.push(' }');
112
- break;
113
- case 'list':
114
- lines.push(' // List handling logic');
115
- lines.push(' import { createEventDispatcher } from "svelte";');
116
- lines.push(' const dispatch = createEventDispatcher();');
117
- lines.push('');
118
- lines.push(' function handleSelect(item) {');
119
- lines.push(' dispatch("select", item);');
120
- lines.push(' }');
121
- lines.push('');
122
- lines.push(' function handleDelete(item) {');
123
- lines.push(' dispatch("delete", item);');
124
- lines.push(' }');
125
- break;
126
- case 'display':
127
- lines.push(' // Display component - reactive to data changes');
128
- lines.push(' $: formattedData = data ? JSON.stringify(data, null, 2) : "No data";');
129
- break;
130
- case 'navigation':
131
- lines.push(' // Navigation handling');
132
- lines.push(' import { createEventDispatcher } from "svelte";');
133
- lines.push(' const dispatch = createEventDispatcher();');
134
- lines.push('');
135
- lines.push(' function navigate(path) {');
136
- lines.push(' dispatch("navigate", { path });');
137
- lines.push(' }');
138
- break;
139
- default:
140
- lines.push(' // Component logic');
141
- lines.push(' $: console.log("Component data updated:", data);');
142
- }
143
- return lines.join('\n');
144
- }
145
- /**
146
- * Generate component template
147
- */
148
- generateTemplate(component, model) {
149
- switch (component.type) {
150
- case 'form':
151
- return this.generateFormTemplate(component, model);
152
- case 'display':
153
- return this.generateDisplayTemplate(component, model);
154
- case 'list':
155
- return this.generateListTemplate(component, model);
156
- case 'navigation':
157
- return this.generateNavigationTemplate(component);
158
- default:
159
- return `<div class="${component.name.toLowerCase()}">\n <!-- ${component.description || component.name} -->\n <p>Component: ${component.name}</p>\n</div>`;
160
- }
161
- }
162
- /**
163
- * Generate form template
164
- */
165
- generateFormTemplate(component, model) {
166
- const fields = model?.fields || [];
167
- const formFields = fields
168
- .map((field) => {
169
- return ` <label>\n ${field.name}\n <input type="text" bind:value={data.${field.name}} />\n </label>`;
170
- })
171
- .join('\n');
172
- return `<form class="${component.name.toLowerCase()}">\n${formFields}\n <button type="submit">Submit</button>\n</form>`;
173
- }
174
- /**
175
- * Generate display template
176
- */
177
- generateDisplayTemplate(component, model) {
178
- const fields = model?.fields || [];
179
- const displayFields = fields
180
- .map((field) => {
181
- return ` <div class="field">\n <strong>${field.name}:</strong> {data.${field.name}}\n </div>`;
182
- })
183
- .join('\n');
184
- return `<div class="${component.name.toLowerCase()}">\n${displayFields}\n</div>`;
185
- }
186
- /**
187
- * Generate list template
188
- */
189
- generateListTemplate(component, _model // Prefix with _ to indicate intentionally unused
190
- ) {
191
- return `<div class="${component.name.toLowerCase()}">\n {#each items as item}\n <div class="item">{item.name}</div>\n {/each}\n</div>`;
192
- }
193
- /**
194
- * Generate navigation template
195
- */
196
- generateNavigationTemplate(component) {
197
- return `<nav class="${component.name.toLowerCase()}">\n <ul>\n <li><a href="/">Home</a></li>\n <li><a href="/about">About</a></li>\n </ul>\n</nav>`;
198
- }
199
- /**
200
- * Generate component styles
201
- */
202
- generateStyles(component) {
203
- if (!component.styling) {
204
- return '';
205
- }
206
- const lines = [];
207
- const styles = component.styling.styles || {};
208
- Object.entries(styles).forEach(([key, value]) => {
209
- lines.push(` ${key}: ${value};`);
210
- });
211
- return lines.length > 0 ? lines.join('\n') : '';
212
- }
213
- /**
214
- * Generate types file
215
- */
216
- generateTypesFile(component, model) {
217
- const lines = [];
218
- // Component props type
219
- if (component.props && component.props.length > 0) {
220
- lines.push(`export interface ${component.name}Props {`);
221
- component.props.forEach((prop) => {
222
- const optional = prop.required ? '' : '?';
223
- lines.push(` ${prop.name}${optional}: ${prop.type};`);
224
- });
225
- lines.push('}');
226
- lines.push('');
227
- }
228
- // Model type if available
229
- if (model) {
230
- lines.push(`export interface ${model.name} {`);
231
- model.fields.forEach((field) => {
232
- const optional = field.optional ? '?' : '';
233
- lines.push(` ${field.name}${optional}: ${this.mapFieldType(field.type)};`);
234
- });
235
- lines.push('}');
236
- }
237
- return {
238
- path: `${this.config.outputDir}/${component.name}.types.ts`,
239
- content: lines.join('\n'),
240
- type: 'types',
241
- };
242
- }
243
- /**
244
- * Map field type to TypeScript type
245
- */
246
- mapFieldType(type) {
247
- if (typeof type === 'string') {
248
- switch (type) {
249
- case 'string':
250
- return 'string';
251
- case 'number':
252
- return 'number';
253
- case 'boolean':
254
- return 'boolean';
255
- case 'date':
256
- return 'Date';
257
- case 'array':
258
- return 'unknown[]';
259
- case 'object':
260
- return 'Record<string, unknown>';
261
- default:
262
- return 'unknown';
263
- }
264
- }
265
- return 'unknown';
266
- }
267
- /**
268
- * Generate test file
269
- */
270
- generateTestFile(component) {
271
- const content = `import { describe, it, expect } from 'vitest';
272
- import { render } from '@testing-library/svelte';
273
- import ${component.name} from './${component.name}.svelte';
274
-
275
- describe('${component.name}', () => {
276
- it('renders correctly', () => {
277
- const { container } = render(${component.name});
278
- expect(container).toBeTruthy();
279
- });
280
-
281
- // TODO: Add more tests based on component behavior
282
- });
283
- `;
284
- return {
285
- path: `${this.config.outputDir}/${component.name}.test.ts`,
286
- content,
287
- type: 'test',
288
- };
289
- }
290
- /**
291
- * Generate documentation file
292
- */
293
- generateDocsFile(component) {
294
- const lines = [];
295
- lines.push(`# ${component.name}`);
296
- lines.push('');
297
- if (component.description) {
298
- lines.push(component.description);
299
- lines.push('');
300
- }
301
- lines.push('## Props');
302
- lines.push('');
303
- if (component.props && component.props.length > 0) {
304
- component.props.forEach((prop) => {
305
- lines.push(`- \`${prop.name}\`: ${prop.type}${prop.required ? ' (required)' : ' (optional)'}`);
306
- if (prop.description) {
307
- lines.push(` - ${prop.description}`);
308
- }
309
- });
310
- }
311
- else {
312
- lines.push('No props defined.');
313
- }
314
- lines.push('');
315
- lines.push('## Events');
316
- lines.push('');
317
- if (component.events && component.events.length > 0) {
318
- component.events.forEach((event) => {
319
- lines.push(`- \`${event.name}\`: ${event.payload || 'void'}`);
320
- if (event.description) {
321
- lines.push(` - ${event.description}`);
322
- }
323
- });
324
- }
325
- else {
326
- lines.push('No events defined.');
327
- }
328
- return {
329
- path: `${this.config.outputDir}/${component.name}.md`,
330
- content: lines.join('\n'),
331
- type: 'docs',
332
- };
333
- }
334
- }
335
- /**
336
- * Create a component generator with default configuration
337
- */
338
- export function createComponentGenerator(outputDir, options) {
339
- const config = {
340
- outputDir,
341
- framework: 'svelte',
342
- typescript: true,
343
- includeTests: false,
344
- includeDocs: false,
345
- ...options,
346
- };
347
- return new ComponentGenerator(config);
348
- }
349
- //# sourceMappingURL=generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../src/core/component/generator.ts"],"names":[],"mappings":"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"}
@@ -1,92 +0,0 @@
1
- /**
2
- * Praxis Logic Engine
3
- *
4
- * The logic engine manages state, processes events through rules,
5
- * checks constraints, and provides a strongly-typed API for application logic.
6
- */
7
- import type { PraxisEvent, PraxisFact, PraxisState, PraxisStepConfig, PraxisStepResult } from "./protocol.js";
8
- import { PraxisRegistry } from "./rules.js";
9
- /**
10
- * Options for creating a Praxis engine
11
- */
12
- export interface PraxisEngineOptions<TContext = unknown> {
13
- /** Initial context */
14
- initialContext: TContext;
15
- /** Registry of rules and constraints */
16
- registry: PraxisRegistry<TContext>;
17
- /** Initial facts (optional) */
18
- initialFacts?: PraxisFact[];
19
- /** Initial metadata (optional) */
20
- initialMeta?: Record<string, unknown>;
21
- }
22
- /**
23
- * The Praxis Logic Engine
24
- *
25
- * Manages application logic through facts, events, rules, and constraints.
26
- * The engine is strongly typed and functional - all state updates are immutable.
27
- */
28
- export declare class LogicEngine<TContext = unknown> {
29
- private state;
30
- private readonly registry;
31
- constructor(options: PraxisEngineOptions<TContext>);
32
- /**
33
- * Get the current state (immutable copy)
34
- */
35
- getState(): Readonly<PraxisState & {
36
- context: TContext;
37
- }>;
38
- /**
39
- * Get the current context
40
- */
41
- getContext(): TContext;
42
- /**
43
- * Get current facts
44
- */
45
- getFacts(): PraxisFact[];
46
- /**
47
- * Process events through the engine.
48
- * Applies all registered rules and checks all registered constraints.
49
- *
50
- * @param events Events to process
51
- * @returns Result with new state and diagnostics
52
- */
53
- step(events: PraxisEvent[]): PraxisStepResult;
54
- /**
55
- * Process events with specific rule and constraint configuration.
56
- *
57
- * @param events Events to process
58
- * @param config Step configuration
59
- * @returns Result with new state and diagnostics
60
- */
61
- stepWithConfig(events: PraxisEvent[], config: PraxisStepConfig): PraxisStepResult;
62
- /**
63
- * Update the context directly (for exceptional cases).
64
- * Generally, context should be updated through rules.
65
- *
66
- * @param updater Function that produces new context from old context
67
- */
68
- updateContext(updater: (context: TContext) => TContext): void;
69
- /**
70
- * Add facts directly (for exceptional cases).
71
- * Generally, facts should be added through rules.
72
- *
73
- * @param facts Facts to add
74
- */
75
- addFacts(facts: PraxisFact[]): void;
76
- /**
77
- * Clear all facts
78
- */
79
- clearFacts(): void;
80
- /**
81
- * Reset the engine to initial state
82
- */
83
- reset(options: PraxisEngineOptions<TContext>): void;
84
- }
85
- /**
86
- * Create a new Praxis logic engine.
87
- *
88
- * @param options Engine options
89
- * @returns New LogicEngine instance
90
- */
91
- export declare function createPraxisEngine<TContext = unknown>(options: PraxisEngineOptions<TContext>): LogicEngine<TContext>;
92
- //# sourceMappingURL=engine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/core/engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAEjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,QAAQ,GAAG,OAAO;IACrD,sBAAsB;IACtB,cAAc,EAAE,QAAQ,CAAC;IACzB,wCAAwC;IACxC,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IACnC,+BAA+B;IAC/B,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED;;;;;GAKG;AACH,qBAAa,WAAW,CAAC,QAAQ,GAAG,OAAO;IACzC,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;gBAExC,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC;IAUlD;;OAEG;IACH,QAAQ,IAAI,QAAQ,CAAC,WAAW,GAAG;QAAE,OAAO,EAAE,QAAQ,CAAA;KAAE,CAAC;IASzD;;OAEG;IACH,UAAU,IAAI,QAAQ;IAItB;;OAEG;IACH,QAAQ,IAAI,UAAU,EAAE;IAIxB;;;;;;OAMG;IACH,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB;IAQ7C;;;;;;OAMG;IACH,cAAc,CACZ,MAAM,EAAE,WAAW,EAAE,EACrB,MAAM,EAAE,gBAAgB,GACvB,gBAAgB;IAgFnB;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,QAAQ,GAAG,IAAI;IAO7D;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI;IAOnC;;OAEG;IACH,UAAU,IAAI,IAAI;IAOlB;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,IAAI;CAQpD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,GAAG,OAAO,EACnD,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GACrC,WAAW,CAAC,QAAQ,CAAC,CAEvB"}
@@ -1,199 +0,0 @@
1
- /**
2
- * Praxis Logic Engine
3
- *
4
- * The logic engine manages state, processes events through rules,
5
- * checks constraints, and provides a strongly-typed API for application logic.
6
- */
7
- import { PRAXIS_PROTOCOL_VERSION } from "./protocol.js";
8
- /**
9
- * The Praxis Logic Engine
10
- *
11
- * Manages application logic through facts, events, rules, and constraints.
12
- * The engine is strongly typed and functional - all state updates are immutable.
13
- */
14
- export class LogicEngine {
15
- state;
16
- registry;
17
- constructor(options) {
18
- this.registry = options.registry;
19
- this.state = {
20
- context: options.initialContext,
21
- facts: options.initialFacts ?? [],
22
- meta: options.initialMeta ?? {},
23
- protocolVersion: PRAXIS_PROTOCOL_VERSION,
24
- };
25
- }
26
- /**
27
- * Get the current state (immutable copy)
28
- */
29
- getState() {
30
- return {
31
- context: structuredClone(this.state.context),
32
- facts: [...this.state.facts],
33
- meta: this.state.meta ? { ...this.state.meta } : undefined,
34
- protocolVersion: this.state.protocolVersion,
35
- };
36
- }
37
- /**
38
- * Get the current context
39
- */
40
- getContext() {
41
- return structuredClone(this.state.context);
42
- }
43
- /**
44
- * Get current facts
45
- */
46
- getFacts() {
47
- return [...this.state.facts];
48
- }
49
- /**
50
- * Process events through the engine.
51
- * Applies all registered rules and checks all registered constraints.
52
- *
53
- * @param events Events to process
54
- * @returns Result with new state and diagnostics
55
- */
56
- step(events) {
57
- const config = {
58
- ruleIds: this.registry.getRuleIds(),
59
- constraintIds: this.registry.getConstraintIds(),
60
- };
61
- return this.stepWithConfig(events, config);
62
- }
63
- /**
64
- * Process events with specific rule and constraint configuration.
65
- *
66
- * @param events Events to process
67
- * @param config Step configuration
68
- * @returns Result with new state and diagnostics
69
- */
70
- stepWithConfig(events, config) {
71
- const diagnostics = [];
72
- let newState = { ...this.state };
73
- // Apply rules
74
- const newFacts = [];
75
- for (const ruleId of config.ruleIds) {
76
- const rule = this.registry.getRule(ruleId);
77
- if (!rule) {
78
- diagnostics.push({
79
- kind: "rule-error",
80
- message: `Rule "${ruleId}" not found in registry`,
81
- data: { ruleId },
82
- });
83
- continue;
84
- }
85
- try {
86
- const ruleFacts = rule.impl(newState, events);
87
- newFacts.push(...ruleFacts);
88
- }
89
- catch (error) {
90
- diagnostics.push({
91
- kind: "rule-error",
92
- message: `Error executing rule "${ruleId}": ${error instanceof Error ? error.message : String(error)}`,
93
- data: { ruleId, error },
94
- });
95
- }
96
- }
97
- // Add new facts to state
98
- newState = {
99
- ...newState,
100
- facts: [...newState.facts, ...newFacts],
101
- };
102
- // Check constraints
103
- for (const constraintId of config.constraintIds) {
104
- const constraint = this.registry.getConstraint(constraintId);
105
- if (!constraint) {
106
- diagnostics.push({
107
- kind: "constraint-violation",
108
- message: `Constraint "${constraintId}" not found in registry`,
109
- data: { constraintId },
110
- });
111
- continue;
112
- }
113
- try {
114
- const result = constraint.impl(newState);
115
- if (result === false) {
116
- diagnostics.push({
117
- kind: "constraint-violation",
118
- message: `Constraint "${constraintId}" violated`,
119
- data: { constraintId, description: constraint.description },
120
- });
121
- }
122
- else if (typeof result === "string") {
123
- diagnostics.push({
124
- kind: "constraint-violation",
125
- message: result,
126
- data: { constraintId, description: constraint.description },
127
- });
128
- }
129
- }
130
- catch (error) {
131
- diagnostics.push({
132
- kind: "constraint-violation",
133
- message: `Error checking constraint "${constraintId}": ${error instanceof Error ? error.message : String(error)}`,
134
- data: { constraintId, error },
135
- });
136
- }
137
- }
138
- // Update internal state
139
- this.state = newState;
140
- return {
141
- state: newState,
142
- diagnostics,
143
- };
144
- }
145
- /**
146
- * Update the context directly (for exceptional cases).
147
- * Generally, context should be updated through rules.
148
- *
149
- * @param updater Function that produces new context from old context
150
- */
151
- updateContext(updater) {
152
- this.state = {
153
- ...this.state,
154
- context: updater(this.state.context),
155
- };
156
- }
157
- /**
158
- * Add facts directly (for exceptional cases).
159
- * Generally, facts should be added through rules.
160
- *
161
- * @param facts Facts to add
162
- */
163
- addFacts(facts) {
164
- this.state = {
165
- ...this.state,
166
- facts: [...this.state.facts, ...facts],
167
- };
168
- }
169
- /**
170
- * Clear all facts
171
- */
172
- clearFacts() {
173
- this.state = {
174
- ...this.state,
175
- facts: [],
176
- };
177
- }
178
- /**
179
- * Reset the engine to initial state
180
- */
181
- reset(options) {
182
- this.state = {
183
- context: options.initialContext,
184
- facts: options.initialFacts ?? [],
185
- meta: options.initialMeta ?? {},
186
- protocolVersion: PRAXIS_PROTOCOL_VERSION,
187
- };
188
- }
189
- }
190
- /**
191
- * Create a new Praxis logic engine.
192
- *
193
- * @param options Engine options
194
- * @returns New LogicEngine instance
195
- */
196
- export function createPraxisEngine(options) {
197
- return new LogicEngine(options);
198
- }
199
- //# sourceMappingURL=engine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/core/engine.ts"],"names":[],"mappings":"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"}