@plures/praxis 0.2.1 → 1.0.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/README.md +188 -61
- package/core/codegen/docs-generator.ts +808 -0
- package/core/codegen/index.ts +27 -0
- package/core/codegen/ts-generator.ts +15 -0
- package/core/db-adapter/index.ts +52 -0
- package/core/db-adapter/sync-engine.ts +450 -0
- package/core/logic-engine/engine.ts +12 -0
- package/core/logic-engine/index.ts +16 -0
- package/core/logic-engine/protocol.ts +16 -0
- package/core/logic-engine/psf-adapter.ts +269 -0
- package/core/logic-engine/rules.ts +16 -0
- package/core/schema-engine/compiler.ts +431 -0
- package/core/schema-engine/generator.ts +635 -0
- package/core/schema-engine/index.ts +18 -0
- package/core/schema-engine/psf.ts +664 -0
- package/core/schema-engine/types.ts +63 -0
- package/core/schema-engine/validator.ts +541 -0
- package/dist/core/codegen/docs-generator.d.ts +123 -0
- package/dist/core/codegen/docs-generator.d.ts.map +1 -0
- package/dist/core/codegen/docs-generator.js +674 -0
- package/dist/core/codegen/docs-generator.js.map +1 -0
- package/dist/core/codegen/index.d.ts +11 -0
- package/dist/core/codegen/index.d.ts.map +1 -0
- package/dist/core/codegen/index.js +13 -0
- package/dist/core/codegen/index.js.map +1 -0
- package/dist/core/codegen/ts-generator.d.ts +8 -0
- package/dist/core/codegen/ts-generator.d.ts.map +1 -0
- package/dist/core/codegen/ts-generator.js +8 -0
- package/dist/core/codegen/ts-generator.js.map +1 -0
- package/dist/core/db-adapter/index.d.ts +18 -0
- package/dist/core/db-adapter/index.d.ts.map +1 -0
- package/dist/core/db-adapter/index.js +23 -0
- package/dist/core/db-adapter/index.js.map +1 -0
- package/dist/core/db-adapter/sync-engine.d.ts +180 -0
- package/dist/core/db-adapter/sync-engine.d.ts.map +1 -0
- package/dist/core/db-adapter/sync-engine.js +342 -0
- package/dist/core/db-adapter/sync-engine.js.map +1 -0
- package/dist/core/logic-engine/engine.d.ts +8 -0
- package/dist/core/logic-engine/engine.d.ts.map +1 -0
- package/dist/core/logic-engine/engine.js +8 -0
- package/dist/core/logic-engine/engine.js.map +1 -0
- package/dist/core/logic-engine/index.d.ts +16 -0
- package/dist/core/logic-engine/index.d.ts.map +1 -0
- package/dist/core/logic-engine/index.js +16 -0
- package/dist/core/logic-engine/index.js.map +1 -0
- package/dist/core/logic-engine/protocol.d.ts +7 -0
- package/dist/core/logic-engine/protocol.d.ts.map +1 -0
- package/dist/core/logic-engine/protocol.js +7 -0
- package/dist/core/logic-engine/protocol.js.map +1 -0
- package/dist/core/logic-engine/psf-adapter.d.ts +88 -0
- package/dist/core/logic-engine/psf-adapter.d.ts.map +1 -0
- package/dist/core/logic-engine/psf-adapter.js +207 -0
- package/dist/core/logic-engine/psf-adapter.js.map +1 -0
- package/dist/core/logic-engine/rules.d.ts +7 -0
- package/dist/core/logic-engine/rules.d.ts.map +1 -0
- package/dist/core/logic-engine/rules.js +7 -0
- package/dist/core/logic-engine/rules.js.map +1 -0
- package/dist/core/schema-engine/compiler.d.ts +198 -0
- package/dist/core/schema-engine/compiler.d.ts.map +1 -0
- package/dist/core/schema-engine/compiler.js +262 -0
- package/dist/core/schema-engine/compiler.js.map +1 -0
- package/dist/core/schema-engine/generator.d.ts +115 -0
- package/dist/core/schema-engine/generator.d.ts.map +1 -0
- package/dist/core/schema-engine/generator.js +506 -0
- package/dist/core/schema-engine/generator.js.map +1 -0
- package/dist/core/schema-engine/index.d.ts +18 -0
- package/dist/core/schema-engine/index.d.ts.map +1 -0
- package/dist/core/schema-engine/index.js +18 -0
- package/dist/core/schema-engine/index.js.map +1 -0
- package/dist/core/schema-engine/psf.d.ts +612 -0
- package/dist/core/schema-engine/psf.d.ts.map +1 -0
- package/dist/core/schema-engine/psf.js +45 -0
- package/dist/core/schema-engine/psf.js.map +1 -0
- package/dist/core/schema-engine/types.d.ts +10 -0
- package/dist/core/schema-engine/types.d.ts.map +1 -0
- package/dist/core/schema-engine/types.js +7 -0
- package/dist/core/schema-engine/types.js.map +1 -0
- package/dist/core/schema-engine/validator.d.ts +140 -0
- package/dist/core/schema-engine/validator.d.ts.map +1 -0
- package/dist/core/schema-engine/validator.js +407 -0
- package/dist/core/schema-engine/validator.js.map +1 -0
- package/dist/src/adapters/cli.d.ts.map +1 -0
- package/dist/src/adapters/cli.js.map +1 -0
- package/dist/src/cli/commands/auth.d.ts.map +1 -0
- package/dist/src/cli/commands/auth.js.map +1 -0
- package/dist/src/cli/commands/build.d.ts +23 -0
- package/dist/src/cli/commands/build.d.ts.map +1 -0
- package/dist/src/cli/commands/build.js +162 -0
- package/dist/src/cli/commands/build.js.map +1 -0
- package/dist/src/cli/commands/canvas.d.ts +23 -0
- package/dist/src/cli/commands/canvas.d.ts.map +1 -0
- package/dist/src/cli/commands/canvas.js +215 -0
- package/dist/src/cli/commands/canvas.js.map +1 -0
- package/dist/src/cli/commands/cloud.d.ts.map +1 -0
- package/dist/src/cli/commands/cloud.js.map +1 -0
- package/dist/src/cli/commands/create.d.ts +21 -0
- package/dist/src/cli/commands/create.d.ts.map +1 -0
- package/dist/src/cli/commands/create.js +621 -0
- package/dist/src/cli/commands/create.js.map +1 -0
- package/dist/src/cli/commands/dev.d.ts +21 -0
- package/dist/src/cli/commands/dev.d.ts.map +1 -0
- package/dist/src/cli/commands/dev.js +71 -0
- package/dist/src/cli/commands/dev.js.map +1 -0
- package/dist/src/cli/commands/generate.d.ts.map +1 -0
- package/dist/src/cli/commands/generate.js.map +1 -0
- package/dist/src/cli/commands/orchestrate.d.ts +44 -0
- package/dist/src/cli/commands/orchestrate.d.ts.map +1 -0
- package/dist/src/cli/commands/orchestrate.js +150 -0
- package/dist/src/cli/commands/orchestrate.js.map +1 -0
- package/dist/{cli → src/cli}/index.d.ts.map +1 -1
- package/dist/{cli → src/cli}/index.js +53 -21
- package/dist/src/cli/index.js.map +1 -0
- package/dist/src/cloud/auth.d.ts.map +1 -0
- package/dist/src/cloud/auth.js.map +1 -0
- package/dist/src/cloud/billing.d.ts.map +1 -0
- package/dist/src/cloud/billing.js.map +1 -0
- package/dist/src/cloud/client.d.ts.map +1 -0
- package/dist/src/cloud/client.js.map +1 -0
- package/dist/src/cloud/index.d.ts.map +1 -0
- package/dist/src/cloud/index.js.map +1 -0
- package/dist/src/cloud/marketplace.d.ts.map +1 -0
- package/dist/src/cloud/marketplace.js.map +1 -0
- package/dist/src/cloud/provisioning.d.ts.map +1 -0
- package/dist/src/cloud/provisioning.js.map +1 -0
- package/dist/src/cloud/relay/endpoints.d.ts.map +1 -0
- package/dist/src/cloud/relay/endpoints.js.map +1 -0
- package/dist/src/cloud/relay/health/index.d.ts.map +1 -0
- package/dist/src/cloud/relay/health/index.js.map +1 -0
- package/dist/src/cloud/relay/stats/index.d.ts.map +1 -0
- package/dist/src/cloud/relay/stats/index.js.map +1 -0
- package/dist/src/cloud/relay/sync/index.d.ts.map +1 -0
- package/dist/src/cloud/relay/sync/index.js.map +1 -0
- package/dist/src/cloud/relay/usage/index.d.ts.map +1 -0
- package/dist/src/cloud/relay/usage/index.js.map +1 -0
- package/dist/src/cloud/sponsors.d.ts.map +1 -0
- package/dist/src/cloud/sponsors.js.map +1 -0
- package/dist/src/cloud/types.d.ts.map +1 -0
- package/dist/src/cloud/types.js.map +1 -0
- package/dist/src/components/index.d.ts.map +1 -0
- package/dist/src/components/index.js.map +1 -0
- package/dist/src/core/actors.d.ts.map +1 -0
- package/dist/src/core/actors.js.map +1 -0
- package/dist/src/core/component/generator.d.ts.map +1 -0
- package/dist/{core → src/core}/component/generator.js +45 -3
- package/dist/src/core/component/generator.js.map +1 -0
- package/dist/src/core/engine.d.ts.map +1 -0
- package/dist/src/core/engine.js.map +1 -0
- package/dist/src/core/introspection.d.ts.map +1 -0
- package/dist/src/core/introspection.js.map +1 -0
- package/dist/src/core/logic/generator.d.ts.map +1 -0
- package/dist/{core → src/core}/logic/generator.js +35 -4
- package/dist/src/core/logic/generator.js.map +1 -0
- package/dist/src/core/pluresdb/adapter.d.ts +72 -0
- package/dist/src/core/pluresdb/adapter.d.ts.map +1 -0
- package/dist/src/core/pluresdb/adapter.js +73 -0
- package/dist/src/core/pluresdb/adapter.js.map +1 -0
- package/dist/src/core/pluresdb/generator.d.ts.map +1 -0
- package/dist/{core → src/core}/pluresdb/generator.js +33 -4
- package/dist/src/core/pluresdb/generator.js.map +1 -0
- package/dist/src/core/pluresdb/index.d.ts +15 -0
- package/dist/src/core/pluresdb/index.d.ts.map +1 -0
- package/dist/src/core/pluresdb/index.js +11 -0
- package/dist/src/core/pluresdb/index.js.map +1 -0
- package/dist/src/core/pluresdb/schema-registry.d.ts +104 -0
- package/dist/src/core/pluresdb/schema-registry.d.ts.map +1 -0
- package/dist/src/core/pluresdb/schema-registry.js +130 -0
- package/dist/src/core/pluresdb/schema-registry.js.map +1 -0
- package/dist/src/core/pluresdb/store.d.ts +199 -0
- package/dist/src/core/pluresdb/store.d.ts.map +1 -0
- package/dist/src/core/pluresdb/store.js +344 -0
- package/dist/src/core/pluresdb/store.js.map +1 -0
- package/dist/src/core/protocol.d.ts.map +1 -0
- package/dist/src/core/protocol.js.map +1 -0
- package/dist/src/core/rules.d.ts.map +1 -0
- package/dist/src/core/rules.js.map +1 -0
- package/dist/src/core/schema/loader.d.ts.map +1 -0
- package/dist/src/core/schema/loader.js.map +1 -0
- package/dist/src/core/schema/normalize.d.ts.map +1 -0
- package/dist/src/core/schema/normalize.js.map +1 -0
- package/dist/src/core/schema/types.d.ts.map +1 -0
- package/dist/src/core/schema/types.js.map +1 -0
- package/dist/src/dsl/index.d.ts.map +1 -0
- package/dist/src/dsl/index.js.map +1 -0
- package/dist/src/dsl.d.ts.map +1 -0
- package/dist/src/dsl.js.map +1 -0
- package/dist/src/examples/advanced-todo/index.d.ts.map +1 -0
- package/dist/src/examples/advanced-todo/index.js.map +1 -0
- package/dist/src/examples/auth-basic/index.d.ts.map +1 -0
- package/dist/src/examples/auth-basic/index.js.map +1 -0
- package/dist/src/examples/cart/index.d.ts.map +1 -0
- package/dist/src/examples/cart/index.js.map +1 -0
- package/dist/src/examples/hero-ecommerce/index.d.ts.map +1 -0
- package/dist/src/examples/hero-ecommerce/index.js.map +1 -0
- package/dist/src/examples/svelte-counter/index.d.ts.map +1 -0
- package/dist/src/examples/svelte-counter/index.js.map +1 -0
- package/dist/src/flows.d.ts.map +1 -0
- package/dist/src/flows.js.map +1 -0
- package/dist/{index.d.ts → src/index.d.ts} +12 -2
- package/dist/src/index.d.ts.map +1 -0
- package/dist/{index.js → src/index.js} +6 -1
- package/dist/src/index.js.map +1 -0
- package/dist/src/integrations/code-canvas.d.ts +265 -0
- package/dist/src/integrations/code-canvas.d.ts.map +1 -0
- package/dist/src/integrations/code-canvas.js +451 -0
- package/dist/src/integrations/code-canvas.js.map +1 -0
- package/dist/src/integrations/pluresdb.d.ts +117 -0
- package/dist/src/integrations/pluresdb.d.ts.map +1 -0
- package/dist/src/integrations/pluresdb.js +117 -0
- package/dist/src/integrations/pluresdb.js.map +1 -0
- package/dist/src/integrations/state-docs.d.ts +191 -0
- package/dist/src/integrations/state-docs.d.ts.map +1 -0
- package/dist/src/integrations/state-docs.js +515 -0
- package/dist/src/integrations/state-docs.js.map +1 -0
- package/dist/src/integrations/svelte.d.ts.map +1 -0
- package/dist/src/integrations/svelte.js.map +1 -0
- package/dist/src/integrations/tauri.d.ts +360 -0
- package/dist/src/integrations/tauri.d.ts.map +1 -0
- package/dist/src/integrations/tauri.js +278 -0
- package/dist/src/integrations/tauri.js.map +1 -0
- package/dist/src/integrations/unum.d.ts +159 -0
- package/dist/src/integrations/unum.d.ts.map +1 -0
- package/dist/src/integrations/unum.js +240 -0
- package/dist/src/integrations/unum.js.map +1 -0
- package/dist/src/registry.d.ts.map +1 -0
- package/dist/src/registry.js.map +1 -0
- package/dist/{runtime → src/runtime}/terminal-adapter.d.ts +58 -7
- package/dist/src/runtime/terminal-adapter.d.ts.map +1 -0
- package/dist/src/runtime/terminal-adapter.js +237 -0
- package/dist/src/runtime/terminal-adapter.js.map +1 -0
- package/dist/src/step.d.ts.map +1 -0
- package/dist/src/step.js.map +1 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/{cloud → src}/types.js.map +1 -1
- package/dist/tools/cli/commands/index.d.ts +7 -0
- package/dist/tools/cli/commands/index.d.ts.map +1 -0
- package/dist/tools/cli/commands/index.js +7 -0
- package/dist/tools/cli/commands/index.js.map +1 -0
- package/dist/tools/cli/index.d.ts +8 -0
- package/dist/tools/cli/index.d.ts.map +1 -0
- package/dist/tools/cli/index.js +9 -0
- package/dist/tools/cli/index.js.map +1 -0
- package/dist/tools/watcher/index.d.ts +105 -0
- package/dist/tools/watcher/index.d.ts.map +1 -0
- package/dist/tools/watcher/index.js +213 -0
- package/dist/tools/watcher/index.js.map +1 -0
- package/dist/ui/canvas/canvas-projection.d.ts +78 -0
- package/dist/ui/canvas/canvas-projection.d.ts.map +1 -0
- package/dist/ui/canvas/canvas-projection.js +416 -0
- package/dist/ui/canvas/canvas-projection.js.map +1 -0
- package/dist/ui/canvas/canvas-state.d.ts +200 -0
- package/dist/ui/canvas/canvas-state.d.ts.map +1 -0
- package/dist/ui/canvas/canvas-state.js +464 -0
- package/dist/ui/canvas/canvas-state.js.map +1 -0
- package/dist/ui/canvas/components/index.d.ts +95 -0
- package/dist/ui/canvas/components/index.d.ts.map +1 -0
- package/dist/ui/canvas/components/index.js +19 -0
- package/dist/ui/canvas/components/index.js.map +1 -0
- package/dist/ui/canvas/index.d.ts +32 -0
- package/dist/ui/canvas/index.d.ts.map +1 -0
- package/dist/ui/canvas/index.js +32 -0
- package/dist/ui/canvas/index.js.map +1 -0
- package/dist/ui/svelte-generator/index.d.ts +9 -0
- package/dist/ui/svelte-generator/index.d.ts.map +1 -0
- package/dist/ui/svelte-generator/index.js +11 -0
- package/dist/ui/svelte-generator/index.js.map +1 -0
- package/dist/ui/svelte-generator/psf-generator.d.ts +128 -0
- package/dist/ui/svelte-generator/psf-generator.d.ts.map +1 -0
- package/dist/ui/svelte-generator/psf-generator.js +506 -0
- package/dist/ui/svelte-generator/psf-generator.js.map +1 -0
- package/docs/README.md +155 -0
- package/docs/core/building-extensions.md +553 -0
- package/docs/core/cli-usage.md +498 -0
- package/docs/core/code-canvas-sync.md +468 -0
- package/docs/core/logic-engine.md +566 -0
- package/docs/core/pluresdb-integration.md +646 -0
- package/docs/core/schema-model.md +414 -0
- package/docs/core/ui-generation.md +580 -0
- package/docs/core/what-is-praxis.md +240 -0
- package/docs/tutorials/README.md +84 -0
- package/docs/tutorials/ecommerce-cart.md +631 -0
- package/docs/tutorials/first-app.md +529 -0
- package/docs/tutorials/form-builder.md +620 -0
- package/docs/tutorials/todo-pluresdb.md +589 -0
- package/package.json +1 -1
- package/src/__tests__/canvas-components.test.ts +450 -0
- package/src/__tests__/cli-create.test.ts +178 -0
- package/src/__tests__/code-canvas-integration.test.ts +277 -0
- package/src/__tests__/docs-generator.test.ts +181 -0
- package/src/__tests__/generators.test.ts +3 -2
- package/src/__tests__/pluresdb.test.ts +457 -0
- package/src/__tests__/psf-schema-engine.test.ts +450 -0
- package/src/__tests__/state-docs-integration.test.ts +297 -0
- package/src/__tests__/tauri-integration.test.ts +298 -0
- package/src/__tests__/terminal-node.test.ts +1 -1
- package/src/__tests__/unum-integration.test.ts +142 -0
- package/src/cli/commands/build.ts +203 -0
- package/src/cli/commands/canvas.ts +246 -0
- package/src/cli/commands/create.ts +666 -0
- package/src/cli/commands/dev.ts +95 -0
- package/src/cli/commands/orchestrate.ts +212 -0
- package/src/cli/index.ts +48 -21
- package/src/core/component/generator.ts +45 -3
- package/src/core/logic/generator.ts +39 -4
- package/src/core/pluresdb/adapter.ts +117 -0
- package/src/core/pluresdb/generator.ts +33 -4
- package/src/core/pluresdb/index.ts +37 -0
- package/src/core/pluresdb/schema-registry.ts +162 -0
- package/src/core/pluresdb/store.ts +443 -0
- package/src/index.ts +109 -0
- package/src/integrations/code-canvas.ts +717 -0
- package/src/integrations/pluresdb.ts +140 -29
- package/src/integrations/state-docs.ts +710 -0
- package/src/integrations/tauri.ts +638 -0
- package/src/integrations/unum.ts +395 -0
- package/src/runtime/terminal-adapter.ts +178 -23
- package/dist/adapters/cli.d.ts.map +0 -1
- package/dist/adapters/cli.js.map +0 -1
- package/dist/cli/commands/auth.d.ts.map +0 -1
- package/dist/cli/commands/auth.js.map +0 -1
- package/dist/cli/commands/cloud.d.ts.map +0 -1
- package/dist/cli/commands/cloud.js.map +0 -1
- package/dist/cli/commands/generate.d.ts.map +0 -1
- package/dist/cli/commands/generate.js.map +0 -1
- package/dist/cli/index.js.map +0 -1
- package/dist/cloud/auth.d.ts.map +0 -1
- package/dist/cloud/auth.js.map +0 -1
- package/dist/cloud/billing.d.ts.map +0 -1
- package/dist/cloud/billing.js.map +0 -1
- package/dist/cloud/client.d.ts.map +0 -1
- package/dist/cloud/client.js.map +0 -1
- package/dist/cloud/index.d.ts.map +0 -1
- package/dist/cloud/index.js.map +0 -1
- package/dist/cloud/marketplace.d.ts.map +0 -1
- package/dist/cloud/marketplace.js.map +0 -1
- package/dist/cloud/provisioning.d.ts.map +0 -1
- package/dist/cloud/provisioning.js.map +0 -1
- package/dist/cloud/relay/endpoints.d.ts.map +0 -1
- package/dist/cloud/relay/endpoints.js.map +0 -1
- package/dist/cloud/relay/health/index.d.ts.map +0 -1
- package/dist/cloud/relay/health/index.js.map +0 -1
- package/dist/cloud/relay/stats/index.d.ts.map +0 -1
- package/dist/cloud/relay/stats/index.js.map +0 -1
- package/dist/cloud/relay/sync/index.d.ts.map +0 -1
- package/dist/cloud/relay/sync/index.js.map +0 -1
- package/dist/cloud/relay/usage/index.d.ts.map +0 -1
- package/dist/cloud/relay/usage/index.js.map +0 -1
- package/dist/cloud/sponsors.d.ts.map +0 -1
- package/dist/cloud/sponsors.js.map +0 -1
- package/dist/cloud/types.d.ts.map +0 -1
- package/dist/components/index.d.ts.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/core/actors.d.ts.map +0 -1
- package/dist/core/actors.js.map +0 -1
- package/dist/core/component/generator.d.ts.map +0 -1
- package/dist/core/component/generator.js.map +0 -1
- package/dist/core/engine.d.ts.map +0 -1
- package/dist/core/engine.js.map +0 -1
- package/dist/core/introspection.d.ts.map +0 -1
- package/dist/core/introspection.js.map +0 -1
- package/dist/core/logic/generator.d.ts.map +0 -1
- package/dist/core/logic/generator.js.map +0 -1
- package/dist/core/pluresdb/generator.d.ts.map +0 -1
- package/dist/core/pluresdb/generator.js.map +0 -1
- package/dist/core/protocol.d.ts.map +0 -1
- package/dist/core/protocol.js.map +0 -1
- package/dist/core/rules.d.ts.map +0 -1
- package/dist/core/rules.js.map +0 -1
- package/dist/core/schema/loader.d.ts.map +0 -1
- package/dist/core/schema/loader.js.map +0 -1
- package/dist/core/schema/normalize.d.ts.map +0 -1
- package/dist/core/schema/normalize.js.map +0 -1
- package/dist/core/schema/types.d.ts.map +0 -1
- package/dist/core/schema/types.js.map +0 -1
- package/dist/dsl/index.d.ts.map +0 -1
- package/dist/dsl/index.js.map +0 -1
- package/dist/dsl.d.ts.map +0 -1
- package/dist/dsl.js.map +0 -1
- package/dist/examples/advanced-todo/index.d.ts.map +0 -1
- package/dist/examples/advanced-todo/index.js.map +0 -1
- package/dist/examples/auth-basic/index.d.ts.map +0 -1
- package/dist/examples/auth-basic/index.js.map +0 -1
- package/dist/examples/cart/index.d.ts.map +0 -1
- package/dist/examples/cart/index.js.map +0 -1
- package/dist/examples/hero-ecommerce/index.d.ts.map +0 -1
- package/dist/examples/hero-ecommerce/index.js.map +0 -1
- package/dist/examples/svelte-counter/index.d.ts.map +0 -1
- package/dist/examples/svelte-counter/index.js.map +0 -1
- package/dist/flows.d.ts.map +0 -1
- package/dist/flows.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/integrations/pluresdb.d.ts +0 -56
- package/dist/integrations/pluresdb.d.ts.map +0 -1
- package/dist/integrations/pluresdb.js +0 -46
- package/dist/integrations/pluresdb.js.map +0 -1
- package/dist/integrations/svelte.d.ts.map +0 -1
- package/dist/integrations/svelte.js.map +0 -1
- package/dist/registry.d.ts.map +0 -1
- package/dist/registry.js.map +0 -1
- package/dist/runtime/terminal-adapter.d.ts.map +0 -1
- package/dist/runtime/terminal-adapter.js +0 -113
- package/dist/runtime/terminal-adapter.js.map +0 -1
- package/dist/step.d.ts.map +0 -1
- package/dist/step.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- /package/dist/{adapters → src/adapters}/cli.d.ts +0 -0
- /package/dist/{adapters → src/adapters}/cli.js +0 -0
- /package/dist/{cli → src/cli}/commands/auth.d.ts +0 -0
- /package/dist/{cli → src/cli}/commands/auth.js +0 -0
- /package/dist/{cli → src/cli}/commands/cloud.d.ts +0 -0
- /package/dist/{cli → src/cli}/commands/cloud.js +0 -0
- /package/dist/{cli → src/cli}/commands/generate.d.ts +0 -0
- /package/dist/{cli → src/cli}/commands/generate.js +0 -0
- /package/dist/{cli → src/cli}/index.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/auth.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/auth.js +0 -0
- /package/dist/{cloud → src/cloud}/billing.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/billing.js +0 -0
- /package/dist/{cloud → src/cloud}/client.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/client.js +0 -0
- /package/dist/{cloud → src/cloud}/index.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/index.js +0 -0
- /package/dist/{cloud → src/cloud}/marketplace.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/marketplace.js +0 -0
- /package/dist/{cloud → src/cloud}/provisioning.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/provisioning.js +0 -0
- /package/dist/{cloud → src/cloud}/relay/endpoints.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/relay/endpoints.js +0 -0
- /package/dist/{cloud → src/cloud}/relay/health/index.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/relay/health/index.js +0 -0
- /package/dist/{cloud → src/cloud}/relay/stats/index.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/relay/stats/index.js +0 -0
- /package/dist/{cloud → src/cloud}/relay/sync/index.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/relay/sync/index.js +0 -0
- /package/dist/{cloud → src/cloud}/relay/usage/index.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/relay/usage/index.js +0 -0
- /package/dist/{cloud → src/cloud}/sponsors.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/sponsors.js +0 -0
- /package/dist/{cloud → src/cloud}/types.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/types.js +0 -0
- /package/dist/{components → src/components}/index.d.ts +0 -0
- /package/dist/{components → src/components}/index.js +0 -0
- /package/dist/{core → src/core}/actors.d.ts +0 -0
- /package/dist/{core → src/core}/actors.js +0 -0
- /package/dist/{core → src/core}/component/generator.d.ts +0 -0
- /package/dist/{core → src/core}/engine.d.ts +0 -0
- /package/dist/{core → src/core}/engine.js +0 -0
- /package/dist/{core → src/core}/introspection.d.ts +0 -0
- /package/dist/{core → src/core}/introspection.js +0 -0
- /package/dist/{core → src/core}/logic/generator.d.ts +0 -0
- /package/dist/{core → src/core}/pluresdb/generator.d.ts +0 -0
- /package/dist/{core → src/core}/protocol.d.ts +0 -0
- /package/dist/{core → src/core}/protocol.js +0 -0
- /package/dist/{core → src/core}/rules.d.ts +0 -0
- /package/dist/{core → src/core}/rules.js +0 -0
- /package/dist/{core → src/core}/schema/loader.d.ts +0 -0
- /package/dist/{core → src/core}/schema/loader.js +0 -0
- /package/dist/{core → src/core}/schema/normalize.d.ts +0 -0
- /package/dist/{core → src/core}/schema/normalize.js +0 -0
- /package/dist/{core → src/core}/schema/types.d.ts +0 -0
- /package/dist/{core → src/core}/schema/types.js +0 -0
- /package/dist/{dsl → src/dsl}/index.d.ts +0 -0
- /package/dist/{dsl → src/dsl}/index.js +0 -0
- /package/dist/{dsl.d.ts → src/dsl.d.ts} +0 -0
- /package/dist/{dsl.js → src/dsl.js} +0 -0
- /package/dist/{examples → src/examples}/advanced-todo/index.d.ts +0 -0
- /package/dist/{examples → src/examples}/advanced-todo/index.js +0 -0
- /package/dist/{examples → src/examples}/auth-basic/index.d.ts +0 -0
- /package/dist/{examples → src/examples}/auth-basic/index.js +0 -0
- /package/dist/{examples → src/examples}/cart/index.d.ts +0 -0
- /package/dist/{examples → src/examples}/cart/index.js +0 -0
- /package/dist/{examples → src/examples}/hero-ecommerce/index.d.ts +0 -0
- /package/dist/{examples → src/examples}/hero-ecommerce/index.js +0 -0
- /package/dist/{examples → src/examples}/svelte-counter/index.d.ts +0 -0
- /package/dist/{examples → src/examples}/svelte-counter/index.js +0 -0
- /package/dist/{flows.d.ts → src/flows.d.ts} +0 -0
- /package/dist/{flows.js → src/flows.js} +0 -0
- /package/dist/{integrations → src/integrations}/svelte.d.ts +0 -0
- /package/dist/{integrations → src/integrations}/svelte.js +0 -0
- /package/dist/{registry.d.ts → src/registry.d.ts} +0 -0
- /package/dist/{registry.js → src/registry.js} +0 -0
- /package/dist/{step.d.ts → src/step.d.ts} +0 -0
- /package/dist/{step.js → src/step.js} +0 -0
- /package/dist/{types.d.ts → src/types.d.ts} +0 -0
- /package/dist/{types.js → src/types.js} +0 -0
package/README.md
CHANGED
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
| Category | Status |
|
|
28
28
|
|----------|--------|
|
|
29
29
|
| **CI/CD** | ✅ Automated testing & builds |
|
|
30
|
-
| **Version** | 0.2.
|
|
30
|
+
| **Version** | 0.2.1 (Alpha) |
|
|
31
31
|
| **Runtime Support** | Node.js 18+, Deno (experimental), .NET 8+ |
|
|
32
32
|
| **Package Registries** | npm ✅ / NuGet ✅ / JSR 🚧 (coming soon) |
|
|
33
|
-
| **Test Coverage** |
|
|
33
|
+
| **Test Coverage** | 202 TypeScript + 68 C# tests passing |
|
|
34
34
|
| **Documentation** | 📚 Comprehensive guides available |
|
|
35
35
|
|
|
36
36
|
### Language Support
|
|
@@ -46,12 +46,12 @@
|
|
|
46
46
|
| Integration | Status | Notes |
|
|
47
47
|
|------------|--------|-------|
|
|
48
48
|
| **Praxis Cloud** | ✅ Available | Azure-hosted relay for sync & monetization |
|
|
49
|
-
| **PluresDB** |
|
|
50
|
-
| **Unum** |
|
|
49
|
+
| **PluresDB** | ✅ Available | Local-first reactive datastore with 32 tests |
|
|
50
|
+
| **Unum** | ✅ Available | Identity & channels integration |
|
|
51
51
|
| **Svelte 5** | ✅ Full Support | Runes API, stores, history, time-travel |
|
|
52
|
-
| **Tauri** |
|
|
53
|
-
| **CodeCanvas** |
|
|
54
|
-
| **State-Docs** |
|
|
52
|
+
| **Tauri** | ✅ Available | Cross-platform desktop runtime |
|
|
53
|
+
| **CodeCanvas** | ✅ Available | Visual schema editor & FSM enforcement |
|
|
54
|
+
| **State-Docs** | ✅ Available | Documentation generation from schemas |
|
|
55
55
|
|
|
56
56
|
---
|
|
57
57
|
|
|
@@ -59,29 +59,84 @@
|
|
|
59
59
|
|
|
60
60
|
Praxis is not just a logic engine—it's a **complete framework** for building modern, local-first, distributed applications. It provides:
|
|
61
61
|
|
|
62
|
-
- **Declarative Schemas**: Define your data models, logic, and components in a unified schema format
|
|
62
|
+
- **Declarative Schemas**: Define your data models, logic, and components in a unified schema format (PSF)
|
|
63
63
|
- **Logic/State Machines**: Pure, functional application logic with facts, events, rules, and constraints
|
|
64
64
|
- **Component Generation**: Automatically generate Svelte components from schemas
|
|
65
65
|
- **Local-First Data**: Integrated PluresDB for reactive, offline-capable data storage
|
|
66
|
-
- **Documentation Generation**: Automatic
|
|
66
|
+
- **Documentation Generation**: Automatic documentation generation from schemas with Mermaid diagrams
|
|
67
67
|
- **Visual Design**: CodeCanvas integration for visual schema and logic editing
|
|
68
|
+
- **Real-Time Code ↔ Canvas Sync**: Bidirectional synchronization between code and visual editor
|
|
68
69
|
- **Orchestration**: DSC/MCP support for distributed system coordination
|
|
69
70
|
- **Cross-Platform Runtime**: Web, desktop, and mobile via Svelte + Tauri
|
|
70
71
|
|
|
72
|
+
## 🚀 Praxis 1.0 Architecture
|
|
73
|
+
|
|
74
|
+
Praxis 1.0 introduces a **schema-driven, modular architecture** where the Praxis Schema Format (PSF) serves as the single source of truth.
|
|
75
|
+
|
|
76
|
+
### Praxis Schema Format (PSF)
|
|
77
|
+
|
|
78
|
+
PSF is the canonical JSON/AST format that defines your entire application:
|
|
79
|
+
|
|
80
|
+
```json
|
|
81
|
+
{
|
|
82
|
+
"$version": "1.0.0",
|
|
83
|
+
"id": "my-app",
|
|
84
|
+
"name": "My Application",
|
|
85
|
+
"facts": [...],
|
|
86
|
+
"events": [...],
|
|
87
|
+
"rules": [...],
|
|
88
|
+
"constraints": [...],
|
|
89
|
+
"models": [...],
|
|
90
|
+
"components": [...],
|
|
91
|
+
"flows": [...]
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
From this schema, Praxis generates:
|
|
96
|
+
- **TypeScript types** for facts, events, rules
|
|
97
|
+
- **Svelte components** for UI
|
|
98
|
+
- **Markdown documentation** with Mermaid diagrams
|
|
99
|
+
- **Database schemas** for PluresDB
|
|
100
|
+
- **Canvas visualization** for visual editing
|
|
101
|
+
|
|
102
|
+
### Modular Folder Structure
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
/praxis
|
|
106
|
+
├── core/ # Core framework modules
|
|
107
|
+
│ ├── schema-engine/ # PSF types, compiler, generator, validator
|
|
108
|
+
│ ├── logic-engine/ # Rules, constraints, engine, PSF adapter
|
|
109
|
+
│ ├── db-adapter/ # PluresDB sync engine
|
|
110
|
+
│ └── codegen/ # Documentation and code generators
|
|
111
|
+
├── ui/ # UI modules
|
|
112
|
+
│ ├── svelte-generator/ # PSF-aware Svelte component generation
|
|
113
|
+
│ └── canvas/ # Visual canvas state and projection
|
|
114
|
+
├── tools/ # Developer tools
|
|
115
|
+
│ ├── cli/ # Command-line interface
|
|
116
|
+
│ └── watcher/ # File watching and live sync
|
|
117
|
+
├── extensions/ # Optional integrations
|
|
118
|
+
│ ├── dsc/ # DSC/MCP orchestration
|
|
119
|
+
│ ├── azure/ # Azure integration
|
|
120
|
+
│ └── devtools/ # Developer tools
|
|
121
|
+
└── examples/ # Example applications
|
|
122
|
+
├── hero-shop/ # Full e-commerce example
|
|
123
|
+
└── todo/ # Minimal todo example
|
|
124
|
+
```
|
|
125
|
+
|
|
71
126
|
### Framework Philosophy
|
|
72
127
|
|
|
73
128
|
### Core Framework Components
|
|
74
129
|
|
|
75
130
|
Praxis provides these integrated capabilities:
|
|
76
131
|
|
|
77
|
-
- **Schema
|
|
132
|
+
- **Schema Engine** – PSF parser, compiler, generator, and validator
|
|
78
133
|
- **Logic Engine** – Typed facts, events, rules, and constraints for application logic
|
|
79
134
|
- **Component Factory** – Generate Svelte components from schemas with data bindings
|
|
80
135
|
- **Data Layer** – PluresDB integration for reactive, local-first data storage
|
|
81
136
|
- **State Machines** – Flows and scenarios for orchestrated behaviors
|
|
82
137
|
- **Actors** – Effectful units for side effects and external system integration
|
|
83
|
-
- **Terminal Nodes** – Execute commands and scripts within the Praxis framework
|
|
84
|
-
- **Documentation** – Automatic
|
|
138
|
+
- **Terminal Nodes** – Execute commands and scripts within the Praxis framework
|
|
139
|
+
- **Documentation** – Automatic documentation generation from schemas with Mermaid diagrams
|
|
85
140
|
- **Visual IDE** – CodeCanvas integration for schema and logic editing
|
|
86
141
|
- **Orchestration** – DSC/MCP support for distributed coordination
|
|
87
142
|
- **CLI Tools** – Command-line interface for scaffolding and generation
|
|
@@ -154,20 +209,26 @@ Praxis provides these integrated capabilities:
|
|
|
154
209
|
- 🔒 **Type-Safe**: Full TypeScript support with strict typing
|
|
155
210
|
- 🔍 **Introspection**: Generate schemas, graphs, and visualizations of your logic
|
|
156
211
|
- 🌐 **Cross-Language**: PowerShell adapter with protocol versioning (C# coming soon)
|
|
157
|
-
- 📊 **Comprehensive Testing**:
|
|
212
|
+
- 📊 **Comprehensive Testing**: 197+ TypeScript and 95+ C# tests covering all features
|
|
158
213
|
- 🎭 **Hero Example**: Full e-commerce demo with auth, cart, features, and actors
|
|
159
214
|
|
|
160
|
-
## What's New in v0.
|
|
215
|
+
## What's New in v0.2.0
|
|
161
216
|
|
|
162
217
|
### 🎉 Major Features
|
|
163
218
|
|
|
219
|
+
#### Full Application Framework
|
|
220
|
+
Praxis 0.2.0 transforms from a logic engine into a **complete application framework**:
|
|
221
|
+
- **Complete Schema System**: Comprehensive type definitions for models, components, logic, and orchestration
|
|
222
|
+
- **Component Generation**: Automatic Svelte component generation from schemas
|
|
223
|
+
- **CLI Tools**: `praxis create`, `praxis generate`, `praxis canvas` commands
|
|
224
|
+
- **Cloud Integration**: GitHub-based authentication and tier-based billing
|
|
225
|
+
- **PluresDB Integration**: Local-first reactive datastore with full implementation
|
|
226
|
+
|
|
164
227
|
#### Svelte 5 Integration (@plures/praxis/svelte)
|
|
165
|
-
- **Runes Composables**: `
|
|
166
|
-
- **History State Pattern**:
|
|
167
|
-
- **Time-Travel Debugging**: Navigate through state snapshots
|
|
168
|
-
- **Undo/Redo**: Built-in with configurable history size
|
|
228
|
+
- **Runes Composables**: `usePraxisState`, `usePraxisHistory`, `usePraxisComputed`
|
|
229
|
+
- **History State Pattern**: Time-travel debugging with undo/redo
|
|
169
230
|
- **Store API**: Compatible with Svelte 4 and 5
|
|
170
|
-
- **
|
|
231
|
+
- **Full TypeScript support** with generics
|
|
171
232
|
|
|
172
233
|
#### Documentation & Guides
|
|
173
234
|
- **[Svelte Integration Guide](docs/guides/svelte-integration.md)**: Complete guide to Svelte 5 integration
|
|
@@ -176,15 +237,23 @@ Praxis provides these integrated capabilities:
|
|
|
176
237
|
- **[Advanced Todo Example](src/examples/advanced-todo/)**: Full-featured demo with history
|
|
177
238
|
|
|
178
239
|
### 🧪 Hardened TypeScript Core
|
|
179
|
-
- **
|
|
240
|
+
- **197 comprehensive tests** (up from 9 in v0.1.0) covering:
|
|
180
241
|
- Svelte integration with runes and stores
|
|
242
|
+
- PluresDB integration (32 tests)
|
|
181
243
|
- History state management and navigation
|
|
182
244
|
- Edge cases and failure paths
|
|
183
245
|
- Actor lifecycle and state change notifications
|
|
184
246
|
- Constraint violations and rule errors
|
|
185
247
|
- Registry operations and module composition
|
|
248
|
+
- Cloud integration and billing
|
|
249
|
+
- Terminal node functionality
|
|
186
250
|
- Full test coverage ensures production-ready reliability
|
|
187
251
|
|
|
252
|
+
### 🔒 C# Implementation
|
|
253
|
+
- **95 comprehensive C# tests** with full parity to TypeScript features
|
|
254
|
+
- Functional, immutable design with records
|
|
255
|
+
- NuGet package available
|
|
256
|
+
|
|
188
257
|
### 📖 Protocol Versioning (v1.0.0)
|
|
189
258
|
- **Explicit protocol version** (`protocolVersion` field in state)
|
|
190
259
|
- **Stability guarantees** for cross-language compatibility
|
|
@@ -233,7 +302,7 @@ dotnet add package Plures.Praxis
|
|
|
233
302
|
Or add to your `.csproj`:
|
|
234
303
|
|
|
235
304
|
```xml
|
|
236
|
-
<PackageReference Include="Plures.Praxis" Version="0.2.
|
|
305
|
+
<PackageReference Include="Plures.Praxis" Version="0.2.1" />
|
|
237
306
|
```
|
|
238
307
|
|
|
239
308
|
See [C# Documentation](./csharp/Praxis/README.md) for detailed usage.
|
|
@@ -251,7 +320,7 @@ For now, you can use Praxis with Deno via import maps:
|
|
|
251
320
|
// import_map.json
|
|
252
321
|
{
|
|
253
322
|
"imports": {
|
|
254
|
-
"@plures/praxis": "npm:@plures/praxis@^0.2.
|
|
323
|
+
"@plures/praxis": "npm:@plures/praxis@^0.2.1"
|
|
255
324
|
}
|
|
256
325
|
}
|
|
257
326
|
```
|
|
@@ -535,25 +604,41 @@ This protocol is:
|
|
|
535
604
|
│ │ └── introspection.ts # Introspection and visualization
|
|
536
605
|
│ ├── component/ # Component generation
|
|
537
606
|
│ │ └── generator.ts # Svelte component generator
|
|
607
|
+
│ ├── pluresdb/ # PluresDB integration core
|
|
608
|
+
│ │ ├── adapter.ts # Database adapter interface
|
|
609
|
+
│ │ ├── store.ts # Reactive store implementation
|
|
610
|
+
│ │ ├── schema-registry.ts # Schema registry for PluresDB
|
|
611
|
+
│ │ └── generator.ts # PluresDB config generator
|
|
538
612
|
│ └── runtime/ # Runtime abstractions
|
|
613
|
+
├── cloud/ # Praxis Cloud integration
|
|
614
|
+
│ ├── auth.ts # GitHub OAuth authentication
|
|
615
|
+
│ ├── billing.ts # Tier-based billing
|
|
616
|
+
│ ├── provisioning.ts # Tenant provisioning
|
|
617
|
+
│ └── relay/ # Azure relay service
|
|
539
618
|
├── integrations/ # Ecosystem integrations
|
|
540
|
-
│ ├── pluresdb
|
|
619
|
+
│ ├── pluresdb.ts # PluresDB integration exports
|
|
620
|
+
│ ├── svelte.ts # Svelte 5 integration
|
|
541
621
|
│ ├── unum/ # Unum identity and channels
|
|
542
622
|
│ ├── adp/ # Architectural Decision Protocol
|
|
543
623
|
│ ├── state-docs/ # State-Docs documentation
|
|
544
624
|
│ └── canvas/ # CodeCanvas visual editor
|
|
625
|
+
├── components/ # Svelte components
|
|
626
|
+
│ └── TerminalNode.svelte # Terminal node component
|
|
545
627
|
├── cli/ # Command-line interface
|
|
546
628
|
│ ├── index.ts # CLI entry point
|
|
547
629
|
│ └── commands/ # Command implementations
|
|
548
630
|
├── templates/ # Project templates
|
|
549
631
|
│ ├── basic-app/ # Basic application template
|
|
550
|
-
│
|
|
551
|
-
│ ├── component/ # Component template
|
|
552
|
-
│ └── orchestrator/ # Distributed orchestration template
|
|
632
|
+
│ └── fullstack-app/ # Full-stack template
|
|
553
633
|
├── examples/ # Example applications
|
|
554
634
|
│ ├── offline-chat/ # Offline-first chat demo
|
|
555
635
|
│ ├── knowledge-canvas/ # Knowledge management with Canvas
|
|
556
636
|
│ ├── distributed-node/ # Self-orchestrating node demo
|
|
637
|
+
│ ├── terminal-node/ # Terminal node demo
|
|
638
|
+
│ ├── terminal-canvas/ # Terminal + canvas demo
|
|
639
|
+
│ ├── cloud-sync/ # Cloud sync demo
|
|
640
|
+
│ ├── github-monetization/ # GitHub monetization demo
|
|
641
|
+
│ ├── simple-app/ # Simple app demo
|
|
557
642
|
│ ├── auth-basic/ # Login/logout example
|
|
558
643
|
│ ├── cart/ # Shopping cart example
|
|
559
644
|
│ ├── svelte-counter/ # Svelte integration example
|
|
@@ -571,7 +656,7 @@ See [FRAMEWORK.md](./FRAMEWORK.md) for complete architecture documentation.
|
|
|
571
656
|
|
|
572
657
|
## Examples
|
|
573
658
|
|
|
574
|
-
The repository includes
|
|
659
|
+
The repository includes 12 complete examples:
|
|
575
660
|
|
|
576
661
|
### 1. Hero E-Commerce (`src/examples/hero-ecommerce`)
|
|
577
662
|
**NEW!** Comprehensive example demonstrating all Praxis features in a single application:
|
|
@@ -656,6 +741,26 @@ npm run build
|
|
|
656
741
|
node dist/examples/svelte-counter/index.js
|
|
657
742
|
```
|
|
658
743
|
|
|
744
|
+
### 9. Terminal Canvas (`examples/terminal-canvas`)
|
|
745
|
+
Combines terminal nodes with visual canvas features in a Svelte app.
|
|
746
|
+
|
|
747
|
+
See [examples/terminal-canvas/README.md](./examples/terminal-canvas/README.md)
|
|
748
|
+
|
|
749
|
+
### 10. GitHub Monetization (`examples/github-monetization`)
|
|
750
|
+
Example of GitHub-based monetization integration with Praxis Cloud.
|
|
751
|
+
|
|
752
|
+
See [examples/github-monetization/README.md](./examples/github-monetization/README.md)
|
|
753
|
+
|
|
754
|
+
### 11. Simple App (`examples/simple-app`)
|
|
755
|
+
A minimal example demonstrating basic Praxis schema usage.
|
|
756
|
+
|
|
757
|
+
See [examples/simple-app/README.md](./examples/simple-app/README.md)
|
|
758
|
+
|
|
759
|
+
### 12. Cloud Sync (`examples/cloud-sync`)
|
|
760
|
+
Demonstrates real-time synchronization with Praxis Cloud relay service.
|
|
761
|
+
|
|
762
|
+
See [examples/cloud-sync/README.md](./examples/cloud-sync/README.md)
|
|
763
|
+
|
|
659
764
|
## API Reference
|
|
660
765
|
|
|
661
766
|
### Core Types
|
|
@@ -729,34 +834,51 @@ Praxis integrates with the full Plures ecosystem:
|
|
|
729
834
|
|
|
730
835
|
### PluresDB Integration
|
|
731
836
|
|
|
732
|
-
Local-first reactive datastore for offline-capable applications.
|
|
837
|
+
Local-first reactive datastore for offline-capable applications. **Now fully implemented** with 32 tests covering all features.
|
|
733
838
|
|
|
734
839
|
```typescript
|
|
735
|
-
import {
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
840
|
+
import {
|
|
841
|
+
createInMemoryDB,
|
|
842
|
+
createPraxisDBStore,
|
|
843
|
+
createPluresDBAdapter,
|
|
844
|
+
attachToEngine
|
|
845
|
+
} from '@plures/praxis/pluresdb';
|
|
846
|
+
|
|
847
|
+
// Create an in-memory database
|
|
848
|
+
const db = createInMemoryDB();
|
|
849
|
+
|
|
850
|
+
// Create a PraxisDB store for facts and events
|
|
851
|
+
const store = createPraxisDBStore({ db });
|
|
852
|
+
|
|
853
|
+
// Or create an adapter to attach to an engine
|
|
854
|
+
const adapter = createPluresDBAdapter({
|
|
855
|
+
db,
|
|
856
|
+
registry,
|
|
857
|
+
initialContext: {}
|
|
751
858
|
});
|
|
752
859
|
|
|
753
|
-
//
|
|
754
|
-
|
|
755
|
-
|
|
860
|
+
// Attach adapter to engine for automatic persistence
|
|
861
|
+
adapter.attachEngine(engine);
|
|
862
|
+
|
|
863
|
+
// Persist facts and events
|
|
864
|
+
await adapter.persistFacts([{ tag: "UserLoggedIn", payload: { userId: "alice" } }]);
|
|
865
|
+
await adapter.persistEvents([{ tag: "LOGIN", payload: { username: "alice" } }]);
|
|
866
|
+
|
|
867
|
+
// Subscribe to changes
|
|
868
|
+
adapter.subscribeToEvents((events) => {
|
|
869
|
+
console.log("New events:", events);
|
|
870
|
+
});
|
|
756
871
|
```
|
|
757
872
|
|
|
758
|
-
**
|
|
759
|
-
**
|
|
873
|
+
**Features:**
|
|
874
|
+
- **In-memory adapter**: Ready-to-use implementation for development and testing
|
|
875
|
+
- **Reactive store**: Watch for changes with callbacks
|
|
876
|
+
- **Schema registry**: Store and retrieve schemas in PluresDB
|
|
877
|
+
- **Config generator**: Generate PluresDB configuration from Praxis schemas
|
|
878
|
+
- **Engine integration**: Automatic fact/event persistence
|
|
879
|
+
|
|
880
|
+
**Status**: ✅ Available (`src/core/pluresdb/`, `src/integrations/pluresdb.ts`)
|
|
881
|
+
**Tests**: 32 tests covering adapter, store, registry, and engine integration
|
|
760
882
|
|
|
761
883
|
### Unum Integration
|
|
762
884
|
|
|
@@ -961,18 +1083,20 @@ See [csharp/Praxis/README.md](./csharp/Praxis/README.md) for complete documentat
|
|
|
961
1083
|
|
|
962
1084
|
## Future Roadmap
|
|
963
1085
|
|
|
964
|
-
### Short Term (v0.2.
|
|
1086
|
+
### Short Term (v0.2.x) ✅
|
|
965
1087
|
- ✅ Complete CLI implementation
|
|
966
1088
|
- ✅ Basic project templates
|
|
967
1089
|
- ✅ Component generation MVP
|
|
968
|
-
- ✅ C# implementation with NuGet publishing
|
|
1090
|
+
- ✅ C# implementation with NuGet publishing (95 tests)
|
|
1091
|
+
- ✅ PluresDB integration with full test coverage (32 tests)
|
|
1092
|
+
- ✅ Praxis Cloud with GitHub authentication and billing
|
|
969
1093
|
|
|
970
1094
|
### Medium Term (v0.3.0 - v0.5.0)
|
|
971
1095
|
- Full CodeCanvas integration
|
|
972
1096
|
- Unum identity support
|
|
973
1097
|
- State-Docs generation
|
|
974
1098
|
- Multi-language schemas
|
|
975
|
-
-
|
|
1099
|
+
- Real PluresDB sync (CRDT/offline-first)
|
|
976
1100
|
|
|
977
1101
|
### Long Term (v1.0.0+)
|
|
978
1102
|
- Mobile templates (iOS, Android)
|
|
@@ -985,9 +1109,10 @@ See [csharp/Praxis/README.md](./csharp/Praxis/README.md) for complete documentat
|
|
|
985
1109
|
|
|
986
1110
|
### Ecosystem Integration
|
|
987
1111
|
|
|
988
|
-
- **Svelte v5**: Full reactive binding support
|
|
989
|
-
- **
|
|
990
|
-
- **
|
|
1112
|
+
- **Svelte v5**: ✅ Full reactive binding support with runes and history
|
|
1113
|
+
- **PluresDB**: ✅ Reactive datastore integration with 32 tests
|
|
1114
|
+
- **Cloud**: ✅ GitHub-based auth and tier billing
|
|
1115
|
+
- **unum**: 🚧 Identity/channels and messaging
|
|
991
1116
|
- **Visualization**: VSCode extension, docs generator, canvas tools (introspection API ready)
|
|
992
1117
|
- **ADP**: Architectural guardrails and static checks
|
|
993
1118
|
|
|
@@ -1319,12 +1444,14 @@ if (result.effects) {
|
|
|
1319
1444
|
|
|
1320
1445
|
## Future Roadmap
|
|
1321
1446
|
|
|
1322
|
-
-
|
|
1323
|
-
-
|
|
1324
|
-
-
|
|
1325
|
-
-
|
|
1326
|
-
-
|
|
1327
|
-
-
|
|
1447
|
+
- ✅ **Svelte v5 Integration**: First-class support for Svelte 5 runes (available)
|
|
1448
|
+
- ✅ **PluresDB Integration**: Reactive datastore with 32 tests (available)
|
|
1449
|
+
- ✅ **C# Port**: Cross-platform compatibility with 95 tests (available)
|
|
1450
|
+
- ✅ **PowerShell Module**: Scripting and automation support (available)
|
|
1451
|
+
- 🚧 **Unum Integration**: Identity and channels (in progress)
|
|
1452
|
+
- 🚧 **CodeCanvas**: Visual schema and logic editor (planned)
|
|
1453
|
+
- 🚧 **State-Docs**: Documentation generation (planned)
|
|
1454
|
+
- 📊 **Visualization**: Flow and state visualization tools (introspection ready)
|
|
1328
1455
|
|
|
1329
1456
|
## Development
|
|
1330
1457
|
|