@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.
- 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 -97
- 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 +7 -8
- package/src/cli/index.ts +14 -10
- 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/commands/verify.d.ts +0 -10
- package/dist/src/cli/commands/verify.d.ts.map +0 -1
- package/dist/src/cli/commands/verify.js +0 -39
- package/dist/src/cli/commands/verify.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 -226
- 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/ast-analyzer/src/ast-analyzer.d.ts +0 -8
- package/dist/tools/ast-analyzer/src/ast-analyzer.d.ts.map +0 -1
- package/dist/tools/ast-analyzer/src/ast-analyzer.js +0 -119
- package/dist/tools/ast-analyzer/src/ast-analyzer.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/canvas-inspector/src/server.d.ts +0 -2
- package/dist/ui/canvas-inspector/src/server.d.ts.map +0 -1
- package/dist/ui/canvas-inspector/src/server.js +0 -248
- package/dist/ui/canvas-inspector/src/server.js.map +0 -1
- package/dist/ui/canvas-inspector/src/verify-fsm-implementation.d.ts +0 -5
- package/dist/ui/canvas-inspector/src/verify-fsm-implementation.d.ts.map +0 -1
- package/dist/ui/canvas-inspector/src/verify-fsm-implementation.js +0 -58
- package/dist/ui/canvas-inspector/src/verify-fsm-implementation.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
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Unum Integration
|
|
3
|
-
*
|
|
4
|
-
* Integration with plures/unum - A modern Svelte binding library for PluresDB
|
|
5
|
-
* with full Svelte 5 compatibility. Provides identity and channels support.
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - Svelte 4 & 5 Compatible: Works with both store-based and runes-based reactivity
|
|
9
|
-
* - Type-Safe: Full TypeScript support with proper types
|
|
10
|
-
* - Action-Based: Modern Svelte actions for DOM binding
|
|
11
|
-
* - Store-Based: Writable store implementation for reactive data
|
|
12
|
-
* - Collection Support: Easy handling of PluresDB collections
|
|
13
|
-
*
|
|
14
|
-
* @see https://github.com/plures/unum
|
|
15
|
-
*/
|
|
16
|
-
import type { LogicEngine } from "../core/engine.js";
|
|
17
|
-
import type { PraxisEvent, PraxisFact } from "../core/protocol.js";
|
|
18
|
-
import type { PraxisDB } from "../core/pluresdb/adapter.js";
|
|
19
|
-
/**
|
|
20
|
-
* Unum store interface for reactive PluresDB data
|
|
21
|
-
*/
|
|
22
|
-
export interface UnumStore<T> {
|
|
23
|
-
subscribe(run: (value: T) => void): () => void;
|
|
24
|
-
set(value: T): void;
|
|
25
|
-
update(updater: (value: T) => T): void;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Unum channel for real-time communication
|
|
29
|
-
*/
|
|
30
|
-
export interface UnumChannel {
|
|
31
|
-
/** Channel identifier */
|
|
32
|
-
id: string;
|
|
33
|
-
/** Channel name */
|
|
34
|
-
name: string;
|
|
35
|
-
/** Subscribe to channel messages */
|
|
36
|
-
subscribe(handler: (message: UnumMessage) => void): () => void;
|
|
37
|
-
/** Publish a message to the channel */
|
|
38
|
-
publish(message: Omit<UnumMessage, 'timestamp' | 'channelId'>): Promise<void>;
|
|
39
|
-
/** Get channel members */
|
|
40
|
-
getMembers(): Promise<UnumIdentity[]>;
|
|
41
|
-
/** Leave the channel */
|
|
42
|
-
leave(): Promise<void>;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Message sent through a Unum channel
|
|
46
|
-
*/
|
|
47
|
-
export interface UnumMessage {
|
|
48
|
-
/** Message ID */
|
|
49
|
-
id: string;
|
|
50
|
-
/** Channel ID */
|
|
51
|
-
channelId: string;
|
|
52
|
-
/** Sender identity */
|
|
53
|
-
sender: UnumIdentity;
|
|
54
|
-
/** Message content */
|
|
55
|
-
content: unknown;
|
|
56
|
-
/** Message type */
|
|
57
|
-
type: 'text' | 'event' | 'fact' | 'system';
|
|
58
|
-
/** Timestamp */
|
|
59
|
-
timestamp: number;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Unum identity representing a user or system
|
|
63
|
-
*/
|
|
64
|
-
export interface UnumIdentity {
|
|
65
|
-
/** Unique identifier */
|
|
66
|
-
id: string;
|
|
67
|
-
/** Display name */
|
|
68
|
-
name?: string;
|
|
69
|
-
/** Public key for encryption */
|
|
70
|
-
publicKey?: string;
|
|
71
|
-
/** Identity metadata */
|
|
72
|
-
metadata?: Record<string, unknown>;
|
|
73
|
-
/** Creation timestamp */
|
|
74
|
-
createdAt: number;
|
|
75
|
-
/** Last seen timestamp */
|
|
76
|
-
lastSeen?: number;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Unum adapter configuration
|
|
80
|
-
*/
|
|
81
|
-
export interface UnumAdapterConfig {
|
|
82
|
-
/** PluresDB instance to use */
|
|
83
|
-
db: PraxisDB;
|
|
84
|
-
/** Current user identity */
|
|
85
|
-
identity?: UnumIdentity;
|
|
86
|
-
/** Whether to enable real-time sync */
|
|
87
|
-
realtime?: boolean;
|
|
88
|
-
/** Sync interval in milliseconds */
|
|
89
|
-
syncInterval?: number;
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Unum adapter for Praxis engine integration
|
|
93
|
-
*
|
|
94
|
-
* Provides identity management and channel-based communication
|
|
95
|
-
* for distributed Praxis applications.
|
|
96
|
-
*/
|
|
97
|
-
export interface UnumAdapter {
|
|
98
|
-
/** Current identity */
|
|
99
|
-
identity: UnumIdentity | null;
|
|
100
|
-
/** Create or update identity */
|
|
101
|
-
setIdentity(identity: Omit<UnumIdentity, 'id' | 'createdAt'>): Promise<UnumIdentity>;
|
|
102
|
-
/** Get identity by ID */
|
|
103
|
-
getIdentity(id: string): Promise<UnumIdentity | null>;
|
|
104
|
-
/** Create a new channel */
|
|
105
|
-
createChannel(name: string, members?: string[]): Promise<UnumChannel>;
|
|
106
|
-
/** Join an existing channel */
|
|
107
|
-
joinChannel(channelId: string): Promise<UnumChannel>;
|
|
108
|
-
/** List available channels */
|
|
109
|
-
listChannels(): Promise<UnumChannel[]>;
|
|
110
|
-
/** Broadcast a Praxis event to a channel */
|
|
111
|
-
broadcastEvent(channelId: string, event: PraxisEvent): Promise<void>;
|
|
112
|
-
/** Broadcast a Praxis fact to a channel */
|
|
113
|
-
broadcastFact(channelId: string, fact: PraxisFact): Promise<void>;
|
|
114
|
-
/** Subscribe to events from a channel */
|
|
115
|
-
subscribeToEvents(channelId: string, handler: (event: PraxisEvent) => void): () => void;
|
|
116
|
-
/** Subscribe to facts from a channel */
|
|
117
|
-
subscribeToFacts(channelId: string, handler: (fact: PraxisFact) => void): () => void;
|
|
118
|
-
/** Disconnect and cleanup */
|
|
119
|
-
disconnect(): Promise<void>;
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Create a Unum adapter for Praxis engine integration
|
|
123
|
-
*
|
|
124
|
-
* @example
|
|
125
|
-
* ```typescript
|
|
126
|
-
* import { createUnumAdapter } from '@plures/praxis/integrations/unum';
|
|
127
|
-
* import { createInMemoryDB } from '@plures/praxis/integrations/pluresdb';
|
|
128
|
-
*
|
|
129
|
-
* const db = createInMemoryDB();
|
|
130
|
-
* const unum = await createUnumAdapter({
|
|
131
|
-
* db,
|
|
132
|
-
* identity: {
|
|
133
|
-
* name: 'Alice',
|
|
134
|
-
* },
|
|
135
|
-
* realtime: true,
|
|
136
|
-
* });
|
|
137
|
-
*
|
|
138
|
-
* // Create a channel
|
|
139
|
-
* const channel = await unum.createChannel('my-channel');
|
|
140
|
-
*
|
|
141
|
-
* // Broadcast events to the channel
|
|
142
|
-
* await unum.broadcastEvent(channel.id, myEvent);
|
|
143
|
-
* ```
|
|
144
|
-
*/
|
|
145
|
-
export declare function createUnumAdapter(config: UnumAdapterConfig): Promise<UnumAdapter>;
|
|
146
|
-
/**
|
|
147
|
-
* Attach Unum adapter to a Praxis engine
|
|
148
|
-
*
|
|
149
|
-
* Enables automatic event/fact broadcasting to connected channels.
|
|
150
|
-
* This is a placeholder for future integration where the engine
|
|
151
|
-
* would emit events that get broadcast to channels.
|
|
152
|
-
*
|
|
153
|
-
* @param _engine - The Praxis logic engine
|
|
154
|
-
* @param _adapter - The Unum adapter
|
|
155
|
-
* @param _channelId - The channel to broadcast to
|
|
156
|
-
* @returns Cleanup function
|
|
157
|
-
*/
|
|
158
|
-
export declare function attachUnumToEngine<TContext>(_engine: LogicEngine<TContext>, _adapter: UnumAdapter, _channelId: string): () => void;
|
|
159
|
-
//# sourceMappingURL=unum.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"unum.d.ts","sourceRoot":"","sources":["../../../src/integrations/unum.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Unum Integration
|
|
3
|
-
*
|
|
4
|
-
* Integration with plures/unum - A modern Svelte binding library for PluresDB
|
|
5
|
-
* with full Svelte 5 compatibility. Provides identity and channels support.
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - Svelte 4 & 5 Compatible: Works with both store-based and runes-based reactivity
|
|
9
|
-
* - Type-Safe: Full TypeScript support with proper types
|
|
10
|
-
* - Action-Based: Modern Svelte actions for DOM binding
|
|
11
|
-
* - Store-Based: Writable store implementation for reactive data
|
|
12
|
-
* - Collection Support: Easy handling of PluresDB collections
|
|
13
|
-
*
|
|
14
|
-
* @see https://github.com/plures/unum
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* Create a Unum adapter for Praxis engine integration
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```typescript
|
|
21
|
-
* import { createUnumAdapter } from '@plures/praxis/integrations/unum';
|
|
22
|
-
* import { createInMemoryDB } from '@plures/praxis/integrations/pluresdb';
|
|
23
|
-
*
|
|
24
|
-
* const db = createInMemoryDB();
|
|
25
|
-
* const unum = await createUnumAdapter({
|
|
26
|
-
* db,
|
|
27
|
-
* identity: {
|
|
28
|
-
* name: 'Alice',
|
|
29
|
-
* },
|
|
30
|
-
* realtime: true,
|
|
31
|
-
* });
|
|
32
|
-
*
|
|
33
|
-
* // Create a channel
|
|
34
|
-
* const channel = await unum.createChannel('my-channel');
|
|
35
|
-
*
|
|
36
|
-
* // Broadcast events to the channel
|
|
37
|
-
* await unum.broadcastEvent(channel.id, myEvent);
|
|
38
|
-
* ```
|
|
39
|
-
*/
|
|
40
|
-
export async function createUnumAdapter(config) {
|
|
41
|
-
const { db, realtime = true } = config;
|
|
42
|
-
// syncInterval could be used for periodic sync in a more complete implementation
|
|
43
|
-
let currentIdentity = null;
|
|
44
|
-
const channels = new Map();
|
|
45
|
-
const subscriptions = new Set();
|
|
46
|
-
// Set initial identity if provided
|
|
47
|
-
if (config.identity) {
|
|
48
|
-
currentIdentity = {
|
|
49
|
-
...config.identity,
|
|
50
|
-
id: config.identity.id || generateId(),
|
|
51
|
-
createdAt: Date.now(),
|
|
52
|
-
};
|
|
53
|
-
await db.set(`unum/identities/${currentIdentity.id}`, currentIdentity);
|
|
54
|
-
}
|
|
55
|
-
async function setIdentity(identity) {
|
|
56
|
-
currentIdentity = {
|
|
57
|
-
...identity,
|
|
58
|
-
id: generateId(),
|
|
59
|
-
createdAt: Date.now(),
|
|
60
|
-
};
|
|
61
|
-
await db.set(`unum/identities/${currentIdentity.id}`, currentIdentity);
|
|
62
|
-
return currentIdentity;
|
|
63
|
-
}
|
|
64
|
-
async function getIdentity(id) {
|
|
65
|
-
return await db.get(`unum/identities/${id}`);
|
|
66
|
-
}
|
|
67
|
-
async function createChannel(name, members) {
|
|
68
|
-
const channelId = generateId();
|
|
69
|
-
const channelData = {
|
|
70
|
-
id: channelId,
|
|
71
|
-
name,
|
|
72
|
-
members: members || [],
|
|
73
|
-
createdAt: Date.now(),
|
|
74
|
-
createdBy: currentIdentity?.id,
|
|
75
|
-
};
|
|
76
|
-
await db.set(`unum/channels/${channelId}`, channelData);
|
|
77
|
-
const channel = createChannelInstance(channelId, name);
|
|
78
|
-
channels.set(channelId, channel);
|
|
79
|
-
return channel;
|
|
80
|
-
}
|
|
81
|
-
async function joinChannel(channelId) {
|
|
82
|
-
const existing = channels.get(channelId);
|
|
83
|
-
if (existing)
|
|
84
|
-
return existing;
|
|
85
|
-
const channelData = await db.get(`unum/channels/${channelId}`);
|
|
86
|
-
if (!channelData) {
|
|
87
|
-
throw new Error(`Channel ${channelId} not found`);
|
|
88
|
-
}
|
|
89
|
-
const channel = createChannelInstance(channelData.id, channelData.name);
|
|
90
|
-
channels.set(channelId, channel);
|
|
91
|
-
return channel;
|
|
92
|
-
}
|
|
93
|
-
async function listChannels() {
|
|
94
|
-
return Array.from(channels.values());
|
|
95
|
-
}
|
|
96
|
-
function createChannelInstance(id, name) {
|
|
97
|
-
const handlers = new Set();
|
|
98
|
-
return {
|
|
99
|
-
id,
|
|
100
|
-
name,
|
|
101
|
-
subscribe(handler) {
|
|
102
|
-
handlers.add(handler);
|
|
103
|
-
// Set up database subscription if realtime is enabled
|
|
104
|
-
if (realtime) {
|
|
105
|
-
const unsub = db.watch(`unum/channels/${id}/messages`, (data) => {
|
|
106
|
-
if (data) {
|
|
107
|
-
handler(data);
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
subscriptions.add(unsub);
|
|
111
|
-
}
|
|
112
|
-
return () => {
|
|
113
|
-
handlers.delete(handler);
|
|
114
|
-
};
|
|
115
|
-
},
|
|
116
|
-
async publish(message) {
|
|
117
|
-
const fullMessage = {
|
|
118
|
-
...message,
|
|
119
|
-
id: message.id || generateId(),
|
|
120
|
-
channelId: id,
|
|
121
|
-
timestamp: Date.now(),
|
|
122
|
-
};
|
|
123
|
-
await db.set(`unum/channels/${id}/messages/${fullMessage.id}`, fullMessage);
|
|
124
|
-
// Notify local handlers
|
|
125
|
-
handlers.forEach(h => h(fullMessage));
|
|
126
|
-
},
|
|
127
|
-
async getMembers() {
|
|
128
|
-
const channelData = await db.get(`unum/channels/${id}`);
|
|
129
|
-
if (!channelData?.members)
|
|
130
|
-
return [];
|
|
131
|
-
const members = [];
|
|
132
|
-
for (const memberId of channelData.members) {
|
|
133
|
-
const identity = await getIdentity(memberId);
|
|
134
|
-
if (identity)
|
|
135
|
-
members.push(identity);
|
|
136
|
-
}
|
|
137
|
-
return members;
|
|
138
|
-
},
|
|
139
|
-
async leave() {
|
|
140
|
-
channels.delete(id);
|
|
141
|
-
},
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
async function broadcastEvent(channelId, event) {
|
|
145
|
-
const channel = channels.get(channelId);
|
|
146
|
-
if (!channel) {
|
|
147
|
-
throw new Error(`Not joined to channel ${channelId}`);
|
|
148
|
-
}
|
|
149
|
-
await channel.publish({
|
|
150
|
-
id: generateId(),
|
|
151
|
-
sender: currentIdentity || { id: 'anonymous', createdAt: Date.now() },
|
|
152
|
-
content: event,
|
|
153
|
-
type: 'event',
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
async function broadcastFact(channelId, fact) {
|
|
157
|
-
const channel = channels.get(channelId);
|
|
158
|
-
if (!channel) {
|
|
159
|
-
throw new Error(`Not joined to channel ${channelId}`);
|
|
160
|
-
}
|
|
161
|
-
await channel.publish({
|
|
162
|
-
id: generateId(),
|
|
163
|
-
sender: currentIdentity || { id: 'anonymous', createdAt: Date.now() },
|
|
164
|
-
content: fact,
|
|
165
|
-
type: 'fact',
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
function subscribeToEvents(channelId, handler) {
|
|
169
|
-
const channel = channels.get(channelId);
|
|
170
|
-
if (!channel) {
|
|
171
|
-
throw new Error(`Not joined to channel ${channelId}`);
|
|
172
|
-
}
|
|
173
|
-
return channel.subscribe((message) => {
|
|
174
|
-
if (message.type === 'event') {
|
|
175
|
-
handler(message.content);
|
|
176
|
-
}
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
function subscribeToFacts(channelId, handler) {
|
|
180
|
-
const channel = channels.get(channelId);
|
|
181
|
-
if (!channel) {
|
|
182
|
-
throw new Error(`Not joined to channel ${channelId}`);
|
|
183
|
-
}
|
|
184
|
-
return channel.subscribe((message) => {
|
|
185
|
-
if (message.type === 'fact') {
|
|
186
|
-
handler(message.content);
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
async function disconnect() {
|
|
191
|
-
// Cleanup all subscriptions
|
|
192
|
-
subscriptions.forEach(unsub => unsub());
|
|
193
|
-
subscriptions.clear();
|
|
194
|
-
// Leave all channels
|
|
195
|
-
for (const channel of channels.values()) {
|
|
196
|
-
await channel.leave();
|
|
197
|
-
}
|
|
198
|
-
channels.clear();
|
|
199
|
-
currentIdentity = null;
|
|
200
|
-
}
|
|
201
|
-
return {
|
|
202
|
-
get identity() { return currentIdentity; },
|
|
203
|
-
setIdentity,
|
|
204
|
-
getIdentity,
|
|
205
|
-
createChannel,
|
|
206
|
-
joinChannel,
|
|
207
|
-
listChannels,
|
|
208
|
-
broadcastEvent,
|
|
209
|
-
broadcastFact,
|
|
210
|
-
subscribeToEvents,
|
|
211
|
-
subscribeToFacts,
|
|
212
|
-
disconnect,
|
|
213
|
-
};
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
|
-
* Generate a unique ID
|
|
217
|
-
*/
|
|
218
|
-
function generateId() {
|
|
219
|
-
return `${Date.now().toString(36)}-${Math.random().toString(36).substr(2, 9)}`;
|
|
220
|
-
}
|
|
221
|
-
/**
|
|
222
|
-
* Attach Unum adapter to a Praxis engine
|
|
223
|
-
*
|
|
224
|
-
* Enables automatic event/fact broadcasting to connected channels.
|
|
225
|
-
* This is a placeholder for future integration where the engine
|
|
226
|
-
* would emit events that get broadcast to channels.
|
|
227
|
-
*
|
|
228
|
-
* @param _engine - The Praxis logic engine
|
|
229
|
-
* @param _adapter - The Unum adapter
|
|
230
|
-
* @param _channelId - The channel to broadcast to
|
|
231
|
-
* @returns Cleanup function
|
|
232
|
-
*/
|
|
233
|
-
export function attachUnumToEngine(_engine, _adapter, _channelId) {
|
|
234
|
-
// In a future implementation, this would:
|
|
235
|
-
// 1. Hook into engine state changes
|
|
236
|
-
// 2. Broadcast new events/facts to the channel
|
|
237
|
-
// For now, return a no-op cleanup function
|
|
238
|
-
return () => { };
|
|
239
|
-
}
|
|
240
|
-
//# sourceMappingURL=unum.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"unum.js","sourceRoot":"","sources":["../../../src/integrations/unum.ts"],"names":[],"mappings":"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"}
|
package/dist/src/registry.d.ts
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Registry for managing rules and constraints in Praxis.
|
|
3
|
-
* Provides registration, retrieval, and execution capabilities.
|
|
4
|
-
*/
|
|
5
|
-
import type { PraxisState, PraxisEvent, Effect } from './types.js';
|
|
6
|
-
import type { Rule, Constraint, ConstraintViolation } from './dsl.js';
|
|
7
|
-
/**
|
|
8
|
-
* Registry for managing rules and constraints.
|
|
9
|
-
*/
|
|
10
|
-
export declare class Registry<S extends PraxisState = PraxisState, E extends PraxisEvent = PraxisEvent> {
|
|
11
|
-
private rules;
|
|
12
|
-
private constraints;
|
|
13
|
-
/**
|
|
14
|
-
* Register a new rule.
|
|
15
|
-
* @throws Error if a rule with the same ID already exists
|
|
16
|
-
*/
|
|
17
|
-
registerRule(rule: Rule<S, E>): void;
|
|
18
|
-
/**
|
|
19
|
-
* Register multiple rules at once.
|
|
20
|
-
*/
|
|
21
|
-
registerRules(rules: Rule<S, E>[]): void;
|
|
22
|
-
/**
|
|
23
|
-
* Unregister a rule by ID.
|
|
24
|
-
*/
|
|
25
|
-
unregisterRule(id: string): boolean;
|
|
26
|
-
/**
|
|
27
|
-
* Get a rule by ID.
|
|
28
|
-
*/
|
|
29
|
-
getRule(id: string): Rule<S, E> | undefined;
|
|
30
|
-
/**
|
|
31
|
-
* Get all registered rules.
|
|
32
|
-
*/
|
|
33
|
-
getAllRules(): Rule<S, E>[];
|
|
34
|
-
/**
|
|
35
|
-
* Get rules that match a specific event type.
|
|
36
|
-
*/
|
|
37
|
-
getRulesForEvent(eventType: string): Rule<S, E>[];
|
|
38
|
-
/**
|
|
39
|
-
* Register a new constraint.
|
|
40
|
-
* @throws Error if a constraint with the same ID already exists
|
|
41
|
-
*/
|
|
42
|
-
registerConstraint(constraint: Constraint<S>): void;
|
|
43
|
-
/**
|
|
44
|
-
* Register multiple constraints at once.
|
|
45
|
-
*/
|
|
46
|
-
registerConstraints(constraints: Constraint<S>[]): void;
|
|
47
|
-
/**
|
|
48
|
-
* Unregister a constraint by ID.
|
|
49
|
-
*/
|
|
50
|
-
unregisterConstraint(id: string): boolean;
|
|
51
|
-
/**
|
|
52
|
-
* Get a constraint by ID.
|
|
53
|
-
*/
|
|
54
|
-
getConstraint(id: string): Constraint<S> | undefined;
|
|
55
|
-
/**
|
|
56
|
-
* Get all registered constraints.
|
|
57
|
-
*/
|
|
58
|
-
getAllConstraints(): Constraint<S>[];
|
|
59
|
-
/**
|
|
60
|
-
* Evaluate all rules for a given state and event.
|
|
61
|
-
* Returns all effects produced by rules that fire.
|
|
62
|
-
*/
|
|
63
|
-
evaluateRules(state: S, event: E): Effect[];
|
|
64
|
-
/**
|
|
65
|
-
* Check all constraints for a given state.
|
|
66
|
-
* Returns an array of violations (empty if all constraints pass).
|
|
67
|
-
*/
|
|
68
|
-
checkConstraints(state: S): ConstraintViolation[];
|
|
69
|
-
/**
|
|
70
|
-
* Clear all rules from the registry.
|
|
71
|
-
*/
|
|
72
|
-
clearRules(): void;
|
|
73
|
-
/**
|
|
74
|
-
* Clear all constraints from the registry.
|
|
75
|
-
*/
|
|
76
|
-
clearConstraints(): void;
|
|
77
|
-
/**
|
|
78
|
-
* Clear all rules and constraints from the registry.
|
|
79
|
-
*/
|
|
80
|
-
clear(): void;
|
|
81
|
-
/**
|
|
82
|
-
* Get statistics about the registry.
|
|
83
|
-
*/
|
|
84
|
-
getStats(): {
|
|
85
|
-
ruleCount: number;
|
|
86
|
-
constraintCount: number;
|
|
87
|
-
rulesByEventType: Record<string, number>;
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Create a new registry instance.
|
|
92
|
-
*/
|
|
93
|
-
export declare function createRegistry<S extends PraxisState = PraxisState, E extends PraxisEvent = PraxisEvent>(): Registry<S, E>;
|
|
94
|
-
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEtE;;GAEG;AACH,qBAAa,QAAQ,CACnB,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,CAAC,SAAS,WAAW,GAAG,WAAW;IAEnC,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,WAAW,CAAyC;IAE5D;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;IAOpC;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI;IAMxC;;OAEG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAInC;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS;IAI3C;;OAEG;IACH,WAAW,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAI3B;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAMjD;;;OAGG;IACH,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;IAOnD;;OAEG;IACH,mBAAmB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;IAMvD;;OAEG;IACH,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIzC;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS;IAIpD;;OAEG;IACH,iBAAiB,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;IAIpC;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE;IA0B3C;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,CAAC,GAAG,mBAAmB,EAAE;IA0BjD;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAIxB;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,QAAQ,IAAI;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC1C;CAcF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,CAAC,SAAS,WAAW,GAAG,WAAW,KAChC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAElB"}
|