qnce-engine 0.1.0 → 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 (53) hide show
  1. package/README.md +248 -0
  2. package/dist/cli/audit.js +6 -4
  3. package/dist/cli/audit.js.map +1 -1
  4. package/dist/cli/init.js +11 -9
  5. package/dist/cli/init.js.map +1 -1
  6. package/dist/cli/perf.d.ts +30 -0
  7. package/dist/cli/perf.d.ts.map +1 -0
  8. package/dist/cli/perf.js +219 -0
  9. package/dist/cli/perf.js.map +1 -0
  10. package/dist/engine/core.d.ts +104 -8
  11. package/dist/engine/core.d.ts.map +1 -1
  12. package/dist/engine/core.js +288 -7
  13. package/dist/engine/core.js.map +1 -1
  14. package/dist/engine/demo-story.js +4 -1
  15. package/dist/engine/demo-story.js.map +1 -1
  16. package/dist/index.js +24 -3
  17. package/dist/index.js.map +1 -1
  18. package/dist/narrative/branching/engine-simple.d.ts +84 -0
  19. package/dist/narrative/branching/engine-simple.d.ts.map +1 -0
  20. package/dist/narrative/branching/engine-simple.js +349 -0
  21. package/dist/narrative/branching/engine-simple.js.map +1 -0
  22. package/dist/narrative/branching/index.d.ts +12 -0
  23. package/dist/narrative/branching/index.d.ts.map +1 -0
  24. package/dist/narrative/branching/index.js +56 -0
  25. package/dist/narrative/branching/index.js.map +1 -0
  26. package/dist/narrative/branching/models.d.ts +223 -0
  27. package/dist/narrative/branching/models.d.ts.map +1 -0
  28. package/dist/narrative/branching/models.js +6 -0
  29. package/dist/narrative/branching/models.js.map +1 -0
  30. package/dist/performance/HotReloadDelta.d.ts +107 -0
  31. package/dist/performance/HotReloadDelta.d.ts.map +1 -0
  32. package/dist/performance/HotReloadDelta.js +333 -0
  33. package/dist/performance/HotReloadDelta.js.map +1 -0
  34. package/dist/performance/ObjectPool.d.ts +150 -0
  35. package/dist/performance/ObjectPool.d.ts.map +1 -0
  36. package/dist/performance/ObjectPool.js +297 -0
  37. package/dist/performance/ObjectPool.js.map +1 -0
  38. package/dist/performance/PerfReporter.d.ts +123 -0
  39. package/dist/performance/PerfReporter.d.ts.map +1 -0
  40. package/dist/performance/PerfReporter.js +281 -0
  41. package/dist/performance/PerfReporter.js.map +1 -0
  42. package/dist/performance/ThreadPool.d.ts +107 -0
  43. package/dist/performance/ThreadPool.d.ts.map +1 -0
  44. package/dist/performance/ThreadPool.js +348 -0
  45. package/dist/performance/ThreadPool.js.map +1 -0
  46. package/docs/PERFORMANCE.md +355 -0
  47. package/docs/branching/ERD.md +214 -0
  48. package/docs/branching/PDM.md +443 -0
  49. package/docs/branching/RELEASE-v1.2.0.md +169 -0
  50. package/examples/branching-advanced-demo.ts +339 -0
  51. package/examples/branching-quickstart.ts +314 -0
  52. package/examples/quickstart-demo.js +82 -0
  53. package/package.json +21 -8
@@ -0,0 +1,82 @@
1
+ // QNCE Branching Demo - JavaScript Quick Start
2
+ // Demonstrates v1.2.0 Advanced Branching API integration
3
+
4
+ const { createQNCEEngine } = require('../dist/engine/core');
5
+
6
+ console.log('šŸš€ QNCE Engine v1.2.0 - Advanced Branching Demo');
7
+ console.log('=================================================\n');
8
+
9
+ // Create a simple story for demonstration
10
+ const simpleStory = {
11
+ nodes: [
12
+ {
13
+ id: 'start',
14
+ text: 'You discover a mysterious quantum portal. What do you do?',
15
+ choices: [
16
+ {
17
+ text: 'Step through the portal',
18
+ nextNodeId: 'portal-world',
19
+ flagEffects: { courage: 5, portal_used: true }
20
+ },
21
+ {
22
+ text: 'Study the portal carefully',
23
+ nextNodeId: 'study-portal',
24
+ flagEffects: { wisdom: 5, careful: true }
25
+ }
26
+ ]
27
+ },
28
+ {
29
+ id: 'portal-world',
30
+ text: 'You emerge in a strange quantum realm where multiple realities overlap.',
31
+ choices: []
32
+ },
33
+ {
34
+ id: 'study-portal',
35
+ text: 'Your careful study reveals ancient quantum equations etched around the portal\'s edge.',
36
+ choices: []
37
+ }
38
+ ],
39
+ initialNodeId: 'start'
40
+ };
41
+
42
+ // Create the QNCE engine
43
+ console.log('āœ… Creating QNCE Engine...');
44
+ const engine = createQNCEEngine(simpleStory);
45
+
46
+ // Display current state
47
+ console.log('šŸ“– Current Story Node:');
48
+ console.log(' ' + engine.getCurrentNode().text);
49
+
50
+ console.log('\nšŸŽÆ Available Choices:');
51
+ const choices = engine.getAvailableChoices();
52
+ choices.forEach((choice, i) => {
53
+ console.log(` ${i + 1}. ${choice.text}`);
54
+ });
55
+
56
+ // Make a choice automatically for demo
57
+ if (choices.length > 0) {
58
+ console.log('\nšŸš€ Making choice: "' + choices[0].text + '"');
59
+ engine.selectChoice(choices[0]);
60
+
61
+ console.log('\nšŸ“– New Story Node:');
62
+ console.log(' ' + engine.getCurrentNode().text);
63
+
64
+ console.log('\nšŸ“ Updated Flags:');
65
+ const flags = engine.getFlags();
66
+ Object.entries(flags).forEach(([key, value]) => {
67
+ console.log(` ${key}: ${value}`);
68
+ });
69
+
70
+ console.log('\nšŸ“š Choice History:');
71
+ const history = engine.getHistory();
72
+ history.forEach((nodeId, i) => {
73
+ console.log(` ${i + 1}. ${nodeId}`);
74
+ });
75
+ }
76
+
77
+ console.log('\nšŸŽ‰ Demo Complete!');
78
+ console.log('=================');
79
+ console.log('āœ… QNCE Engine v1.2.0 basic functionality working');
80
+ console.log('šŸ“š For advanced branching features, see TypeScript examples');
81
+ console.log('šŸ”— Advanced features: AI generation, dynamic branches, analytics');
82
+ console.log('\nšŸš€ Ready for your interactive narratives!');
package/package.json CHANGED
@@ -1,20 +1,26 @@
1
1
  {
2
2
  "name": "qnce-engine",
3
- "version": "0.1.0",
4
- "description": "Core QNCE (Quantum Narrative Convergence Engine) - Framework agnostic narrative engine",
3
+ "version": "1.2.0",
4
+ "description": "Core QNCE (Quantum Narrative Convergence Engine) - Framework agnostic narrative engine with performance optimization",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
- "type": "module",
8
7
  "bin": {
9
8
  "qnce-audit": "dist/cli/audit.js",
10
- "qnce-init": "dist/cli/init.js"
9
+ "qnce-init": "dist/cli/init.js",
10
+ "qnce-perf": "dist/cli/perf.js"
11
11
  },
12
12
  "scripts": {
13
13
  "build": "tsc",
14
14
  "build:watch": "tsc --watch",
15
+ "build:examples": "tsc examples/**/*.ts --outDir dist --target ES2022 --module ES2022 --moduleResolution Node --strict --esModuleInterop --skipLibCheck --declaration false",
15
16
  "lint": "eslint .",
16
- "test": "echo \"Error: no test specified\" && exit 1",
17
- "prepublishOnly": "npm run build"
17
+ "test": "./node_modules/.bin/jest",
18
+ "test:watch": "./node_modules/.bin/jest --watch",
19
+ "test:coverage": "./node_modules/.bin/jest --coverage",
20
+ "test:performance": "node scripts/performance-tests.js",
21
+ "demo:performance": "npm run build && node scripts/performance-demo.js",
22
+ "demo:quickstart": "npm run build && node examples/quickstart-demo.js",
23
+ "prepublishOnly": "npm run build && npm run test"
18
24
  },
19
25
  "keywords": [
20
26
  "narrative",
@@ -30,15 +36,22 @@
30
36
  "type": "git",
31
37
  "url": "https://github.com/ByteSower/qnce-engine.git"
32
38
  },
33
- "dependencies": {},
34
39
  "devDependencies": {
40
+ "@types/jest": "^29.5.14",
35
41
  "@types/node": "^20.0.0",
42
+ "@typescript-eslint/eslint-plugin": "^6.21.0",
43
+ "@typescript-eslint/parser": "^6.21.0",
44
+ "eslint": "^8.57.1",
45
+ "jest": "^29.7.0",
46
+ "ts-jest": "^29.4.0",
36
47
  "typescript": "~5.8.3"
37
48
  },
38
49
  "files": [
39
50
  "dist/**/*",
40
51
  "README.md",
41
52
  "LICENSE",
42
- "examples/**/*"
53
+ "examples/**/*",
54
+ "docs/branching/**/*",
55
+ "docs/PERFORMANCE.md"
43
56
  ]
44
57
  }