@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.
- package/FRAMEWORK.md +55 -5
- package/LICENSE +21 -21
- package/README.md +162 -375
- package/core/codegen/docs-generator.ts +5 -2
- package/core/codegen/index.ts +1 -1
- package/core/codegen/ts-generator.ts +15 -15
- package/core/db-adapter/index.ts +2 -2
- package/core/db-adapter/sync-engine.ts +17 -6
- package/core/logic-engine/engine.ts +1 -1
- package/core/logic-engine/index.ts +2 -2
- package/core/logic-engine/protocol.ts +1 -1
- package/core/logic-engine/psf-adapter.ts +8 -4
- package/core/logic-engine/rules.ts +1 -1
- package/core/schema-engine/compiler.ts +53 -11
- package/core/schema-engine/generator.ts +17 -7
- package/core/schema-engine/index.ts +2 -2
- package/core/schema-engine/psf.ts +12 -3
- package/core/schema-engine/types.ts +3 -11
- package/core/schema-engine/validator.ts +112 -22
- package/dist/browser/engine-BjdqxeXG.d.ts +333 -0
- package/dist/browser/index.d.ts +3004 -0
- package/dist/browser/index.js +2892 -0
- package/dist/{src → browser}/integrations/svelte.d.ts +19 -17
- package/dist/browser/integrations/svelte.js +298 -0
- package/dist/node/auth-STARLY7I.js +207 -0
- package/dist/node/build-Y7OT5VBF.js +144 -0
- package/dist/node/canvas-UERZHJYW.js +362 -0
- package/dist/node/chunk-DSDC2JWZ.js +256 -0
- package/dist/node/chunk-FXQZXAWF.js +175 -0
- package/dist/node/chunk-N5Y37EUV.js +202 -0
- package/dist/node/chunk-QGM4M3NI.js +37 -0
- package/dist/node/chunk-RJMWCNHR.js +175 -0
- package/dist/node/chunk-SRM3OPPM.js +404 -0
- package/dist/node/chunk-UATVJBNV.js +175 -0
- package/dist/node/chunk-UY7YEBE2.js +159 -0
- package/dist/node/chunk-XCY2VIFX.js +143 -0
- package/dist/node/chunk-YXH4Y7ZZ.js +349 -0
- package/dist/node/cli/index.cjs +217418 -0
- package/dist/node/cli/index.d.cts +1 -0
- package/dist/node/cli/index.d.ts +1 -0
- package/dist/node/cli/index.js +690 -0
- package/dist/node/cloud/index.cjs +1043 -0
- package/dist/node/cloud/index.d.cts +864 -0
- package/dist/node/cloud/index.d.ts +864 -0
- package/dist/node/cloud/index.js +456 -0
- package/dist/node/cloud-AXOK4PSN.js +212 -0
- package/dist/node/component.cjs +374 -0
- package/dist/node/component.d.cts +125 -0
- package/dist/{src/core/component/generator.d.ts → node/component.d.ts} +11 -8
- package/dist/node/component.js +9 -0
- package/dist/node/components/index.cjs +216 -0
- package/dist/node/components/index.d.cts +43 -0
- package/dist/{src → node}/components/index.d.ts +8 -8
- package/dist/node/components/index.js +7 -0
- package/dist/node/create-TRLSVCNQ.js +584 -0
- package/dist/node/dev-PMJZUYGE.js +65 -0
- package/dist/node/engine-1iqLe6_P.d.ts +214 -0
- package/dist/node/engine-CVJobhHm.d.cts +214 -0
- package/dist/node/index.cjs +3247 -0
- package/dist/node/index.d.cts +2579 -0
- package/dist/node/index.d.ts +2579 -0
- package/dist/node/index.js +2098 -0
- package/dist/node/integrations/svelte.cjs +330 -0
- package/dist/node/integrations/svelte.d.cts +309 -0
- package/dist/node/integrations/svelte.d.ts +309 -0
- package/dist/node/integrations/svelte.js +300 -0
- package/dist/node/orchestrate-737TCL5H.js +127 -0
- package/dist/{src/core/protocol.d.ts → node/protocol-Qek7ebBl.d.cts} +11 -10
- package/dist/node/protocol-Qek7ebBl.d.ts +122 -0
- package/dist/node/schema.cjs +200 -0
- package/dist/{src/core/schema/types.d.ts → node/schema.d.cts} +30 -29
- package/dist/node/schema.d.ts +371 -0
- package/dist/node/schema.js +9 -0
- package/dist/{src/runtime/terminal-adapter.d.ts → node/terminal-adapter-07HGftGQ.d.ts} +86 -11
- package/dist/node/terminal-adapter-XLtCjjb_.d.cts +231 -0
- package/dist/node/verify-YBZ7W24H.js +213239 -0
- package/docs/MONETIZATION.md +21 -16
- package/docs/REACTIVE_REDESIGN.md +132 -0
- package/docs/README.md +47 -36
- package/docs/SVELTE_INTEGRATION_STRATEGY.md +68 -0
- package/docs/TERMINAL_NODE.md +27 -24
- package/docs/core/building-extensions.md +58 -61
- package/docs/core/cli-usage.md +59 -59
- package/docs/core/code-canvas-sync.md +28 -16
- package/docs/core/logic-engine.md +77 -82
- package/docs/core/pluresdb-integration.md +29 -39
- package/docs/core/schema-model.md +66 -52
- package/docs/core/ui-generation.md +57 -49
- package/docs/core/what-is-praxis.md +32 -15
- package/docs/guides/canvas.md +21 -5
- package/docs/guides/getting-started.md +13 -7
- package/docs/guides/history-state-pattern.md +65 -51
- package/docs/guides/orchestration.md +46 -32
- package/docs/guides/parallel-state-pattern.md +56 -72
- package/docs/guides/svelte-integration.md +45 -53
- package/docs/tutorials/README.md +16 -0
- package/docs/tutorials/ecommerce-cart.md +177 -95
- package/docs/tutorials/first-app.md +26 -41
- package/docs/tutorials/form-builder.md +191 -138
- package/docs/tutorials/todo-pluresdb.md +71 -69
- package/package.json +132 -96
- package/src/__tests__/actors.test.ts +68 -68
- package/src/__tests__/billing.test.ts +32 -32
- package/src/__tests__/canvas-components.test.ts +94 -73
- package/src/__tests__/cli-create.test.ts +28 -28
- package/src/__tests__/cloud.test.ts +36 -36
- package/src/__tests__/code-canvas-integration.test.ts +132 -141
- package/src/__tests__/docs-generator.test.ts +3 -9
- package/src/__tests__/dsl.test.ts +58 -64
- package/src/__tests__/edge-cases.test.ts +106 -108
- package/src/__tests__/engine.test.ts +51 -25
- package/src/__tests__/generators.test.ts +42 -44
- package/src/__tests__/introspection.test.ts +104 -114
- package/src/__tests__/pluresdb.test.ts +189 -187
- package/src/__tests__/protocol.test.ts +15 -15
- package/src/__tests__/provisioning.test.ts +61 -61
- package/src/__tests__/schema.test.ts +7 -11
- package/src/__tests__/state-docs-integration.test.ts +162 -145
- package/src/__tests__/svelte-integration.test.ts +16 -19
- package/src/__tests__/tauri-integration.test.ts +149 -147
- package/src/__tests__/terminal-node.test.ts +12 -7
- package/src/__tests__/unum-integration.test.ts +68 -68
- package/src/adapters/cli.ts +21 -15
- package/src/cli/commands/auth.ts +82 -78
- package/src/cli/commands/build.ts +29 -27
- package/src/cli/commands/canvas.ts +338 -127
- package/src/cli/commands/cloud.ts +47 -47
- package/src/cli/commands/create.ts +59 -47
- package/src/cli/commands/dev.ts +12 -12
- package/src/cli/commands/generate.ts +29 -40
- package/src/cli/commands/orchestrate.ts +24 -24
- package/src/cli/commands/verify.ts +49 -0
- package/src/cli/index.ts +21 -2
- package/src/cloud/README.md +28 -15
- package/src/cloud/auth.ts +55 -70
- package/src/cloud/billing.ts +59 -58
- package/src/cloud/client.ts +29 -35
- package/src/cloud/index.ts +19 -40
- package/src/cloud/marketplace.ts +69 -78
- package/src/cloud/provisioning.ts +42 -51
- package/src/cloud/relay/endpoints.ts +30 -34
- package/src/cloud/relay/health/index.ts +1 -1
- package/src/cloud/relay/stats/index.ts +1 -1
- package/src/cloud/relay/sync/index.ts +1 -1
- package/src/cloud/relay/usage/index.ts +1 -1
- package/src/cloud/sponsors.ts +31 -34
- package/src/cloud/types.ts +4 -4
- package/src/components/README.md +1 -0
- package/src/components/TerminalNode.svelte +457 -457
- package/src/components/index.ts +3 -4
- package/src/core/actors.ts +7 -7
- package/src/core/component/generator.ts +10 -28
- package/src/core/engine.ts +51 -24
- package/src/core/introspection.ts +37 -35
- package/src/core/logic/generator.ts +62 -62
- package/src/core/pluresdb/adapter.ts +8 -8
- package/src/core/pluresdb/generator.ts +39 -35
- package/src/core/pluresdb/index.ts +9 -12
- package/src/core/pluresdb/schema-registry.ts +22 -25
- package/src/core/pluresdb/store.ts +57 -57
- package/src/core/protocol.ts +14 -14
- package/src/core/reactive-engine.svelte.ts +65 -0
- package/src/core/reactive-engine.ts +67 -0
- package/src/core/rules.ts +4 -4
- package/src/core/schema/loader.common.ts +150 -0
- package/src/core/schema/loader.ts +19 -149
- package/src/core/schema/normalize.ts +34 -51
- package/src/core/schema/types.ts +47 -11
- package/src/dsl/index.ts +8 -8
- package/src/dsl.ts +11 -17
- package/src/examples/advanced-todo/App.svelte +506 -506
- package/src/examples/advanced-todo/README.md +58 -40
- package/src/examples/advanced-todo/index.ts +3 -3
- package/src/examples/auth-basic/index.ts +30 -30
- package/src/examples/cart/index.ts +50 -50
- package/src/examples/hero-ecommerce/index.ts +130 -157
- package/src/examples/svelte-counter/index.ts +22 -26
- package/src/flows.ts +6 -17
- package/src/index.browser.ts +204 -0
- package/src/index.ts +37 -42
- package/src/integrations/code-canvas.ts +237 -193
- package/src/integrations/pluresdb.ts +55 -35
- package/src/integrations/state-docs.ts +104 -104
- package/src/integrations/svelte.ts +35 -35
- package/src/integrations/tauri.ts +75 -73
- package/src/integrations/unum.ts +68 -61
- package/src/registry.ts +7 -14
- package/src/runtime/terminal-adapter.ts +31 -26
- package/src/step.ts +10 -16
- package/src/types.ts +1 -1
- package/templates/basic-app/README.md +6 -9
- package/templates/fullstack-app/README.md +10 -0
- package/dist/core/codegen/docs-generator.d.ts +0 -123
- package/dist/core/codegen/docs-generator.d.ts.map +0 -1
- package/dist/core/codegen/docs-generator.js +0 -674
- package/dist/core/codegen/docs-generator.js.map +0 -1
- package/dist/core/codegen/index.d.ts +0 -11
- package/dist/core/codegen/index.d.ts.map +0 -1
- package/dist/core/codegen/index.js +0 -13
- package/dist/core/codegen/index.js.map +0 -1
- package/dist/core/codegen/ts-generator.d.ts +0 -8
- package/dist/core/codegen/ts-generator.d.ts.map +0 -1
- package/dist/core/codegen/ts-generator.js +0 -8
- package/dist/core/codegen/ts-generator.js.map +0 -1
- package/dist/core/db-adapter/index.d.ts +0 -18
- package/dist/core/db-adapter/index.d.ts.map +0 -1
- package/dist/core/db-adapter/index.js +0 -23
- package/dist/core/db-adapter/index.js.map +0 -1
- package/dist/core/db-adapter/sync-engine.d.ts +0 -180
- package/dist/core/db-adapter/sync-engine.d.ts.map +0 -1
- package/dist/core/db-adapter/sync-engine.js +0 -342
- package/dist/core/db-adapter/sync-engine.js.map +0 -1
- package/dist/core/logic-engine/engine.d.ts +0 -8
- package/dist/core/logic-engine/engine.d.ts.map +0 -1
- package/dist/core/logic-engine/engine.js +0 -8
- package/dist/core/logic-engine/engine.js.map +0 -1
- package/dist/core/logic-engine/index.d.ts +0 -16
- package/dist/core/logic-engine/index.d.ts.map +0 -1
- package/dist/core/logic-engine/index.js +0 -16
- package/dist/core/logic-engine/index.js.map +0 -1
- package/dist/core/logic-engine/protocol.d.ts +0 -7
- package/dist/core/logic-engine/protocol.d.ts.map +0 -1
- package/dist/core/logic-engine/protocol.js +0 -7
- package/dist/core/logic-engine/protocol.js.map +0 -1
- package/dist/core/logic-engine/psf-adapter.d.ts +0 -88
- package/dist/core/logic-engine/psf-adapter.d.ts.map +0 -1
- package/dist/core/logic-engine/psf-adapter.js +0 -207
- package/dist/core/logic-engine/psf-adapter.js.map +0 -1
- package/dist/core/logic-engine/rules.d.ts +0 -7
- package/dist/core/logic-engine/rules.d.ts.map +0 -1
- package/dist/core/logic-engine/rules.js +0 -7
- package/dist/core/logic-engine/rules.js.map +0 -1
- package/dist/core/schema-engine/compiler.d.ts +0 -198
- package/dist/core/schema-engine/compiler.d.ts.map +0 -1
- package/dist/core/schema-engine/compiler.js +0 -262
- package/dist/core/schema-engine/compiler.js.map +0 -1
- package/dist/core/schema-engine/generator.d.ts +0 -115
- package/dist/core/schema-engine/generator.d.ts.map +0 -1
- package/dist/core/schema-engine/generator.js +0 -506
- package/dist/core/schema-engine/generator.js.map +0 -1
- package/dist/core/schema-engine/index.d.ts +0 -18
- package/dist/core/schema-engine/index.d.ts.map +0 -1
- package/dist/core/schema-engine/index.js +0 -18
- package/dist/core/schema-engine/index.js.map +0 -1
- package/dist/core/schema-engine/psf.d.ts +0 -612
- package/dist/core/schema-engine/psf.d.ts.map +0 -1
- package/dist/core/schema-engine/psf.js +0 -45
- package/dist/core/schema-engine/psf.js.map +0 -1
- package/dist/core/schema-engine/types.d.ts +0 -10
- package/dist/core/schema-engine/types.d.ts.map +0 -1
- package/dist/core/schema-engine/types.js +0 -7
- package/dist/core/schema-engine/types.js.map +0 -1
- package/dist/core/schema-engine/validator.d.ts +0 -140
- package/dist/core/schema-engine/validator.d.ts.map +0 -1
- package/dist/core/schema-engine/validator.js +0 -407
- package/dist/core/schema-engine/validator.js.map +0 -1
- package/dist/src/adapters/cli.d.ts +0 -43
- package/dist/src/adapters/cli.d.ts.map +0 -1
- package/dist/src/adapters/cli.js +0 -126
- package/dist/src/adapters/cli.js.map +0 -1
- package/dist/src/cli/commands/auth.d.ts +0 -26
- package/dist/src/cli/commands/auth.d.ts.map +0 -1
- package/dist/src/cli/commands/auth.js +0 -233
- package/dist/src/cli/commands/auth.js.map +0 -1
- package/dist/src/cli/commands/build.d.ts +0 -23
- package/dist/src/cli/commands/build.d.ts.map +0 -1
- package/dist/src/cli/commands/build.js +0 -162
- package/dist/src/cli/commands/build.js.map +0 -1
- package/dist/src/cli/commands/canvas.d.ts +0 -23
- package/dist/src/cli/commands/canvas.d.ts.map +0 -1
- package/dist/src/cli/commands/canvas.js +0 -215
- package/dist/src/cli/commands/canvas.js.map +0 -1
- package/dist/src/cli/commands/cloud.d.ts +0 -27
- package/dist/src/cli/commands/cloud.d.ts.map +0 -1
- package/dist/src/cli/commands/cloud.js +0 -232
- package/dist/src/cli/commands/cloud.js.map +0 -1
- package/dist/src/cli/commands/create.d.ts +0 -21
- package/dist/src/cli/commands/create.d.ts.map +0 -1
- package/dist/src/cli/commands/create.js +0 -621
- package/dist/src/cli/commands/create.js.map +0 -1
- package/dist/src/cli/commands/dev.d.ts +0 -21
- package/dist/src/cli/commands/dev.d.ts.map +0 -1
- package/dist/src/cli/commands/dev.js +0 -71
- package/dist/src/cli/commands/dev.js.map +0 -1
- package/dist/src/cli/commands/generate.d.ts +0 -25
- package/dist/src/cli/commands/generate.d.ts.map +0 -1
- package/dist/src/cli/commands/generate.js +0 -168
- package/dist/src/cli/commands/generate.js.map +0 -1
- package/dist/src/cli/commands/orchestrate.d.ts +0 -44
- package/dist/src/cli/commands/orchestrate.d.ts.map +0 -1
- package/dist/src/cli/commands/orchestrate.js +0 -150
- package/dist/src/cli/commands/orchestrate.js.map +0 -1
- package/dist/src/cli/index.d.ts +0 -8
- package/dist/src/cli/index.d.ts.map +0 -1
- package/dist/src/cli/index.js +0 -211
- package/dist/src/cli/index.js.map +0 -1
- package/dist/src/cloud/auth.d.ts +0 -51
- package/dist/src/cloud/auth.d.ts.map +0 -1
- package/dist/src/cloud/auth.js +0 -194
- package/dist/src/cloud/auth.js.map +0 -1
- package/dist/src/cloud/billing.d.ts +0 -184
- package/dist/src/cloud/billing.d.ts.map +0 -1
- package/dist/src/cloud/billing.js +0 -179
- package/dist/src/cloud/billing.js.map +0 -1
- package/dist/src/cloud/client.d.ts +0 -39
- package/dist/src/cloud/client.d.ts.map +0 -1
- package/dist/src/cloud/client.js +0 -176
- package/dist/src/cloud/client.js.map +0 -1
- package/dist/src/cloud/index.d.ts +0 -44
- package/dist/src/cloud/index.d.ts.map +0 -1
- package/dist/src/cloud/index.js +0 -44
- package/dist/src/cloud/index.js.map +0 -1
- package/dist/src/cloud/marketplace.d.ts +0 -166
- package/dist/src/cloud/marketplace.d.ts.map +0 -1
- package/dist/src/cloud/marketplace.js +0 -159
- package/dist/src/cloud/marketplace.js.map +0 -1
- package/dist/src/cloud/provisioning.d.ts +0 -110
- package/dist/src/cloud/provisioning.d.ts.map +0 -1
- package/dist/src/cloud/provisioning.js +0 -148
- package/dist/src/cloud/provisioning.js.map +0 -1
- package/dist/src/cloud/relay/endpoints.d.ts +0 -62
- package/dist/src/cloud/relay/endpoints.d.ts.map +0 -1
- package/dist/src/cloud/relay/endpoints.js +0 -217
- package/dist/src/cloud/relay/endpoints.js.map +0 -1
- package/dist/src/cloud/relay/health/index.d.ts +0 -5
- package/dist/src/cloud/relay/health/index.d.ts.map +0 -1
- package/dist/src/cloud/relay/health/index.js +0 -9
- package/dist/src/cloud/relay/health/index.js.map +0 -1
- package/dist/src/cloud/relay/stats/index.d.ts +0 -5
- package/dist/src/cloud/relay/stats/index.d.ts.map +0 -1
- package/dist/src/cloud/relay/stats/index.js +0 -9
- package/dist/src/cloud/relay/stats/index.js.map +0 -1
- package/dist/src/cloud/relay/sync/index.d.ts +0 -5
- package/dist/src/cloud/relay/sync/index.d.ts.map +0 -1
- package/dist/src/cloud/relay/sync/index.js +0 -9
- package/dist/src/cloud/relay/sync/index.js.map +0 -1
- package/dist/src/cloud/relay/usage/index.d.ts +0 -5
- package/dist/src/cloud/relay/usage/index.d.ts.map +0 -1
- package/dist/src/cloud/relay/usage/index.js +0 -9
- package/dist/src/cloud/relay/usage/index.js.map +0 -1
- package/dist/src/cloud/sponsors.d.ts +0 -81
- package/dist/src/cloud/sponsors.d.ts.map +0 -1
- package/dist/src/cloud/sponsors.js +0 -130
- package/dist/src/cloud/sponsors.js.map +0 -1
- package/dist/src/cloud/types.d.ts +0 -169
- package/dist/src/cloud/types.d.ts.map +0 -1
- package/dist/src/cloud/types.js +0 -7
- package/dist/src/cloud/types.js.map +0 -1
- package/dist/src/components/index.d.ts.map +0 -1
- package/dist/src/components/index.js +0 -17
- package/dist/src/components/index.js.map +0 -1
- package/dist/src/core/actors.d.ts +0 -95
- package/dist/src/core/actors.d.ts.map +0 -1
- package/dist/src/core/actors.js +0 -158
- package/dist/src/core/actors.js.map +0 -1
- package/dist/src/core/component/generator.d.ts.map +0 -1
- package/dist/src/core/component/generator.js +0 -349
- package/dist/src/core/component/generator.js.map +0 -1
- package/dist/src/core/engine.d.ts +0 -92
- package/dist/src/core/engine.d.ts.map +0 -1
- package/dist/src/core/engine.js +0 -199
- package/dist/src/core/engine.js.map +0 -1
- package/dist/src/core/introspection.d.ts +0 -141
- package/dist/src/core/introspection.d.ts.map +0 -1
- package/dist/src/core/introspection.js +0 -208
- package/dist/src/core/introspection.js.map +0 -1
- package/dist/src/core/logic/generator.d.ts +0 -76
- package/dist/src/core/logic/generator.d.ts.map +0 -1
- package/dist/src/core/logic/generator.js +0 -370
- package/dist/src/core/logic/generator.js.map +0 -1
- package/dist/src/core/pluresdb/adapter.d.ts +0 -72
- package/dist/src/core/pluresdb/adapter.d.ts.map +0 -1
- package/dist/src/core/pluresdb/adapter.js +0 -73
- package/dist/src/core/pluresdb/adapter.js.map +0 -1
- package/dist/src/core/pluresdb/generator.d.ts +0 -58
- package/dist/src/core/pluresdb/generator.d.ts.map +0 -1
- package/dist/src/core/pluresdb/generator.js +0 -191
- package/dist/src/core/pluresdb/generator.js.map +0 -1
- package/dist/src/core/pluresdb/index.d.ts +0 -15
- package/dist/src/core/pluresdb/index.d.ts.map +0 -1
- package/dist/src/core/pluresdb/index.js +0 -11
- package/dist/src/core/pluresdb/index.js.map +0 -1
- package/dist/src/core/pluresdb/schema-registry.d.ts +0 -104
- package/dist/src/core/pluresdb/schema-registry.d.ts.map +0 -1
- package/dist/src/core/pluresdb/schema-registry.js +0 -130
- package/dist/src/core/pluresdb/schema-registry.js.map +0 -1
- package/dist/src/core/pluresdb/store.d.ts +0 -199
- package/dist/src/core/pluresdb/store.d.ts.map +0 -1
- package/dist/src/core/pluresdb/store.js +0 -344
- package/dist/src/core/pluresdb/store.js.map +0 -1
- package/dist/src/core/protocol.d.ts.map +0 -1
- package/dist/src/core/protocol.js +0 -46
- package/dist/src/core/protocol.js.map +0 -1
- package/dist/src/core/rules.d.ts +0 -120
- package/dist/src/core/rules.d.ts.map +0 -1
- package/dist/src/core/rules.js +0 -81
- package/dist/src/core/rules.js.map +0 -1
- package/dist/src/core/schema/loader.d.ts +0 -47
- package/dist/src/core/schema/loader.d.ts.map +0 -1
- package/dist/src/core/schema/loader.js +0 -189
- package/dist/src/core/schema/loader.js.map +0 -1
- package/dist/src/core/schema/normalize.d.ts +0 -72
- package/dist/src/core/schema/normalize.d.ts.map +0 -1
- package/dist/src/core/schema/normalize.js +0 -190
- package/dist/src/core/schema/normalize.js.map +0 -1
- package/dist/src/core/schema/types.d.ts.map +0 -1
- package/dist/src/core/schema/types.js +0 -161
- package/dist/src/core/schema/types.js.map +0 -1
- package/dist/src/dsl/index.d.ts +0 -152
- package/dist/src/dsl/index.d.ts.map +0 -1
- package/dist/src/dsl/index.js +0 -132
- package/dist/src/dsl/index.js.map +0 -1
- package/dist/src/dsl.d.ts +0 -124
- package/dist/src/dsl.d.ts.map +0 -1
- package/dist/src/dsl.js +0 -130
- package/dist/src/dsl.js.map +0 -1
- package/dist/src/examples/advanced-todo/index.d.ts +0 -55
- package/dist/src/examples/advanced-todo/index.d.ts.map +0 -1
- package/dist/src/examples/advanced-todo/index.js +0 -222
- package/dist/src/examples/advanced-todo/index.js.map +0 -1
- package/dist/src/examples/auth-basic/index.d.ts +0 -17
- package/dist/src/examples/auth-basic/index.d.ts.map +0 -1
- package/dist/src/examples/auth-basic/index.js +0 -122
- package/dist/src/examples/auth-basic/index.js.map +0 -1
- package/dist/src/examples/cart/index.d.ts +0 -19
- package/dist/src/examples/cart/index.d.ts.map +0 -1
- package/dist/src/examples/cart/index.js +0 -202
- package/dist/src/examples/cart/index.js.map +0 -1
- package/dist/src/examples/hero-ecommerce/index.d.ts +0 -39
- package/dist/src/examples/hero-ecommerce/index.d.ts.map +0 -1
- package/dist/src/examples/hero-ecommerce/index.js +0 -506
- package/dist/src/examples/hero-ecommerce/index.js.map +0 -1
- package/dist/src/examples/svelte-counter/index.d.ts +0 -31
- package/dist/src/examples/svelte-counter/index.d.ts.map +0 -1
- package/dist/src/examples/svelte-counter/index.js +0 -123
- package/dist/src/examples/svelte-counter/index.js.map +0 -1
- package/dist/src/flows.d.ts +0 -125
- package/dist/src/flows.d.ts.map +0 -1
- package/dist/src/flows.js +0 -160
- package/dist/src/flows.js.map +0 -1
- package/dist/src/index.d.ts +0 -77
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -64
- package/dist/src/index.js.map +0 -1
- package/dist/src/integrations/code-canvas.d.ts +0 -265
- package/dist/src/integrations/code-canvas.d.ts.map +0 -1
- package/dist/src/integrations/code-canvas.js +0 -451
- package/dist/src/integrations/code-canvas.js.map +0 -1
- package/dist/src/integrations/pluresdb.d.ts +0 -117
- package/dist/src/integrations/pluresdb.d.ts.map +0 -1
- package/dist/src/integrations/pluresdb.js +0 -117
- package/dist/src/integrations/pluresdb.js.map +0 -1
- package/dist/src/integrations/state-docs.d.ts +0 -191
- package/dist/src/integrations/state-docs.d.ts.map +0 -1
- package/dist/src/integrations/state-docs.js +0 -515
- package/dist/src/integrations/state-docs.js.map +0 -1
- package/dist/src/integrations/svelte.d.ts.map +0 -1
- package/dist/src/integrations/svelte.js +0 -447
- package/dist/src/integrations/svelte.js.map +0 -1
- package/dist/src/integrations/tauri.d.ts +0 -360
- package/dist/src/integrations/tauri.d.ts.map +0 -1
- package/dist/src/integrations/tauri.js +0 -278
- package/dist/src/integrations/tauri.js.map +0 -1
- package/dist/src/integrations/unum.d.ts +0 -159
- package/dist/src/integrations/unum.d.ts.map +0 -1
- package/dist/src/integrations/unum.js +0 -240
- package/dist/src/integrations/unum.js.map +0 -1
- package/dist/src/registry.d.ts +0 -94
- package/dist/src/registry.d.ts.map +0 -1
- package/dist/src/registry.js +0 -181
- package/dist/src/registry.js.map +0 -1
- package/dist/src/runtime/terminal-adapter.d.ts.map +0 -1
- package/dist/src/runtime/terminal-adapter.js +0 -239
- package/dist/src/runtime/terminal-adapter.js.map +0 -1
- package/dist/src/step.d.ts +0 -34
- package/dist/src/step.d.ts.map +0 -1
- package/dist/src/step.js +0 -111
- package/dist/src/step.js.map +0 -1
- package/dist/src/types.d.ts +0 -63
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -6
- package/dist/src/types.js.map +0 -1
- package/dist/tools/cli/commands/index.d.ts +0 -7
- package/dist/tools/cli/commands/index.d.ts.map +0 -1
- package/dist/tools/cli/commands/index.js +0 -7
- package/dist/tools/cli/commands/index.js.map +0 -1
- package/dist/tools/cli/index.d.ts +0 -8
- package/dist/tools/cli/index.d.ts.map +0 -1
- package/dist/tools/cli/index.js +0 -9
- package/dist/tools/cli/index.js.map +0 -1
- package/dist/tools/watcher/index.d.ts +0 -105
- package/dist/tools/watcher/index.d.ts.map +0 -1
- package/dist/tools/watcher/index.js +0 -213
- package/dist/tools/watcher/index.js.map +0 -1
- package/dist/ui/canvas/canvas-projection.d.ts +0 -78
- package/dist/ui/canvas/canvas-projection.d.ts.map +0 -1
- package/dist/ui/canvas/canvas-projection.js +0 -416
- package/dist/ui/canvas/canvas-projection.js.map +0 -1
- package/dist/ui/canvas/canvas-state.d.ts +0 -200
- package/dist/ui/canvas/canvas-state.d.ts.map +0 -1
- package/dist/ui/canvas/canvas-state.js +0 -464
- package/dist/ui/canvas/canvas-state.js.map +0 -1
- package/dist/ui/canvas/components/index.d.ts +0 -95
- package/dist/ui/canvas/components/index.d.ts.map +0 -1
- package/dist/ui/canvas/components/index.js +0 -19
- package/dist/ui/canvas/components/index.js.map +0 -1
- package/dist/ui/canvas/index.d.ts +0 -32
- package/dist/ui/canvas/index.d.ts.map +0 -1
- package/dist/ui/canvas/index.js +0 -32
- package/dist/ui/canvas/index.js.map +0 -1
- package/dist/ui/svelte-generator/index.d.ts +0 -9
- package/dist/ui/svelte-generator/index.d.ts.map +0 -1
- package/dist/ui/svelte-generator/index.js +0 -11
- package/dist/ui/svelte-generator/index.js.map +0 -1
- package/dist/ui/svelte-generator/psf-generator.d.ts +0 -128
- package/dist/ui/svelte-generator/psf-generator.d.ts.map +0 -1
- package/dist/ui/svelte-generator/psf-generator.js +0 -506
- package/dist/ui/svelte-generator/psf-generator.js.map +0 -1
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import { P as PraxisState, a as PraxisEvent, b as PraxisFact, c as PraxisStepResult, d as PraxisStepConfig } from './protocol-Qek7ebBl.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Rules and Constraints System
|
|
5
|
+
*
|
|
6
|
+
* This module defines the types and registry for rules and constraints.
|
|
7
|
+
* Rules and constraints are identified by stable IDs and can be described as data,
|
|
8
|
+
* making them portable across languages and suitable for DSL-based definitions.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Unique identifier for a rule
|
|
13
|
+
*/
|
|
14
|
+
type RuleId = string;
|
|
15
|
+
/**
|
|
16
|
+
* Unique identifier for a constraint
|
|
17
|
+
*/
|
|
18
|
+
type ConstraintId = string;
|
|
19
|
+
/**
|
|
20
|
+
* A rule function derives new facts or transitions from context + input facts/events.
|
|
21
|
+
* Rules must be pure - no side effects.
|
|
22
|
+
*
|
|
23
|
+
* @param state Current Praxis state
|
|
24
|
+
* @param events Events to process
|
|
25
|
+
* @returns Array of new facts to add to the state
|
|
26
|
+
*/
|
|
27
|
+
type RuleFn<TContext = unknown> = (state: PraxisState & {
|
|
28
|
+
context: TContext;
|
|
29
|
+
}, events: PraxisEvent[]) => PraxisFact[];
|
|
30
|
+
/**
|
|
31
|
+
* A constraint function checks that an invariant holds.
|
|
32
|
+
* Constraints must be pure - no side effects.
|
|
33
|
+
*
|
|
34
|
+
* @param state Current Praxis state
|
|
35
|
+
* @returns true if constraint is satisfied, false or error message if violated
|
|
36
|
+
*/
|
|
37
|
+
type ConstraintFn<TContext = unknown> = (state: PraxisState & {
|
|
38
|
+
context: TContext;
|
|
39
|
+
}) => boolean | string;
|
|
40
|
+
/**
|
|
41
|
+
* Descriptor for a rule, including its ID, description, and implementation.
|
|
42
|
+
*/
|
|
43
|
+
interface RuleDescriptor<TContext = unknown> {
|
|
44
|
+
/** Unique identifier for the rule */
|
|
45
|
+
id: RuleId;
|
|
46
|
+
/** Human-readable description */
|
|
47
|
+
description: string;
|
|
48
|
+
/** Implementation function */
|
|
49
|
+
impl: RuleFn<TContext>;
|
|
50
|
+
/** Optional metadata */
|
|
51
|
+
meta?: Record<string, unknown>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Descriptor for a constraint, including its ID, description, and implementation.
|
|
55
|
+
*/
|
|
56
|
+
interface ConstraintDescriptor<TContext = unknown> {
|
|
57
|
+
/** Unique identifier for the constraint */
|
|
58
|
+
id: ConstraintId;
|
|
59
|
+
/** Human-readable description */
|
|
60
|
+
description: string;
|
|
61
|
+
/** Implementation function */
|
|
62
|
+
impl: ConstraintFn<TContext>;
|
|
63
|
+
/** Optional metadata */
|
|
64
|
+
meta?: Record<string, unknown>;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* A Praxis module bundles rules and constraints.
|
|
68
|
+
* Modules can be composed and registered with the engine.
|
|
69
|
+
*/
|
|
70
|
+
interface PraxisModule<TContext = unknown> {
|
|
71
|
+
/** Rules in this module */
|
|
72
|
+
rules: RuleDescriptor<TContext>[];
|
|
73
|
+
/** Constraints in this module */
|
|
74
|
+
constraints: ConstraintDescriptor<TContext>[];
|
|
75
|
+
/** Optional module metadata */
|
|
76
|
+
meta?: Record<string, unknown>;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Registry for rules and constraints.
|
|
80
|
+
* Maps IDs to their descriptors.
|
|
81
|
+
*/
|
|
82
|
+
declare class PraxisRegistry<TContext = unknown> {
|
|
83
|
+
private rules;
|
|
84
|
+
private constraints;
|
|
85
|
+
/**
|
|
86
|
+
* Register a rule
|
|
87
|
+
*/
|
|
88
|
+
registerRule(descriptor: RuleDescriptor<TContext>): void;
|
|
89
|
+
/**
|
|
90
|
+
* Register a constraint
|
|
91
|
+
*/
|
|
92
|
+
registerConstraint(descriptor: ConstraintDescriptor<TContext>): void;
|
|
93
|
+
/**
|
|
94
|
+
* Register a module (all its rules and constraints)
|
|
95
|
+
*/
|
|
96
|
+
registerModule(module: PraxisModule<TContext>): void;
|
|
97
|
+
/**
|
|
98
|
+
* Get a rule by ID
|
|
99
|
+
*/
|
|
100
|
+
getRule(id: RuleId): RuleDescriptor<TContext> | undefined;
|
|
101
|
+
/**
|
|
102
|
+
* Get a constraint by ID
|
|
103
|
+
*/
|
|
104
|
+
getConstraint(id: ConstraintId): ConstraintDescriptor<TContext> | undefined;
|
|
105
|
+
/**
|
|
106
|
+
* Get all registered rule IDs
|
|
107
|
+
*/
|
|
108
|
+
getRuleIds(): RuleId[];
|
|
109
|
+
/**
|
|
110
|
+
* Get all registered constraint IDs
|
|
111
|
+
*/
|
|
112
|
+
getConstraintIds(): ConstraintId[];
|
|
113
|
+
/**
|
|
114
|
+
* Get all rules
|
|
115
|
+
*/
|
|
116
|
+
getAllRules(): RuleDescriptor<TContext>[];
|
|
117
|
+
/**
|
|
118
|
+
* Get all constraints
|
|
119
|
+
*/
|
|
120
|
+
getAllConstraints(): ConstraintDescriptor<TContext>[];
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Praxis Logic Engine
|
|
125
|
+
*
|
|
126
|
+
* The logic engine manages state, processes events through rules,
|
|
127
|
+
* checks constraints, and provides a strongly-typed API for application logic.
|
|
128
|
+
*/
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Options for creating a Praxis engine
|
|
132
|
+
*/
|
|
133
|
+
interface PraxisEngineOptions<TContext = unknown> {
|
|
134
|
+
/** Initial context */
|
|
135
|
+
initialContext: TContext;
|
|
136
|
+
/** Registry of rules and constraints */
|
|
137
|
+
registry: PraxisRegistry<TContext>;
|
|
138
|
+
/** Initial facts (optional) */
|
|
139
|
+
initialFacts?: PraxisFact[];
|
|
140
|
+
/** Initial metadata (optional) */
|
|
141
|
+
initialMeta?: Record<string, unknown>;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* The Praxis Logic Engine
|
|
145
|
+
*
|
|
146
|
+
* Manages application logic through facts, events, rules, and constraints.
|
|
147
|
+
* The engine is strongly typed and functional - all state updates are immutable.
|
|
148
|
+
*/
|
|
149
|
+
declare class LogicEngine<TContext = unknown> {
|
|
150
|
+
private state;
|
|
151
|
+
private readonly registry;
|
|
152
|
+
constructor(options: PraxisEngineOptions<TContext>);
|
|
153
|
+
/**
|
|
154
|
+
* Get the current state (immutable copy)
|
|
155
|
+
*/
|
|
156
|
+
getState(): Readonly<PraxisState & {
|
|
157
|
+
context: TContext;
|
|
158
|
+
}>;
|
|
159
|
+
/**
|
|
160
|
+
* Get the current context
|
|
161
|
+
*/
|
|
162
|
+
getContext(): TContext;
|
|
163
|
+
/**
|
|
164
|
+
* Get current facts
|
|
165
|
+
*/
|
|
166
|
+
getFacts(): PraxisFact[];
|
|
167
|
+
/**
|
|
168
|
+
* Process events through the engine.
|
|
169
|
+
* Applies all registered rules and checks all registered constraints.
|
|
170
|
+
*
|
|
171
|
+
* @param events Events to process
|
|
172
|
+
* @returns Result with new state and diagnostics
|
|
173
|
+
*/
|
|
174
|
+
step(events: PraxisEvent[]): PraxisStepResult;
|
|
175
|
+
/**
|
|
176
|
+
* Process events with specific rule and constraint configuration.
|
|
177
|
+
*
|
|
178
|
+
* @param events Events to process
|
|
179
|
+
* @param config Step configuration
|
|
180
|
+
* @returns Result with new state and diagnostics
|
|
181
|
+
*/
|
|
182
|
+
stepWithConfig(events: PraxisEvent[], config: PraxisStepConfig): PraxisStepResult;
|
|
183
|
+
/**
|
|
184
|
+
* Update the context directly (for exceptional cases).
|
|
185
|
+
* Generally, context should be updated through rules.
|
|
186
|
+
*
|
|
187
|
+
* @param updater Function that produces new context from old context
|
|
188
|
+
*/
|
|
189
|
+
updateContext(updater: (context: TContext) => TContext): void;
|
|
190
|
+
/**
|
|
191
|
+
* Add facts directly (for exceptional cases).
|
|
192
|
+
* Generally, facts should be added through rules.
|
|
193
|
+
*
|
|
194
|
+
* @param facts Facts to add
|
|
195
|
+
*/
|
|
196
|
+
addFacts(facts: PraxisFact[]): void;
|
|
197
|
+
/**
|
|
198
|
+
* Clear all facts
|
|
199
|
+
*/
|
|
200
|
+
clearFacts(): void;
|
|
201
|
+
/**
|
|
202
|
+
* Reset the engine to initial state
|
|
203
|
+
*/
|
|
204
|
+
reset(options: PraxisEngineOptions<TContext>): void;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Create a new Praxis logic engine.
|
|
208
|
+
*
|
|
209
|
+
* @param options Engine options
|
|
210
|
+
* @returns New LogicEngine instance
|
|
211
|
+
*/
|
|
212
|
+
declare function createPraxisEngine<TContext = unknown>(options: PraxisEngineOptions<TContext>): LogicEngine<TContext>;
|
|
213
|
+
|
|
214
|
+
export { type ConstraintDescriptor as C, LogicEngine as L, PraxisRegistry as P, type RuleDescriptor as R, type RuleFn as a, type ConstraintFn as b, type PraxisModule as c, type RuleId as d, type ConstraintId as e, type PraxisEngineOptions as f, createPraxisEngine as g };
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import { P as PraxisState, a as PraxisEvent, b as PraxisFact, c as PraxisStepResult, d as PraxisStepConfig } from './protocol-Qek7ebBl.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Rules and Constraints System
|
|
5
|
+
*
|
|
6
|
+
* This module defines the types and registry for rules and constraints.
|
|
7
|
+
* Rules and constraints are identified by stable IDs and can be described as data,
|
|
8
|
+
* making them portable across languages and suitable for DSL-based definitions.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Unique identifier for a rule
|
|
13
|
+
*/
|
|
14
|
+
type RuleId = string;
|
|
15
|
+
/**
|
|
16
|
+
* Unique identifier for a constraint
|
|
17
|
+
*/
|
|
18
|
+
type ConstraintId = string;
|
|
19
|
+
/**
|
|
20
|
+
* A rule function derives new facts or transitions from context + input facts/events.
|
|
21
|
+
* Rules must be pure - no side effects.
|
|
22
|
+
*
|
|
23
|
+
* @param state Current Praxis state
|
|
24
|
+
* @param events Events to process
|
|
25
|
+
* @returns Array of new facts to add to the state
|
|
26
|
+
*/
|
|
27
|
+
type RuleFn<TContext = unknown> = (state: PraxisState & {
|
|
28
|
+
context: TContext;
|
|
29
|
+
}, events: PraxisEvent[]) => PraxisFact[];
|
|
30
|
+
/**
|
|
31
|
+
* A constraint function checks that an invariant holds.
|
|
32
|
+
* Constraints must be pure - no side effects.
|
|
33
|
+
*
|
|
34
|
+
* @param state Current Praxis state
|
|
35
|
+
* @returns true if constraint is satisfied, false or error message if violated
|
|
36
|
+
*/
|
|
37
|
+
type ConstraintFn<TContext = unknown> = (state: PraxisState & {
|
|
38
|
+
context: TContext;
|
|
39
|
+
}) => boolean | string;
|
|
40
|
+
/**
|
|
41
|
+
* Descriptor for a rule, including its ID, description, and implementation.
|
|
42
|
+
*/
|
|
43
|
+
interface RuleDescriptor<TContext = unknown> {
|
|
44
|
+
/** Unique identifier for the rule */
|
|
45
|
+
id: RuleId;
|
|
46
|
+
/** Human-readable description */
|
|
47
|
+
description: string;
|
|
48
|
+
/** Implementation function */
|
|
49
|
+
impl: RuleFn<TContext>;
|
|
50
|
+
/** Optional metadata */
|
|
51
|
+
meta?: Record<string, unknown>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Descriptor for a constraint, including its ID, description, and implementation.
|
|
55
|
+
*/
|
|
56
|
+
interface ConstraintDescriptor<TContext = unknown> {
|
|
57
|
+
/** Unique identifier for the constraint */
|
|
58
|
+
id: ConstraintId;
|
|
59
|
+
/** Human-readable description */
|
|
60
|
+
description: string;
|
|
61
|
+
/** Implementation function */
|
|
62
|
+
impl: ConstraintFn<TContext>;
|
|
63
|
+
/** Optional metadata */
|
|
64
|
+
meta?: Record<string, unknown>;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* A Praxis module bundles rules and constraints.
|
|
68
|
+
* Modules can be composed and registered with the engine.
|
|
69
|
+
*/
|
|
70
|
+
interface PraxisModule<TContext = unknown> {
|
|
71
|
+
/** Rules in this module */
|
|
72
|
+
rules: RuleDescriptor<TContext>[];
|
|
73
|
+
/** Constraints in this module */
|
|
74
|
+
constraints: ConstraintDescriptor<TContext>[];
|
|
75
|
+
/** Optional module metadata */
|
|
76
|
+
meta?: Record<string, unknown>;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Registry for rules and constraints.
|
|
80
|
+
* Maps IDs to their descriptors.
|
|
81
|
+
*/
|
|
82
|
+
declare class PraxisRegistry<TContext = unknown> {
|
|
83
|
+
private rules;
|
|
84
|
+
private constraints;
|
|
85
|
+
/**
|
|
86
|
+
* Register a rule
|
|
87
|
+
*/
|
|
88
|
+
registerRule(descriptor: RuleDescriptor<TContext>): void;
|
|
89
|
+
/**
|
|
90
|
+
* Register a constraint
|
|
91
|
+
*/
|
|
92
|
+
registerConstraint(descriptor: ConstraintDescriptor<TContext>): void;
|
|
93
|
+
/**
|
|
94
|
+
* Register a module (all its rules and constraints)
|
|
95
|
+
*/
|
|
96
|
+
registerModule(module: PraxisModule<TContext>): void;
|
|
97
|
+
/**
|
|
98
|
+
* Get a rule by ID
|
|
99
|
+
*/
|
|
100
|
+
getRule(id: RuleId): RuleDescriptor<TContext> | undefined;
|
|
101
|
+
/**
|
|
102
|
+
* Get a constraint by ID
|
|
103
|
+
*/
|
|
104
|
+
getConstraint(id: ConstraintId): ConstraintDescriptor<TContext> | undefined;
|
|
105
|
+
/**
|
|
106
|
+
* Get all registered rule IDs
|
|
107
|
+
*/
|
|
108
|
+
getRuleIds(): RuleId[];
|
|
109
|
+
/**
|
|
110
|
+
* Get all registered constraint IDs
|
|
111
|
+
*/
|
|
112
|
+
getConstraintIds(): ConstraintId[];
|
|
113
|
+
/**
|
|
114
|
+
* Get all rules
|
|
115
|
+
*/
|
|
116
|
+
getAllRules(): RuleDescriptor<TContext>[];
|
|
117
|
+
/**
|
|
118
|
+
* Get all constraints
|
|
119
|
+
*/
|
|
120
|
+
getAllConstraints(): ConstraintDescriptor<TContext>[];
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Praxis Logic Engine
|
|
125
|
+
*
|
|
126
|
+
* The logic engine manages state, processes events through rules,
|
|
127
|
+
* checks constraints, and provides a strongly-typed API for application logic.
|
|
128
|
+
*/
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Options for creating a Praxis engine
|
|
132
|
+
*/
|
|
133
|
+
interface PraxisEngineOptions<TContext = unknown> {
|
|
134
|
+
/** Initial context */
|
|
135
|
+
initialContext: TContext;
|
|
136
|
+
/** Registry of rules and constraints */
|
|
137
|
+
registry: PraxisRegistry<TContext>;
|
|
138
|
+
/** Initial facts (optional) */
|
|
139
|
+
initialFacts?: PraxisFact[];
|
|
140
|
+
/** Initial metadata (optional) */
|
|
141
|
+
initialMeta?: Record<string, unknown>;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* The Praxis Logic Engine
|
|
145
|
+
*
|
|
146
|
+
* Manages application logic through facts, events, rules, and constraints.
|
|
147
|
+
* The engine is strongly typed and functional - all state updates are immutable.
|
|
148
|
+
*/
|
|
149
|
+
declare class LogicEngine<TContext = unknown> {
|
|
150
|
+
private state;
|
|
151
|
+
private readonly registry;
|
|
152
|
+
constructor(options: PraxisEngineOptions<TContext>);
|
|
153
|
+
/**
|
|
154
|
+
* Get the current state (immutable copy)
|
|
155
|
+
*/
|
|
156
|
+
getState(): Readonly<PraxisState & {
|
|
157
|
+
context: TContext;
|
|
158
|
+
}>;
|
|
159
|
+
/**
|
|
160
|
+
* Get the current context
|
|
161
|
+
*/
|
|
162
|
+
getContext(): TContext;
|
|
163
|
+
/**
|
|
164
|
+
* Get current facts
|
|
165
|
+
*/
|
|
166
|
+
getFacts(): PraxisFact[];
|
|
167
|
+
/**
|
|
168
|
+
* Process events through the engine.
|
|
169
|
+
* Applies all registered rules and checks all registered constraints.
|
|
170
|
+
*
|
|
171
|
+
* @param events Events to process
|
|
172
|
+
* @returns Result with new state and diagnostics
|
|
173
|
+
*/
|
|
174
|
+
step(events: PraxisEvent[]): PraxisStepResult;
|
|
175
|
+
/**
|
|
176
|
+
* Process events with specific rule and constraint configuration.
|
|
177
|
+
*
|
|
178
|
+
* @param events Events to process
|
|
179
|
+
* @param config Step configuration
|
|
180
|
+
* @returns Result with new state and diagnostics
|
|
181
|
+
*/
|
|
182
|
+
stepWithConfig(events: PraxisEvent[], config: PraxisStepConfig): PraxisStepResult;
|
|
183
|
+
/**
|
|
184
|
+
* Update the context directly (for exceptional cases).
|
|
185
|
+
* Generally, context should be updated through rules.
|
|
186
|
+
*
|
|
187
|
+
* @param updater Function that produces new context from old context
|
|
188
|
+
*/
|
|
189
|
+
updateContext(updater: (context: TContext) => TContext): void;
|
|
190
|
+
/**
|
|
191
|
+
* Add facts directly (for exceptional cases).
|
|
192
|
+
* Generally, facts should be added through rules.
|
|
193
|
+
*
|
|
194
|
+
* @param facts Facts to add
|
|
195
|
+
*/
|
|
196
|
+
addFacts(facts: PraxisFact[]): void;
|
|
197
|
+
/**
|
|
198
|
+
* Clear all facts
|
|
199
|
+
*/
|
|
200
|
+
clearFacts(): void;
|
|
201
|
+
/**
|
|
202
|
+
* Reset the engine to initial state
|
|
203
|
+
*/
|
|
204
|
+
reset(options: PraxisEngineOptions<TContext>): void;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Create a new Praxis logic engine.
|
|
208
|
+
*
|
|
209
|
+
* @param options Engine options
|
|
210
|
+
* @returns New LogicEngine instance
|
|
211
|
+
*/
|
|
212
|
+
declare function createPraxisEngine<TContext = unknown>(options: PraxisEngineOptions<TContext>): LogicEngine<TContext>;
|
|
213
|
+
|
|
214
|
+
export { type ConstraintDescriptor as C, LogicEngine as L, PraxisRegistry as P, type RuleDescriptor as R, type RuleFn as a, type ConstraintFn as b, type PraxisModule as c, type RuleId as d, type ConstraintId as e, type PraxisEngineOptions as f, createPraxisEngine as g };
|