@plures/praxis 1.4.4 → 2.0.3

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 (59) hide show
  1. package/README.md +164 -1067
  2. package/dist/browser/chunk-IUEKGHQN.js +373 -0
  3. package/dist/browser/factory/index.d.ts +2 -1
  4. package/dist/browser/index.d.ts +7 -4
  5. package/dist/browser/index.js +18 -6
  6. package/dist/browser/integrations/svelte.d.ts +4 -3
  7. package/dist/browser/project/index.d.ts +2 -1
  8. package/dist/browser/{reactive-engine.svelte-DgVTqHLc.d.ts → reactive-engine.svelte-BwWadvAW.d.ts} +2 -1
  9. package/dist/browser/rule-result-DcXWe9tn.d.ts +206 -0
  10. package/dist/browser/{rules-i1LHpnGd.d.ts → rules-BaWMqxuG.d.ts} +2 -205
  11. package/dist/browser/unified/index.d.ts +239 -0
  12. package/dist/browser/unified/index.js +20 -0
  13. package/dist/node/chunk-IUEKGHQN.js +373 -0
  14. package/dist/node/cli/index.js +1 -1
  15. package/dist/node/index.cjs +377 -0
  16. package/dist/node/index.d.cts +4 -2
  17. package/dist/node/index.d.ts +4 -2
  18. package/dist/node/index.js +19 -7
  19. package/dist/node/integrations/svelte.d.cts +3 -2
  20. package/dist/node/integrations/svelte.d.ts +3 -2
  21. package/dist/node/integrations/svelte.js +2 -2
  22. package/dist/node/{reactive-engine.svelte-DekxqFu0.d.ts → reactive-engine.svelte-BBZLMzus.d.ts} +3 -79
  23. package/dist/node/{reactive-engine.svelte-Cg0Yc2Hs.d.cts → reactive-engine.svelte-Cbq_V20o.d.cts} +3 -79
  24. package/dist/node/rule-result-B9GMivAn.d.cts +80 -0
  25. package/dist/node/rule-result-Bo3sFMmN.d.ts +80 -0
  26. package/dist/node/unified/index.cjs +494 -0
  27. package/dist/node/unified/index.d.cts +240 -0
  28. package/dist/node/unified/index.d.ts +240 -0
  29. package/dist/node/unified/index.js +21 -0
  30. package/docs/README.md +58 -102
  31. package/docs/archive/1.x/CONVERSATIONS_IMPLEMENTATION.md +207 -0
  32. package/docs/archive/1.x/DECISION_LEDGER_IMPLEMENTATION.md +109 -0
  33. package/docs/archive/1.x/DECISION_LEDGER_SUMMARY.md +424 -0
  34. package/docs/archive/1.x/ELEVATION_SUMMARY.md +249 -0
  35. package/docs/archive/1.x/FEATURE_SUMMARY.md +238 -0
  36. package/docs/archive/1.x/GOLDEN_PATH_IMPLEMENTATION.md +280 -0
  37. package/docs/archive/1.x/IMPLEMENTATION.md +166 -0
  38. package/docs/archive/1.x/IMPLEMENTATION_COMPLETE.md +389 -0
  39. package/docs/archive/1.x/IMPLEMENTATION_SUMMARY.md +59 -0
  40. package/docs/archive/1.x/INTEGRATION_ENHANCEMENT_SUMMARY.md +238 -0
  41. package/docs/archive/1.x/KNO_ENG_REFACTORING_SUMMARY.md +198 -0
  42. package/docs/archive/1.x/MONOREPO_SUMMARY.md +158 -0
  43. package/docs/archive/1.x/README.md +28 -0
  44. package/docs/archive/1.x/SVELTE_INTEGRATION_SUMMARY.md +415 -0
  45. package/docs/archive/1.x/TASK_1_COMPLETE.md +235 -0
  46. package/docs/archive/1.x/TASK_1_SUMMARY.md +281 -0
  47. package/docs/archive/1.x/VERSION_0.2.0_RELEASE_NOTES.md +288 -0
  48. package/docs/archive/1.x/ValidationChecklist.md +7 -0
  49. package/package.json +13 -1
  50. package/src/index.browser.ts +20 -0
  51. package/src/index.ts +21 -0
  52. package/src/unified/__tests__/unified-qa.test.ts +761 -0
  53. package/src/unified/__tests__/unified.test.ts +396 -0
  54. package/src/unified/core.ts +534 -0
  55. package/src/unified/index.ts +32 -0
  56. package/src/unified/rules.ts +66 -0
  57. package/src/unified/types.ts +148 -0
  58. package/dist/node/{chunk-ZO2LU4G4.js → chunk-WFRHXZBP.js} +3 -3
  59. package/dist/node/{validate-5PSWJTIC.js → validate-BY7JNY7H.js} +1 -1
@@ -0,0 +1,281 @@
1
+ # RuneBook Roadmap - Task 1 COMPLETE ✅
2
+
3
+ ## Overview
4
+
5
+ Task 1 of the RuneBook Roadmap has been successfully completed with full implementation, validation, and documentation.
6
+
7
+ ---
8
+
9
+ ## ✅ Task 1: Add TerminalNode Type to Praxis
10
+
11
+ ### All Requirements Met
12
+
13
+ ```
14
+ ✅ 1. Extend node registry and YAML schema
15
+ ✅ 2. Add TerminalNode.svelte component
16
+ ✅ 3. Support props: inputMode, history, lastOutput
17
+ ✅ 4. Create runtime adapter stub for command execution
18
+ ✅ 5. Ensure proper canvas rendering, drag/resize, and context menu integration
19
+ ```
20
+
21
+ ---
22
+
23
+ ## Component Architecture
24
+
25
+ ```
26
+ praxis/
27
+ ├── src/
28
+ │ ├── components/
29
+ │ │ ├── TerminalNode.svelte ← NEW: Main Svelte component
30
+ │ │ ├── index.ts ← NEW: Type definitions
31
+ │ │ └── README.md ← NEW: Documentation
32
+ │ ├── runtime/
33
+ │ │ └── terminal-adapter.ts ← EXISTING: Runtime adapter
34
+ │ └── core/
35
+ │ └── schema/
36
+ │ └── types.ts ← EXISTING: Schema types
37
+ ├── examples/
38
+ │ └── terminal-canvas/ ← NEW: Example application
39
+ │ ├── App.svelte
40
+ │ ├── README.md
41
+ │ └── package.json
42
+ ├── docs/
43
+ │ └── TERMINAL_NODE.md ← UPDATED: Full documentation
44
+ └── package.json ← UPDATED: Added components export
45
+ ```
46
+
47
+ ---
48
+
49
+ ## Component Features
50
+
51
+ ### Visual Interface
52
+
53
+ ```
54
+ ┌─────────────────────────────────────────┐
55
+ │ Terminal: terminal-1 Mode: text │ ← Title bar (draggable)
56
+ ├─────────────────────────────────────────┤
57
+ │ │
58
+ │ $ echo "Hello World" │
59
+ │ [Stub] Command received: echo... │ ← Output area
60
+ │ │
61
+ │ $ ls -la │
62
+ │ [Stub] Command received: ls... │
63
+ │ │
64
+ ├─────────────────────────────────────────┤
65
+ │ $ [Enter command...] [Run] │ ← Input area
66
+ └─────────────────────────────────────────┘
67
+ ◢ ← Resize handle
68
+ ```
69
+
70
+ ### Interactions
71
+
72
+ - **Drag**: Click title bar and move
73
+ - **Resize**: Drag bottom-right corner
74
+ - **Context Menu**: Right-click for operations
75
+ - **Execute**: Type command and press Enter
76
+ - **Keyboard**: Enter key to execute
77
+
78
+ ---
79
+
80
+ ## Code Quality Validation
81
+
82
+ ### ✅ Code Review
83
+
84
+ ```
85
+ Status: PASSED (0 issues)
86
+
87
+ Fixed:
88
+ - ✅ Hardcoded element IDs removed
89
+ - ✅ Event listener cleanup implemented
90
+ - ✅ onDestroy lifecycle added
91
+ - ✅ Memory leak prevention
92
+ ```
93
+
94
+ ### ✅ Security Check (CodeQL)
95
+
96
+ ```
97
+ Status: PASSED (0 alerts)
98
+
99
+ JavaScript Analysis: 0 vulnerabilities
100
+ ```
101
+
102
+ ### ✅ Build & Test
103
+
104
+ ```
105
+ Status: PASSED
106
+
107
+ Build: ✅ Successful (no TypeScript errors)
108
+ Tests: ✅ 149/149 passing
109
+ Files: ✅ 12/12 test files passing
110
+ ```
111
+
112
+ ---
113
+
114
+ ## Usage Example
115
+
116
+ ```svelte
117
+ <script lang="ts">
118
+ import TerminalNode from '@plures/praxis/components/TerminalNode.svelte';
119
+ import { createTerminalAdapter } from '@plures/praxis';
120
+
121
+ // Create terminal adapter
122
+ const terminal = createTerminalAdapter({
123
+ nodeId: 'my-terminal',
124
+ props: {
125
+ inputMode: 'text',
126
+ history: [],
127
+ lastOutput: null,
128
+ },
129
+ });
130
+ </script>
131
+
132
+ <!-- Render on canvas -->
133
+ <div class="canvas">
134
+ <TerminalNode
135
+ adapter={terminal}
136
+ x={100}
137
+ y={100}
138
+ width={600}
139
+ height={400}
140
+ draggable={true}
141
+ resizable={true}
142
+ />
143
+ </div>
144
+
145
+ <style>
146
+ .canvas {
147
+ position: relative;
148
+ width: 100%;
149
+ height: 100vh;
150
+ background: #1a1a1a;
151
+ }
152
+ </style>
153
+ ```
154
+
155
+ ---
156
+
157
+ ## Component Props API
158
+
159
+ | Prop | Type | Default | Description |
160
+ | ----------------- | ----------------- | -------- | -------------------------- |
161
+ | `adapter` | `TerminalAdapter` | required | Terminal adapter instance |
162
+ | `x` | `number` | `0` | X position on canvas |
163
+ | `y` | `number` | `0` | Y position on canvas |
164
+ | `width` | `number` | `600` | Component width in pixels |
165
+ | `height` | `number` | `400` | Component height in pixels |
166
+ | `draggable` | `boolean` | `true` | Enable drag to move |
167
+ | `resizable` | `boolean` | `true` | Enable resize handle |
168
+ | `showContextMenu` | `boolean` | `false` | Show context menu |
169
+
170
+ ---
171
+
172
+ ## Documentation
173
+
174
+ All documentation is complete and accurate:
175
+
176
+ 1. **API Reference**: `docs/TERMINAL_NODE.md`
177
+ - Schema definitions
178
+ - Runtime adapter usage
179
+ - Svelte component API
180
+ - Complete examples
181
+
182
+ 2. **Component Guide**: `src/components/README.md`
183
+ - Component features
184
+ - Usage patterns
185
+ - Canvas integration
186
+ - Future components roadmap
187
+
188
+ 3. **Example Application**: `examples/terminal-canvas/README.md`
189
+ - Setup instructions
190
+ - Multiple terminals example
191
+ - State management patterns
192
+ - Integration with RuneBook
193
+
194
+ 4. **Completion Summary**: `TASK_1_COMPLETE.md`
195
+ - Requirements checklist
196
+ - Implementation details
197
+ - Validation results
198
+ - Next steps
199
+
200
+ ---
201
+
202
+ ## Statistics
203
+
204
+ ### Code Metrics
205
+
206
+ - **New Files**: 7 files created
207
+ - **Modified Files**: 2 files updated
208
+ - **Total Lines**: ~1,424 lines of code and documentation
209
+ - **Component Size**: 459 lines (TerminalNode.svelte)
210
+ - **Test Coverage**: 16 terminal-specific tests + 133 core tests
211
+
212
+ ### Validation Metrics
213
+
214
+ - **Code Review**: 0 issues (all resolved)
215
+ - **Security Scan**: 0 vulnerabilities
216
+ - **Test Pass Rate**: 100% (149/149)
217
+ - **Build Success**: 100%
218
+ - **TypeScript Errors**: 0
219
+
220
+ ---
221
+
222
+ ## Foundation for RuneBook
223
+
224
+ This implementation provides the foundation for the remaining 9 tasks:
225
+
226
+ ### Ready For Task 2: Reactive Stdout → Props Pipeline
227
+
228
+ - ✅ Terminal adapter with execute stub
229
+ - ✅ Props structure defined
230
+ - ✅ Component ready for reactive updates
231
+ - ✅ PluresDB bindings prepared
232
+
233
+ ### Pattern Established For Tasks 3-9
234
+
235
+ The TerminalNode component establishes patterns for:
236
+
237
+ - **Task 3**: InputNode - Similar canvas integration
238
+ - **Task 4**: DisplayNode - Similar reactive props
239
+ - **Task 5**: Node Wiring - Connection points ready
240
+ - **Task 6**: Execution Engine - Adapter structure ready
241
+ - **Task 7**: AgentNode - Similar component pattern
242
+ - **Task 8**: SudolangNode - Same canvas approach
243
+ - **Task 9**: CustomNode - Component loading pattern
244
+
245
+ ### Ready For Task 10: Tauri Shell
246
+
247
+ - ✅ Component can be embedded in Tauri app
248
+ - ✅ Canvas layout ready for full application
249
+ - ✅ Context menu pattern established
250
+ - ✅ Multiple node support working
251
+
252
+ ---
253
+
254
+ ## Conclusion
255
+
256
+ **Task 1 is COMPLETE** with:
257
+
258
+ - ✅ All requirements met
259
+ - ✅ Production-ready code quality
260
+ - ✅ Comprehensive documentation
261
+ - ✅ Working example application
262
+ - ✅ Zero security issues
263
+ - ✅ All tests passing
264
+ - ✅ Code review approved
265
+
266
+ **Ready to proceed with Task 2** and subsequent RuneBook development.
267
+
268
+ ---
269
+
270
+ ## Quick Links
271
+
272
+ - **Component**: `src/components/TerminalNode.svelte`
273
+ - **Docs**: `docs/TERMINAL_NODE.md`
274
+ - **Example**: `examples/terminal-canvas/App.svelte`
275
+ - **Tests**: `src/__tests__/terminal-node.test.ts`
276
+ - **Adapter**: `src/runtime/terminal-adapter.ts`
277
+
278
+ ---
279
+
280
+ _Task completed: 2025-11-21_
281
+ _All validation passed: Code Review ✅ | Security ✅ | Tests ✅_
@@ -0,0 +1,288 @@
1
+ # Praxis 0.2.0 Release Notes
2
+
3
+ **Release Date:** November 24, 2025
4
+ **Previous Version:** 0.1.0 (November 15, 2025)
5
+
6
+ ## Overview
7
+
8
+ Praxis 0.2.0 represents a major expansion of the framework from a logic engine into a **complete application framework**. This release includes 165 passing tests (up from 9), comprehensive documentation, and ready-to-use publishing workflows for both npm and JSR (Deno).
9
+
10
+ ## What's New
11
+
12
+ ### 🏗️ Framework Infrastructure
13
+
14
+ #### Complete Schema System
15
+
16
+ - **Location:** `src/core/schema/`
17
+ - Type definitions for models, components, logic, and orchestration
18
+ - Schema validation and normalization
19
+ - YAML/JSON schema loading
20
+ - Multi-target code generation (PluresDB, Svelte, State-Docs, Canvas, DSC)
21
+
22
+ #### Component Generation
23
+
24
+ - **Location:** `src/core/component/generator.ts`
25
+ - Automatic Svelte component generation from schemas
26
+ - Support for form, display, list, and navigation components
27
+ - TypeScript type generation
28
+ - Test scaffolding and documentation generation
29
+
30
+ #### CLI Tools
31
+
32
+ - **Location:** `src/cli/`
33
+ - `praxis create app|component` - Project scaffolding
34
+ - `praxis generate` - Code generation from schemas
35
+ - `praxis canvas` - Visual schema editor integration
36
+ - `praxis orchestrate` - Distributed system orchestration
37
+ - `praxis login|logout|whoami` - GitHub authentication
38
+ - `praxis cloud` - Cloud service management
39
+
40
+ ### 🎨 Svelte 5 Integration
41
+
42
+ - **Location:** `src/integrations/svelte.ts`
43
+ - `usePraxisState` - Reactive state management with Svelte 5 runes
44
+ - `usePraxisHistory` - Time-travel debugging with undo/redo
45
+ - `usePraxisComputed` - Derived state computations
46
+ - Full TypeScript generics support
47
+ - Working Svelte 5 counter example
48
+
49
+ ### ☁️ Cloud & Monetization
50
+
51
+ - **Location:** `src/cloud/`
52
+ - GitHub-based authentication (OAuth device flow + Personal Access Tokens)
53
+ - Tier-based billing system:
54
+ - **Free:** 1K syncs/month, 10MB storage, 1 app
55
+ - **Solo:** $5/mo - 50K syncs/month, 1GB storage, 10 apps
56
+ - **Team:** $20/mo - 500K syncs/month, 10GB storage, 50 apps, 10 members
57
+ - **Enterprise:** $50/mo - 5M syncs/month, 100GB storage, 1K apps, unlimited members
58
+ - Usage tracking and limit validation
59
+ - Tenant provisioning with storage namespaces
60
+ - Azure Functions relay endpoints
61
+
62
+ ### 🔄 Cross-Language Support
63
+
64
+ #### PowerShell Adapter
65
+
66
+ - **Location:** `powershell/Praxis.psm1`
67
+ - Complete cmdlet library for Praxis operations
68
+ - JSON bridge to TypeScript engine
69
+ - Protocol version compatibility checking
70
+ - Working counter example included
71
+
72
+ ### 🔍 Introspection & Visualization
73
+
74
+ - **Location:** `src/core/introspection.ts`
75
+ - Registry statistics and metrics
76
+ - JSON schema generation
77
+ - Graph representation (nodes and edges)
78
+ - Graphviz DOT export
79
+ - Mermaid diagram export
80
+ - Rule and constraint search
81
+ - Module dependency tracking
82
+
83
+ ### 📋 Protocol Versioning
84
+
85
+ - **Location:** `src/core/protocol.ts`
86
+ - Explicit protocol version: **v1.0.0**
87
+ - Semantic versioning with stability guarantees
88
+ - Cross-language compatibility checks
89
+ - Migration path documentation in `PROTOCOL_VERSIONING.md`
90
+
91
+ ### 📚 Examples & Templates
92
+
93
+ #### Hero E-Commerce Example
94
+
95
+ - **Location:** `src/examples/hero-ecommerce/`
96
+ - Full authentication system with session management
97
+ - Shopping cart with dynamic pricing
98
+ - Discount code system (SAVE10, SAVE20, FREESHIP)
99
+ - Feature flags and A/B testing
100
+ - Loyalty points system (1 point per dollar)
101
+ - Order history tracking
102
+
103
+ #### Other Examples
104
+
105
+ - Advanced TODO app with Svelte integration
106
+ - Basic authentication example
107
+ - Svelte counter with runes
108
+ - Basic and fullstack app templates
109
+
110
+ ### 🧪 Testing
111
+
112
+ **Test Suite Expansion:** 9 tests → 165 tests (1733% increase!)
113
+
114
+ New test files:
115
+
116
+ - `actors.test.ts` - Actor lifecycle and behavior (12 tests)
117
+ - `edge-cases.test.ts` - Edge cases and error handling (19 tests)
118
+ - `introspection.test.ts` - Registry introspection (14 tests)
119
+ - `billing.test.ts` - Billing system validation (16 tests)
120
+ - `cloud.test.ts` - Cloud integration (10 tests)
121
+ - `provisioning.test.ts` - Tenant provisioning (18 tests)
122
+ - `generators.test.ts` - Code generation (15 tests)
123
+ - `schema.test.ts` - Schema validation (11 tests)
124
+ - `svelte-integration.test.ts` - Svelte integration (16 tests)
125
+ - `terminal-node.test.ts` - Terminal node functionality (16 tests)
126
+ - `protocol.test.ts` - Protocol versioning (3 tests)
127
+
128
+ ### 📖 Documentation
129
+
130
+ #### Framework Documentation
131
+
132
+ - `FRAMEWORK.md` - Complete architecture guide (420 lines)
133
+ - `GETTING_STARTED.md` - Comprehensive getting started guide (290 lines)
134
+ - `PROTOCOL_VERSIONING.md` - Protocol versioning specification (275 lines)
135
+ - `FEATURE_SUMMARY.md` - Major features overview (223 lines)
136
+ - `ELEVATION_SUMMARY.md` - Framework transformation summary (222 lines)
137
+
138
+ #### Guides
139
+
140
+ - `docs/guides/getting-started.md` - Quick start guide
141
+ - `docs/guides/canvas.md` - Canvas integration guide
142
+ - `docs/guides/orchestration.md` - Orchestration guide (DSC/MCP)
143
+ - `docs/guides/svelte-integration.md` - Svelte integration guide
144
+ - `docs/guides/history-state-pattern.md` - Time-travel debugging
145
+ - `docs/guides/parallel-state-pattern.md` - Parallel state management
146
+
147
+ ### 🔧 Infrastructure
148
+
149
+ #### CI/CD Workflows
150
+
151
+ - Node.js CI with multiple versions (18.x, 20.x)
152
+ - Deno compatibility checks
153
+ - CodeQL security scanning
154
+ - Automated release workflow
155
+ - JSR publishing workflow (enabled)
156
+ - npm publishing workflow (enabled)
157
+ - Stale issue management
158
+
159
+ #### GitHub Configuration
160
+
161
+ - Issue templates (bug, enhancement, proposal, integration, generator)
162
+ - Pull request template with comprehensive checklist
163
+ - Funding configuration
164
+ - Label system
165
+ - Dependabot configuration
166
+ - Pre-commit hooks template
167
+
168
+ ## Breaking Changes
169
+
170
+ **None!** This release is fully backward compatible with 0.1.0.
171
+
172
+ ## Bug Fixes
173
+
174
+ - Fixed duplicate "types" key in tsconfig.json
175
+ - Fixed deprecated `nodeModulesDir: false` to `nodeModulesDir: "none"` in deno.json
176
+ - Removed `"private": true` from jsr.json to enable JSR publishing
177
+
178
+ ## Installation
179
+
180
+ ### npm
181
+
182
+ ```bash
183
+ npm install @plures/praxis@0.2.0
184
+ ```
185
+
186
+ ### Deno/JSR
187
+
188
+ ```typescript
189
+ import { createPraxisEngine } from 'jsr:@plures/praxis@0.2.0';
190
+ ```
191
+
192
+ ## Upgrading from 0.1.0
193
+
194
+ Since there are no breaking changes, upgrading is straightforward:
195
+
196
+ ```bash
197
+ npm install @plures/praxis@latest
198
+ ```
199
+
200
+ All existing code using 0.1.0 APIs will continue to work without modification.
201
+
202
+ ## Publishing Status
203
+
204
+ ### npm Publishing
205
+
206
+ ✅ **Enabled** - Will publish to npm when a version tag (e.g., `v0.2.0`) is pushed
207
+
208
+ - Workflow: `.github/workflows/release.yml`
209
+ - Requires: `NPM_TOKEN` secret configured in repository
210
+
211
+ ### JSR Publishing
212
+
213
+ ✅ **Enabled** - Will publish to JSR when a GitHub release is published
214
+
215
+ - Workflow: `.github/workflows/publish-jsr.yml`
216
+ - Uses: GitHub OIDC token (no secret needed)
217
+ - Note: Some Deno lint warnings exist but don't block publishing
218
+
219
+ ## How to Release
220
+
221
+ To create a release for this version:
222
+
223
+ 1. **Create and push a git tag:**
224
+
225
+ ```bash
226
+ git tag v0.2.0
227
+ git push origin v0.2.0
228
+ ```
229
+
230
+ 2. **The release workflow will automatically:**
231
+ - Run tests and build
232
+ - Create a GitHub Release with changelog
233
+ - Publish to npm (if NPM_TOKEN is configured)
234
+
235
+ 3. **The JSR publish workflow will automatically:**
236
+ - Trigger when the GitHub release is published
237
+ - Publish to JSR using GitHub OIDC
238
+
239
+ ## Next Steps
240
+
241
+ ### For Users
242
+
243
+ - Read the [Getting Started Guide](./GETTING_STARTED.md)
244
+ - Explore the [hero e-commerce example](./src/examples/hero-ecommerce/)
245
+ - Try the [Svelte integration](./docs/guides/svelte-integration.md)
246
+ - Set up [GitHub authentication](./src/cloud/README.md) for cloud features
247
+
248
+ ### For Contributors
249
+
250
+ - Review the [Framework Guide](./FRAMEWORK.md)
251
+ - Check the [Contributing Guide](./CONTRIBUTING.md)
252
+ - Explore the [introspection tools](./src/core/introspection.ts)
253
+ - Add new [project templates](./templates/)
254
+
255
+ ## Statistics
256
+
257
+ - **Total Tests:** 165 (all passing)
258
+ - **Test Coverage:** 13 test files covering all major features
259
+ - **Documentation:** 15+ comprehensive documentation files
260
+ - **Examples:** 6 working examples with detailed READMEs
261
+ - **Code Quality:** 0 TypeScript errors, 0 CodeQL security alerts
262
+ - **Lines of Code:** ~30,000+ lines added since 0.1.0
263
+
264
+ ## Acknowledgments
265
+
266
+ This release represents a massive collaborative effort to transform Praxis from a logic engine into a complete application framework. Special thanks to all contributors and the Plures community!
267
+
268
+ ## Resources
269
+
270
+ - **GitHub Repository:** https://github.com/plures/praxis
271
+ - **Documentation:** https://github.com/plures/praxis/tree/main/docs
272
+ - **Issues:** https://github.com/plures/praxis/issues
273
+ - **Discussions:** https://github.com/plures/praxis/discussions
274
+ - **npm Package:** https://www.npmjs.com/package/@plures/praxis
275
+ - **JSR Package:** https://jsr.io/@plures/praxis
276
+
277
+ ## Support
278
+
279
+ If you encounter any issues or have questions:
280
+
281
+ 1. Check the [documentation](./docs/)
282
+ 2. Search [existing issues](https://github.com/plures/praxis/issues)
283
+ 3. Open a [new issue](https://github.com/plures/praxis/issues/new/choose)
284
+ 4. Join the [discussions](https://github.com/plures/praxis/discussions)
285
+
286
+ ---
287
+
288
+ **Happy Building with Praxis! 🚀**
@@ -0,0 +1,7 @@
1
+ # Validation Checklist
2
+
3
+ | Date | Validation | Status | Notes |
4
+ | ---------- | --------------------------------------------------------------------------- | ------ | -------------------------------------------------------- |
5
+ | 2025-11-28 | Ensure `flashNode` restores each node's background color based on its type. | ⚠️ | Requires manual verification in the canvas inspector UI. |
6
+ | 2026-01-28 | Reuse `getObjectHasContract` within `hasContractProperty` logic. | ✅ | Refactor only; no behavior change expected. |
7
+ | 2026-01-28 | Avoid duplicate rule file parsing in decision ledger scan. | ✅ | Reused parsed source for analysis. |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plures/praxis",
3
- "version": "1.4.4",
3
+ "version": "2.0.3",
4
4
  "description": "The Full Plures Application Framework - declarative schemas, logic engine, component generation, and local-first data",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@9.15.1",
@@ -107,6 +107,18 @@
107
107
  "import": "./dist/browser/project/index.js"
108
108
  },
109
109
  "default": "./dist/node/project/index.js"
110
+ },
111
+ "./unified": {
112
+ "node": {
113
+ "types": "./dist/node/unified/index.d.ts",
114
+ "import": "./dist/node/unified/index.js",
115
+ "require": "./dist/node/unified/index.cjs"
116
+ },
117
+ "browser": {
118
+ "types": "./dist/browser/unified/index.d.ts",
119
+ "import": "./dist/browser/unified/index.js"
120
+ },
121
+ "default": "./dist/node/unified/index.js"
110
122
  }
111
123
  },
112
124
  "files": [
@@ -303,3 +303,23 @@ export type {
303
303
  BranchRulesConfig,
304
304
  PredefinedGateConfig,
305
305
  } from './project/index.js';
306
+
307
+ // ── Unified Reactive Layer (v2.0) ───────────────────────────────────────────
308
+ export { createApp } from './unified/core.js';
309
+ export type { PraxisApp } from './unified/core.js';
310
+ export {
311
+ definePath,
312
+ defineRule as defineUnifiedRule,
313
+ defineConstraint as defineUnifiedConstraint,
314
+ defineModule as defineUnifiedModule,
315
+ } from './unified/index.js';
316
+ export type {
317
+ PathSchema,
318
+ QueryOptions,
319
+ ReactiveRef,
320
+ MutationResult,
321
+ UnifiedRule,
322
+ UnifiedConstraint,
323
+ LivenessConfig,
324
+ PraxisAppConfig,
325
+ } from './unified/types.js';
package/src/index.ts CHANGED
@@ -487,3 +487,24 @@ export type {
487
487
  FullBehavioralDiff,
488
488
  } from './chronos/index.js';
489
489
 
490
+
491
+ // ── Unified Reactive Layer (v2.0) ───────────────────────────────────────────
492
+ // The zero-boilerplate API: createApp → query() + mutate()
493
+ export { createApp } from './unified/core.js';
494
+ export type { PraxisApp } from './unified/core.js';
495
+ export {
496
+ definePath,
497
+ defineRule as defineUnifiedRule,
498
+ defineConstraint as defineUnifiedConstraint,
499
+ defineModule as defineUnifiedModule,
500
+ } from './unified/index.js';
501
+ export type {
502
+ PathSchema,
503
+ QueryOptions,
504
+ ReactiveRef,
505
+ MutationResult,
506
+ UnifiedRule,
507
+ UnifiedConstraint,
508
+ LivenessConfig,
509
+ PraxisAppConfig,
510
+ } from './unified/types.js';