@plures/praxis 1.1.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/FRAMEWORK.md +106 -15
  2. package/README.md +275 -53
  3. package/dist/browser/adapter-TM4IS5KT.js +12 -0
  4. package/dist/browser/chunk-JQ64KMLN.js +141 -0
  5. package/dist/browser/chunk-LE2ZJYFC.js +154 -0
  6. package/dist/browser/chunk-VOMLVI6V.js +197 -0
  7. package/dist/browser/engine-YJZV4SLD.js +8 -0
  8. package/dist/browser/index.d.ts +300 -11
  9. package/dist/browser/index.js +334 -325
  10. package/dist/browser/integrations/svelte.d.ts +3 -1
  11. package/dist/browser/integrations/svelte.js +8 -0
  12. package/dist/browser/{engine-BjdqxeXG.d.ts → reactive-engine.svelte-C9OpcTHf.d.ts} +87 -1
  13. package/dist/node/adapter-K6DOX6XS.js +13 -0
  14. package/dist/node/chunk-JQ64KMLN.js +141 -0
  15. package/dist/node/chunk-LE2ZJYFC.js +154 -0
  16. package/dist/node/chunk-S54337I5.js +446 -0
  17. package/dist/node/chunk-VOMLVI6V.js +197 -0
  18. package/dist/node/cli/index.cjs +1444 -889
  19. package/dist/node/cli/index.js +9 -0
  20. package/dist/node/components/index.d.cts +2 -2
  21. package/dist/node/components/index.d.ts +2 -2
  22. package/dist/node/docs-JFNYTOJA.js +102 -0
  23. package/dist/node/engine-2DQBKBJC.js +9 -0
  24. package/dist/node/index.cjs +747 -234
  25. package/dist/node/index.d.cts +237 -15
  26. package/dist/node/index.d.ts +237 -15
  27. package/dist/node/index.js +339 -767
  28. package/dist/node/integrations/svelte.cjs +357 -2
  29. package/dist/node/integrations/svelte.d.cts +3 -1
  30. package/dist/node/integrations/svelte.d.ts +3 -1
  31. package/dist/node/integrations/svelte.js +7 -0
  32. package/dist/node/{engine-CVJobhHm.d.cts → reactive-engine.svelte-1M4m_C_v.d.cts} +87 -1
  33. package/dist/node/{engine-1iqLe6_P.d.ts → reactive-engine.svelte-ChNFn4Hj.d.ts} +87 -1
  34. package/dist/node/{terminal-adapter-XLtCjjb_.d.cts → terminal-adapter-CDzxoLKR.d.cts} +68 -1
  35. package/dist/node/{terminal-adapter-07HGftGQ.d.ts → terminal-adapter-CWka-yL8.d.ts} +68 -1
  36. package/package.json +3 -2
  37. package/src/__tests__/reactive-engine.test.ts +516 -0
  38. package/src/cli/commands/docs.ts +147 -0
  39. package/src/cli/index.ts +21 -0
  40. package/src/core/pluresdb/README.md +156 -0
  41. package/src/core/pluresdb/adapter.ts +165 -0
  42. package/src/core/pluresdb/index.ts +3 -3
  43. package/src/core/reactive-engine.svelte.ts +93 -19
  44. package/src/core/reactive-engine.ts +284 -22
  45. package/src/index.browser.ts +16 -0
  46. package/src/index.ts +16 -0
  47. package/src/integrations/pluresdb.ts +2 -2
  48. package/src/integrations/svelte.ts +8 -0
  49. package/src/integrations/unified.ts +350 -0
@@ -1,36 +1,85 @@
1
- import { L as LogicEngine, P as PraxisState, a as PraxisEvent, b as PraxisRegistry, R as RuleDescriptor, C as ConstraintDescriptor, c as PraxisFact, d as RuleFn, e as ConstraintFn, f as PraxisModule } from './engine-BjdqxeXG.js';
2
- export { m as ConstraintId, k as PRAXIS_PROTOCOL_VERSION, g as PraxisDiagnostics, n as PraxisEngineOptions, h as PraxisStepConfig, j as PraxisStepFn, i as PraxisStepResult, l as RuleId, o as createPraxisEngine } from './engine-BjdqxeXG.js';
1
+ import { L as LogicEngine, P as PraxisState, a as PraxisEvent, b as PraxisRegistry, R as RuleDescriptor, C as ConstraintDescriptor, c as PraxisFact, d as RuleFn, e as ConstraintFn, f as PraxisModule } from './reactive-engine.svelte-C9OpcTHf.js';
2
+ export { m as ConstraintId, k as PRAXIS_PROTOCOL_VERSION, g as PraxisDiagnostics, n as PraxisEngineOptions, h as PraxisStepConfig, j as PraxisStepFn, i as PraxisStepResult, p as ReactiveEngineOptions, q as ReactiveLogicEngine, l as RuleId, o as createPraxisEngine, r as createReactiveEngine } from './reactive-engine.svelte-C9OpcTHf.js';
3
3
 
4
4
  /**
5
5
  * Praxis Reactive Logic Engine
6
6
  *
7
- * A Svelte 5 native implementation of the Praxis Logic Engine.
8
- * Uses Runes ($state, $derived, $effect) for fine-grained reactivity.
7
+ * A framework-agnostic reactive implementation of the Praxis Logic Engine.
8
+ * Uses JavaScript Proxies to provide reactivity without Svelte-specific primitives.
9
+ *
10
+ * This implementation provides:
11
+ * - Proxy-based state tracking for automatic reactivity
12
+ * - Subscription-based change notifications
13
+ * - Computed/derived values support
14
+ * - Compatible API with Svelte-based implementation
9
15
  */
10
16
  interface ReactiveEngineOptions<TContext> {
11
17
  initialContext: TContext;
12
18
  initialFacts?: any[];
13
19
  initialMeta?: Record<string, unknown>;
14
20
  }
21
+ /**
22
+ * Callback type for state change subscribers
23
+ */
24
+ type StateChangeCallback<TContext> = (state: {
25
+ context: TContext;
26
+ facts: any[];
27
+ meta: Record<string, unknown>;
28
+ }) => void;
29
+ /**
30
+ * Callback type for unsubscribe function
31
+ */
32
+ type UnsubscribeFn$1 = () => void;
33
+ /**
34
+ * Framework-agnostic reactive logic engine using JavaScript Proxies
35
+ */
15
36
  declare class ReactiveLogicEngine<TContext extends object> {
16
- state: {
37
+ private _state;
38
+ private _subscribers;
39
+ private _contextProxy;
40
+ private _factsProxy;
41
+ private _metaProxy;
42
+ private _batchDepth;
43
+ private _pendingNotification;
44
+ private _proxyCache;
45
+ private static readonly ARRAY_MUTATORS;
46
+ constructor(options: ReactiveEngineOptions<TContext>);
47
+ /**
48
+ * Create a reactive proxy that notifies subscribers on changes.
49
+ * Uses a WeakMap cache to avoid creating multiple proxies for the same object.
50
+ */
51
+ private _createReactiveProxy;
52
+ /**
53
+ * Notify all subscribers of state changes
54
+ */
55
+ private _notify;
56
+ /**
57
+ * Get the full state object
58
+ */
59
+ get state(): {
17
60
  context: TContext;
18
61
  facts: any[];
19
62
  meta: Record<string, unknown>;
20
63
  };
21
- constructor(options: ReactiveEngineOptions<TContext>);
22
64
  /**
23
- * Access the reactive context directly.
24
- * Consumers can use this in $derived() or $effect().
65
+ * Access the reactive context.
66
+ * Changes to this object will trigger subscriber notifications.
25
67
  */
26
68
  get context(): TContext;
27
69
  /**
28
70
  * Access the reactive facts list.
71
+ * Changes to this array will trigger subscriber notifications.
29
72
  */
30
73
  get facts(): any[];
74
+ /**
75
+ * Access the reactive metadata.
76
+ * Changes to this object will trigger subscriber notifications.
77
+ */
78
+ get meta(): Record<string, unknown>;
31
79
  /**
32
80
  * Apply a mutation to the state.
33
81
  * This is the "Action" or "Rule" equivalent.
82
+ * Mutations are batched - notifications only happen once per apply call.
34
83
  *
35
84
  * @param mutator A function that receives the state and modifies it.
36
85
  */
@@ -40,10 +89,54 @@ declare class ReactiveLogicEngine<TContext extends object> {
40
89
  meta: Record<string, unknown>;
41
90
  }) => void): void;
42
91
  /**
43
- * Access the reactive meta.
92
+ * Subscribe to state changes.
93
+ * Returns an unsubscribe function.
94
+ *
95
+ * @param callback Function to call when state changes
96
+ * @returns Unsubscribe function
44
97
  */
45
- get meta(): Record<string, unknown>;
98
+ subscribe(callback: StateChangeCallback<TContext>): UnsubscribeFn$1;
99
+ /**
100
+ * Create a derived/computed value from the state.
101
+ * The selector function will be called whenever the state changes.
102
+ *
103
+ * @param selector Function to extract derived value from state
104
+ * @returns Object with subscribe method for reactive updates
105
+ */
106
+ $derived<TDerived>(selector: (state: {
107
+ context: TContext;
108
+ facts: any[];
109
+ meta: Record<string, unknown>;
110
+ }) => TDerived): {
111
+ subscribe: (callback: (value: TDerived) => void) => UnsubscribeFn$1;
112
+ };
46
113
  }
114
+ /**
115
+ * Create a new reactive logic engine instance.
116
+ *
117
+ * @param options Configuration options for the reactive engine
118
+ * @returns A new ReactiveLogicEngine instance
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * const engine = createReactiveEngine({
123
+ * initialContext: { count: 0 },
124
+ * initialFacts: [],
125
+ * initialMeta: {}
126
+ * });
127
+ *
128
+ * // Subscribe to changes
129
+ * engine.subscribe((state) => {
130
+ * console.log('State changed:', state);
131
+ * });
132
+ *
133
+ * // Mutate state (will trigger subscribers)
134
+ * engine.apply((state) => {
135
+ * state.context.count++;
136
+ * });
137
+ * ```
138
+ */
139
+ declare function createReactiveEngine<TContext extends object>(options: ReactiveEngineOptions<TContext>): ReactiveLogicEngine<TContext>;
47
140
 
48
141
  /**
49
142
  * Actors System
@@ -915,6 +1008,73 @@ declare class InMemoryPraxisDB implements PraxisDB {
915
1008
  * ```
916
1009
  */
917
1010
  declare function createInMemoryDB(): InMemoryPraxisDB;
1011
+ /**
1012
+ * PluresDB instance type - represents either PluresNode or SQLiteCompatibleAPI
1013
+ */
1014
+ type PluresDBInstance = {
1015
+ get(key: string): Promise<any>;
1016
+ put(key: string, value: any): Promise<void>;
1017
+ };
1018
+ /**
1019
+ * Configuration options for PluresDBPraxisAdapter
1020
+ */
1021
+ interface PluresDBAdapterConfig {
1022
+ /** PluresDB instance */
1023
+ db: PluresDBInstance;
1024
+ /** Polling interval in milliseconds for watch functionality (default: 1000ms) */
1025
+ pollInterval?: number;
1026
+ }
1027
+ /**
1028
+ * PluresDB-backed implementation of PraxisDB
1029
+ *
1030
+ * Wraps the official PluresDB package from NPM to provide
1031
+ * the PraxisDB interface for production use.
1032
+ */
1033
+ declare class PluresDBPraxisAdapter implements PraxisDB {
1034
+ private db;
1035
+ private watchers;
1036
+ private pollIntervals;
1037
+ private lastValues;
1038
+ private pollInterval;
1039
+ constructor(config: PluresDBAdapterConfig | PluresDBInstance);
1040
+ get<T>(key: string): Promise<T | undefined>;
1041
+ set<T>(key: string, value: T): Promise<void>;
1042
+ watch<T>(key: string, callback: (val: T) => void): UnsubscribeFn;
1043
+ /**
1044
+ * Clean up all resources
1045
+ */
1046
+ dispose(): void;
1047
+ }
1048
+ /**
1049
+ * Create a PluresDB-backed PraxisDB instance
1050
+ *
1051
+ * Wraps the official PluresDB package from NPM.
1052
+ *
1053
+ * @param config PluresDB instance or configuration object
1054
+ * @returns PluresDBPraxisAdapter instance
1055
+ *
1056
+ * @example
1057
+ * ```typescript
1058
+ * import { PluresNode } from 'pluresdb';
1059
+ * import { createPluresDB } from '@plures/praxis';
1060
+ *
1061
+ * const pluresdb = new PluresNode({ autoStart: true });
1062
+ * const db = createPluresDB(pluresdb);
1063
+ *
1064
+ * await db.set('user:1', { name: 'Alice' });
1065
+ * const user = await db.get('user:1');
1066
+ * ```
1067
+ *
1068
+ * @example
1069
+ * ```typescript
1070
+ * // With custom polling interval
1071
+ * const db = createPluresDB({
1072
+ * db: pluresdb,
1073
+ * pollInterval: 500, // Poll every 500ms
1074
+ * });
1075
+ * ```
1076
+ */
1077
+ declare function createPluresDB(config: PluresDBAdapterConfig | PluresDBInstance): PluresDBPraxisAdapter;
918
1078
 
919
1079
  /**
920
1080
  * PraxisDB Store
@@ -3001,4 +3161,133 @@ declare function attachTauriToEngine<TContext>(engine: LogicEngine<TContext>, ad
3001
3161
  */
3002
3162
  declare function generateTauriConfig(config: TauriAppConfig): Record<string, unknown>;
3003
3163
 
3004
- export { type ActivityState, type Actor, ActorManager, type CanvasDocument, type CanvasEdge, type CanvasEdgeStyle, type CanvasEditorConfig, type CanvasNode, type CanvasNodeStyle, type ComponentDefinition, ConstraintDescriptor, ConstraintFn, type ConstraintNode, type ConstraintSchema, type DefineConstraintOptions, type DefineModuleOptions, type DefineRuleOptions, type EventDefinition$1 as EventDefinition, type EventStreamEntry, type FactDefinition$1 as FactDefinition, type GeneratedDoc, type GeneratedPluresDBFile, type GraphEdge, type GuardianError, type GuardianResult, type GuardianWarning, InMemoryPraxisDB, type LifecycleState, type LoaderOptions, type LoaderResult, type LogicDefinition, LogicEngine, type ModelDefinition, type NodeBindings, type NodeDefinition, type OrchestrationDefinition, PRAXIS_PATHS, type PluresDBAdapter, type PluresDBAdapterOptions, PluresDBGenerator, type PluresDBGeneratorOptions, type PraxisDB, PraxisDBStore, type PraxisDBStoreOptions, PraxisEvent, PraxisFact, PraxisModule, PraxisRegistry, type PraxisSchema, PraxisSchemaRegistry, PraxisState, type ReactiveEngineOptions, ReactiveLogicEngine, type RegistryGraph, RegistryIntrospector, type RegistrySchema, type RegistryStats, RuleDescriptor, RuleFn, type RuleNode, type RuleSchema, type StateDoc, type StateDocsConfig, StateDocsGenerator, type StateMachineDoc, type StoredSchema, type TauriAppConfig, type TauriBridge, type TauriCommand, type TauriEvent, type TauriFS, type TauriFileEntry, type TauriMenuItem, type TauriNotification, type TauriNotificationOptions, type TauriPlugin, type TauriPraxisAdapter, type TauriSecurityConfig, type TauriTray, type TauriUpdateConfig, type TauriUpdateInfo, type TauriWindowConfig, type TerminalNodeProps, type TransitionDoc, type UnsubscribeFn, type UnumAdapter, type UnumAdapterConfig, type UnumChannel, type UnumIdentity, type UnumMessage, type UnumStore, type ValidationError, type ValidationResult, attachTauriToEngine, attachToEngine, attachUnumToEngine, canvasToMermaid, canvasToSchema, canvasToYaml, createCanvasEditor, createInMemoryDB, createIntrospector, createMockTauriBridge, createPluresDBAdapter, createPluresDBGenerator, createPraxisDBStore, createSchema, createSchemaRegistry, createSchemaTemplate, createStateDocsGenerator, createTauriPraxisAdapter, createTimerActor, createUnumAdapter, defineConstraint, defineEvent, defineFact, defineModule, defineRule, filterEvents, filterFacts, findEvent, findFact, generateDocs, generateId, generateTauriConfig, getEventPath, getFactPath, getSchemaPath, loadSchemaFromJson, loadSchemaFromYaml, registerSchema, schemaToCanvas, validateForGeneration, validateSchema, validateWithGuardian };
3164
+ /**
3165
+ * Unified Integration Helpers
3166
+ *
3167
+ * Convenience functions for setting up Praxis with all ecosystem integrations
3168
+ * (PluresDB, Unum, State-Docs, CodeCanvas) in a single call.
3169
+ */
3170
+
3171
+ /**
3172
+ * Configuration for unified Praxis application
3173
+ */
3174
+ interface UnifiedAppConfig<TContext = unknown> {
3175
+ /** Praxis registry with rules and constraints */
3176
+ registry: PraxisRegistry<TContext>;
3177
+ /** Initial context for the engine */
3178
+ initialContext: TContext;
3179
+ /** PluresDB instance (if not provided, creates in-memory DB) */
3180
+ db?: PraxisDB;
3181
+ /** Enable Unum for distributed communication */
3182
+ enableUnum?: boolean;
3183
+ /** Unum identity configuration (without id and createdAt which are auto-generated) */
3184
+ unumIdentity?: Omit<UnumIdentity, 'id' | 'createdAt'>;
3185
+ /** Enable State-Docs documentation generation */
3186
+ enableDocs?: boolean;
3187
+ /** State-Docs configuration */
3188
+ docsConfig?: {
3189
+ projectTitle: string;
3190
+ target?: string;
3191
+ };
3192
+ /** Praxis schema for CodeCanvas integration */
3193
+ schema?: PraxisSchema;
3194
+ }
3195
+ /**
3196
+ * Unified application instance with all integrations
3197
+ */
3198
+ interface UnifiedApp<TContext = unknown> {
3199
+ /** Praxis logic engine */
3200
+ engine: LogicEngine<TContext>;
3201
+ /** PluresDB adapter for persistence */
3202
+ pluresdb: PluresDBAdapter<TContext>;
3203
+ /** Unum adapter for distributed communication (if enabled) */
3204
+ unum?: UnumAdapter;
3205
+ /** Default Unum channel (if Unum enabled) */
3206
+ channel?: UnumChannel;
3207
+ /** State-Docs generator (if enabled) */
3208
+ docs?: StateDocsGenerator;
3209
+ /** CodeCanvas document (if schema provided) */
3210
+ canvas?: CanvasDocument;
3211
+ /** Generate documentation from current state */
3212
+ generateDocs?: () => GeneratedDoc[];
3213
+ /** Cleanup function to dispose all integrations */
3214
+ dispose: () => void;
3215
+ }
3216
+ /**
3217
+ * Create a unified Praxis application with all integrations
3218
+ *
3219
+ * This is a convenience function that sets up:
3220
+ * - Praxis logic engine
3221
+ * - PluresDB for persistence (auto-attaches to engine)
3222
+ * - Unum for distributed communication (optional)
3223
+ * - State-Docs for documentation generation (optional)
3224
+ * - CodeCanvas for visual schema editing (optional)
3225
+ *
3226
+ * @example
3227
+ * ```typescript
3228
+ * import { createUnifiedApp } from '@plures/praxis';
3229
+ *
3230
+ * const app = await createUnifiedApp({
3231
+ * registry: myRegistry,
3232
+ * initialContext: { count: 0 },
3233
+ * enableUnum: true,
3234
+ * unumIdentity: { name: 'node-1' },
3235
+ * enableDocs: true,
3236
+ * docsConfig: { projectTitle: 'My App' },
3237
+ * schema: mySchema,
3238
+ * });
3239
+ *
3240
+ * // Use the engine
3241
+ * app.engine.step([myEvent]);
3242
+ *
3243
+ * // Broadcast to other nodes
3244
+ * if (app.channel) {
3245
+ * await app.unum?.broadcastEvent(app.channel.id, myEvent);
3246
+ * }
3247
+ *
3248
+ * // Generate documentation
3249
+ * const docs = app.generateDocs?.();
3250
+ *
3251
+ * // Cleanup
3252
+ * app.dispose();
3253
+ * ```
3254
+ */
3255
+ declare function createUnifiedApp<TContext = unknown>(config: UnifiedAppConfig<TContext>): Promise<UnifiedApp<TContext>>;
3256
+ /**
3257
+ * Attach all available integrations to an existing Praxis engine
3258
+ *
3259
+ * This is useful when you already have an engine and want to add integrations.
3260
+ *
3261
+ * @example
3262
+ * ```typescript
3263
+ * import { createPraxisEngine, attachAllIntegrations } from '@plures/praxis';
3264
+ *
3265
+ * const engine = createPraxisEngine({ initialContext: {}, registry });
3266
+ *
3267
+ * const integrations = await attachAllIntegrations(engine, registry, {
3268
+ * enableUnum: true,
3269
+ * enableDocs: true,
3270
+ * });
3271
+ *
3272
+ * // Later cleanup
3273
+ * integrations.dispose();
3274
+ * ```
3275
+ */
3276
+ declare function attachAllIntegrations<TContext = unknown>(engine: LogicEngine<TContext>, registry: PraxisRegistry<TContext>, options?: {
3277
+ db?: PraxisDB;
3278
+ enableUnum?: boolean;
3279
+ unumIdentity?: Omit<UnumIdentity, 'id' | 'createdAt'>;
3280
+ enableDocs?: boolean;
3281
+ docsConfig?: {
3282
+ projectTitle: string;
3283
+ target?: string;
3284
+ };
3285
+ }): Promise<{
3286
+ pluresdb: PluresDBAdapter<TContext>;
3287
+ unum?: UnumAdapter;
3288
+ channel?: UnumChannel;
3289
+ docs?: StateDocsGenerator;
3290
+ dispose: () => void;
3291
+ }>;
3292
+
3293
+ export { type ActivityState, type Actor, ActorManager, type CanvasDocument, type CanvasEdge, type CanvasEdgeStyle, type CanvasEditorConfig, type CanvasNode, type CanvasNodeStyle, type ComponentDefinition, ConstraintDescriptor, ConstraintFn, type ConstraintNode, type ConstraintSchema, type DefineConstraintOptions, type DefineModuleOptions, type DefineRuleOptions, type EventDefinition$1 as EventDefinition, type EventStreamEntry, type FactDefinition$1 as FactDefinition, ReactiveLogicEngine as FrameworkAgnosticReactiveEngine, type ReactiveEngineOptions as FrameworkAgnosticReactiveEngineOptions, type GeneratedDoc, type GeneratedPluresDBFile, type GraphEdge, type GuardianError, type GuardianResult, type GuardianWarning, InMemoryPraxisDB, type LifecycleState, type LoaderOptions, type LoaderResult, type LogicDefinition, LogicEngine, type ModelDefinition, type NodeBindings, type NodeDefinition, type OrchestrationDefinition, PRAXIS_PATHS, type PluresDBAdapter, type PluresDBAdapterConfig, type PluresDBAdapterOptions, PluresDBGenerator, type PluresDBGeneratorOptions, type PluresDBInstance, PluresDBPraxisAdapter, type PraxisDB, PraxisDBStore, type PraxisDBStoreOptions, PraxisEvent, PraxisFact, PraxisModule, PraxisRegistry, type PraxisSchema, PraxisSchemaRegistry, PraxisState, type RegistryGraph, RegistryIntrospector, type RegistrySchema, type RegistryStats, RuleDescriptor, RuleFn, type RuleNode, type RuleSchema, type StateChangeCallback, type StateDoc, type StateDocsConfig, StateDocsGenerator, type StateMachineDoc, type StoredSchema, type TauriAppConfig, type TauriBridge, type TauriCommand, type TauriEvent, type TauriFS, type TauriFileEntry, type TauriMenuItem, type TauriNotification, type TauriNotificationOptions, type TauriPlugin, type TauriPraxisAdapter, type TauriSecurityConfig, type TauriTray, type TauriUpdateConfig, type TauriUpdateInfo, type TauriWindowConfig, type TerminalNodeProps, type TransitionDoc, type UnifiedApp, type UnifiedAppConfig, type UnsubscribeFn, type UnumAdapter, type UnumAdapterConfig, type UnumChannel, type UnumIdentity, type UnumMessage, type UnumStore, type ValidationError, type ValidationResult, attachAllIntegrations, attachTauriToEngine, attachToEngine, attachUnumToEngine, canvasToMermaid, canvasToSchema, canvasToYaml, createCanvasEditor, createReactiveEngine as createFrameworkAgnosticReactiveEngine, createInMemoryDB, createIntrospector, createMockTauriBridge, createPluresDB, createPluresDBAdapter, createPluresDBGenerator, createPraxisDBStore, createSchema, createSchemaRegistry, createSchemaTemplate, createStateDocsGenerator, createTauriPraxisAdapter, createTimerActor, createUnifiedApp, createUnumAdapter, defineConstraint, defineEvent, defineFact, defineModule, defineRule, filterEvents, filterFacts, findEvent, findFact, generateDocs, generateId, generateTauriConfig, getEventPath, getFactPath, getSchemaPath, loadSchemaFromJson, loadSchemaFromYaml, registerSchema, schemaToCanvas, validateForGeneration, validateSchema, validateWithGuardian };