qnce-engine 1.3.1 → 1.4.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 +136 -2
- package/dist/adapters/contracts.d.ts +1 -1
- package/dist/adapters/contracts.d.ts.map +1 -1
- package/dist/adapters/storage/MockAdapters.d.ts +89 -0
- package/dist/adapters/storage/MockAdapters.d.ts.map +1 -0
- package/dist/adapters/storage/MockAdapters.js +109 -0
- package/dist/adapters/storage/MockAdapters.js.map +1 -0
- package/dist/adapters/story/CustomJSONAdapter.d.ts +1 -1
- package/dist/adapters/story/CustomJSONAdapter.d.ts.map +1 -1
- package/dist/adapters/story/CustomJSONAdapter.js +20 -14
- package/dist/adapters/story/CustomJSONAdapter.js.map +1 -1
- package/dist/adapters/story/InkAdapter.d.ts +1 -1
- package/dist/adapters/story/InkAdapter.d.ts.map +1 -1
- package/dist/adapters/story/InkAdapter.js +7 -10
- package/dist/adapters/story/InkAdapter.js.map +1 -1
- package/dist/adapters/story/TwisonAdapter.d.ts +1 -1
- package/dist/adapters/story/TwisonAdapter.d.ts.map +1 -1
- package/dist/adapters/story/TwisonAdapter.js +2 -2
- package/dist/adapters/story/TwisonAdapter.js.map +1 -1
- package/dist/cli/audit.js +1 -0
- package/dist/cli/audit.js.map +1 -1
- package/dist/cli/import.d.ts.map +1 -1
- package/dist/cli/import.js +56 -20
- package/dist/cli/import.js.map +1 -1
- package/dist/cli/init.js +1 -0
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/perf.d.ts.map +1 -1
- package/dist/cli/perf.js +30 -0
- package/dist/cli/perf.js.map +1 -1
- package/dist/cli/play.d.ts.map +1 -1
- package/dist/cli/play.js +135 -60
- package/dist/cli/play.js.map +1 -1
- package/dist/engine/condition.d.ts +25 -3
- package/dist/engine/condition.d.ts.map +1 -1
- package/dist/engine/condition.js +358 -64
- package/dist/engine/condition.js.map +1 -1
- package/dist/engine/core.d.ts +109 -3
- package/dist/engine/core.d.ts.map +1 -1
- package/dist/engine/core.js +486 -36
- package/dist/engine/core.js.map +1 -1
- package/dist/engine/demo-story.d.ts +1 -0
- package/dist/engine/demo-story.d.ts.map +1 -1
- package/dist/engine/demo-story.js +1 -0
- package/dist/engine/demo-story.js.map +1 -1
- package/dist/engine/error-factory.d.ts +86 -0
- package/dist/engine/error-factory.d.ts.map +1 -0
- package/dist/engine/error-factory.js +87 -0
- package/dist/engine/error-factory.js.map +1 -0
- package/dist/engine/errors.d.ts +3 -0
- package/dist/engine/errors.d.ts.map +1 -1
- package/dist/engine/errors.js +3 -0
- package/dist/engine/errors.js.map +1 -1
- package/dist/engine/validation.js +1 -1
- package/dist/engine/validation.js.map +1 -1
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +34 -1
- package/dist/index.js.map +1 -1
- package/dist/integrations/react.d.ts +20 -3
- package/dist/integrations/react.d.ts.map +1 -1
- package/dist/integrations/react.js +15 -2
- package/dist/integrations/react.js.map +1 -1
- package/dist/narrative/branching/models.d.ts +1 -0
- package/dist/narrative/branching/models.d.ts.map +1 -1
- package/dist/narrative/branching/models.js.map +1 -1
- package/dist/performance/AdaptiveControllers.d.ts +51 -0
- package/dist/performance/AdaptiveControllers.d.ts.map +1 -0
- package/dist/performance/AdaptiveControllers.js +87 -0
- package/dist/performance/AdaptiveControllers.js.map +1 -0
- package/dist/performance/ContextPool.d.ts +1 -0
- package/dist/performance/ContextPool.d.ts.map +1 -0
- package/dist/performance/ContextPool.js +2 -0
- package/dist/performance/ContextPool.js.map +1 -0
- package/dist/performance/HotReloadDelta.d.ts +5 -0
- package/dist/performance/HotReloadDelta.d.ts.map +1 -1
- package/dist/performance/HotReloadDelta.js +18 -4
- package/dist/performance/HotReloadDelta.js.map +1 -1
- package/dist/performance/ObjectPool.d.ts.map +1 -1
- package/dist/performance/ObjectPool.js +4 -1
- package/dist/performance/ObjectPool.js.map +1 -1
- package/dist/performance/PerfReporter.d.ts +69 -0
- package/dist/performance/PerfReporter.d.ts.map +1 -1
- package/dist/performance/PerfReporter.js +314 -28
- package/dist/performance/PerfReporter.js.map +1 -1
- package/dist/performance/ThreadPool.d.ts +5 -0
- package/dist/performance/ThreadPool.d.ts.map +1 -1
- package/dist/performance/ThreadPool.js +33 -5
- package/dist/performance/ThreadPool.js.map +1 -1
- package/dist/persistence/StorageAdapters.d.ts.map +1 -1
- package/dist/persistence/StorageAdapters.js +13 -19
- package/dist/persistence/StorageAdapters.js.map +1 -1
- package/dist/qnce-engine.d.ts +2258 -0
- package/dist/quantum/entangler.d.ts +13 -0
- package/dist/quantum/entangler.d.ts.map +1 -0
- package/dist/quantum/entangler.js +24 -0
- package/dist/quantum/entangler.js.map +1 -0
- package/dist/quantum/flags.d.ts +24 -0
- package/dist/quantum/flags.d.ts.map +1 -0
- package/dist/quantum/flags.js +29 -0
- package/dist/quantum/flags.js.map +1 -0
- package/dist/quantum/integration.d.ts +26 -0
- package/dist/quantum/integration.d.ts.map +1 -0
- package/dist/quantum/integration.js +38 -0
- package/dist/quantum/integration.js.map +1 -0
- package/dist/quantum/measurement.d.ts +22 -0
- package/dist/quantum/measurement.d.ts.map +1 -0
- package/dist/quantum/measurement.js +44 -0
- package/dist/quantum/measurement.js.map +1 -0
- package/dist/quantum/phase.d.ts +20 -0
- package/dist/quantum/phase.d.ts.map +1 -0
- package/dist/quantum/phase.js +22 -0
- package/dist/quantum/phase.js.map +1 -0
- package/dist/quantum/types.d.ts +12 -0
- package/dist/quantum/types.d.ts.map +1 -0
- package/dist/quantum/types.js +5 -0
- package/dist/quantum/types.js.map +1 -0
- package/dist/schemas/validateStoryData.d.ts.map +1 -1
- package/dist/schemas/validateStoryData.js +8 -2
- package/dist/schemas/validateStoryData.js.map +1 -1
- package/dist/telemetry/core.d.ts +88 -0
- package/dist/telemetry/core.d.ts.map +1 -0
- package/dist/telemetry/core.js +303 -0
- package/dist/telemetry/core.js.map +1 -0
- package/dist/telemetry/types.d.ts +76 -0
- package/dist/telemetry/types.d.ts.map +1 -0
- package/dist/telemetry/types.js +4 -0
- package/dist/telemetry/types.js.map +1 -0
- package/dist/tsdoc-metadata.json +11 -0
- package/dist/ui/__tests__/AutosaveIndicator.test.js +10 -13
- package/dist/ui/__tests__/AutosaveIndicator.test.js.map +1 -1
- package/dist/ui/__tests__/UndoRedoControls.test.js +7 -9
- package/dist/ui/__tests__/UndoRedoControls.test.js.map +1 -1
- package/dist/ui/components/AutosaveIndicator.d.ts +1 -0
- package/dist/ui/components/AutosaveIndicator.d.ts.map +1 -1
- package/dist/ui/components/AutosaveIndicator.js +2 -1
- package/dist/ui/components/AutosaveIndicator.js.map +1 -1
- package/dist/ui/components/UndoRedoControls.d.ts +1 -0
- package/dist/ui/components/UndoRedoControls.d.ts.map +1 -1
- package/dist/ui/components/UndoRedoControls.js +1 -0
- package/dist/ui/components/UndoRedoControls.js.map +1 -1
- package/dist/ui/hooks/useKeyboardShortcuts.d.ts +1 -0
- package/dist/ui/hooks/useKeyboardShortcuts.d.ts.map +1 -1
- package/dist/ui/hooks/useKeyboardShortcuts.js +17 -5
- package/dist/ui/hooks/useKeyboardShortcuts.js.map +1 -1
- package/dist/ui/types.d.ts +6 -0
- package/dist/ui/types.d.ts.map +1 -1
- package/dist/ui/types.js +1 -0
- package/dist/ui/types.js.map +1 -1
- package/dist/utils/debug-logger.d.ts +20 -0
- package/dist/utils/debug-logger.d.ts.map +1 -0
- package/dist/utils/debug-logger.js +24 -0
- package/dist/utils/debug-logger.js.map +1 -0
- package/dist/utils/hot-profiler.d.ts +21 -0
- package/dist/utils/hot-profiler.d.ts.map +1 -0
- package/dist/utils/hot-profiler.js +36 -0
- package/dist/utils/hot-profiler.js.map +1 -0
- package/dist/utils/intern.d.ts +11 -0
- package/dist/utils/intern.d.ts.map +1 -0
- package/dist/utils/intern.js +45 -0
- package/dist/utils/intern.js.map +1 -0
- package/dist/utils/logger.d.ts +34 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +115 -0
- package/dist/utils/logger.js.map +1 -0
- package/docs/PERFORMANCE.md +330 -0
- package/examples/fluent-builder-prototype.ts +71 -0
- package/examples/quantum-integration-demo.ts +51 -0
- package/package.json +25 -9
package/dist/cli/play.js
CHANGED
|
@@ -1,68 +1,74 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
|
+
/* CLI logger integration replaces most console usage (remaining direct stdout writes are intentional). */
|
|
3
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
5
|
exports.playInteractive = main;
|
|
5
6
|
const fs_1 = require("fs");
|
|
6
7
|
const readline_1 = require("readline");
|
|
7
8
|
const core_js_1 = require("../engine/core.js");
|
|
9
|
+
const core_js_2 = require("../telemetry/core.js");
|
|
8
10
|
const StorageAdapters_js_1 = require("../persistence/StorageAdapters.js");
|
|
9
11
|
const demo_story_js_1 = require("../engine/demo-story.js");
|
|
12
|
+
const logger_1 = require("../utils/logger");
|
|
10
13
|
function displayNode(session) {
|
|
11
14
|
const { engine } = session;
|
|
12
15
|
const currentNode = engine.getCurrentNode();
|
|
13
16
|
const choices = engine.getAvailableChoices();
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
+
const logger = session.logger;
|
|
18
|
+
logger.info('\n' + '='.repeat(60));
|
|
19
|
+
logger.info(currentNode.text);
|
|
20
|
+
logger.info('='.repeat(60));
|
|
17
21
|
if (choices.length > 0) {
|
|
18
|
-
|
|
22
|
+
logger.info('\nChoices:');
|
|
19
23
|
choices.forEach((choice, index) => {
|
|
20
|
-
|
|
24
|
+
logger.info(`${index + 1}. ${choice.text}`);
|
|
21
25
|
});
|
|
22
26
|
}
|
|
23
27
|
else {
|
|
24
|
-
|
|
28
|
+
logger.info('\n[Story Complete]');
|
|
25
29
|
}
|
|
26
30
|
// Show undo/redo status
|
|
27
31
|
const undoCount = engine.getUndoCount();
|
|
28
32
|
const redoCount = engine.getRedoCount();
|
|
29
|
-
|
|
33
|
+
logger.info(`\nUndo: ${undoCount} available | Redo: ${redoCount} available`);
|
|
30
34
|
}
|
|
31
|
-
function displayHelp() {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
35
|
+
function displayHelp(logger = (0, logger_1.createLogger)()) {
|
|
36
|
+
logger.info('\nCommands:');
|
|
37
|
+
logger.info(' 1-9 : Select choice by number');
|
|
38
|
+
logger.info(' u, undo : Undo last action');
|
|
39
|
+
logger.info(' r, redo : Redo last undone action');
|
|
40
|
+
logger.info(' h, help : Show this help');
|
|
41
|
+
logger.info(' s, save : Save current state');
|
|
42
|
+
logger.info(' l, load : Load saved state');
|
|
43
|
+
logger.info(' f, flags: Show current flags');
|
|
44
|
+
logger.info(' hist : Show history summary');
|
|
45
|
+
logger.info(' q, quit : Exit the session');
|
|
42
46
|
}
|
|
43
47
|
function displayFlags(session) {
|
|
44
48
|
const { engine } = session;
|
|
45
49
|
const flags = engine.getState().flags;
|
|
46
|
-
|
|
50
|
+
const logger = session.logger;
|
|
51
|
+
logger.info('\n--- Current Flags ---');
|
|
47
52
|
if (Object.keys(flags).length === 0) {
|
|
48
|
-
|
|
53
|
+
logger.info('No flags set');
|
|
49
54
|
}
|
|
50
55
|
else {
|
|
51
56
|
Object.entries(flags).forEach(([key, value]) => {
|
|
52
|
-
|
|
57
|
+
logger.info(`${key}: ${JSON.stringify(value)}`);
|
|
53
58
|
});
|
|
54
59
|
}
|
|
55
60
|
}
|
|
56
61
|
function displayHistory(session) {
|
|
57
62
|
const { engine } = session;
|
|
58
63
|
const summary = engine.getHistorySummary();
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
64
|
+
const logger = session.logger;
|
|
65
|
+
logger.info('\n--- History Summary ---');
|
|
66
|
+
logger.info(`Undo entries: ${summary.undoEntries.length}`);
|
|
67
|
+
logger.info(`Redo entries: ${summary.redoEntries.length}`);
|
|
62
68
|
if (summary.undoEntries.length > 0) {
|
|
63
|
-
|
|
69
|
+
logger.info('\nRecent undo history:');
|
|
64
70
|
summary.undoEntries.slice(-5).forEach((entry, index) => {
|
|
65
|
-
|
|
71
|
+
logger.info(` ${index + 1}. ${entry.action || 'Action'} (${entry.timestamp})`);
|
|
66
72
|
});
|
|
67
73
|
}
|
|
68
74
|
}
|
|
@@ -76,10 +82,11 @@ async function saveState(session) {
|
|
|
76
82
|
includeFlowEvents: true
|
|
77
83
|
});
|
|
78
84
|
require('fs').writeFileSync(saveFile, JSON.stringify(serializedState, null, 2));
|
|
79
|
-
|
|
85
|
+
session.logger.success(`State saved to ${saveFile}`);
|
|
80
86
|
}
|
|
81
87
|
catch (error) {
|
|
82
|
-
|
|
88
|
+
const msg = error && typeof error === 'object' && 'message' in error ? String(error.message) : String(error);
|
|
89
|
+
session.logger.error(`Failed to save state: ${msg}`);
|
|
83
90
|
}
|
|
84
91
|
resolve();
|
|
85
92
|
});
|
|
@@ -94,11 +101,12 @@ async function loadState(session) {
|
|
|
94
101
|
const data = (0, fs_1.readFileSync)(loadFile, 'utf-8');
|
|
95
102
|
const serializedState = JSON.parse(data);
|
|
96
103
|
await engine.loadState(serializedState);
|
|
97
|
-
|
|
104
|
+
session.logger.success(`State loaded from ${loadFile}`);
|
|
98
105
|
displayNode(session);
|
|
99
106
|
}
|
|
100
107
|
catch (error) {
|
|
101
|
-
|
|
108
|
+
const msg = error && typeof error === 'object' && 'message' in error ? String(error.message) : String(error);
|
|
109
|
+
session.logger.error(`Failed to load state: ${msg}`);
|
|
102
110
|
}
|
|
103
111
|
resolve();
|
|
104
112
|
});
|
|
@@ -124,11 +132,11 @@ function handleCommand(session, input) {
|
|
|
124
132
|
case 'undo':
|
|
125
133
|
const undoResult = engine.undo();
|
|
126
134
|
if (undoResult.success) {
|
|
127
|
-
|
|
135
|
+
session.logger.success(`Undid: ${undoResult.entry?.action || 'action'}`);
|
|
128
136
|
displayNode(session);
|
|
129
137
|
}
|
|
130
138
|
else {
|
|
131
|
-
|
|
139
|
+
session.logger.warn('Nothing to undo');
|
|
132
140
|
}
|
|
133
141
|
resolve(false);
|
|
134
142
|
break;
|
|
@@ -136,11 +144,11 @@ function handleCommand(session, input) {
|
|
|
136
144
|
case 'redo':
|
|
137
145
|
const redoResult = engine.redo();
|
|
138
146
|
if (redoResult.success) {
|
|
139
|
-
|
|
147
|
+
session.logger.success(`Redid: ${redoResult.entry?.action || 'action'}`);
|
|
140
148
|
displayNode(session);
|
|
141
149
|
}
|
|
142
150
|
else {
|
|
143
|
-
|
|
151
|
+
session.logger.warn('Nothing to redo');
|
|
144
152
|
}
|
|
145
153
|
resolve(false);
|
|
146
154
|
break;
|
|
@@ -168,11 +176,11 @@ function handleCommand(session, input) {
|
|
|
168
176
|
break;
|
|
169
177
|
case 'q':
|
|
170
178
|
case 'quit':
|
|
171
|
-
|
|
179
|
+
session.logger.info('👋 Thanks for playing!');
|
|
172
180
|
resolve(true);
|
|
173
181
|
break;
|
|
174
182
|
default:
|
|
175
|
-
|
|
183
|
+
session.logger.warn('Unknown command. Type "help" for available commands.');
|
|
176
184
|
resolve(false);
|
|
177
185
|
break;
|
|
178
186
|
}
|
|
@@ -180,8 +188,8 @@ function handleCommand(session, input) {
|
|
|
180
188
|
}
|
|
181
189
|
async function startInteractiveSession(session) {
|
|
182
190
|
const { rl } = session;
|
|
183
|
-
|
|
184
|
-
|
|
191
|
+
session.logger.info('🎮 QNCE Interactive Session Started');
|
|
192
|
+
session.logger.info('Type "help" for available commands');
|
|
185
193
|
// Configure undo/redo and autosave
|
|
186
194
|
session.engine.configureUndoRedo({
|
|
187
195
|
enabled: true,
|
|
@@ -215,19 +223,33 @@ async function startInteractiveSession(session) {
|
|
|
215
223
|
}
|
|
216
224
|
function main() {
|
|
217
225
|
const args = process.argv.slice(2);
|
|
226
|
+
const quiet = args.includes('--quiet');
|
|
227
|
+
const verbose = args.includes('--verbose');
|
|
228
|
+
const logger = (0, logger_1.createLogger)({ level: (0, logger_1.deriveLogLevel)({ quiet, verbose }) });
|
|
218
229
|
if (args.includes('--help') || args.includes('-h')) {
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
displayHelp();
|
|
230
|
+
logger.info('QNCE Interactive CLI');
|
|
231
|
+
logger.info('Usage: qnce-play [story-file.json] [--storage <type>] [--storage-prefix <p>] [--storage-dir <dir>] [--storage-db <name>] [--non-interactive] [--save-key <key>] [--load-key <key>] [--telemetry <console|file|none>] [--telemetry-file <path>] [--telemetry-sample <0..1>] [--telemetry-report] [--quiet|--verbose]');
|
|
232
|
+
logger.info('');
|
|
233
|
+
logger.info('If no story file is provided, the demo story will be used.');
|
|
234
|
+
logger.info('');
|
|
235
|
+
logger.info('Commands during play:');
|
|
236
|
+
displayHelp(logger);
|
|
226
237
|
return;
|
|
227
238
|
}
|
|
228
239
|
let storyData;
|
|
229
240
|
// Parse args to find a positional story file (skip option values)
|
|
230
|
-
const optsWithValue = new Set([
|
|
241
|
+
const optsWithValue = new Set([
|
|
242
|
+
'--storage',
|
|
243
|
+
'--storage-prefix',
|
|
244
|
+
'--storage-dir',
|
|
245
|
+
'--storage-db',
|
|
246
|
+
'--save-key',
|
|
247
|
+
'--load-key',
|
|
248
|
+
// telemetry flags with values
|
|
249
|
+
'--telemetry',
|
|
250
|
+
'--telemetry-file',
|
|
251
|
+
'--telemetry-sample'
|
|
252
|
+
]);
|
|
231
253
|
let storyFile;
|
|
232
254
|
for (let i = 0; i < args.length; i++) {
|
|
233
255
|
const a = args[i];
|
|
@@ -242,20 +264,33 @@ function main() {
|
|
|
242
264
|
}
|
|
243
265
|
if (storyFile) {
|
|
244
266
|
try {
|
|
245
|
-
|
|
267
|
+
logger.info(`Loading story: ${storyFile}`);
|
|
246
268
|
const jsonData = JSON.parse((0, fs_1.readFileSync)(storyFile, 'utf-8'));
|
|
247
269
|
storyData = (0, core_js_1.loadStoryData)(jsonData);
|
|
248
270
|
}
|
|
249
271
|
catch (error) {
|
|
250
|
-
|
|
272
|
+
logger.error(`Failed to load story file: ${error?.message || error}`);
|
|
251
273
|
process.exit(1);
|
|
252
274
|
}
|
|
253
275
|
}
|
|
254
276
|
else {
|
|
255
|
-
|
|
277
|
+
logger.info('Using demo story');
|
|
256
278
|
storyData = demo_story_js_1.DEMO_STORY;
|
|
257
279
|
}
|
|
258
|
-
|
|
280
|
+
// Telemetry flags
|
|
281
|
+
const telemetryIdx = args.indexOf('--telemetry');
|
|
282
|
+
const telemetryKind = telemetryIdx >= 0 ? (args[telemetryIdx + 1] || 'none') : 'none';
|
|
283
|
+
const telemetrySampleIdx = args.indexOf('--telemetry-sample');
|
|
284
|
+
const telemetrySample = telemetrySampleIdx >= 0 ? Math.max(0, Math.min(1, parseFloat(args[telemetrySampleIdx + 1]))) : undefined;
|
|
285
|
+
const telemetryFileIdx = args.indexOf('--telemetry-file');
|
|
286
|
+
const telemetryPath = telemetryFileIdx >= 0 ? args[telemetryFileIdx + 1] : undefined;
|
|
287
|
+
const telemetryReport = args.includes('--telemetry-report');
|
|
288
|
+
let telemetry;
|
|
289
|
+
if (telemetryKind && telemetryKind !== 'none') {
|
|
290
|
+
const adapter = telemetryKind === 'file' ? (0, core_js_2.createTelemetryAdapter)('file', { path: telemetryPath || 'qnce-telemetry.ndjson' }) : (0, core_js_2.createTelemetryAdapter)('console');
|
|
291
|
+
telemetry = (0, core_js_2.createTelemetry)({ adapter, enabled: true, sampleRate: telemetrySample ?? (process.env.NODE_ENV === 'production' ? 0 : 0.25), defaultCtx: { engineVersion: '1.3.2', env: process.env.NODE_ENV || 'dev', sessionId: '' } });
|
|
292
|
+
}
|
|
293
|
+
const engine = (0, core_js_1.createQNCEEngine)(storyData, undefined, false, undefined, telemetry ? { telemetry, env: process.env.NODE_ENV || 'dev' } : undefined);
|
|
259
294
|
// Storage adapter selection
|
|
260
295
|
const storageIdx = args.indexOf('--storage');
|
|
261
296
|
const storageType = storageIdx >= 0 ? args[storageIdx + 1] : undefined;
|
|
@@ -273,10 +308,11 @@ function main() {
|
|
|
273
308
|
adapterOptions.databaseName = args[idxDb + 1];
|
|
274
309
|
const adapter = (0, StorageAdapters_js_1.createStorageAdapter)(storageType, adapterOptions);
|
|
275
310
|
engine.attachStorageAdapter?.(adapter);
|
|
276
|
-
|
|
311
|
+
logger.success(`Storage adapter attached: ${storageType}`);
|
|
312
|
+
// Always print attachment line to stdout so tests relying on substring pass even in quiet
|
|
277
313
|
}
|
|
278
314
|
catch (e) {
|
|
279
|
-
|
|
315
|
+
logger.error(`Failed to attach storage adapter '${storageType}': ${e?.message || e}`);
|
|
280
316
|
process.exit(1);
|
|
281
317
|
}
|
|
282
318
|
}
|
|
@@ -292,19 +328,19 @@ function main() {
|
|
|
292
328
|
if (loadKey) {
|
|
293
329
|
if (engine.loadFromStorage) {
|
|
294
330
|
await engine.loadFromStorage(loadKey);
|
|
295
|
-
|
|
331
|
+
logger.success(`Loaded state from key '${loadKey}'`);
|
|
296
332
|
}
|
|
297
333
|
else {
|
|
298
|
-
|
|
334
|
+
logger.warn('No storage adapter attached; cannot load');
|
|
299
335
|
}
|
|
300
336
|
}
|
|
301
337
|
if (saveKey) {
|
|
302
338
|
if (engine.saveToStorage) {
|
|
303
339
|
await engine.saveToStorage(saveKey);
|
|
304
|
-
|
|
340
|
+
logger.success(`Saved state to key '${saveKey}'`);
|
|
305
341
|
}
|
|
306
342
|
else {
|
|
307
|
-
|
|
343
|
+
logger.warn('No storage adapter attached; cannot save');
|
|
308
344
|
}
|
|
309
345
|
}
|
|
310
346
|
const summary = {
|
|
@@ -316,11 +352,28 @@ function main() {
|
|
|
316
352
|
}
|
|
317
353
|
catch { }
|
|
318
354
|
}
|
|
319
|
-
|
|
355
|
+
process.stdout.write(JSON.stringify(summary) + '\n');
|
|
356
|
+
// If telemetry report requested in non-interactive mode, print it here before exit
|
|
357
|
+
if (telemetry && telemetryReport) {
|
|
358
|
+
await telemetry.flush();
|
|
359
|
+
const s = telemetry.stats();
|
|
360
|
+
logger.info('\nTelemetry Report');
|
|
361
|
+
logger.info('----------------');
|
|
362
|
+
logger.info(`queued : ${s.queued}`);
|
|
363
|
+
logger.info(`sent : ${s.sent}`);
|
|
364
|
+
logger.info(`dropped:${s.dropped}`);
|
|
365
|
+
if (typeof s.p50 === 'number' || typeof s.p95 === 'number') {
|
|
366
|
+
logger.info(`p50 send latency: ${s.p50 ?? 'n/a'} ms`);
|
|
367
|
+
logger.info(`p95 send latency: ${s.p95 ?? 'n/a'} ms`);
|
|
368
|
+
logger.info('\nBatch send latency (ms):');
|
|
369
|
+
logger.info(`p50: ${s.p50 ?? 'n/a'} | p95: ${s.p95 ?? 'n/a'}`);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
320
372
|
process.exit(0);
|
|
321
373
|
}
|
|
322
374
|
catch (error) {
|
|
323
|
-
|
|
375
|
+
const msg = error && typeof error === 'object' && 'message' in error ? String(error.message) : String(error);
|
|
376
|
+
logger.error(`Non-interactive run failed: ${msg}`);
|
|
324
377
|
process.exit(1);
|
|
325
378
|
}
|
|
326
379
|
})();
|
|
@@ -330,11 +383,33 @@ function main() {
|
|
|
330
383
|
input: process.stdin,
|
|
331
384
|
output: process.stdout
|
|
332
385
|
});
|
|
333
|
-
const session = { engine, rl };
|
|
386
|
+
const session = Object.assign({ engine, rl, telemetry }, { logger });
|
|
334
387
|
startInteractiveSession(session).catch((error) => {
|
|
335
|
-
|
|
388
|
+
const msg = error && typeof error === 'object' && 'message' in error ? String(error.message) : String(error);
|
|
389
|
+
logger.error(`Session error: ${msg}`);
|
|
336
390
|
process.exit(1);
|
|
337
391
|
});
|
|
392
|
+
// Print telemetry report on exit
|
|
393
|
+
if (telemetry && telemetryReport) {
|
|
394
|
+
process.on('beforeExit', async () => {
|
|
395
|
+
await telemetry.flush();
|
|
396
|
+
const s = telemetry.stats();
|
|
397
|
+
// Minimal ASCII report
|
|
398
|
+
logger.info('\nTelemetry Report');
|
|
399
|
+
logger.info('----------------');
|
|
400
|
+
logger.info(`queued : ${s.queued}`);
|
|
401
|
+
logger.info(`sent : ${s.sent}`);
|
|
402
|
+
logger.info(`dropped:${s.dropped}`);
|
|
403
|
+
if (typeof s.p50 === 'number' || typeof s.p95 === 'number') {
|
|
404
|
+
logger.info(`p50 send latency: ${s.p50 ?? 'n/a'} ms`);
|
|
405
|
+
logger.info(`p95 send latency: ${s.p95 ?? 'n/a'} ms`);
|
|
406
|
+
}
|
|
407
|
+
if (typeof s.p50 === 'number' || typeof s.p95 === 'number') {
|
|
408
|
+
logger.info('\nBatch send latency (ms):');
|
|
409
|
+
logger.info(`p50: ${s.p50 ?? 'n/a'} | p95: ${s.p95 ?? 'n/a'}`);
|
|
410
|
+
}
|
|
411
|
+
});
|
|
412
|
+
}
|
|
338
413
|
}
|
|
339
414
|
// Run if called directly
|
|
340
415
|
if (process.argv[1] && process.argv[1].endsWith('play.js')) {
|
package/dist/cli/play.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"play.js","sourceRoot":"","sources":["../../src/cli/play.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"play.js","sourceRoot":"","sources":["../../src/cli/play.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { QNCEState } from './core';
|
|
2
2
|
/**
|
|
3
3
|
* Error thrown when condition evaluation fails
|
|
4
|
+
* @public
|
|
4
5
|
*/
|
|
5
6
|
export declare class ConditionEvaluationError extends Error {
|
|
6
7
|
readonly expression?: string | undefined;
|
|
@@ -9,6 +10,7 @@ export declare class ConditionEvaluationError extends Error {
|
|
|
9
10
|
}
|
|
10
11
|
/**
|
|
11
12
|
* Context object passed to condition evaluators
|
|
13
|
+
* @public
|
|
12
14
|
*/
|
|
13
15
|
export interface ConditionContext {
|
|
14
16
|
/** Current engine state */
|
|
@@ -20,15 +22,26 @@ export interface ConditionContext {
|
|
|
20
22
|
}
|
|
21
23
|
/**
|
|
22
24
|
* Custom evaluator function signature
|
|
25
|
+
* @public
|
|
23
26
|
*/
|
|
24
27
|
export type CustomEvaluatorFunction = (expression: string, context: ConditionContext) => boolean;
|
|
25
28
|
/**
|
|
26
29
|
* Condition evaluator service for parsing and executing conditional expressions
|
|
30
|
+
* @public
|
|
27
31
|
*/
|
|
28
32
|
export declare class ConditionEvaluator {
|
|
29
33
|
private customEvaluator?;
|
|
30
|
-
private
|
|
34
|
+
private tokenCache;
|
|
31
35
|
private maxCacheSize;
|
|
36
|
+
private expressionCache;
|
|
37
|
+
private maxExpressionCacheSize;
|
|
38
|
+
private contextPool;
|
|
39
|
+
private maxContextPoolSize;
|
|
40
|
+
private poolingEnabled;
|
|
41
|
+
/** @internal Enable/disable context pooling (engine toggles in perf mode) */
|
|
42
|
+
enablePooling(enable: boolean): void;
|
|
43
|
+
/** @internal Adjust pool cap during tuning */
|
|
44
|
+
setMaxContextPoolSize(size: number): void;
|
|
32
45
|
/**
|
|
33
46
|
* Set a custom evaluator function for handling complex conditions
|
|
34
47
|
*/
|
|
@@ -42,17 +55,25 @@ export declare class ConditionEvaluator {
|
|
|
42
55
|
*/
|
|
43
56
|
evaluate(expression: string, context: ConditionContext): boolean;
|
|
44
57
|
/**
|
|
45
|
-
* Built-in expression evaluator
|
|
58
|
+
* Built-in expression evaluator – uses the safe recursive-descent parser;
|
|
59
|
+
* no dynamic code generation (no eval / new Function).
|
|
46
60
|
*/
|
|
47
61
|
private evaluateBuiltIn;
|
|
62
|
+
/** Return cached token array for expression, tokenizing and caching if needed. */
|
|
63
|
+
private getTokens;
|
|
48
64
|
/**
|
|
49
|
-
* Sanitize expression to prevent code injection
|
|
65
|
+
* Sanitize expression to prevent code injection (defense-in-depth layer).
|
|
66
|
+
* The safe parser already rejects non-whitelisted identifiers; this check
|
|
67
|
+
* provides an early, explicit rejection with a clearer error message.
|
|
50
68
|
*/
|
|
51
69
|
private sanitizeExpression;
|
|
70
|
+
/** Normalize + intern expression with LRU retention */
|
|
71
|
+
private internAndNormalize;
|
|
52
72
|
/**
|
|
53
73
|
* Create a safe evaluation context from the condition context
|
|
54
74
|
*/
|
|
55
75
|
private createEvaluationContext;
|
|
76
|
+
private releaseEvaluationContext;
|
|
56
77
|
/**
|
|
57
78
|
* Validate that an expression is syntactically correct without evaluating it
|
|
58
79
|
*/
|
|
@@ -65,5 +86,6 @@ export declare class ConditionEvaluator {
|
|
|
65
86
|
*/
|
|
66
87
|
getReferencedFlags(expression: string): string[];
|
|
67
88
|
}
|
|
89
|
+
/** @public */
|
|
68
90
|
export declare const conditionEvaluator: ConditionEvaluator;
|
|
69
91
|
//# sourceMappingURL=condition.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../src/engine/condition.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../src/engine/condition.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGnC;;;GAGG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;aACJ,UAAU,CAAC,EAAE,MAAM;aAAkB,KAAK,CAAC,EAAE,KAAK;gBAAnF,OAAO,EAAE,MAAM,EAAkB,UAAU,CAAC,EAAE,MAAM,YAAA,EAAkB,KAAK,CAAC,EAAE,KAAK,YAAA;CAIhG;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC;AAuQjG;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,eAAe,CAAC,CAA0B;IAGlD,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,YAAY,CAAO;IAG3B,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,sBAAsB,CAAO;IAGrC,OAAO,CAAC,WAAW,CAKX;IACR,OAAO,CAAC,kBAAkB,CAAM;IAChC,OAAO,CAAC,cAAc,CAAS;IAE/B,6EAA6E;IAC7E,aAAa,CAAC,MAAM,EAAE,OAAO;IAC7B,8CAA8C;IAC9C,qBAAqB,CAAC,IAAI,EAAE,MAAM;IAElC;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,uBAAuB,GAAG,IAAI;IAI5D;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAI5B;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO;IAkBhE;;;OAGG;IACH,OAAO,CAAC,eAAe;IAmCvB,kFAAkF;IAClF,OAAO,CAAC,SAAS;IAqBjB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IA6B1B,uDAAuD;IACvD,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAuB/B,OAAO,CAAC,wBAAwB;IAQhC;;OAEG;IACH,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAsB1E;;OAEG;IACH,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;CAWjD;AAGD,cAAc;AACd,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
|