@plures/praxis 1.0.3 → 1.1.1
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/README.md +162 -375
- package/core/codegen/docs-generator.ts +5 -2
- package/core/codegen/index.ts +1 -1
- 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 +215139 -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-QRYKRIDU.js +210960 -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 +58 -23
- 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/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/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,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Praxis Generate Command
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
4
|
* Generates code from Praxis schema files.
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -36,50 +36,48 @@ export async function generate(options: GenerateOptions): Promise<void> {
|
|
|
36
36
|
// Determine schema file path
|
|
37
37
|
const schemaPath = options.schema || './praxis.schema.js';
|
|
38
38
|
const resolvedSchemaPath = resolve(process.cwd(), schemaPath);
|
|
39
|
-
|
|
39
|
+
|
|
40
40
|
console.log(`Loading schema from: ${resolvedSchemaPath}`);
|
|
41
|
-
|
|
41
|
+
|
|
42
42
|
// Load the schema
|
|
43
43
|
const loadResult = await loadSchemaFromFile(resolvedSchemaPath, {
|
|
44
44
|
validate: true,
|
|
45
45
|
});
|
|
46
|
-
|
|
46
|
+
|
|
47
47
|
if (loadResult.errors.length > 0) {
|
|
48
48
|
console.error('❌ Failed to load schema:');
|
|
49
49
|
loadResult.errors.forEach((error) => console.error(` - ${error}`));
|
|
50
50
|
process.exit(1);
|
|
51
51
|
}
|
|
52
|
-
|
|
52
|
+
|
|
53
53
|
if (!loadResult.schema) {
|
|
54
54
|
console.error('❌ No schema found');
|
|
55
55
|
process.exit(1);
|
|
56
56
|
}
|
|
57
|
-
|
|
57
|
+
|
|
58
58
|
// Validate schema for generation
|
|
59
59
|
const generationValidation = validateForGeneration(loadResult.schema);
|
|
60
60
|
if (!generationValidation.valid) {
|
|
61
61
|
console.error('❌ Schema validation failed:');
|
|
62
|
-
generationValidation.errors.forEach((error) =>
|
|
63
|
-
console.error(` - ${error.message}`)
|
|
64
|
-
);
|
|
62
|
+
generationValidation.errors.forEach((error) => console.error(` - ${error.message}`));
|
|
65
63
|
process.exit(1);
|
|
66
64
|
}
|
|
67
|
-
|
|
65
|
+
|
|
68
66
|
console.log('✓ Schema loaded successfully');
|
|
69
|
-
|
|
67
|
+
|
|
70
68
|
// Normalize the schema
|
|
71
69
|
console.log('Normalizing schema...');
|
|
72
70
|
const normalizedSchema = normalizeSchema(loadResult.schema);
|
|
73
71
|
console.log('✓ Schema normalized');
|
|
74
|
-
|
|
72
|
+
|
|
75
73
|
// Determine output directory
|
|
76
74
|
const outputDir = options.output || './generated';
|
|
77
75
|
const resolvedOutputDir = resolve(process.cwd(), outputDir);
|
|
78
|
-
|
|
76
|
+
|
|
79
77
|
// Generate based on target
|
|
80
78
|
const target = options.target || 'all';
|
|
81
79
|
let generatedFiles = 0;
|
|
82
|
-
|
|
80
|
+
|
|
83
81
|
if (target === 'all' || target === 'logic') {
|
|
84
82
|
console.log('\nGenerating logic module...');
|
|
85
83
|
const logicOutputDir = `${resolvedOutputDir}/logic`;
|
|
@@ -87,18 +85,15 @@ export async function generate(options: GenerateOptions): Promise<void> {
|
|
|
87
85
|
generatedFiles += 5; // facts, events, rules, engine, index
|
|
88
86
|
console.log(`✓ Logic module generated in ${logicOutputDir}`);
|
|
89
87
|
}
|
|
90
|
-
|
|
88
|
+
|
|
91
89
|
if (target === 'all' || target === 'components') {
|
|
92
90
|
console.log('\nGenerating components...');
|
|
93
91
|
const componentsOutputDir = `${resolvedOutputDir}/components`;
|
|
94
|
-
const componentCount = await generateComponents(
|
|
95
|
-
normalizedSchema,
|
|
96
|
-
componentsOutputDir
|
|
97
|
-
);
|
|
92
|
+
const componentCount = await generateComponents(normalizedSchema, componentsOutputDir);
|
|
98
93
|
generatedFiles += componentCount;
|
|
99
94
|
console.log(`✓ ${componentCount} components generated in ${componentsOutputDir}`);
|
|
100
95
|
}
|
|
101
|
-
|
|
96
|
+
|
|
102
97
|
if (target === 'all' || target === 'pluresdb') {
|
|
103
98
|
console.log('\nGenerating PluresDB configuration...');
|
|
104
99
|
const dbOutputDir = resolvedOutputDir;
|
|
@@ -106,9 +101,9 @@ export async function generate(options: GenerateOptions): Promise<void> {
|
|
|
106
101
|
generatedFiles += 1;
|
|
107
102
|
console.log(`✓ PluresDB config generated in ${dbOutputDir}`);
|
|
108
103
|
}
|
|
109
|
-
|
|
104
|
+
|
|
110
105
|
console.log(`\n✅ Generation complete! ${generatedFiles} files generated.`);
|
|
111
|
-
|
|
106
|
+
|
|
112
107
|
if (options.watch) {
|
|
113
108
|
console.log('\n👀 Watching for changes...');
|
|
114
109
|
console.log('(Watch mode not yet implemented)');
|
|
@@ -130,13 +125,10 @@ export async function generate(options: GenerateOptions): Promise<void> {
|
|
|
130
125
|
/**
|
|
131
126
|
* Generate logic module
|
|
132
127
|
*/
|
|
133
|
-
async function generateLogic(
|
|
134
|
-
schema: NormalizedSchema,
|
|
135
|
-
outputDir: string
|
|
136
|
-
): Promise<void> {
|
|
128
|
+
async function generateLogic(schema: NormalizedSchema, outputDir: string): Promise<void> {
|
|
137
129
|
const generator = createLogicGenerator(outputDir);
|
|
138
130
|
const files = generator.generateLogic(schema);
|
|
139
|
-
|
|
131
|
+
|
|
140
132
|
// Write files
|
|
141
133
|
for (const file of files) {
|
|
142
134
|
await ensureDir(dirname(file.path));
|
|
@@ -147,35 +139,32 @@ async function generateLogic(
|
|
|
147
139
|
/**
|
|
148
140
|
* Generate components
|
|
149
141
|
*/
|
|
150
|
-
async function generateComponents(
|
|
151
|
-
schema: NormalizedSchema,
|
|
152
|
-
outputDir: string
|
|
153
|
-
): Promise<number> {
|
|
142
|
+
async function generateComponents(schema: NormalizedSchema, outputDir: string): Promise<number> {
|
|
154
143
|
if (!schema.components || schema.components.length === 0) {
|
|
155
144
|
console.log(' No components defined in schema');
|
|
156
145
|
return 0;
|
|
157
146
|
}
|
|
158
|
-
|
|
147
|
+
|
|
159
148
|
const generator = createComponentGenerator(outputDir, {
|
|
160
149
|
typescript: true,
|
|
161
150
|
includeTests: false,
|
|
162
151
|
includeDocs: true,
|
|
163
152
|
});
|
|
164
|
-
|
|
153
|
+
|
|
165
154
|
let fileCount = 0;
|
|
166
|
-
|
|
155
|
+
|
|
167
156
|
for (const component of schema.components) {
|
|
168
157
|
// Find model if component references one
|
|
169
158
|
const model = component.resolvedModel || undefined;
|
|
170
|
-
|
|
159
|
+
|
|
171
160
|
const result = generator.generateComponent(component, model);
|
|
172
|
-
|
|
161
|
+
|
|
173
162
|
if (!result.success) {
|
|
174
163
|
console.error(` ⚠️ Failed to generate ${component.name}:`);
|
|
175
164
|
result.errors.forEach((error) => console.error(` - ${error.message}`));
|
|
176
165
|
continue;
|
|
177
166
|
}
|
|
178
|
-
|
|
167
|
+
|
|
179
168
|
// Write files
|
|
180
169
|
for (const file of result.files) {
|
|
181
170
|
await ensureDir(dirname(file.path));
|
|
@@ -183,7 +172,7 @@ async function generateComponents(
|
|
|
183
172
|
fileCount++;
|
|
184
173
|
}
|
|
185
174
|
}
|
|
186
|
-
|
|
175
|
+
|
|
187
176
|
return fileCount;
|
|
188
177
|
}
|
|
189
178
|
|
|
@@ -200,9 +189,9 @@ async function generatePluresDB(
|
|
|
200
189
|
enableSync: false,
|
|
201
190
|
autoIndex: autoIndex || 'all',
|
|
202
191
|
});
|
|
203
|
-
|
|
192
|
+
|
|
204
193
|
const files = generator.generateConfig(schema);
|
|
205
|
-
|
|
194
|
+
|
|
206
195
|
// Write files
|
|
207
196
|
for (const file of files) {
|
|
208
197
|
await ensureDir(dirname(file.path));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Orchestrate Command
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
4
|
* Manages distributed orchestration and coordination.
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -47,11 +47,11 @@ export interface OrchestrateOptions {
|
|
|
47
47
|
*/
|
|
48
48
|
export async function orchestrate(options: OrchestrateOptions): Promise<void> {
|
|
49
49
|
const action = options.action || 'status';
|
|
50
|
-
|
|
50
|
+
|
|
51
51
|
console.log('\n╔═══════════════════════════════════════════════════╗');
|
|
52
52
|
console.log('║ Praxis Orchestration ║');
|
|
53
53
|
console.log('╚═══════════════════════════════════════════════════╝\n');
|
|
54
|
-
|
|
54
|
+
|
|
55
55
|
switch (action) {
|
|
56
56
|
case 'init':
|
|
57
57
|
await initOrchestration(options);
|
|
@@ -73,13 +73,13 @@ export async function orchestrate(options: OrchestrateOptions): Promise<void> {
|
|
|
73
73
|
*/
|
|
74
74
|
async function initOrchestration(options: OrchestrateOptions): Promise<void> {
|
|
75
75
|
const configPath = options.config || 'praxis.orchestrate.json';
|
|
76
|
-
|
|
76
|
+
|
|
77
77
|
if (fs.existsSync(configPath)) {
|
|
78
78
|
console.log(`Configuration file already exists: ${configPath}`);
|
|
79
79
|
console.log('Use --config to specify a different file.\n');
|
|
80
80
|
return;
|
|
81
81
|
}
|
|
82
|
-
|
|
82
|
+
|
|
83
83
|
const defaultConfig: OrchestrationConfig = {
|
|
84
84
|
nodeId: `node-${Date.now().toString(36)}`,
|
|
85
85
|
role: 'primary',
|
|
@@ -95,9 +95,9 @@ async function initOrchestration(options: OrchestrateOptions): Promise<void> {
|
|
|
95
95
|
timeout: 5000,
|
|
96
96
|
},
|
|
97
97
|
};
|
|
98
|
-
|
|
98
|
+
|
|
99
99
|
fs.writeFileSync(configPath, JSON.stringify(defaultConfig, null, 2));
|
|
100
|
-
|
|
100
|
+
|
|
101
101
|
console.log(`✓ Created orchestration config: ${configPath}`);
|
|
102
102
|
console.log('\nConfiguration:');
|
|
103
103
|
console.log(` Node ID: ${defaultConfig.nodeId}`);
|
|
@@ -114,42 +114,42 @@ async function initOrchestration(options: OrchestrateOptions): Promise<void> {
|
|
|
114
114
|
*/
|
|
115
115
|
async function startOrchestration(options: OrchestrateOptions): Promise<void> {
|
|
116
116
|
const configPath = options.config || 'praxis.orchestrate.json';
|
|
117
|
-
|
|
117
|
+
|
|
118
118
|
if (!fs.existsSync(configPath)) {
|
|
119
119
|
console.log(`Configuration file not found: ${configPath}`);
|
|
120
120
|
console.log('\nTo create a configuration:');
|
|
121
121
|
console.log(' praxis orchestrate --action init\n');
|
|
122
122
|
return;
|
|
123
123
|
}
|
|
124
|
-
|
|
124
|
+
|
|
125
125
|
const config: OrchestrationConfig = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
126
|
-
|
|
126
|
+
|
|
127
127
|
console.log('Starting orchestration...\n');
|
|
128
128
|
console.log(` Node ID: ${config.nodeId}`);
|
|
129
129
|
console.log(` Role: ${config.role}`);
|
|
130
130
|
console.log(` Endpoints: ${config.endpoints.join(', ')}\n`);
|
|
131
|
-
|
|
131
|
+
|
|
132
132
|
// In a real implementation, this would:
|
|
133
133
|
// 1. Connect to cluster endpoints
|
|
134
134
|
// 2. Register node with cluster
|
|
135
135
|
// 3. Start sync worker
|
|
136
136
|
// 4. Start health check worker
|
|
137
|
-
|
|
137
|
+
|
|
138
138
|
console.log('🔄 Connecting to cluster...');
|
|
139
|
-
|
|
139
|
+
|
|
140
140
|
// Simulate connection delay
|
|
141
|
-
await new Promise(resolve => setTimeout(resolve, 500));
|
|
142
|
-
|
|
141
|
+
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
142
|
+
|
|
143
143
|
console.log('✓ Connected to cluster');
|
|
144
144
|
console.log('✓ Sync worker started');
|
|
145
145
|
console.log('✓ Health check enabled\n');
|
|
146
|
-
|
|
146
|
+
|
|
147
147
|
console.log('Orchestration is running.');
|
|
148
148
|
console.log('\nTo check status:');
|
|
149
149
|
console.log(' praxis orchestrate --action status\n');
|
|
150
150
|
console.log('To stop:');
|
|
151
151
|
console.log(' praxis orchestrate --action stop\n');
|
|
152
|
-
|
|
152
|
+
|
|
153
153
|
// For a full implementation, this would keep running
|
|
154
154
|
// and handle sync/health checks in the background
|
|
155
155
|
}
|
|
@@ -159,16 +159,16 @@ async function startOrchestration(options: OrchestrateOptions): Promise<void> {
|
|
|
159
159
|
*/
|
|
160
160
|
async function stopOrchestration(_options: OrchestrateOptions): Promise<void> {
|
|
161
161
|
console.log('Stopping orchestration...\n');
|
|
162
|
-
|
|
162
|
+
|
|
163
163
|
// In a real implementation, this would:
|
|
164
164
|
// 1. Stop sync worker
|
|
165
165
|
// 2. Unregister from cluster
|
|
166
166
|
// 3. Close connections
|
|
167
|
-
|
|
167
|
+
|
|
168
168
|
console.log('✓ Sync worker stopped');
|
|
169
169
|
console.log('✓ Unregistered from cluster');
|
|
170
170
|
console.log('✓ Connections closed\n');
|
|
171
|
-
|
|
171
|
+
|
|
172
172
|
console.log('Orchestration stopped.\n');
|
|
173
173
|
}
|
|
174
174
|
|
|
@@ -177,7 +177,7 @@ async function stopOrchestration(_options: OrchestrateOptions): Promise<void> {
|
|
|
177
177
|
*/
|
|
178
178
|
async function showOrchestrationStatus(options: OrchestrateOptions): Promise<void> {
|
|
179
179
|
const configPath = options.config || 'praxis.orchestrate.json';
|
|
180
|
-
|
|
180
|
+
|
|
181
181
|
if (!fs.existsSync(configPath)) {
|
|
182
182
|
console.log('Orchestration not configured.\n');
|
|
183
183
|
console.log('To initialize:');
|
|
@@ -188,9 +188,9 @@ async function showOrchestrationStatus(options: OrchestrateOptions): Promise<voi
|
|
|
188
188
|
console.log(' • See docs/guides/orchestration.md for patterns\n');
|
|
189
189
|
return;
|
|
190
190
|
}
|
|
191
|
-
|
|
191
|
+
|
|
192
192
|
const config: OrchestrationConfig = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
193
|
-
|
|
193
|
+
|
|
194
194
|
console.log('Orchestration Status\n');
|
|
195
195
|
console.log('┌──────────────────────────────────────────────────┐');
|
|
196
196
|
console.log(`│ Node ID: ${config.nodeId.padEnd(36)} │`);
|
|
@@ -206,7 +206,7 @@ async function showOrchestrationStatus(options: OrchestrateOptions): Promise<voi
|
|
|
206
206
|
console.log(`│ Timeout: ${(config.health.timeout + 'ms').padEnd(36)} │`);
|
|
207
207
|
console.log('└──────────────────────────────────────────────────┘\n');
|
|
208
208
|
console.log('Endpoints:');
|
|
209
|
-
config.endpoints.forEach(ep => console.log(` • ${ep}`));
|
|
209
|
+
config.endpoints.forEach((ep) => console.log(` • ${ep}`));
|
|
210
210
|
console.log('\nTo start orchestration:');
|
|
211
211
|
console.log(` praxis orchestrate --action start --config ${configPath}\n`);
|
|
212
212
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Verify Command
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
4
|
* Verifies the implementation of the project against the schema/rules.
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -18,31 +18,30 @@ export async function verify(type: string, _options: VerifyOptions): Promise<voi
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
console.log('Verifying FSM implementation...');
|
|
21
|
-
|
|
21
|
+
|
|
22
22
|
try {
|
|
23
23
|
const result = verifyImplementation();
|
|
24
|
-
|
|
24
|
+
|
|
25
25
|
const missingCount = result.missingHandlers.length;
|
|
26
26
|
const emptyCount = result.emptyHandlers.length;
|
|
27
|
-
|
|
27
|
+
|
|
28
28
|
if (missingCount === 0 && emptyCount === 0) {
|
|
29
29
|
console.log('✅ Verification passed! All rules have implementations.');
|
|
30
30
|
} else {
|
|
31
31
|
console.log('⚠️ Verification found issues:');
|
|
32
|
-
|
|
32
|
+
|
|
33
33
|
if (missingCount > 0) {
|
|
34
34
|
console.log(`\n Missing Handlers (${missingCount}):`);
|
|
35
35
|
result.missingHandlers.forEach((h: string) => console.log(` - ${h}`));
|
|
36
36
|
}
|
|
37
|
-
|
|
37
|
+
|
|
38
38
|
if (emptyCount > 0) {
|
|
39
39
|
console.log(`\n Empty Handlers (${emptyCount}):`);
|
|
40
40
|
result.emptyHandlers.forEach((h: string) => console.log(` - ${h}`));
|
|
41
41
|
}
|
|
42
|
-
|
|
42
|
+
|
|
43
43
|
process.exit(1);
|
|
44
44
|
}
|
|
45
|
-
|
|
46
45
|
} catch (error) {
|
|
47
46
|
console.error('Verification failed:', error);
|
|
48
47
|
process.exit(1);
|
package/src/cli/index.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Praxis CLI
|
|
5
|
-
*
|
|
5
|
+
*
|
|
6
6
|
* Command-line interface for the Praxis framework.
|
|
7
7
|
*/
|
|
8
8
|
|
|
@@ -81,7 +81,11 @@ program
|
|
|
81
81
|
.option('-t, --target <target>', 'Generation target (all, logic, components, pluresdb)', 'all')
|
|
82
82
|
.option('-o, --output <dir>', 'Output directory', './generated')
|
|
83
83
|
.option('-w, --watch', 'Watch for changes')
|
|
84
|
-
.option(
|
|
84
|
+
.option(
|
|
85
|
+
'--auto-index <strategy>',
|
|
86
|
+
'Auto-indexing strategy for PluresDB (all, explicit, none)',
|
|
87
|
+
'all'
|
|
88
|
+
)
|
|
85
89
|
.action(async (options) => {
|
|
86
90
|
await generate(options);
|
|
87
91
|
});
|
|
@@ -206,13 +210,13 @@ cloudCmd
|
|
|
206
210
|
.description('View cloud usage metrics')
|
|
207
211
|
.action(async () => {
|
|
208
212
|
try {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
});
|
|
213
|
+
const { cloudUsage } = await import('./commands/cloud.js');
|
|
214
|
+
await cloudUsage();
|
|
215
|
+
} catch (error) {
|
|
216
|
+
console.error('Error retrieving usage metrics:', error);
|
|
217
|
+
process.exit(1);
|
|
218
|
+
}
|
|
219
|
+
});
|
|
216
220
|
|
|
217
221
|
// Verify command
|
|
218
222
|
program
|
|
@@ -229,4 +233,4 @@ program
|
|
|
229
233
|
}
|
|
230
234
|
});
|
|
231
235
|
|
|
232
|
-
program.parse();
|
|
236
|
+
program.parse();
|
package/src/cloud/README.md
CHANGED
|
@@ -24,6 +24,7 @@ npx praxis cloud init
|
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
The wizard will:
|
|
27
|
+
|
|
27
28
|
1. Authenticate with GitHub
|
|
28
29
|
2. Configure the Azure endpoint
|
|
29
30
|
3. Test the connection
|
|
@@ -32,24 +33,24 @@ The wizard will:
|
|
|
32
33
|
### 2. Use in Your Application
|
|
33
34
|
|
|
34
35
|
```typescript
|
|
35
|
-
import { connectRelay } from
|
|
36
|
+
import { connectRelay } from '@plures/praxis/cloud';
|
|
36
37
|
|
|
37
38
|
// Connect to cloud relay
|
|
38
|
-
const relay = await connectRelay(
|
|
39
|
-
appId:
|
|
40
|
-
authToken:
|
|
39
|
+
const relay = await connectRelay('https://praxis-relay.azurewebsites.net', {
|
|
40
|
+
appId: 'my-app',
|
|
41
|
+
authToken: 'your-github-token',
|
|
41
42
|
autoSync: true,
|
|
42
|
-
syncInterval: 5000
|
|
43
|
+
syncInterval: 5000,
|
|
43
44
|
});
|
|
44
45
|
|
|
45
46
|
// Sync data
|
|
46
47
|
await relay.sync({
|
|
47
|
-
type:
|
|
48
|
-
appId:
|
|
48
|
+
type: 'delta',
|
|
49
|
+
appId: 'my-app',
|
|
49
50
|
clock: {},
|
|
50
|
-
facts: [{ tag:
|
|
51
|
+
facts: [{ tag: 'TaskCreated', payload: { id: '1', title: 'Buy milk' } }],
|
|
51
52
|
events: [],
|
|
52
|
-
timestamp: Date.now()
|
|
53
|
+
timestamp: Date.now(),
|
|
53
54
|
});
|
|
54
55
|
|
|
55
56
|
// Get usage metrics
|
|
@@ -75,6 +76,7 @@ npx praxis cloud init --endpoint https://praxis-relay.azurewebsites.net --app-id
|
|
|
75
76
|
```
|
|
76
77
|
|
|
77
78
|
Options:
|
|
79
|
+
|
|
78
80
|
- `-e, --endpoint <url>` - Azure Function App endpoint URL
|
|
79
81
|
- `-a, --app-id <id>` - Application identifier
|
|
80
82
|
- `--auto-sync` - Enable automatic synchronization
|
|
@@ -111,6 +113,7 @@ npx praxis cloud usage
|
|
|
111
113
|
Connect to Praxis Cloud Relay.
|
|
112
114
|
|
|
113
115
|
**Parameters:**
|
|
116
|
+
|
|
114
117
|
- `endpoint: string` - Azure Function App endpoint URL
|
|
115
118
|
- `options: CloudRelayConfig` - Configuration options
|
|
116
119
|
- `appId: string` - Application identifier (required)
|
|
@@ -136,6 +139,7 @@ Disconnect from the relay service.
|
|
|
136
139
|
Sync facts and events using CRDT protocol.
|
|
137
140
|
|
|
138
141
|
**Parameters:**
|
|
142
|
+
|
|
139
143
|
- `message.type` - "sync" | "delta" | "snapshot"
|
|
140
144
|
- `message.appId` - Application identifier
|
|
141
145
|
- `message.clock` - Vector clock for causality
|
|
@@ -148,6 +152,7 @@ Sync facts and events using CRDT protocol.
|
|
|
148
152
|
Get usage metrics for the current billing period.
|
|
149
153
|
|
|
150
154
|
**Returns:**
|
|
155
|
+
|
|
151
156
|
- `syncCount` - Number of sync operations
|
|
152
157
|
- `eventCount` - Number of events forwarded
|
|
153
158
|
- `factCount` - Number of facts synced
|
|
@@ -160,6 +165,7 @@ Get usage metrics for the current billing period.
|
|
|
160
165
|
Get service health status.
|
|
161
166
|
|
|
162
167
|
**Returns:**
|
|
168
|
+
|
|
163
169
|
- `status` - "healthy" | "degraded" | "unhealthy"
|
|
164
170
|
- `services` - Status of individual services
|
|
165
171
|
- `relay` - Relay service status
|
|
@@ -172,6 +178,7 @@ Get service health status.
|
|
|
172
178
|
Get current connection status (synchronous).
|
|
173
179
|
|
|
174
180
|
**Returns:**
|
|
181
|
+
|
|
175
182
|
- `connected` - Connection state
|
|
176
183
|
- `lastSync` - Last sync timestamp
|
|
177
184
|
- `endpoint` - Endpoint URL
|
|
@@ -233,6 +240,7 @@ The relay exposes the following HTTP endpoints:
|
|
|
233
240
|
Health check endpoint.
|
|
234
241
|
|
|
235
242
|
**Response:**
|
|
243
|
+
|
|
236
244
|
```json
|
|
237
245
|
{
|
|
238
246
|
"status": "healthy",
|
|
@@ -252,6 +260,7 @@ Health check endpoint.
|
|
|
252
260
|
CRDT synchronization endpoint.
|
|
253
261
|
|
|
254
262
|
**Request:**
|
|
263
|
+
|
|
255
264
|
```json
|
|
256
265
|
{
|
|
257
266
|
"type": "delta",
|
|
@@ -264,6 +273,7 @@ CRDT synchronization endpoint.
|
|
|
264
273
|
```
|
|
265
274
|
|
|
266
275
|
**Response:**
|
|
276
|
+
|
|
267
277
|
```json
|
|
268
278
|
{
|
|
269
279
|
"success": true,
|
|
@@ -277,6 +287,7 @@ CRDT synchronization endpoint.
|
|
|
277
287
|
Usage metrics endpoint.
|
|
278
288
|
|
|
279
289
|
**Response:**
|
|
290
|
+
|
|
280
291
|
```json
|
|
281
292
|
{
|
|
282
293
|
"appId": "my-app",
|
|
@@ -294,6 +305,7 @@ Usage metrics endpoint.
|
|
|
294
305
|
Aggregated statistics endpoint.
|
|
295
306
|
|
|
296
307
|
**Response:**
|
|
308
|
+
|
|
297
309
|
```json
|
|
298
310
|
{
|
|
299
311
|
"appId": "my-app",
|
|
@@ -312,9 +324,9 @@ Praxis Cloud uses GitHub OAuth for authentication.
|
|
|
312
324
|
The CLI uses GitHub's device flow for authentication:
|
|
313
325
|
|
|
314
326
|
```typescript
|
|
315
|
-
import { authenticateWithDeviceFlow } from
|
|
327
|
+
import { authenticateWithDeviceFlow } from '@plures/praxis/cloud';
|
|
316
328
|
|
|
317
|
-
const result = await authenticateWithDeviceFlow(
|
|
329
|
+
const result = await authenticateWithDeviceFlow('your-client-id');
|
|
318
330
|
|
|
319
331
|
if (result.success) {
|
|
320
332
|
console.log(`Authenticated as ${result.user.login}`);
|
|
@@ -327,12 +339,12 @@ if (result.success) {
|
|
|
327
339
|
For web applications, use the standard OAuth flow:
|
|
328
340
|
|
|
329
341
|
```typescript
|
|
330
|
-
import { createGitHubOAuth } from
|
|
342
|
+
import { createGitHubOAuth } from '@plures/praxis/cloud';
|
|
331
343
|
|
|
332
344
|
const oauth = createGitHubOAuth({
|
|
333
|
-
clientId:
|
|
334
|
-
clientSecret:
|
|
335
|
-
redirectUri:
|
|
345
|
+
clientId: 'your-client-id',
|
|
346
|
+
clientSecret: 'your-client-secret',
|
|
347
|
+
redirectUri: 'http://localhost:3000/callback',
|
|
336
348
|
});
|
|
337
349
|
|
|
338
350
|
// Redirect user to GitHub
|
|
@@ -368,6 +380,7 @@ Praxis Cloud Base Tier includes:
|
|
|
368
380
|
- **GitHub OAuth** - Unlimited authentications
|
|
369
381
|
|
|
370
382
|
Additional usage is billed per:
|
|
383
|
+
|
|
371
384
|
- Sync operations: $0.001 per sync
|
|
372
385
|
- Events: $0.0001 per event
|
|
373
386
|
- Storage: $0.10 per GB/month
|