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.
Files changed (168) hide show
  1. package/README.md +136 -2
  2. package/dist/adapters/contracts.d.ts +1 -1
  3. package/dist/adapters/contracts.d.ts.map +1 -1
  4. package/dist/adapters/storage/MockAdapters.d.ts +89 -0
  5. package/dist/adapters/storage/MockAdapters.d.ts.map +1 -0
  6. package/dist/adapters/storage/MockAdapters.js +109 -0
  7. package/dist/adapters/storage/MockAdapters.js.map +1 -0
  8. package/dist/adapters/story/CustomJSONAdapter.d.ts +1 -1
  9. package/dist/adapters/story/CustomJSONAdapter.d.ts.map +1 -1
  10. package/dist/adapters/story/CustomJSONAdapter.js +20 -14
  11. package/dist/adapters/story/CustomJSONAdapter.js.map +1 -1
  12. package/dist/adapters/story/InkAdapter.d.ts +1 -1
  13. package/dist/adapters/story/InkAdapter.d.ts.map +1 -1
  14. package/dist/adapters/story/InkAdapter.js +7 -10
  15. package/dist/adapters/story/InkAdapter.js.map +1 -1
  16. package/dist/adapters/story/TwisonAdapter.d.ts +1 -1
  17. package/dist/adapters/story/TwisonAdapter.d.ts.map +1 -1
  18. package/dist/adapters/story/TwisonAdapter.js +2 -2
  19. package/dist/adapters/story/TwisonAdapter.js.map +1 -1
  20. package/dist/cli/audit.js +1 -0
  21. package/dist/cli/audit.js.map +1 -1
  22. package/dist/cli/import.d.ts.map +1 -1
  23. package/dist/cli/import.js +56 -20
  24. package/dist/cli/import.js.map +1 -1
  25. package/dist/cli/init.js +1 -0
  26. package/dist/cli/init.js.map +1 -1
  27. package/dist/cli/perf.d.ts.map +1 -1
  28. package/dist/cli/perf.js +30 -0
  29. package/dist/cli/perf.js.map +1 -1
  30. package/dist/cli/play.d.ts.map +1 -1
  31. package/dist/cli/play.js +135 -60
  32. package/dist/cli/play.js.map +1 -1
  33. package/dist/engine/condition.d.ts +25 -3
  34. package/dist/engine/condition.d.ts.map +1 -1
  35. package/dist/engine/condition.js +358 -64
  36. package/dist/engine/condition.js.map +1 -1
  37. package/dist/engine/core.d.ts +109 -3
  38. package/dist/engine/core.d.ts.map +1 -1
  39. package/dist/engine/core.js +486 -36
  40. package/dist/engine/core.js.map +1 -1
  41. package/dist/engine/demo-story.d.ts +1 -0
  42. package/dist/engine/demo-story.d.ts.map +1 -1
  43. package/dist/engine/demo-story.js +1 -0
  44. package/dist/engine/demo-story.js.map +1 -1
  45. package/dist/engine/error-factory.d.ts +86 -0
  46. package/dist/engine/error-factory.d.ts.map +1 -0
  47. package/dist/engine/error-factory.js +87 -0
  48. package/dist/engine/error-factory.js.map +1 -0
  49. package/dist/engine/errors.d.ts +3 -0
  50. package/dist/engine/errors.d.ts.map +1 -1
  51. package/dist/engine/errors.js +3 -0
  52. package/dist/engine/errors.js.map +1 -1
  53. package/dist/engine/validation.js +1 -1
  54. package/dist/engine/validation.js.map +1 -1
  55. package/dist/index.d.ts +22 -0
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +34 -1
  58. package/dist/index.js.map +1 -1
  59. package/dist/integrations/react.d.ts +20 -3
  60. package/dist/integrations/react.d.ts.map +1 -1
  61. package/dist/integrations/react.js +15 -2
  62. package/dist/integrations/react.js.map +1 -1
  63. package/dist/narrative/branching/models.d.ts +1 -0
  64. package/dist/narrative/branching/models.d.ts.map +1 -1
  65. package/dist/narrative/branching/models.js.map +1 -1
  66. package/dist/performance/AdaptiveControllers.d.ts +51 -0
  67. package/dist/performance/AdaptiveControllers.d.ts.map +1 -0
  68. package/dist/performance/AdaptiveControllers.js +87 -0
  69. package/dist/performance/AdaptiveControllers.js.map +1 -0
  70. package/dist/performance/ContextPool.d.ts +1 -0
  71. package/dist/performance/ContextPool.d.ts.map +1 -0
  72. package/dist/performance/ContextPool.js +2 -0
  73. package/dist/performance/ContextPool.js.map +1 -0
  74. package/dist/performance/HotReloadDelta.d.ts +5 -0
  75. package/dist/performance/HotReloadDelta.d.ts.map +1 -1
  76. package/dist/performance/HotReloadDelta.js +18 -4
  77. package/dist/performance/HotReloadDelta.js.map +1 -1
  78. package/dist/performance/ObjectPool.d.ts.map +1 -1
  79. package/dist/performance/ObjectPool.js +4 -1
  80. package/dist/performance/ObjectPool.js.map +1 -1
  81. package/dist/performance/PerfReporter.d.ts +69 -0
  82. package/dist/performance/PerfReporter.d.ts.map +1 -1
  83. package/dist/performance/PerfReporter.js +314 -28
  84. package/dist/performance/PerfReporter.js.map +1 -1
  85. package/dist/performance/ThreadPool.d.ts +5 -0
  86. package/dist/performance/ThreadPool.d.ts.map +1 -1
  87. package/dist/performance/ThreadPool.js +33 -5
  88. package/dist/performance/ThreadPool.js.map +1 -1
  89. package/dist/persistence/StorageAdapters.d.ts.map +1 -1
  90. package/dist/persistence/StorageAdapters.js +13 -19
  91. package/dist/persistence/StorageAdapters.js.map +1 -1
  92. package/dist/qnce-engine.d.ts +2258 -0
  93. package/dist/quantum/entangler.d.ts +13 -0
  94. package/dist/quantum/entangler.d.ts.map +1 -0
  95. package/dist/quantum/entangler.js +24 -0
  96. package/dist/quantum/entangler.js.map +1 -0
  97. package/dist/quantum/flags.d.ts +24 -0
  98. package/dist/quantum/flags.d.ts.map +1 -0
  99. package/dist/quantum/flags.js +29 -0
  100. package/dist/quantum/flags.js.map +1 -0
  101. package/dist/quantum/integration.d.ts +26 -0
  102. package/dist/quantum/integration.d.ts.map +1 -0
  103. package/dist/quantum/integration.js +38 -0
  104. package/dist/quantum/integration.js.map +1 -0
  105. package/dist/quantum/measurement.d.ts +22 -0
  106. package/dist/quantum/measurement.d.ts.map +1 -0
  107. package/dist/quantum/measurement.js +44 -0
  108. package/dist/quantum/measurement.js.map +1 -0
  109. package/dist/quantum/phase.d.ts +20 -0
  110. package/dist/quantum/phase.d.ts.map +1 -0
  111. package/dist/quantum/phase.js +22 -0
  112. package/dist/quantum/phase.js.map +1 -0
  113. package/dist/quantum/types.d.ts +12 -0
  114. package/dist/quantum/types.d.ts.map +1 -0
  115. package/dist/quantum/types.js +5 -0
  116. package/dist/quantum/types.js.map +1 -0
  117. package/dist/schemas/validateStoryData.d.ts.map +1 -1
  118. package/dist/schemas/validateStoryData.js +8 -2
  119. package/dist/schemas/validateStoryData.js.map +1 -1
  120. package/dist/telemetry/core.d.ts +88 -0
  121. package/dist/telemetry/core.d.ts.map +1 -0
  122. package/dist/telemetry/core.js +303 -0
  123. package/dist/telemetry/core.js.map +1 -0
  124. package/dist/telemetry/types.d.ts +76 -0
  125. package/dist/telemetry/types.d.ts.map +1 -0
  126. package/dist/telemetry/types.js +4 -0
  127. package/dist/telemetry/types.js.map +1 -0
  128. package/dist/tsdoc-metadata.json +11 -0
  129. package/dist/ui/__tests__/AutosaveIndicator.test.js +10 -13
  130. package/dist/ui/__tests__/AutosaveIndicator.test.js.map +1 -1
  131. package/dist/ui/__tests__/UndoRedoControls.test.js +7 -9
  132. package/dist/ui/__tests__/UndoRedoControls.test.js.map +1 -1
  133. package/dist/ui/components/AutosaveIndicator.d.ts +1 -0
  134. package/dist/ui/components/AutosaveIndicator.d.ts.map +1 -1
  135. package/dist/ui/components/AutosaveIndicator.js +2 -1
  136. package/dist/ui/components/AutosaveIndicator.js.map +1 -1
  137. package/dist/ui/components/UndoRedoControls.d.ts +1 -0
  138. package/dist/ui/components/UndoRedoControls.d.ts.map +1 -1
  139. package/dist/ui/components/UndoRedoControls.js +1 -0
  140. package/dist/ui/components/UndoRedoControls.js.map +1 -1
  141. package/dist/ui/hooks/useKeyboardShortcuts.d.ts +1 -0
  142. package/dist/ui/hooks/useKeyboardShortcuts.d.ts.map +1 -1
  143. package/dist/ui/hooks/useKeyboardShortcuts.js +17 -5
  144. package/dist/ui/hooks/useKeyboardShortcuts.js.map +1 -1
  145. package/dist/ui/types.d.ts +6 -0
  146. package/dist/ui/types.d.ts.map +1 -1
  147. package/dist/ui/types.js +1 -0
  148. package/dist/ui/types.js.map +1 -1
  149. package/dist/utils/debug-logger.d.ts +20 -0
  150. package/dist/utils/debug-logger.d.ts.map +1 -0
  151. package/dist/utils/debug-logger.js +24 -0
  152. package/dist/utils/debug-logger.js.map +1 -0
  153. package/dist/utils/hot-profiler.d.ts +21 -0
  154. package/dist/utils/hot-profiler.d.ts.map +1 -0
  155. package/dist/utils/hot-profiler.js +36 -0
  156. package/dist/utils/hot-profiler.js.map +1 -0
  157. package/dist/utils/intern.d.ts +11 -0
  158. package/dist/utils/intern.d.ts.map +1 -0
  159. package/dist/utils/intern.js +45 -0
  160. package/dist/utils/intern.js.map +1 -0
  161. package/dist/utils/logger.d.ts +34 -0
  162. package/dist/utils/logger.d.ts.map +1 -0
  163. package/dist/utils/logger.js +115 -0
  164. package/dist/utils/logger.js.map +1 -0
  165. package/docs/PERFORMANCE.md +330 -0
  166. package/examples/fluent-builder-prototype.ts +71 -0
  167. package/examples/quantum-integration-demo.ts +51 -0
  168. 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
- console.log('\n' + '='.repeat(60));
15
- console.log(currentNode.text);
16
- console.log('='.repeat(60));
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
- console.log('\nChoices:');
22
+ logger.info('\nChoices:');
19
23
  choices.forEach((choice, index) => {
20
- console.log(`${index + 1}. ${choice.text}`);
24
+ logger.info(`${index + 1}. ${choice.text}`);
21
25
  });
22
26
  }
23
27
  else {
24
- console.log('\n[Story Complete]');
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
- console.log(`\nUndo: ${undoCount} available | Redo: ${redoCount} available`);
33
+ logger.info(`\nUndo: ${undoCount} available | Redo: ${redoCount} available`);
30
34
  }
31
- function displayHelp() {
32
- console.log('\nCommands:');
33
- console.log(' 1-9 : Select choice by number');
34
- console.log(' u, undo : Undo last action');
35
- console.log(' r, redo : Redo last undone action');
36
- console.log(' h, help : Show this help');
37
- console.log(' s, save : Save current state');
38
- console.log(' l, load : Load saved state');
39
- console.log(' f, flags: Show current flags');
40
- console.log(' hist : Show history summary');
41
- console.log(' q, quit : Exit the session');
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
- console.log('\n--- Current Flags ---');
50
+ const logger = session.logger;
51
+ logger.info('\n--- Current Flags ---');
47
52
  if (Object.keys(flags).length === 0) {
48
- console.log('No flags set');
53
+ logger.info('No flags set');
49
54
  }
50
55
  else {
51
56
  Object.entries(flags).forEach(([key, value]) => {
52
- console.log(`${key}: ${JSON.stringify(value)}`);
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
- console.log('\n--- History Summary ---');
60
- console.log(`Undo entries: ${summary.undoEntries.length}`);
61
- console.log(`Redo entries: ${summary.redoEntries.length}`);
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
- console.log('\nRecent undo history:');
69
+ logger.info('\nRecent undo history:');
64
70
  summary.undoEntries.slice(-5).forEach((entry, index) => {
65
- console.log(` ${index + 1}. ${entry.action || 'Action'} (${entry.timestamp})`);
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
- console.log(`✅ State saved to ${saveFile}`);
85
+ session.logger.success(`State saved to ${saveFile}`);
80
86
  }
81
87
  catch (error) {
82
- console.error('❌ Failed to save state:', error?.message || error);
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
- console.log(`✅ State loaded from ${loadFile}`);
104
+ session.logger.success(`State loaded from ${loadFile}`);
98
105
  displayNode(session);
99
106
  }
100
107
  catch (error) {
101
- console.error('❌ Failed to load state:', error?.message || error);
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
- console.log(`✅ Undid: ${undoResult.entry?.action || 'action'}`);
135
+ session.logger.success(`Undid: ${undoResult.entry?.action || 'action'}`);
128
136
  displayNode(session);
129
137
  }
130
138
  else {
131
- console.log('Nothing to undo');
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
- console.log(`✅ Redid: ${redoResult.entry?.action || 'action'}`);
147
+ session.logger.success(`Redid: ${redoResult.entry?.action || 'action'}`);
140
148
  displayNode(session);
141
149
  }
142
150
  else {
143
- console.log('Nothing to redo');
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
- console.log('👋 Thanks for playing!');
179
+ session.logger.info('👋 Thanks for playing!');
172
180
  resolve(true);
173
181
  break;
174
182
  default:
175
- console.log('Unknown command. Type "help" for available commands.');
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
- console.log('🎮 QNCE Interactive Session Started');
184
- console.log('Type "help" for available commands');
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
- console.log('QNCE Interactive CLI');
220
- console.log('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>]');
221
- console.log('');
222
- console.log('If no story file is provided, the demo story will be used.');
223
- console.log('');
224
- console.log('Commands during play:');
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(['--storage', '--storage-prefix', '--storage-dir', '--storage-db', '--save-key', '--load-key']);
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
- console.log(`📖 Loading story: ${storyFile}`);
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
- console.error(`❌ Failed to load story file: ${error?.message || error}`);
272
+ logger.error(`Failed to load story file: ${error?.message || error}`);
251
273
  process.exit(1);
252
274
  }
253
275
  }
254
276
  else {
255
- console.log('📖 Using demo story');
277
+ logger.info('Using demo story');
256
278
  storyData = demo_story_js_1.DEMO_STORY;
257
279
  }
258
- const engine = (0, core_js_1.createQNCEEngine)(storyData);
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
- console.log(`💾 Storage adapter attached: ${storageType}`);
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
- console.error(`❌ Failed to attach storage adapter '${storageType}': ${e?.message || e}`);
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
- console.log(`✅ Loaded state from key '${loadKey}'`);
331
+ logger.success(`Loaded state from key '${loadKey}'`);
296
332
  }
297
333
  else {
298
- console.warn('⚠️ No storage adapter attached; cannot load');
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
- console.log(`✅ Saved state to key '${saveKey}'`);
340
+ logger.success(`Saved state to key '${saveKey}'`);
305
341
  }
306
342
  else {
307
- console.warn('⚠️ No storage adapter attached; cannot save');
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
- console.log(JSON.stringify(summary));
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
- console.error('❌ Non-interactive run failed:', error?.message || error);
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
- console.error('❌ Session error:', error.message);
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')) {
@@ -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 functionCache;
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 with support for common patterns
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":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC;;GAEG;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;;GAEG;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;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC;AAkBjG;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,eAAe,CAAC,CAA0B;IAGlD,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,YAAY,CAAe;IAEnC;;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;;OAEG;IACH,OAAO,CAAC,eAAe;IA+DvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAa/B;;OAEG;IACH,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAmB1E;;OAEG;IACH,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;CAWjD;AAGD,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
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"}