stelo 1.0.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 (141) hide show
  1. package/LICENSE +184 -0
  2. package/README.md +853 -0
  3. package/dist/accessibility.d.ts +227 -0
  4. package/dist/accessibility.d.ts.map +1 -0
  5. package/dist/accessibility.js +602 -0
  6. package/dist/accessibility.js.map +1 -0
  7. package/dist/agent.d.ts +870 -0
  8. package/dist/agent.d.ts.map +1 -0
  9. package/dist/agent.js +1107 -0
  10. package/dist/agent.js.map +1 -0
  11. package/dist/audio-stream.d.ts +114 -0
  12. package/dist/audio-stream.d.ts.map +1 -0
  13. package/dist/audio-stream.js +167 -0
  14. package/dist/audio-stream.js.map +1 -0
  15. package/dist/clipboard.d.ts +99 -0
  16. package/dist/clipboard.d.ts.map +1 -0
  17. package/dist/clipboard.js +352 -0
  18. package/dist/clipboard.js.map +1 -0
  19. package/dist/config.d.ts +183 -0
  20. package/dist/config.d.ts.map +1 -0
  21. package/dist/config.js +477 -0
  22. package/dist/config.js.map +1 -0
  23. package/dist/context.d.ts +213 -0
  24. package/dist/context.d.ts.map +1 -0
  25. package/dist/context.js +387 -0
  26. package/dist/context.js.map +1 -0
  27. package/dist/cortex.d.ts +548 -0
  28. package/dist/cortex.d.ts.map +1 -0
  29. package/dist/cortex.js +1479 -0
  30. package/dist/cortex.js.map +1 -0
  31. package/dist/errors.d.ts +133 -0
  32. package/dist/errors.d.ts.map +1 -0
  33. package/dist/errors.js +278 -0
  34. package/dist/errors.js.map +1 -0
  35. package/dist/events.d.ts +227 -0
  36. package/dist/events.d.ts.map +1 -0
  37. package/dist/events.js +429 -0
  38. package/dist/events.js.map +1 -0
  39. package/dist/executor.d.ts +212 -0
  40. package/dist/executor.d.ts.map +1 -0
  41. package/dist/executor.js +545 -0
  42. package/dist/executor.js.map +1 -0
  43. package/dist/index.d.ts +69 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +167 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/integration.d.ts +159 -0
  48. package/dist/integration.d.ts.map +1 -0
  49. package/dist/integration.js +533 -0
  50. package/dist/integration.js.map +1 -0
  51. package/dist/keyboard.d.ts +276 -0
  52. package/dist/keyboard.d.ts.map +1 -0
  53. package/dist/keyboard.js +404 -0
  54. package/dist/keyboard.js.map +1 -0
  55. package/dist/logger.d.ts +198 -0
  56. package/dist/logger.d.ts.map +1 -0
  57. package/dist/logger.js +516 -0
  58. package/dist/logger.js.map +1 -0
  59. package/dist/middleware.d.ts +183 -0
  60. package/dist/middleware.d.ts.map +1 -0
  61. package/dist/middleware.js +493 -0
  62. package/dist/middleware.js.map +1 -0
  63. package/dist/monitor.d.ts +136 -0
  64. package/dist/monitor.d.ts.map +1 -0
  65. package/dist/monitor.js +341 -0
  66. package/dist/monitor.js.map +1 -0
  67. package/dist/mouse.d.ts +290 -0
  68. package/dist/mouse.d.ts.map +1 -0
  69. package/dist/mouse.js +466 -0
  70. package/dist/mouse.js.map +1 -0
  71. package/dist/plugin.d.ts +157 -0
  72. package/dist/plugin.d.ts.map +1 -0
  73. package/dist/plugin.js +409 -0
  74. package/dist/plugin.js.map +1 -0
  75. package/dist/process.d.ts +106 -0
  76. package/dist/process.d.ts.map +1 -0
  77. package/dist/process.js +326 -0
  78. package/dist/process.js.map +1 -0
  79. package/dist/recorder.d.ts +100 -0
  80. package/dist/recorder.d.ts.map +1 -0
  81. package/dist/recorder.js +258 -0
  82. package/dist/recorder.js.map +1 -0
  83. package/dist/safety.d.ts +59 -0
  84. package/dist/safety.d.ts.map +1 -0
  85. package/dist/safety.js +98 -0
  86. package/dist/safety.js.map +1 -0
  87. package/dist/scheduler.d.ts +152 -0
  88. package/dist/scheduler.d.ts.map +1 -0
  89. package/dist/scheduler.js +615 -0
  90. package/dist/scheduler.js.map +1 -0
  91. package/dist/screen.d.ts +96 -0
  92. package/dist/screen.d.ts.map +1 -0
  93. package/dist/screen.js +154 -0
  94. package/dist/screen.js.map +1 -0
  95. package/dist/session.d.ts +209 -0
  96. package/dist/session.d.ts.map +1 -0
  97. package/dist/session.js +479 -0
  98. package/dist/session.js.map +1 -0
  99. package/dist/stream.d.ts +168 -0
  100. package/dist/stream.d.ts.map +1 -0
  101. package/dist/stream.js +298 -0
  102. package/dist/stream.js.map +1 -0
  103. package/dist/telemetry.d.ts +223 -0
  104. package/dist/telemetry.d.ts.map +1 -0
  105. package/dist/telemetry.js +433 -0
  106. package/dist/telemetry.js.map +1 -0
  107. package/dist/types.d.ts +165 -0
  108. package/dist/types.d.ts.map +1 -0
  109. package/dist/types.js +8 -0
  110. package/dist/types.js.map +1 -0
  111. package/dist/utils/bezier.d.ts +51 -0
  112. package/dist/utils/bezier.d.ts.map +1 -0
  113. package/dist/utils/bezier.js +117 -0
  114. package/dist/utils/bezier.js.map +1 -0
  115. package/dist/utils/helpers.d.ts +90 -0
  116. package/dist/utils/helpers.d.ts.map +1 -0
  117. package/dist/utils/helpers.js +143 -0
  118. package/dist/utils/helpers.js.map +1 -0
  119. package/dist/utils/index.d.ts +4 -0
  120. package/dist/utils/index.d.ts.map +1 -0
  121. package/dist/utils/index.js +18 -0
  122. package/dist/utils/index.js.map +1 -0
  123. package/dist/validation.d.ts +254 -0
  124. package/dist/validation.d.ts.map +1 -0
  125. package/dist/validation.js +478 -0
  126. package/dist/validation.js.map +1 -0
  127. package/dist/vision.d.ts +719 -0
  128. package/dist/vision.d.ts.map +1 -0
  129. package/dist/vision.js +1197 -0
  130. package/dist/vision.js.map +1 -0
  131. package/dist/window.d.ts +80 -0
  132. package/dist/window.d.ts.map +1 -0
  133. package/dist/window.js +170 -0
  134. package/dist/window.js.map +1 -0
  135. package/dist/workflow.d.ts +224 -0
  136. package/dist/workflow.d.ts.map +1 -0
  137. package/dist/workflow.js +578 -0
  138. package/dist/workflow.js.map +1 -0
  139. package/index.d.ts +840 -0
  140. package/index.js +495 -0
  141. package/package.json +91 -0
@@ -0,0 +1,213 @@
1
+ export interface SystemInfo {
2
+ /** Operating system: 'windows' | 'macos' | 'linux' */
3
+ platform: string;
4
+ /** OS architecture: 'x64' | 'arm64' | etc. */
5
+ arch: string;
6
+ /** Node.js version */
7
+ nodeVersion: string;
8
+ /** Total system memory in bytes */
9
+ totalMemory: number;
10
+ /** Free system memory in bytes */
11
+ freeMemory: number;
12
+ /** Number of CPU cores */
13
+ cpuCount: number;
14
+ /** CPU model name */
15
+ cpuModel: string;
16
+ /** OS hostname */
17
+ hostname: string;
18
+ /** OS username */
19
+ username: string;
20
+ /** Current working directory */
21
+ cwd: string;
22
+ /** Process ID */
23
+ pid: number;
24
+ /** Process uptime in seconds */
25
+ uptime: number;
26
+ }
27
+ export interface DisplayContext {
28
+ /** Primary display width */
29
+ primaryWidth: number;
30
+ /** Primary display height */
31
+ primaryHeight: number;
32
+ /** Number of displays */
33
+ displayCount: number;
34
+ /** DPI scaling factor of primary display */
35
+ scaleFactor: number;
36
+ }
37
+ export interface PerformanceSnapshot {
38
+ /** Heap used (bytes) */
39
+ heapUsed: number;
40
+ /** Heap total (bytes) */
41
+ heapTotal: number;
42
+ /** RSS (bytes) */
43
+ rss: number;
44
+ /** External memory (bytes) */
45
+ external: number;
46
+ /** Event loop latency (ms) — approximation */
47
+ eventLoopLatencyMs: number;
48
+ /** Timestamp */
49
+ timestamp: string;
50
+ }
51
+ export interface ContextVariable {
52
+ key: string;
53
+ value: unknown;
54
+ setAt: string;
55
+ source: string;
56
+ }
57
+ export interface OperationContext {
58
+ /** Unique operation ID */
59
+ operationId: string;
60
+ /** Parent operation ID (for nesting) */
61
+ parentId?: string;
62
+ /** Operation name */
63
+ name: string;
64
+ /** Start timestamp */
65
+ startedAt: string;
66
+ /** Additional metadata */
67
+ metadata: Record<string, unknown>;
68
+ }
69
+ export interface EnvironmentFeatures {
70
+ /** Whether the native addon is loaded */
71
+ nativeAddonAvailable: boolean;
72
+ /** Whether DPI awareness is initialized */
73
+ dpiAware: boolean;
74
+ /** Whether screen streaming is supported */
75
+ streamingSupported: boolean;
76
+ /** Whether audio capture is supported */
77
+ audioCaptureSupported: boolean;
78
+ /** Whether running in CI environment */
79
+ isCI: boolean;
80
+ /** Whether running in Docker/container */
81
+ isContainer: boolean;
82
+ /** Whether running as admin/root */
83
+ isElevated: boolean;
84
+ /** Whether a display is available */
85
+ hasDisplay: boolean;
86
+ }
87
+ export declare const context: {
88
+ /**
89
+ * Get detailed system information.
90
+ */
91
+ getSystemInfo(): SystemInfo;
92
+ /**
93
+ * Get display context (requires native bindings).
94
+ */
95
+ getDisplayContext(): DisplayContext;
96
+ /**
97
+ * Detect available features in the current environment.
98
+ */
99
+ detectFeatures(): EnvironmentFeatures;
100
+ /**
101
+ * Start a new session. Generates a unique session ID.
102
+ */
103
+ startSession(metadata?: Record<string, unknown>): string;
104
+ /** Get the current session ID */
105
+ getSessionId(): string | undefined;
106
+ /** Get session duration in milliseconds */
107
+ getSessionDuration(): number;
108
+ /** End the current session */
109
+ endSession(): void;
110
+ /**
111
+ * Set a context variable (accessible from any module).
112
+ */
113
+ set(key: string, value: unknown, source?: string): void;
114
+ /**
115
+ * Get a context variable.
116
+ */
117
+ get<T = unknown>(key: string): T | undefined;
118
+ /**
119
+ * Get a context variable with a default fallback.
120
+ */
121
+ getOrDefault<T = unknown>(key: string, defaultValue: T): T;
122
+ /**
123
+ * Check if a context variable exists.
124
+ */
125
+ has(key: string): boolean;
126
+ /**
127
+ * Delete a context variable.
128
+ */
129
+ delete(key: string): boolean;
130
+ /**
131
+ * Get all context variables.
132
+ */
133
+ getAll(): ContextVariable[];
134
+ /**
135
+ * Clear all context variables.
136
+ */
137
+ clearVariables(): void;
138
+ /**
139
+ * Push a named operation onto the context stack.
140
+ * Returns the operation context with a unique ID.
141
+ *
142
+ * @example
143
+ * ```ts
144
+ * const op = context.pushOperation('login-flow');
145
+ * try {
146
+ * // ... do work ...
147
+ * } finally {
148
+ * context.popOperation();
149
+ * }
150
+ * ```
151
+ */
152
+ pushOperation(name: string, metadata?: Record<string, unknown>): OperationContext;
153
+ /**
154
+ * Pop the current operation off the stack.
155
+ */
156
+ popOperation(): OperationContext | undefined;
157
+ /**
158
+ * Get the current operation (top of stack).
159
+ */
160
+ currentOperation(): OperationContext | undefined;
161
+ /**
162
+ * Get the full operation stack (for nested context).
163
+ */
164
+ operationStack(): OperationContext[];
165
+ /**
166
+ * Run a function within an operation context.
167
+ * Automatically pushes/pops the operation.
168
+ */
169
+ withOperation<T>(name: string, fn: (op: OperationContext) => T, metadata?: Record<string, unknown>): T;
170
+ /**
171
+ * Run an async function within an operation context.
172
+ */
173
+ withOperationAsync<T>(name: string, fn: (op: OperationContext) => Promise<T>, metadata?: Record<string, unknown>): Promise<T>;
174
+ /**
175
+ * Take a performance snapshot.
176
+ */
177
+ takePerformanceSnapshot(): PerformanceSnapshot;
178
+ /**
179
+ * Get performance history.
180
+ */
181
+ getPerformanceHistory(): PerformanceSnapshot[];
182
+ /**
183
+ * Get a summary of memory usage.
184
+ */
185
+ getMemorySummary(): {
186
+ heapUsedMB: number;
187
+ heapTotalMB: number;
188
+ rssMB: number;
189
+ externalMB: number;
190
+ heapUtilization: number;
191
+ };
192
+ /**
193
+ * Check if running in development mode.
194
+ */
195
+ isDevelopment(): boolean;
196
+ /**
197
+ * Check if running in production mode.
198
+ */
199
+ isProduction(): boolean;
200
+ /**
201
+ * Check if running in test mode.
202
+ */
203
+ isTest(): boolean;
204
+ /**
205
+ * Get the Stelo SDK version.
206
+ */
207
+ getSteloVersion(): string;
208
+ /**
209
+ * Reset all context state.
210
+ */
211
+ reset(): void;
212
+ };
213
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../ts/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,387 @@
1
+ "use strict";
2
+ // ============================================================================
3
+ // Stelo — Runtime Context & Environment
4
+ // ============================================================================
5
+ // System information, environment detection, resource tracking, and
6
+ // runtime context propagation for automation sessions.
7
+ // ============================================================================
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.context = void 0;
10
+ const events_1 = require("./events");
11
+ // ── Internal State ───────────────────────────────────────────────────────────
12
+ const _variables = new Map();
13
+ const _operationStack = [];
14
+ let _opCounter = 0;
15
+ let _sessionId;
16
+ let _sessionStartedAt;
17
+ const _performanceHistory = [];
18
+ const MAX_PERF_HISTORY = 100;
19
+ function generateId(prefix) {
20
+ return `${prefix}_${Date.now().toString(36)}_${(++_opCounter).toString(36)}`;
21
+ }
22
+ // ── Public API ───────────────────────────────────────────────────────────────
23
+ exports.context = {
24
+ // ── System Information ─────────────────────────────────────────────────
25
+ /**
26
+ * Get detailed system information.
27
+ */
28
+ getSystemInfo() {
29
+ const os = require('os');
30
+ return {
31
+ platform: process.platform,
32
+ arch: process.arch,
33
+ nodeVersion: process.version,
34
+ totalMemory: os.totalmem(),
35
+ freeMemory: os.freemem(),
36
+ cpuCount: os.cpus().length,
37
+ cpuModel: os.cpus()[0]?.model ?? 'unknown',
38
+ hostname: os.hostname(),
39
+ username: os.userInfo().username,
40
+ cwd: process.cwd(),
41
+ pid: process.pid,
42
+ uptime: process.uptime(),
43
+ };
44
+ },
45
+ /**
46
+ * Get display context (requires native bindings).
47
+ */
48
+ getDisplayContext() {
49
+ try {
50
+ const native = require('../index.js');
51
+ const size = native.screenSize();
52
+ const displays = native.screenDisplays();
53
+ const primary = displays.find((d) => d.isPrimary) ?? displays[0];
54
+ return {
55
+ primaryWidth: size.width,
56
+ primaryHeight: size.height,
57
+ displayCount: displays.length,
58
+ scaleFactor: primary?.scaleFactor ?? 1.0,
59
+ };
60
+ }
61
+ catch {
62
+ return {
63
+ primaryWidth: 0,
64
+ primaryHeight: 0,
65
+ displayCount: 0,
66
+ scaleFactor: 1.0,
67
+ };
68
+ }
69
+ },
70
+ /**
71
+ * Detect available features in the current environment.
72
+ */
73
+ detectFeatures() {
74
+ const env = process.env;
75
+ let nativeAddonAvailable = false;
76
+ let dpiAware = false;
77
+ try {
78
+ const native = require('../index.js');
79
+ nativeAddonAvailable = typeof native.mouseMove === 'function';
80
+ if (nativeAddonAvailable) {
81
+ try {
82
+ native.ensureDpiAwareness();
83
+ dpiAware = true;
84
+ }
85
+ catch {
86
+ dpiAware = false;
87
+ }
88
+ }
89
+ }
90
+ catch {
91
+ nativeAddonAvailable = false;
92
+ }
93
+ const isCI = !!(env.CI ||
94
+ env.CONTINUOUS_INTEGRATION ||
95
+ env.BUILD_ID ||
96
+ env.GITHUB_ACTIONS ||
97
+ env.GITLAB_CI ||
98
+ env.JENKINS_URL ||
99
+ env.TRAVIS ||
100
+ env.CIRCLECI ||
101
+ env.AZURE_HTTP_USER_AGENT);
102
+ const isContainer = !!(env.DOCKER_CONTAINER ||
103
+ env.KUBERNETES_SERVICE_HOST ||
104
+ env.container);
105
+ let isElevated = false;
106
+ try {
107
+ if (process.platform === 'win32') {
108
+ // Heuristic: check if we can access admin-only paths
109
+ const fs = require('fs');
110
+ isElevated = fs.existsSync('C:\\Windows\\System32\\config\\SAM');
111
+ }
112
+ else {
113
+ isElevated = process.getuid?.() === 0;
114
+ }
115
+ }
116
+ catch {
117
+ isElevated = false;
118
+ }
119
+ const hasDisplay = !!((process.platform === 'win32') ||
120
+ (process.platform === 'darwin') ||
121
+ env.DISPLAY ||
122
+ env.WAYLAND_DISPLAY);
123
+ return {
124
+ nativeAddonAvailable,
125
+ dpiAware,
126
+ streamingSupported: nativeAddonAvailable && process.platform === 'win32',
127
+ audioCaptureSupported: nativeAddonAvailable && process.platform === 'win32',
128
+ isCI,
129
+ isContainer,
130
+ isElevated,
131
+ hasDisplay,
132
+ };
133
+ },
134
+ // ── Session Management ─────────────────────────────────────────────────
135
+ /**
136
+ * Start a new session. Generates a unique session ID.
137
+ */
138
+ startSession(metadata) {
139
+ _sessionId = generateId('ses');
140
+ _sessionStartedAt = new Date().toISOString();
141
+ events_1.events.emit('session.start', 'system', {
142
+ sessionId: _sessionId,
143
+ ...metadata,
144
+ }, { source: 'context' });
145
+ return _sessionId;
146
+ },
147
+ /** Get the current session ID */
148
+ getSessionId() {
149
+ return _sessionId;
150
+ },
151
+ /** Get session duration in milliseconds */
152
+ getSessionDuration() {
153
+ if (!_sessionStartedAt)
154
+ return 0;
155
+ return Date.now() - new Date(_sessionStartedAt).getTime();
156
+ },
157
+ /** End the current session */
158
+ endSession() {
159
+ if (_sessionId) {
160
+ events_1.events.emit('session.end', 'system', {
161
+ sessionId: _sessionId,
162
+ durationMs: exports.context.getSessionDuration(),
163
+ }, { source: 'context' });
164
+ }
165
+ _sessionId = undefined;
166
+ _sessionStartedAt = undefined;
167
+ },
168
+ // ── Context Variables ──────────────────────────────────────────────────
169
+ /**
170
+ * Set a context variable (accessible from any module).
171
+ */
172
+ set(key, value, source = 'user') {
173
+ _variables.set(key, {
174
+ key,
175
+ value,
176
+ setAt: new Date().toISOString(),
177
+ source,
178
+ });
179
+ },
180
+ /**
181
+ * Get a context variable.
182
+ */
183
+ get(key) {
184
+ return _variables.get(key)?.value;
185
+ },
186
+ /**
187
+ * Get a context variable with a default fallback.
188
+ */
189
+ getOrDefault(key, defaultValue) {
190
+ const variable = _variables.get(key);
191
+ return variable ? variable.value : defaultValue;
192
+ },
193
+ /**
194
+ * Check if a context variable exists.
195
+ */
196
+ has(key) {
197
+ return _variables.has(key);
198
+ },
199
+ /**
200
+ * Delete a context variable.
201
+ */
202
+ delete(key) {
203
+ return _variables.delete(key);
204
+ },
205
+ /**
206
+ * Get all context variables.
207
+ */
208
+ getAll() {
209
+ return [..._variables.values()];
210
+ },
211
+ /**
212
+ * Clear all context variables.
213
+ */
214
+ clearVariables() {
215
+ _variables.clear();
216
+ },
217
+ // ── Operation Tracking ─────────────────────────────────────────────────
218
+ /**
219
+ * Push a named operation onto the context stack.
220
+ * Returns the operation context with a unique ID.
221
+ *
222
+ * @example
223
+ * ```ts
224
+ * const op = context.pushOperation('login-flow');
225
+ * try {
226
+ * // ... do work ...
227
+ * } finally {
228
+ * context.popOperation();
229
+ * }
230
+ * ```
231
+ */
232
+ pushOperation(name, metadata) {
233
+ const parent = _operationStack[_operationStack.length - 1];
234
+ const op = {
235
+ operationId: generateId('op'),
236
+ parentId: parent?.operationId,
237
+ name,
238
+ startedAt: new Date().toISOString(),
239
+ metadata: metadata ?? {},
240
+ };
241
+ _operationStack.push(op);
242
+ events_1.events.emit('context.operation.start', 'system', {
243
+ operationId: op.operationId,
244
+ name,
245
+ depth: _operationStack.length,
246
+ }, { source: 'context' });
247
+ return op;
248
+ },
249
+ /**
250
+ * Pop the current operation off the stack.
251
+ */
252
+ popOperation() {
253
+ const op = _operationStack.pop();
254
+ if (op) {
255
+ const durationMs = Date.now() - new Date(op.startedAt).getTime();
256
+ events_1.events.emit('context.operation.end', 'system', {
257
+ operationId: op.operationId,
258
+ name: op.name,
259
+ durationMs,
260
+ depth: _operationStack.length,
261
+ }, { source: 'context' });
262
+ }
263
+ return op;
264
+ },
265
+ /**
266
+ * Get the current operation (top of stack).
267
+ */
268
+ currentOperation() {
269
+ return _operationStack[_operationStack.length - 1];
270
+ },
271
+ /**
272
+ * Get the full operation stack (for nested context).
273
+ */
274
+ operationStack() {
275
+ return [..._operationStack];
276
+ },
277
+ /**
278
+ * Run a function within an operation context.
279
+ * Automatically pushes/pops the operation.
280
+ */
281
+ withOperation(name, fn, metadata) {
282
+ const op = exports.context.pushOperation(name, metadata);
283
+ try {
284
+ return fn(op);
285
+ }
286
+ finally {
287
+ exports.context.popOperation();
288
+ }
289
+ },
290
+ /**
291
+ * Run an async function within an operation context.
292
+ */
293
+ async withOperationAsync(name, fn, metadata) {
294
+ const op = exports.context.pushOperation(name, metadata);
295
+ try {
296
+ return await fn(op);
297
+ }
298
+ finally {
299
+ exports.context.popOperation();
300
+ }
301
+ },
302
+ // ── Performance Monitoring ─────────────────────────────────────────────
303
+ /**
304
+ * Take a performance snapshot.
305
+ */
306
+ takePerformanceSnapshot() {
307
+ const mem = process.memoryUsage();
308
+ const snapshot = {
309
+ heapUsed: mem.heapUsed,
310
+ heapTotal: mem.heapTotal,
311
+ rss: mem.rss,
312
+ external: mem.external,
313
+ eventLoopLatencyMs: 0, // Will be measured by interval
314
+ timestamp: new Date().toISOString(),
315
+ };
316
+ _performanceHistory.push(snapshot);
317
+ while (_performanceHistory.length > MAX_PERF_HISTORY) {
318
+ _performanceHistory.shift();
319
+ }
320
+ return snapshot;
321
+ },
322
+ /**
323
+ * Get performance history.
324
+ */
325
+ getPerformanceHistory() {
326
+ return [..._performanceHistory];
327
+ },
328
+ /**
329
+ * Get a summary of memory usage.
330
+ */
331
+ getMemorySummary() {
332
+ const mem = process.memoryUsage();
333
+ return {
334
+ heapUsedMB: Math.round(mem.heapUsed / 1024 / 1024 * 100) / 100,
335
+ heapTotalMB: Math.round(mem.heapTotal / 1024 / 1024 * 100) / 100,
336
+ rssMB: Math.round(mem.rss / 1024 / 1024 * 100) / 100,
337
+ externalMB: Math.round(mem.external / 1024 / 1024 * 100) / 100,
338
+ heapUtilization: Math.round(mem.heapUsed / mem.heapTotal * 100) / 100,
339
+ };
340
+ },
341
+ // ── Environment Helpers ────────────────────────────────────────────────
342
+ /**
343
+ * Check if running in development mode.
344
+ */
345
+ isDevelopment() {
346
+ return process.env.NODE_ENV !== 'production';
347
+ },
348
+ /**
349
+ * Check if running in production mode.
350
+ */
351
+ isProduction() {
352
+ return process.env.NODE_ENV === 'production';
353
+ },
354
+ /**
355
+ * Check if running in test mode.
356
+ */
357
+ isTest() {
358
+ return (process.env.NODE_ENV === 'test' ||
359
+ !!process.env.VITEST ||
360
+ !!process.env.JEST_WORKER_ID);
361
+ },
362
+ /**
363
+ * Get the Stelo SDK version.
364
+ */
365
+ getSteloVersion() {
366
+ try {
367
+ const native = require('../index.js');
368
+ return native.getVersion();
369
+ }
370
+ catch {
371
+ return 'unknown';
372
+ }
373
+ },
374
+ // ── Reset ──────────────────────────────────────────────────────────────
375
+ /**
376
+ * Reset all context state.
377
+ */
378
+ reset() {
379
+ _variables.clear();
380
+ _operationStack.length = 0;
381
+ _opCounter = 0;
382
+ _sessionId = undefined;
383
+ _sessionStartedAt = undefined;
384
+ _performanceHistory.length = 0;
385
+ },
386
+ };
387
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../ts/context.ts"],"names":[],"mappings":"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"}