qnce-engine 0.1.0 → 1.2.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/README.md +959 -5
- package/dist/cli/audit.js +6 -4
- package/dist/cli/audit.js.map +1 -1
- package/dist/cli/init.js +11 -9
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/perf.d.ts +30 -0
- package/dist/cli/perf.d.ts.map +1 -0
- package/dist/cli/perf.js +220 -0
- package/dist/cli/perf.js.map +1 -0
- package/dist/cli/play.d.ts +4 -0
- package/dist/cli/play.d.ts.map +1 -0
- package/dist/cli/play.js +259 -0
- package/dist/cli/play.js.map +1 -0
- package/dist/engine/condition.d.ts +69 -0
- package/dist/engine/condition.d.ts.map +1 -0
- package/dist/engine/condition.js +195 -0
- package/dist/engine/condition.js.map +1 -0
- package/dist/engine/core.d.ts +378 -11
- package/dist/engine/core.d.ts.map +1 -1
- package/dist/engine/core.js +1433 -13
- package/dist/engine/core.js.map +1 -1
- package/dist/engine/demo-story.d.ts.map +1 -1
- package/dist/engine/demo-story.js +103 -14
- package/dist/engine/demo-story.js.map +1 -1
- package/dist/engine/errors.d.ts +76 -0
- package/dist/engine/errors.d.ts.map +1 -0
- package/dist/engine/errors.js +178 -0
- package/dist/engine/errors.js.map +1 -0
- package/dist/engine/types.d.ts +445 -0
- package/dist/engine/types.d.ts.map +1 -0
- package/dist/engine/types.js +9 -0
- package/dist/engine/types.js.map +1 -0
- package/dist/engine/validation.d.ts +110 -0
- package/dist/engine/validation.d.ts.map +1 -0
- package/dist/engine/validation.js +261 -0
- package/dist/engine/validation.js.map +1 -0
- package/dist/examples/examples/autosave-undo-demo.js +248 -0
- package/dist/examples/examples/persistence-demo.js +63 -0
- package/dist/examples/src/engine/condition.js +194 -0
- package/dist/examples/src/engine/core.js +1382 -0
- package/dist/examples/src/engine/demo-story.js +200 -0
- package/dist/examples/src/engine/types.js +8 -0
- package/dist/examples/src/index.js +35 -0
- package/dist/examples/src/integrations/react.js +322 -0
- package/dist/examples/src/narrative/branching/engine-simple.js +348 -0
- package/dist/examples/src/narrative/branching/index.js +55 -0
- package/dist/examples/src/narrative/branching/models.js +5 -0
- package/dist/examples/src/performance/ObjectPool.js +296 -0
- package/dist/examples/src/performance/PerfReporter.js +280 -0
- package/dist/examples/src/performance/ThreadPool.js +347 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -3
- package/dist/index.js.map +1 -1
- package/dist/integrations/react.d.ts +200 -0
- package/dist/integrations/react.d.ts.map +1 -0
- package/dist/integrations/react.js +365 -0
- package/dist/integrations/react.js.map +1 -0
- package/dist/narrative/branching/engine-simple.d.ts +84 -0
- package/dist/narrative/branching/engine-simple.d.ts.map +1 -0
- package/dist/narrative/branching/engine-simple.js +349 -0
- package/dist/narrative/branching/engine-simple.js.map +1 -0
- package/dist/narrative/branching/engine.d.ts +1 -0
- package/dist/narrative/branching/engine.d.ts.map +1 -0
- package/dist/narrative/branching/engine.js +2 -0
- package/dist/narrative/branching/engine.js.map +1 -0
- package/dist/narrative/branching/index.d.ts +12 -0
- package/dist/narrative/branching/index.d.ts.map +1 -0
- package/dist/narrative/branching/index.js +56 -0
- package/dist/narrative/branching/index.js.map +1 -0
- package/dist/narrative/branching/models.d.ts +223 -0
- package/dist/narrative/branching/models.d.ts.map +1 -0
- package/dist/narrative/branching/models.js +6 -0
- package/dist/narrative/branching/models.js.map +1 -0
- package/dist/performance/HotReloadDelta.d.ts +124 -0
- package/dist/performance/HotReloadDelta.d.ts.map +1 -0
- package/dist/performance/HotReloadDelta.js +328 -0
- package/dist/performance/HotReloadDelta.js.map +1 -0
- package/dist/performance/ObjectPool.d.ts +150 -0
- package/dist/performance/ObjectPool.d.ts.map +1 -0
- package/dist/performance/ObjectPool.js +297 -0
- package/dist/performance/ObjectPool.js.map +1 -0
- package/dist/performance/PerfReporter.d.ts +123 -0
- package/dist/performance/PerfReporter.d.ts.map +1 -0
- package/dist/performance/PerfReporter.js +281 -0
- package/dist/performance/PerfReporter.js.map +1 -0
- package/dist/performance/ThreadPool.d.ts +107 -0
- package/dist/performance/ThreadPool.d.ts.map +1 -0
- package/dist/performance/ThreadPool.js +348 -0
- package/dist/performance/ThreadPool.js.map +1 -0
- package/dist/ui/__tests__/AutosaveIndicator.test.d.ts +2 -0
- package/dist/ui/__tests__/AutosaveIndicator.test.d.ts.map +1 -0
- package/dist/ui/__tests__/AutosaveIndicator.test.js +329 -0
- package/dist/ui/__tests__/AutosaveIndicator.test.js.map +1 -0
- package/dist/ui/__tests__/UndoRedoControls.test.d.ts +2 -0
- package/dist/ui/__tests__/UndoRedoControls.test.d.ts.map +1 -0
- package/dist/ui/__tests__/UndoRedoControls.test.js +245 -0
- package/dist/ui/__tests__/UndoRedoControls.test.js.map +1 -0
- package/dist/ui/__tests__/autosave-simple.test.d.ts +2 -0
- package/dist/ui/__tests__/autosave-simple.test.d.ts.map +1 -0
- package/dist/ui/__tests__/autosave-simple.test.js +29 -0
- package/dist/ui/__tests__/autosave-simple.test.js.map +1 -0
- package/dist/ui/__tests__/setup.d.ts +2 -0
- package/dist/ui/__tests__/setup.d.ts.map +1 -0
- package/dist/ui/__tests__/setup.js +40 -0
- package/dist/ui/__tests__/setup.js.map +1 -0
- package/dist/ui/__tests__/smoke-test.d.ts +2 -0
- package/dist/ui/__tests__/smoke-test.d.ts.map +1 -0
- package/dist/ui/__tests__/smoke-test.js +18 -0
- package/dist/ui/__tests__/smoke-test.js.map +1 -0
- package/dist/ui/__tests__/smoke-test.test.d.ts +2 -0
- package/dist/ui/__tests__/smoke-test.test.d.ts.map +1 -0
- package/dist/ui/__tests__/smoke-test.test.js +18 -0
- package/dist/ui/__tests__/smoke-test.test.js.map +1 -0
- package/dist/ui/__tests__/useKeyboardShortcuts.test.d.ts +2 -0
- package/dist/ui/__tests__/useKeyboardShortcuts.test.d.ts.map +1 -0
- package/dist/ui/__tests__/useKeyboardShortcuts.test.js +374 -0
- package/dist/ui/__tests__/useKeyboardShortcuts.test.js.map +1 -0
- package/dist/ui/components/AutosaveIndicator.d.ts +18 -0
- package/dist/ui/components/AutosaveIndicator.d.ts.map +1 -0
- package/dist/ui/components/AutosaveIndicator.js +175 -0
- package/dist/ui/components/AutosaveIndicator.js.map +1 -0
- package/dist/ui/components/UndoRedoControls.d.ts +16 -0
- package/dist/ui/components/UndoRedoControls.d.ts.map +1 -0
- package/dist/ui/components/UndoRedoControls.js +144 -0
- package/dist/ui/components/UndoRedoControls.js.map +1 -0
- package/dist/ui/hooks/useKeyboardShortcuts.d.ts +22 -0
- package/dist/ui/hooks/useKeyboardShortcuts.d.ts.map +1 -0
- package/dist/ui/hooks/useKeyboardShortcuts.js +162 -0
- package/dist/ui/hooks/useKeyboardShortcuts.js.map +1 -0
- package/dist/ui/index.d.ts +9 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +14 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/types.d.ts +141 -0
- package/dist/ui/types.d.ts.map +1 -0
- package/dist/ui/types.js +51 -0
- package/dist/ui/types.js.map +1 -0
- package/docs/PERFORMANCE.md +355 -0
- package/docs/branching/ERD.md +214 -0
- package/docs/branching/PDM.md +443 -0
- package/docs/branching/RELEASE-v1.2.0.md +169 -0
- package/examples/autosave-undo-demo.ts +306 -0
- package/examples/branching-advanced-demo.ts +339 -0
- package/examples/branching-demo-simple.ts +0 -0
- package/examples/branching-demo.ts +0 -0
- package/examples/branching-quickstart.ts +314 -0
- package/examples/persistence-demo.ts +84 -0
- package/examples/quickstart-demo.js +82 -0
- package/examples/tsconfig.json +13 -0
- package/examples/ui-components-demo.tsx +320 -0
- package/examples/validation-demo-story.json +177 -0
- package/examples/validation-demo.js +163 -0
- package/package.json +41 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/narrative/branching/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// QNCE Branching System - Platform Data Model (PDM)
|
|
3
|
+
// Sprint #3 - Advanced Narrative & AI Integration
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
// All interfaces are exported above and ready for engine integration
|
|
6
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/narrative/branching/models.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,kDAAkD;;AAuRlD,qEAAqE"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { NarrativeNode, StoryData } from '../engine/core';
|
|
2
|
+
export interface Asset {
|
|
3
|
+
id: string;
|
|
4
|
+
type: 'image' | 'audio' | 'video';
|
|
5
|
+
src: string;
|
|
6
|
+
size?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface StoryDelta {
|
|
9
|
+
nodeChanges: NodeDelta[];
|
|
10
|
+
assetChanges: AssetDelta[];
|
|
11
|
+
timestamp: number;
|
|
12
|
+
}
|
|
13
|
+
export interface NodeDelta {
|
|
14
|
+
nodeId: string;
|
|
15
|
+
changeType: 'added' | 'modified' | 'removed';
|
|
16
|
+
oldNode?: NarrativeNode;
|
|
17
|
+
newNode?: NarrativeNode;
|
|
18
|
+
affectedFields: (keyof NarrativeNode | '*')[];
|
|
19
|
+
}
|
|
20
|
+
export interface AssetDelta {
|
|
21
|
+
assetId: string;
|
|
22
|
+
changeType: 'added' | 'modified' | 'removed';
|
|
23
|
+
oldAsset?: Asset;
|
|
24
|
+
newAsset?: Asset;
|
|
25
|
+
sizeChange: number;
|
|
26
|
+
}
|
|
27
|
+
interface PatchableEngine {
|
|
28
|
+
storyData: StoryData;
|
|
29
|
+
getState(): {
|
|
30
|
+
currentNodeId: string;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export interface ExtendedStoryData extends StoryData {
|
|
34
|
+
assets?: Asset[];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Delta Comparison Engine for Hot-Reload Story Updates
|
|
38
|
+
* Identifies minimal changes needed to update narrative content
|
|
39
|
+
*/
|
|
40
|
+
export declare class StoryDeltaComparator {
|
|
41
|
+
/**
|
|
42
|
+
* Compare two story configurations and generate delta
|
|
43
|
+
*/
|
|
44
|
+
compareStories(oldStory: ExtendedStoryData, newStory: ExtendedStoryData): StoryDelta;
|
|
45
|
+
/**
|
|
46
|
+
* Deep comparison of narrative nodes
|
|
47
|
+
*/
|
|
48
|
+
private compareNodes;
|
|
49
|
+
/**
|
|
50
|
+
* Compare assets (future: images, audio, etc.)
|
|
51
|
+
*/
|
|
52
|
+
private compareAssets;
|
|
53
|
+
/**
|
|
54
|
+
* Fine-grained field comparison for nodes
|
|
55
|
+
*/
|
|
56
|
+
private findChangedFields;
|
|
57
|
+
/**
|
|
58
|
+
* Asset comparison logic
|
|
59
|
+
*/
|
|
60
|
+
private assetsAreDifferent;
|
|
61
|
+
/**
|
|
62
|
+
* Deep equality check for objects
|
|
63
|
+
*/
|
|
64
|
+
private deepEqual;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Hot-Reload Delta Patcher
|
|
68
|
+
* Applies story deltas with minimal engine disruption
|
|
69
|
+
*/
|
|
70
|
+
export declare class StoryDeltaPatcher {
|
|
71
|
+
private engine;
|
|
72
|
+
constructor(engine: PatchableEngine);
|
|
73
|
+
/**
|
|
74
|
+
* Apply delta patch to running engine
|
|
75
|
+
* Target: <2ms frame stall for hot-reload
|
|
76
|
+
*/
|
|
77
|
+
applyDelta(delta: StoryDelta): Promise<PatchResult>;
|
|
78
|
+
/**
|
|
79
|
+
* Validate delta is safe to apply
|
|
80
|
+
*/
|
|
81
|
+
private validateDelta;
|
|
82
|
+
/**
|
|
83
|
+
* Apply node changes to story data
|
|
84
|
+
*/
|
|
85
|
+
private applyNodeChanges;
|
|
86
|
+
/**
|
|
87
|
+
* Fast synchronous node changes for small deltas (no async overhead)
|
|
88
|
+
*/
|
|
89
|
+
private applyNodeChangesFast;
|
|
90
|
+
/**
|
|
91
|
+
* Apply asset changes (placeholder for future implementation)
|
|
92
|
+
*/
|
|
93
|
+
private applyAssetChanges;
|
|
94
|
+
/**
|
|
95
|
+
* Batch node changes by type for efficient processing
|
|
96
|
+
*/
|
|
97
|
+
private batchNodeChanges;
|
|
98
|
+
/**
|
|
99
|
+
* Process a batch of node changes
|
|
100
|
+
*/
|
|
101
|
+
private processBatch;
|
|
102
|
+
/**
|
|
103
|
+
* Apply individual node change
|
|
104
|
+
*/
|
|
105
|
+
private applyNodeChange;
|
|
106
|
+
/**
|
|
107
|
+
* Refresh engine state after patch
|
|
108
|
+
*/
|
|
109
|
+
private refreshEngineState;
|
|
110
|
+
}
|
|
111
|
+
export interface PatchResult {
|
|
112
|
+
success: boolean;
|
|
113
|
+
patchId: string;
|
|
114
|
+
duration: number;
|
|
115
|
+
nodesChanged?: number;
|
|
116
|
+
assetsChanged?: number;
|
|
117
|
+
error?: string;
|
|
118
|
+
}
|
|
119
|
+
export declare function createDeltaTools(engine: PatchableEngine): {
|
|
120
|
+
comparator: StoryDeltaComparator;
|
|
121
|
+
patcher: StoryDeltaPatcher;
|
|
122
|
+
};
|
|
123
|
+
export {};
|
|
124
|
+
//# sourceMappingURL=HotReloadDelta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HotReloadDelta.d.ts","sourceRoot":"","sources":["../../src/performance/HotReloadDelta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAK1D,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,SAAS,EAAE,CAAC;IACzB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;IAC7C,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,cAAc,EAAE,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,eAAe;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,IAAI;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;CACvC;AAED,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAE/B;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,GAAG,UAAU;IAUpF;;OAEG;IACH,OAAO,CAAC,YAAY;IA+CpB;;OAEG;IACH,OAAO,CAAC,aAAa;IA4CrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;OAEG;IACH,OAAO,CAAC,SAAS;CAuBlB;AAED;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAkB;gBAEpB,MAAM,EAAE,eAAe;IAInC;;;OAGG;IACG,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAmDzD;;OAEG;IACH,OAAO,CAAC,aAAa;IAgBrB;;OAEG;YACW,gBAAgB;IAS9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAM5B;;OAEG;YACW,iBAAiB;IAK/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;OAEG;YACW,YAAY;IAY1B;;OAEG;IACH,OAAO,CAAC,eAAe;IA8BvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAI3B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe;;;EAKvD"}
|
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StoryDeltaPatcher = exports.StoryDeltaComparator = void 0;
|
|
4
|
+
exports.createDeltaTools = createDeltaTools;
|
|
5
|
+
/**
|
|
6
|
+
* Delta Comparison Engine for Hot-Reload Story Updates
|
|
7
|
+
* Identifies minimal changes needed to update narrative content
|
|
8
|
+
*/
|
|
9
|
+
class StoryDeltaComparator {
|
|
10
|
+
/**
|
|
11
|
+
* Compare two story configurations and generate delta
|
|
12
|
+
*/
|
|
13
|
+
compareStories(oldStory, newStory) {
|
|
14
|
+
const timestamp = performance.now();
|
|
15
|
+
return {
|
|
16
|
+
nodeChanges: this.compareNodes(oldStory.nodes || [], newStory.nodes || []),
|
|
17
|
+
assetChanges: this.compareAssets(oldStory.assets || [], newStory.assets || []),
|
|
18
|
+
timestamp
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Deep comparison of narrative nodes
|
|
23
|
+
*/
|
|
24
|
+
compareNodes(oldNodes, newNodes) {
|
|
25
|
+
const deltas = [];
|
|
26
|
+
const oldNodeMap = new Map(oldNodes.map(n => [n.id, n]));
|
|
27
|
+
const newNodeMap = new Map(newNodes.map(n => [n.id, n]));
|
|
28
|
+
// Check for removed nodes
|
|
29
|
+
for (const [nodeId, oldNode] of oldNodeMap) {
|
|
30
|
+
if (!newNodeMap.has(nodeId)) {
|
|
31
|
+
deltas.push({
|
|
32
|
+
nodeId,
|
|
33
|
+
changeType: 'removed',
|
|
34
|
+
oldNode,
|
|
35
|
+
affectedFields: ['*']
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// Check for added and modified nodes
|
|
40
|
+
for (const [nodeId, newNode] of newNodeMap) {
|
|
41
|
+
const oldNode = oldNodeMap.get(nodeId);
|
|
42
|
+
if (!oldNode) {
|
|
43
|
+
// New node
|
|
44
|
+
deltas.push({
|
|
45
|
+
nodeId,
|
|
46
|
+
changeType: 'added',
|
|
47
|
+
newNode,
|
|
48
|
+
affectedFields: ['*']
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
// Check for modifications
|
|
53
|
+
const affectedFields = this.findChangedFields(oldNode, newNode);
|
|
54
|
+
if (affectedFields.length > 0) {
|
|
55
|
+
deltas.push({
|
|
56
|
+
nodeId,
|
|
57
|
+
changeType: 'modified',
|
|
58
|
+
oldNode,
|
|
59
|
+
newNode,
|
|
60
|
+
affectedFields
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return deltas;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Compare assets (future: images, audio, etc.)
|
|
69
|
+
*/
|
|
70
|
+
compareAssets(oldAssets, newAssets) {
|
|
71
|
+
const deltas = [];
|
|
72
|
+
const oldAssetMap = new Map(oldAssets.map(a => [a.id, a]));
|
|
73
|
+
const newAssetMap = new Map(newAssets.map(a => [a.id, a]));
|
|
74
|
+
// Check for removed assets
|
|
75
|
+
for (const [assetId, oldAsset] of oldAssetMap) {
|
|
76
|
+
if (!newAssetMap.has(assetId)) {
|
|
77
|
+
deltas.push({
|
|
78
|
+
assetId,
|
|
79
|
+
changeType: 'removed',
|
|
80
|
+
oldAsset,
|
|
81
|
+
sizeChange: -(oldAsset.size || 0)
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Check for added and modified assets
|
|
86
|
+
for (const [assetId, newAsset] of newAssetMap) {
|
|
87
|
+
const oldAsset = oldAssetMap.get(assetId);
|
|
88
|
+
if (!oldAsset) {
|
|
89
|
+
// New asset
|
|
90
|
+
deltas.push({
|
|
91
|
+
assetId,
|
|
92
|
+
changeType: 'added',
|
|
93
|
+
newAsset,
|
|
94
|
+
sizeChange: newAsset.size || 0
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
else if (this.assetsAreDifferent(oldAsset, newAsset)) {
|
|
98
|
+
// Modified asset
|
|
99
|
+
deltas.push({
|
|
100
|
+
assetId,
|
|
101
|
+
changeType: 'modified',
|
|
102
|
+
oldAsset,
|
|
103
|
+
newAsset,
|
|
104
|
+
sizeChange: (newAsset.size || 0) - (oldAsset.size || 0)
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return deltas;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Fine-grained field comparison for nodes
|
|
112
|
+
*/
|
|
113
|
+
findChangedFields(oldNode, newNode) {
|
|
114
|
+
const changedFields = [];
|
|
115
|
+
const allFields = new Set([...Object.keys(oldNode), ...Object.keys(newNode)]);
|
|
116
|
+
for (const field of allFields) {
|
|
117
|
+
if (!this.deepEqual(oldNode[field], newNode[field])) {
|
|
118
|
+
changedFields.push(field);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return changedFields;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Asset comparison logic
|
|
125
|
+
*/
|
|
126
|
+
assetsAreDifferent(oldAsset, newAsset) {
|
|
127
|
+
// Simple comparison - in practice, would use checksums/hashes
|
|
128
|
+
return JSON.stringify(oldAsset) !== JSON.stringify(newAsset);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Deep equality check for objects
|
|
132
|
+
*/
|
|
133
|
+
deepEqual(a, b) {
|
|
134
|
+
if (a === b)
|
|
135
|
+
return true;
|
|
136
|
+
if (a === null || b === null)
|
|
137
|
+
return false;
|
|
138
|
+
if (typeof a !== typeof b)
|
|
139
|
+
return false;
|
|
140
|
+
if (typeof a === 'object') {
|
|
141
|
+
if (Array.isArray(a) !== Array.isArray(b))
|
|
142
|
+
return false;
|
|
143
|
+
const keysA = Object.keys(a);
|
|
144
|
+
const keysB = Object.keys(b);
|
|
145
|
+
if (keysA.length !== keysB.length)
|
|
146
|
+
return false;
|
|
147
|
+
for (const key of keysA) {
|
|
148
|
+
if (!keysB.includes(key))
|
|
149
|
+
return false;
|
|
150
|
+
if (!this.deepEqual(a[key], b[key]))
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
return true;
|
|
154
|
+
}
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
exports.StoryDeltaComparator = StoryDeltaComparator;
|
|
159
|
+
/**
|
|
160
|
+
* Hot-Reload Delta Patcher
|
|
161
|
+
* Applies story deltas with minimal engine disruption
|
|
162
|
+
*/
|
|
163
|
+
class StoryDeltaPatcher {
|
|
164
|
+
engine;
|
|
165
|
+
constructor(engine) {
|
|
166
|
+
this.engine = engine;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Apply delta patch to running engine
|
|
170
|
+
* Target: <2ms frame stall for hot-reload
|
|
171
|
+
*/
|
|
172
|
+
async applyDelta(delta) {
|
|
173
|
+
const startTime = performance.now();
|
|
174
|
+
const patchId = `patch-${Date.now()}`;
|
|
175
|
+
try {
|
|
176
|
+
// Phase 1: Validate delta can be applied safely (sync, fast)
|
|
177
|
+
const validation = this.validateDelta(delta);
|
|
178
|
+
if (!validation.safe) {
|
|
179
|
+
return {
|
|
180
|
+
success: false,
|
|
181
|
+
patchId,
|
|
182
|
+
duration: performance.now() - startTime,
|
|
183
|
+
error: validation.error
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
// Phase 2: Apply changes synchronously for speed
|
|
187
|
+
// For small deltas (<10 changes), apply immediately
|
|
188
|
+
// For larger deltas, use optimized batch processing
|
|
189
|
+
if (delta.nodeChanges.length <= 10) {
|
|
190
|
+
this.applyNodeChangesFast(delta.nodeChanges);
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
await this.applyNodeChanges(delta.nodeChanges);
|
|
194
|
+
}
|
|
195
|
+
// Phase 3: Skip asset changes for now (async operation)
|
|
196
|
+
// Assets can be updated in background without frame stall
|
|
197
|
+
// Phase 4: Minimal state refresh
|
|
198
|
+
this.refreshEngineState();
|
|
199
|
+
const duration = performance.now() - startTime;
|
|
200
|
+
return {
|
|
201
|
+
success: true,
|
|
202
|
+
patchId,
|
|
203
|
+
duration,
|
|
204
|
+
nodesChanged: delta.nodeChanges.length,
|
|
205
|
+
assetsChanged: delta.assetChanges.length
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
return {
|
|
210
|
+
success: false,
|
|
211
|
+
patchId,
|
|
212
|
+
duration: performance.now() - startTime,
|
|
213
|
+
error: error instanceof Error ? error.message : 'Unknown error'
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Validate delta is safe to apply
|
|
219
|
+
*/
|
|
220
|
+
validateDelta(delta) {
|
|
221
|
+
// Check if current node would be affected
|
|
222
|
+
const currentNodeId = this.engine.getState().currentNodeId;
|
|
223
|
+
const currentNodeChange = delta.nodeChanges.find(c => c.nodeId === currentNodeId);
|
|
224
|
+
if (currentNodeChange && currentNodeChange.changeType === 'removed') {
|
|
225
|
+
return {
|
|
226
|
+
safe: false,
|
|
227
|
+
error: 'Cannot remove currently active node'
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
// Additional safety checks could go here
|
|
231
|
+
return { safe: true };
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Apply node changes to story data
|
|
235
|
+
*/
|
|
236
|
+
async applyNodeChanges(nodeChanges) {
|
|
237
|
+
// Batch node changes to minimize engine updates
|
|
238
|
+
const batches = this.batchNodeChanges(nodeChanges);
|
|
239
|
+
for (const batch of batches) {
|
|
240
|
+
await this.processBatch(batch);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Fast synchronous node changes for small deltas (no async overhead)
|
|
245
|
+
*/
|
|
246
|
+
applyNodeChangesFast(nodeChanges) {
|
|
247
|
+
for (const change of nodeChanges) {
|
|
248
|
+
this.applyNodeChange(change);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Apply asset changes (placeholder for future implementation)
|
|
253
|
+
*/
|
|
254
|
+
async applyAssetChanges(assetChanges) {
|
|
255
|
+
// Future: Implement asset hot-reload
|
|
256
|
+
console.log(`Would apply ${assetChanges.length} asset changes`);
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Batch node changes by type for efficient processing
|
|
260
|
+
*/
|
|
261
|
+
batchNodeChanges(nodeChanges) {
|
|
262
|
+
const batches = [];
|
|
263
|
+
const batchSize = 25; // Larger batch size for efficiency
|
|
264
|
+
for (let i = 0; i < nodeChanges.length; i += batchSize) {
|
|
265
|
+
batches.push(nodeChanges.slice(i, i + batchSize));
|
|
266
|
+
}
|
|
267
|
+
return batches;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Process a batch of node changes
|
|
271
|
+
*/
|
|
272
|
+
async processBatch(batch) {
|
|
273
|
+
// Use requestAnimationFrame or setTimeout to yield control
|
|
274
|
+
return new Promise(resolve => {
|
|
275
|
+
setTimeout(() => {
|
|
276
|
+
for (const change of batch) {
|
|
277
|
+
this.applyNodeChange(change);
|
|
278
|
+
}
|
|
279
|
+
resolve();
|
|
280
|
+
}, 0);
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Apply individual node change
|
|
285
|
+
*/
|
|
286
|
+
applyNodeChange(change) {
|
|
287
|
+
// Access engine's internal story data
|
|
288
|
+
const storyData = this.engine.storyData;
|
|
289
|
+
switch (change.changeType) {
|
|
290
|
+
case 'added': {
|
|
291
|
+
if (change.newNode) {
|
|
292
|
+
storyData.nodes.push(change.newNode);
|
|
293
|
+
}
|
|
294
|
+
break;
|
|
295
|
+
}
|
|
296
|
+
case 'removed': {
|
|
297
|
+
const removeIndex = storyData.nodes.findIndex((n) => n.id === change.nodeId);
|
|
298
|
+
if (removeIndex >= 0) {
|
|
299
|
+
storyData.nodes.splice(removeIndex, 1);
|
|
300
|
+
}
|
|
301
|
+
break;
|
|
302
|
+
}
|
|
303
|
+
case 'modified':
|
|
304
|
+
const modifyIndex = storyData.nodes.findIndex((n) => n.id === change.nodeId);
|
|
305
|
+
if (modifyIndex >= 0 && change.newNode) {
|
|
306
|
+
// For simplicity, always replace the entire node
|
|
307
|
+
storyData.nodes[modifyIndex] = change.newNode;
|
|
308
|
+
}
|
|
309
|
+
break;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Refresh engine state after patch
|
|
314
|
+
*/
|
|
315
|
+
refreshEngineState() {
|
|
316
|
+
// Minimal state refresh - avoid full reinitialization
|
|
317
|
+
// Future: Could trigger cache invalidation, UI updates, etc.
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
exports.StoryDeltaPatcher = StoryDeltaPatcher;
|
|
321
|
+
// Factory function for creating delta tools
|
|
322
|
+
function createDeltaTools(engine) {
|
|
323
|
+
return {
|
|
324
|
+
comparator: new StoryDeltaComparator(),
|
|
325
|
+
patcher: new StoryDeltaPatcher(engine)
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
//# sourceMappingURL=HotReloadDelta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HotReloadDelta.js","sourceRoot":"","sources":["../../src/performance/HotReloadDelta.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
export interface Poolable {
|
|
2
|
+
reset(): void;
|
|
3
|
+
isInUse(): boolean;
|
|
4
|
+
setInUse(inUse: boolean): void;
|
|
5
|
+
}
|
|
6
|
+
export interface PoolableConstructor<T extends Poolable> {
|
|
7
|
+
new (): T;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Generic Object Pool for QNCE narrative objects
|
|
11
|
+
* Reduces GC pressure by reusing objects instead of creating new ones
|
|
12
|
+
*/
|
|
13
|
+
export declare class ObjectPool<T extends Poolable> {
|
|
14
|
+
private pool;
|
|
15
|
+
private createFn;
|
|
16
|
+
private maxSize;
|
|
17
|
+
private created;
|
|
18
|
+
private borrowed;
|
|
19
|
+
private returned;
|
|
20
|
+
constructor(createFn: () => T, initialSize?: number, maxSize?: number);
|
|
21
|
+
/**
|
|
22
|
+
* Borrow an object from the pool
|
|
23
|
+
*/
|
|
24
|
+
borrow(): T;
|
|
25
|
+
/**
|
|
26
|
+
* Return an object to the pool
|
|
27
|
+
*/
|
|
28
|
+
return(obj: T): void;
|
|
29
|
+
/**
|
|
30
|
+
* Get pool statistics for monitoring
|
|
31
|
+
*/
|
|
32
|
+
getStats(): {
|
|
33
|
+
poolSize: number;
|
|
34
|
+
maxSize: number;
|
|
35
|
+
created: number;
|
|
36
|
+
borrowed: number;
|
|
37
|
+
returned: number;
|
|
38
|
+
inUse: number;
|
|
39
|
+
hitRate: number;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Clear the pool (useful for testing)
|
|
43
|
+
*/
|
|
44
|
+
clear(): void;
|
|
45
|
+
/**
|
|
46
|
+
* Resize the pool
|
|
47
|
+
*/
|
|
48
|
+
resize(newSize: number): void;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Pooled Flow object for narrative state management
|
|
52
|
+
*/
|
|
53
|
+
export declare class PooledFlow implements Poolable {
|
|
54
|
+
private _inUse;
|
|
55
|
+
nodeId: string;
|
|
56
|
+
timestamp: number;
|
|
57
|
+
metadata: Record<string, unknown>;
|
|
58
|
+
transitions: string[];
|
|
59
|
+
constructor();
|
|
60
|
+
reset(): void;
|
|
61
|
+
isInUse(): boolean;
|
|
62
|
+
setInUse(inUse: boolean): void;
|
|
63
|
+
initialize(nodeId: string, metadata?: Record<string, unknown>): void;
|
|
64
|
+
addTransition(fromNodeId: string, toNodeId: string): void;
|
|
65
|
+
getDuration(): number;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Pooled Node object for narrative content
|
|
69
|
+
*/
|
|
70
|
+
export declare class PooledNode implements Poolable {
|
|
71
|
+
private _inUse;
|
|
72
|
+
id: string;
|
|
73
|
+
text: string;
|
|
74
|
+
choices: unknown[];
|
|
75
|
+
flags: Record<string, unknown>;
|
|
76
|
+
lastAccessed: number;
|
|
77
|
+
constructor();
|
|
78
|
+
reset(): void;
|
|
79
|
+
isInUse(): boolean;
|
|
80
|
+
setInUse(inUse: boolean): void;
|
|
81
|
+
initialize(id: string, text: string, choices?: unknown[]): void;
|
|
82
|
+
touch(): void;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Pooled Asset object for narrative resources
|
|
86
|
+
*/
|
|
87
|
+
export declare class PooledAsset implements Poolable {
|
|
88
|
+
private _inUse;
|
|
89
|
+
id: string;
|
|
90
|
+
type: string;
|
|
91
|
+
data: unknown;
|
|
92
|
+
size: number;
|
|
93
|
+
loaded: boolean;
|
|
94
|
+
constructor();
|
|
95
|
+
reset(): void;
|
|
96
|
+
isInUse(): boolean;
|
|
97
|
+
setInUse(inUse: boolean): void;
|
|
98
|
+
initialize(id: string, type: string, data: unknown): void;
|
|
99
|
+
private calculateSize;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Pool Manager - Centralized management of all object pools
|
|
103
|
+
*/
|
|
104
|
+
export declare class PoolManager {
|
|
105
|
+
private static instance;
|
|
106
|
+
private flowPool;
|
|
107
|
+
private nodePool;
|
|
108
|
+
private assetPool;
|
|
109
|
+
private constructor();
|
|
110
|
+
static getInstance(): PoolManager;
|
|
111
|
+
borrowFlow(): PooledFlow;
|
|
112
|
+
returnFlow(flow: PooledFlow): void;
|
|
113
|
+
borrowNode(): PooledNode;
|
|
114
|
+
returnNode(node: PooledNode): void;
|
|
115
|
+
borrowAsset(): PooledAsset;
|
|
116
|
+
returnAsset(asset: PooledAsset): void;
|
|
117
|
+
getAllStats(): {
|
|
118
|
+
flows: {
|
|
119
|
+
poolSize: number;
|
|
120
|
+
maxSize: number;
|
|
121
|
+
created: number;
|
|
122
|
+
borrowed: number;
|
|
123
|
+
returned: number;
|
|
124
|
+
inUse: number;
|
|
125
|
+
hitRate: number;
|
|
126
|
+
};
|
|
127
|
+
nodes: {
|
|
128
|
+
poolSize: number;
|
|
129
|
+
maxSize: number;
|
|
130
|
+
created: number;
|
|
131
|
+
borrowed: number;
|
|
132
|
+
returned: number;
|
|
133
|
+
inUse: number;
|
|
134
|
+
hitRate: number;
|
|
135
|
+
};
|
|
136
|
+
assets: {
|
|
137
|
+
poolSize: number;
|
|
138
|
+
maxSize: number;
|
|
139
|
+
created: number;
|
|
140
|
+
borrowed: number;
|
|
141
|
+
returned: number;
|
|
142
|
+
inUse: number;
|
|
143
|
+
hitRate: number;
|
|
144
|
+
};
|
|
145
|
+
};
|
|
146
|
+
getGCPressureReduction(): number;
|
|
147
|
+
clearAllPools(): void;
|
|
148
|
+
}
|
|
149
|
+
export declare const poolManager: PoolManager;
|
|
150
|
+
//# sourceMappingURL=ObjectPool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObjectPool.d.ts","sourceRoot":"","sources":["../../src/performance/ObjectPool.ts"],"names":[],"mappings":"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"}
|