@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.
- package/README.md +164 -1067
- package/dist/browser/chunk-IUEKGHQN.js +373 -0
- package/dist/browser/factory/index.d.ts +2 -1
- package/dist/browser/index.d.ts +7 -4
- package/dist/browser/index.js +18 -6
- package/dist/browser/integrations/svelte.d.ts +4 -3
- package/dist/browser/project/index.d.ts +2 -1
- package/dist/browser/{reactive-engine.svelte-DgVTqHLc.d.ts → reactive-engine.svelte-BwWadvAW.d.ts} +2 -1
- package/dist/browser/rule-result-DcXWe9tn.d.ts +206 -0
- package/dist/browser/{rules-i1LHpnGd.d.ts → rules-BaWMqxuG.d.ts} +2 -205
- package/dist/browser/unified/index.d.ts +239 -0
- package/dist/browser/unified/index.js +20 -0
- package/dist/node/chunk-IUEKGHQN.js +373 -0
- package/dist/node/cli/index.js +1 -1
- package/dist/node/index.cjs +377 -0
- package/dist/node/index.d.cts +4 -2
- package/dist/node/index.d.ts +4 -2
- package/dist/node/index.js +19 -7
- package/dist/node/integrations/svelte.d.cts +3 -2
- package/dist/node/integrations/svelte.d.ts +3 -2
- package/dist/node/integrations/svelte.js +2 -2
- package/dist/node/{reactive-engine.svelte-DekxqFu0.d.ts → reactive-engine.svelte-BBZLMzus.d.ts} +3 -79
- package/dist/node/{reactive-engine.svelte-Cg0Yc2Hs.d.cts → reactive-engine.svelte-Cbq_V20o.d.cts} +3 -79
- package/dist/node/rule-result-B9GMivAn.d.cts +80 -0
- package/dist/node/rule-result-Bo3sFMmN.d.ts +80 -0
- package/dist/node/unified/index.cjs +494 -0
- package/dist/node/unified/index.d.cts +240 -0
- package/dist/node/unified/index.d.ts +240 -0
- package/dist/node/unified/index.js +21 -0
- package/docs/README.md +58 -102
- package/docs/archive/1.x/CONVERSATIONS_IMPLEMENTATION.md +207 -0
- package/docs/archive/1.x/DECISION_LEDGER_IMPLEMENTATION.md +109 -0
- package/docs/archive/1.x/DECISION_LEDGER_SUMMARY.md +424 -0
- package/docs/archive/1.x/ELEVATION_SUMMARY.md +249 -0
- package/docs/archive/1.x/FEATURE_SUMMARY.md +238 -0
- package/docs/archive/1.x/GOLDEN_PATH_IMPLEMENTATION.md +280 -0
- package/docs/archive/1.x/IMPLEMENTATION.md +166 -0
- package/docs/archive/1.x/IMPLEMENTATION_COMPLETE.md +389 -0
- package/docs/archive/1.x/IMPLEMENTATION_SUMMARY.md +59 -0
- package/docs/archive/1.x/INTEGRATION_ENHANCEMENT_SUMMARY.md +238 -0
- package/docs/archive/1.x/KNO_ENG_REFACTORING_SUMMARY.md +198 -0
- package/docs/archive/1.x/MONOREPO_SUMMARY.md +158 -0
- package/docs/archive/1.x/README.md +28 -0
- package/docs/archive/1.x/SVELTE_INTEGRATION_SUMMARY.md +415 -0
- package/docs/archive/1.x/TASK_1_COMPLETE.md +235 -0
- package/docs/archive/1.x/TASK_1_SUMMARY.md +281 -0
- package/docs/archive/1.x/VERSION_0.2.0_RELEASE_NOTES.md +288 -0
- package/docs/archive/1.x/ValidationChecklist.md +7 -0
- package/package.json +13 -1
- package/src/index.browser.ts +20 -0
- package/src/index.ts +21 -0
- package/src/unified/__tests__/unified-qa.test.ts +761 -0
- package/src/unified/__tests__/unified.test.ts +396 -0
- package/src/unified/core.ts +534 -0
- package/src/unified/index.ts +32 -0
- package/src/unified/rules.ts +66 -0
- package/src/unified/types.ts +148 -0
- package/dist/node/{chunk-ZO2LU4G4.js → chunk-WFRHXZBP.js} +3 -3
- 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": "
|
|
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": [
|
package/src/index.browser.ts
CHANGED
|
@@ -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';
|