erosolar-cli 1.7.81 → 1.7.82

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 (109) hide show
  1. package/agents/erosolar-code.rules.json +5 -0
  2. package/agents/general.rules.json +5 -0
  3. package/dist/bin/erosolar.js +0 -2
  4. package/dist/bin/erosolar.js.map +1 -1
  5. package/dist/contracts/agent-schemas.json +20 -12
  6. package/dist/contracts/unified-schema.json +1 -1
  7. package/dist/core/agent.d.ts +36 -3
  8. package/dist/core/agent.d.ts.map +1 -1
  9. package/dist/core/agent.js +223 -8
  10. package/dist/core/agent.js.map +1 -1
  11. package/dist/core/cliTestHarness.d.ts +200 -0
  12. package/dist/core/cliTestHarness.d.ts.map +1 -0
  13. package/dist/core/cliTestHarness.js +549 -0
  14. package/dist/core/cliTestHarness.js.map +1 -0
  15. package/dist/core/errors/apiKeyErrors.js +1 -1
  16. package/dist/core/errors/apiKeyErrors.js.map +1 -1
  17. package/dist/core/isolatedVerifier.js +274 -22
  18. package/dist/core/isolatedVerifier.js.map +1 -1
  19. package/dist/core/modelDiscovery.d.ts.map +1 -1
  20. package/dist/core/modelDiscovery.js +23 -28
  21. package/dist/core/modelDiscovery.js.map +1 -1
  22. package/dist/core/multilinePasteHandler.d.ts +35 -0
  23. package/dist/core/multilinePasteHandler.d.ts.map +1 -0
  24. package/dist/core/multilinePasteHandler.js +80 -0
  25. package/dist/core/multilinePasteHandler.js.map +1 -0
  26. package/dist/core/secretStore.d.ts +9 -0
  27. package/dist/core/secretStore.d.ts.map +1 -1
  28. package/dist/core/secretStore.js +52 -2
  29. package/dist/core/secretStore.js.map +1 -1
  30. package/dist/core/types.d.ts +6 -0
  31. package/dist/core/types.d.ts.map +1 -1
  32. package/dist/headless/headlessApp.d.ts.map +1 -1
  33. package/dist/headless/headlessApp.js +16 -0
  34. package/dist/headless/headlessApp.js.map +1 -1
  35. package/dist/plugins/providers/google/index.js +3 -2
  36. package/dist/plugins/providers/google/index.js.map +1 -1
  37. package/dist/providers/anthropicProvider.d.ts.map +1 -1
  38. package/dist/providers/anthropicProvider.js +27 -1
  39. package/dist/providers/anthropicProvider.js.map +1 -1
  40. package/dist/providers/googleProvider.d.ts.map +1 -1
  41. package/dist/providers/googleProvider.js +23 -1
  42. package/dist/providers/googleProvider.js.map +1 -1
  43. package/dist/providers/openaiChatCompletionsProvider.d.ts +2 -1
  44. package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -1
  45. package/dist/providers/openaiChatCompletionsProvider.js +111 -4
  46. package/dist/providers/openaiChatCompletionsProvider.js.map +1 -1
  47. package/dist/providers/openaiResponsesProvider.d.ts.map +1 -1
  48. package/dist/providers/openaiResponsesProvider.js +39 -18
  49. package/dist/providers/openaiResponsesProvider.js.map +1 -1
  50. package/dist/runtime/agentController.d.ts +4 -0
  51. package/dist/runtime/agentController.d.ts.map +1 -1
  52. package/dist/runtime/agentController.js +29 -3
  53. package/dist/runtime/agentController.js.map +1 -1
  54. package/dist/security/persistence-research.d.ts +0 -2
  55. package/dist/security/persistence-research.d.ts.map +1 -1
  56. package/dist/security/persistence-research.js +0 -2
  57. package/dist/security/persistence-research.js.map +1 -1
  58. package/dist/security/security-testing-framework.d.ts +0 -2
  59. package/dist/security/security-testing-framework.d.ts.map +1 -1
  60. package/dist/security/security-testing-framework.js +0 -2
  61. package/dist/security/security-testing-framework.js.map +1 -1
  62. package/dist/shell/bracketedPasteManager.d.ts +8 -5
  63. package/dist/shell/bracketedPasteManager.d.ts.map +1 -1
  64. package/dist/shell/bracketedPasteManager.js +27 -43
  65. package/dist/shell/bracketedPasteManager.js.map +1 -1
  66. package/dist/shell/composableMessage.d.ts +1 -1
  67. package/dist/shell/composableMessage.js +2 -2
  68. package/dist/shell/composableMessage.js.map +1 -1
  69. package/dist/shell/interactiveShell.d.ts +7 -48
  70. package/dist/shell/interactiveShell.d.ts.map +1 -1
  71. package/dist/shell/interactiveShell.js +144 -340
  72. package/dist/shell/interactiveShell.js.map +1 -1
  73. package/dist/shell/shellApp.d.ts.map +1 -1
  74. package/dist/shell/shellApp.js +54 -3
  75. package/dist/shell/shellApp.js.map +1 -1
  76. package/dist/shell/systemPrompt.d.ts +1 -1
  77. package/dist/shell/systemPrompt.d.ts.map +1 -1
  78. package/dist/shell/systemPrompt.js +10 -3
  79. package/dist/shell/systemPrompt.js.map +1 -1
  80. package/dist/shell/updateManager.js +4 -2
  81. package/dist/shell/updateManager.js.map +1 -1
  82. package/dist/subagents/taskRunner.js +2 -2
  83. package/dist/subagents/taskRunner.js.map +1 -1
  84. package/dist/tools/cloudTools.d.ts +0 -2
  85. package/dist/tools/cloudTools.d.ts.map +1 -1
  86. package/dist/tools/cloudTools.js +0 -2
  87. package/dist/tools/cloudTools.js.map +1 -1
  88. package/dist/tools/fileTools.d.ts.map +1 -1
  89. package/dist/tools/fileTools.js +31 -3
  90. package/dist/tools/fileTools.js.map +1 -1
  91. package/dist/ui/ShellUIAdapter.d.ts +10 -2
  92. package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
  93. package/dist/ui/ShellUIAdapter.js +123 -11
  94. package/dist/ui/ShellUIAdapter.js.map +1 -1
  95. package/dist/ui/keyboardShortcuts.d.ts.map +1 -1
  96. package/dist/ui/keyboardShortcuts.js +12 -2
  97. package/dist/ui/keyboardShortcuts.js.map +1 -1
  98. package/dist/ui/persistentPrompt.d.ts +24 -0
  99. package/dist/ui/persistentPrompt.d.ts.map +1 -1
  100. package/dist/ui/persistentPrompt.js +86 -4
  101. package/dist/ui/persistentPrompt.js.map +1 -1
  102. package/dist/ui/toolDisplay.d.ts.map +1 -1
  103. package/dist/ui/toolDisplay.js +652 -0
  104. package/dist/ui/toolDisplay.js.map +1 -1
  105. package/package.json +3 -3
  106. package/dist/shell/inputProcessor.d.ts +0 -55
  107. package/dist/shell/inputProcessor.d.ts.map +0 -1
  108. package/dist/shell/inputProcessor.js +0 -171
  109. package/dist/shell/inputProcessor.js.map +0 -1
@@ -0,0 +1,549 @@
1
+ /**
2
+ * CLI Test Harness - PTY-based interactive CLI testing
3
+ *
4
+ * This module provides real runtime verification of CLI behavior by:
5
+ * 1. Spawning the CLI in a pseudo-terminal (PTY)
6
+ * 2. Sending simulated user input (including paste sequences)
7
+ * 3. Capturing and analyzing output
8
+ * 4. Verifying expected behaviors
9
+ *
10
+ * @license MIT
11
+ */
12
+ import { spawn } from 'node:child_process';
13
+ import { join } from 'node:path';
14
+ import { EventEmitter } from 'node:events';
15
+ // ============================================================================
16
+ // CONSTANTS
17
+ // ============================================================================
18
+ const BRACKETED_PASTE_START = '\x1b[200~';
19
+ const BRACKETED_PASTE_END = '\x1b[201~';
20
+ const SPECIAL_KEYS = {
21
+ 'enter': '\r',
22
+ 'tab': '\t',
23
+ 'escape': '\x1b',
24
+ 'ctrl-c': '\x03',
25
+ 'ctrl-d': '\x04',
26
+ };
27
+ // ============================================================================
28
+ // CLI TEST HARNESS
29
+ // ============================================================================
30
+ export class CLITestHarness extends EventEmitter {
31
+ config;
32
+ process = null;
33
+ output = '';
34
+ errors = '';
35
+ exitCode = null;
36
+ ptyModule = null;
37
+ constructor(config) {
38
+ super();
39
+ this.config = {
40
+ cwd: config.cwd,
41
+ env: config.env ?? {},
42
+ timeout: config.timeout ?? 30000,
43
+ usePty: config.usePty ?? false,
44
+ cliPath: config.cliPath ?? join(config.cwd, 'dist/bin/erosolar-optimized.js'),
45
+ };
46
+ }
47
+ /**
48
+ * Try to load node-pty for true PTY support
49
+ */
50
+ async loadPtyModule() {
51
+ if (this.ptyModule)
52
+ return true;
53
+ try {
54
+ // Dynamic import to avoid hard dependency
55
+ // @ts-expect-error - node-pty is optional
56
+ this.ptyModule = await import('node-pty');
57
+ return true;
58
+ }
59
+ catch {
60
+ return false;
61
+ }
62
+ }
63
+ /**
64
+ * Start the CLI process
65
+ */
66
+ async start() {
67
+ this.output = '';
68
+ this.errors = '';
69
+ this.exitCode = null;
70
+ const env = {
71
+ ...process.env,
72
+ ...this.config.env,
73
+ // Disable color output for easier parsing
74
+ NO_COLOR: '1',
75
+ FORCE_COLOR: '0',
76
+ // Set non-interactive mode hints
77
+ CI: '1',
78
+ };
79
+ if (this.config.usePty && await this.loadPtyModule()) {
80
+ await this.startWithPty(env);
81
+ }
82
+ else {
83
+ await this.startWithStdio(env);
84
+ }
85
+ }
86
+ /**
87
+ * Start CLI with PTY (for interactive features like bracketed paste)
88
+ */
89
+ async startWithPty(env) {
90
+ const pty = this.ptyModule;
91
+ this.process = pty.spawn('node', [this.config.cliPath], {
92
+ name: 'xterm-256color',
93
+ cols: 120,
94
+ rows: 30,
95
+ cwd: this.config.cwd,
96
+ env,
97
+ });
98
+ this.process.onData((data) => {
99
+ this.output += data;
100
+ this.emit('output', data);
101
+ });
102
+ this.process.onExit(({ exitCode }) => {
103
+ this.exitCode = exitCode;
104
+ this.emit('exit', exitCode);
105
+ });
106
+ }
107
+ /**
108
+ * Start CLI with standard stdio (fallback, limited interactive support)
109
+ */
110
+ async startWithStdio(env) {
111
+ this.process = spawn('node', [this.config.cliPath], {
112
+ cwd: this.config.cwd,
113
+ env,
114
+ stdio: ['pipe', 'pipe', 'pipe'],
115
+ });
116
+ this.process.stdout?.on('data', (data) => {
117
+ const str = data.toString();
118
+ this.output += str;
119
+ this.emit('output', str);
120
+ });
121
+ this.process.stderr?.on('data', (data) => {
122
+ const str = data.toString();
123
+ this.errors += str;
124
+ this.emit('error', str);
125
+ });
126
+ this.process.on('exit', (code) => {
127
+ this.exitCode = code ?? 0;
128
+ this.emit('exit', code);
129
+ });
130
+ }
131
+ /**
132
+ * Send input to the CLI
133
+ */
134
+ write(input) {
135
+ if (!this.process) {
136
+ throw new Error('CLI process not started');
137
+ }
138
+ if (this.config.usePty && this.ptyModule) {
139
+ this.process.write(input);
140
+ }
141
+ else {
142
+ this.process.stdin?.write(input);
143
+ }
144
+ }
145
+ /**
146
+ * Send a bracketed paste sequence
147
+ */
148
+ paste(content) {
149
+ this.write(BRACKETED_PASTE_START + content + BRACKETED_PASTE_END);
150
+ }
151
+ /**
152
+ * Send a special key
153
+ */
154
+ sendKey(key) {
155
+ const sequence = SPECIAL_KEYS[key];
156
+ if (sequence) {
157
+ this.write(sequence);
158
+ }
159
+ }
160
+ /**
161
+ * Wait for output matching a pattern
162
+ */
163
+ async waitForOutput(pattern, timeout = 5000) {
164
+ const startTime = Date.now();
165
+ const regex = typeof pattern === 'string' ? new RegExp(pattern, 'i') : pattern;
166
+ return new Promise((resolve, reject) => {
167
+ const check = () => {
168
+ if (regex.test(this.output)) {
169
+ resolve(this.output);
170
+ return;
171
+ }
172
+ if (Date.now() - startTime > timeout) {
173
+ reject(new Error(`Timeout waiting for pattern: ${pattern}`));
174
+ return;
175
+ }
176
+ setTimeout(check, 100);
177
+ };
178
+ check();
179
+ });
180
+ }
181
+ /**
182
+ * Wait for a specified duration
183
+ */
184
+ async wait(ms) {
185
+ return new Promise(resolve => setTimeout(resolve, ms));
186
+ }
187
+ /**
188
+ * Get current output
189
+ */
190
+ getOutput() {
191
+ return this.output;
192
+ }
193
+ /**
194
+ * Get current errors
195
+ */
196
+ getErrors() {
197
+ return this.errors;
198
+ }
199
+ /**
200
+ * Stop the CLI process
201
+ */
202
+ async stop() {
203
+ if (!this.process) {
204
+ return this.exitCode ?? 0;
205
+ }
206
+ return new Promise((resolve) => {
207
+ const timeout = setTimeout(() => {
208
+ this.process?.kill('SIGKILL');
209
+ }, 5000);
210
+ this.process.on('exit', (code) => {
211
+ clearTimeout(timeout);
212
+ resolve(code ?? 0);
213
+ });
214
+ // Try graceful shutdown first
215
+ this.sendKey('ctrl-c');
216
+ setTimeout(() => {
217
+ this.sendKey('ctrl-d');
218
+ }, 500);
219
+ });
220
+ }
221
+ /**
222
+ * Run a complete test scenario
223
+ */
224
+ async runScenario(scenario) {
225
+ const startTime = Date.now();
226
+ const result = {
227
+ scenario,
228
+ passed: true,
229
+ duration: 0,
230
+ output: '',
231
+ errors: [],
232
+ expectations: [],
233
+ };
234
+ try {
235
+ // Start the CLI
236
+ await this.start();
237
+ // Wait for initial startup
238
+ await this.wait(1000);
239
+ // Execute input sequence
240
+ for (const input of scenario.inputs) {
241
+ await this.executeInput(input);
242
+ }
243
+ // Wait for processing
244
+ await this.wait(500);
245
+ // Check expectations
246
+ for (const expectation of scenario.expectations) {
247
+ const expResult = await this.checkExpectation(expectation);
248
+ result.expectations.push(expResult);
249
+ if (!expResult.passed) {
250
+ result.passed = false;
251
+ result.errors.push(expResult.reason || 'Expectation failed');
252
+ }
253
+ }
254
+ }
255
+ catch (error) {
256
+ result.passed = false;
257
+ result.errors.push(error instanceof Error ? error.message : String(error));
258
+ }
259
+ finally {
260
+ await this.stop();
261
+ result.output = this.output;
262
+ result.duration = Date.now() - startTime;
263
+ }
264
+ return result;
265
+ }
266
+ /**
267
+ * Execute a single input action
268
+ */
269
+ async executeInput(input) {
270
+ switch (input.type) {
271
+ case 'text':
272
+ if (input.content) {
273
+ this.write(input.content);
274
+ }
275
+ break;
276
+ case 'paste':
277
+ if (input.content) {
278
+ this.paste(input.content);
279
+ }
280
+ break;
281
+ case 'key':
282
+ if (input.key) {
283
+ this.sendKey(input.key);
284
+ }
285
+ break;
286
+ case 'wait':
287
+ await this.wait(input.delay ?? 100);
288
+ break;
289
+ }
290
+ }
291
+ /**
292
+ * Check a single expectation
293
+ */
294
+ async checkExpectation(expectation) {
295
+ const timeout = expectation.timeout ?? 5000;
296
+ try {
297
+ switch (expectation.type) {
298
+ case 'output_contains': {
299
+ const pattern = expectation.value;
300
+ try {
301
+ await this.waitForOutput(pattern, timeout);
302
+ return { expectation, passed: true, actual: this.output };
303
+ }
304
+ catch {
305
+ return {
306
+ expectation,
307
+ passed: false,
308
+ actual: this.output.slice(-500),
309
+ reason: `Output does not contain: "${pattern}"`,
310
+ };
311
+ }
312
+ }
313
+ case 'output_matches': {
314
+ const regex = expectation.value instanceof RegExp
315
+ ? expectation.value
316
+ : new RegExp(expectation.value);
317
+ if (regex.test(this.output)) {
318
+ return { expectation, passed: true, actual: this.output };
319
+ }
320
+ return {
321
+ expectation,
322
+ passed: false,
323
+ actual: this.output.slice(-500),
324
+ reason: `Output does not match: ${regex}`,
325
+ };
326
+ }
327
+ case 'output_not_contains': {
328
+ const pattern = expectation.value;
329
+ if (!this.output.includes(pattern)) {
330
+ return { expectation, passed: true };
331
+ }
332
+ return {
333
+ expectation,
334
+ passed: false,
335
+ actual: this.output.slice(-500),
336
+ reason: `Output unexpectedly contains: "${pattern}"`,
337
+ };
338
+ }
339
+ case 'exit_code': {
340
+ const expected = expectation.value;
341
+ if (this.exitCode === expected) {
342
+ return { expectation, passed: true, actual: String(this.exitCode) };
343
+ }
344
+ return {
345
+ expectation,
346
+ passed: false,
347
+ actual: String(this.exitCode),
348
+ reason: `Exit code ${this.exitCode} !== expected ${expected}`,
349
+ };
350
+ }
351
+ default:
352
+ return {
353
+ expectation,
354
+ passed: false,
355
+ reason: `Unknown expectation type: ${expectation.type}`,
356
+ };
357
+ }
358
+ }
359
+ catch (error) {
360
+ return {
361
+ expectation,
362
+ passed: false,
363
+ reason: error instanceof Error ? error.message : String(error),
364
+ };
365
+ }
366
+ }
367
+ }
368
+ // ============================================================================
369
+ // PREDEFINED TEST SCENARIOS
370
+ // ============================================================================
371
+ /**
372
+ * Create a paste handling test scenario
373
+ */
374
+ export function createPasteTestScenario(content, expectedLineCount) {
375
+ return {
376
+ id: `paste-${expectedLineCount}-lines`,
377
+ description: `Test pasting ${expectedLineCount} lines of content`,
378
+ category: 'paste',
379
+ inputs: [
380
+ { type: 'wait', delay: 2000 }, // Wait for CLI to initialize
381
+ { type: 'paste', content },
382
+ { type: 'wait', delay: 500 },
383
+ { type: 'key', key: 'enter' },
384
+ { type: 'wait', delay: 1000 },
385
+ ],
386
+ expectations: [
387
+ {
388
+ type: 'output_contains',
389
+ value: `${expectedLineCount} line`,
390
+ description: 'Should show line count in preview',
391
+ },
392
+ ],
393
+ };
394
+ }
395
+ /**
396
+ * Create a multi-line input test scenario
397
+ */
398
+ export function createMultiLineInputScenario() {
399
+ const multiLineContent = 'function test() {\n console.log("hello");\n return true;\n}';
400
+ return {
401
+ id: 'multi-line-input',
402
+ description: 'Test multi-line code input handling',
403
+ category: 'input',
404
+ inputs: [
405
+ { type: 'wait', delay: 2000 },
406
+ { type: 'paste', content: multiLineContent },
407
+ { type: 'wait', delay: 500 },
408
+ { type: 'key', key: 'enter' },
409
+ { type: 'wait', delay: 2000 },
410
+ ],
411
+ expectations: [
412
+ {
413
+ type: 'output_contains',
414
+ value: '4 line',
415
+ description: 'Should show 4 lines in preview',
416
+ },
417
+ {
418
+ type: 'output_not_contains',
419
+ value: 'error',
420
+ description: 'Should not show errors',
421
+ },
422
+ ],
423
+ };
424
+ }
425
+ /**
426
+ * Create a slash command test scenario
427
+ */
428
+ export function createSlashCommandScenario(command) {
429
+ return {
430
+ id: `slash-${command.replace('/', '')}`,
431
+ description: `Test /${command} slash command`,
432
+ category: 'command',
433
+ inputs: [
434
+ { type: 'wait', delay: 2000 },
435
+ { type: 'text', content: `/${command}` },
436
+ { type: 'key', key: 'enter' },
437
+ { type: 'wait', delay: 1000 },
438
+ ],
439
+ expectations: [
440
+ {
441
+ type: 'output_not_contains',
442
+ value: 'Unknown command',
443
+ description: 'Command should be recognized',
444
+ },
445
+ ],
446
+ };
447
+ }
448
+ // ============================================================================
449
+ // VERIFICATION INTEGRATION
450
+ // ============================================================================
451
+ /**
452
+ * Run verification tests for a specific claim type
453
+ */
454
+ export async function runVerificationTests(claimType, workingDir) {
455
+ const harness = new CLITestHarness({
456
+ cwd: workingDir,
457
+ timeout: 60000,
458
+ usePty: true, // Try PTY first
459
+ });
460
+ const scenarios = [];
461
+ // Select scenarios based on claim type
462
+ switch (claimType) {
463
+ case 'paste_handling':
464
+ scenarios.push(createPasteTestScenario('line1\nline2\nline3', 3), createPasteTestScenario('a\nb\nc\nd\ne\nf\ng\nh\ni\nj', 10), createMultiLineInputScenario());
465
+ break;
466
+ case 'slash_commands':
467
+ scenarios.push(createSlashCommandScenario('help'), createSlashCommandScenario('model'), createSlashCommandScenario('clear'));
468
+ break;
469
+ case 'build_success':
470
+ // For build claims, we don't need PTY - just run npm build
471
+ scenarios.push({
472
+ id: 'build-check',
473
+ description: 'Verify project builds successfully',
474
+ category: 'command',
475
+ inputs: [],
476
+ expectations: [],
477
+ });
478
+ break;
479
+ default:
480
+ // Generic behavior test
481
+ scenarios.push({
482
+ id: 'startup-check',
483
+ description: 'Verify CLI starts without errors',
484
+ category: 'behavior',
485
+ inputs: [
486
+ { type: 'wait', delay: 3000 },
487
+ { type: 'key', key: 'ctrl-c' },
488
+ ],
489
+ expectations: [
490
+ {
491
+ type: 'output_not_contains',
492
+ value: 'Error:',
493
+ description: 'Should not show errors on startup',
494
+ },
495
+ ],
496
+ });
497
+ }
498
+ const results = [];
499
+ let allPassed = true;
500
+ for (const scenario of scenarios) {
501
+ const result = await harness.runScenario(scenario);
502
+ results.push(result);
503
+ if (!result.passed) {
504
+ allPassed = false;
505
+ }
506
+ }
507
+ const passed = results.filter(r => r.passed).length;
508
+ const failed = results.filter(r => !r.passed).length;
509
+ const summary = `${passed}/${results.length} tests passed${failed > 0 ? `, ${failed} failed` : ''}`;
510
+ return {
511
+ passed: allPassed,
512
+ results,
513
+ summary,
514
+ };
515
+ }
516
+ /**
517
+ * Verify a single claim using the appropriate method (PTY-based)
518
+ */
519
+ export async function verifyClaim(claim, workingDir) {
520
+ const startTime = Date.now();
521
+ // Route ALL claims through PTY-based verification
522
+ const verification = await runVerificationTests(claim.context['feature'] || claim.category, workingDir);
523
+ return {
524
+ claim,
525
+ passed: verification.passed,
526
+ method: 'pty',
527
+ output: verification.results.map(r => r.output).join('\n'),
528
+ error: verification.passed ? undefined : verification.summary,
529
+ duration: Date.now() - startTime,
530
+ };
531
+ }
532
+ /**
533
+ * Verify all claims using unified PTY harness
534
+ */
535
+ export async function verifyAllClaims(claims, workingDir) {
536
+ const results = [];
537
+ for (const claim of claims) {
538
+ const result = await verifyClaim(claim, workingDir);
539
+ results.push(result);
540
+ }
541
+ const passed = results.filter(r => r.passed).length;
542
+ const failed = results.filter(r => !r.passed).length;
543
+ return {
544
+ results,
545
+ summary: { total: claims.length, passed, failed },
546
+ };
547
+ }
548
+ export default CLITestHarness;
549
+ //# sourceMappingURL=cliTestHarness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliTestHarness.js","sourceRoot":"","sources":["../../src/core/cliTestHarness.ts"],"names":[],"mappings":"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"}
@@ -151,7 +151,7 @@ function containsAuthKeyword(value) {
151
151
  value.includes('subscription'));
152
152
  }
153
153
  function normalize(value) {
154
- if (!value) {
154
+ if (!value || typeof value !== 'string') {
155
155
  return null;
156
156
  }
157
157
  return value.toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"apiKeyErrors.js","sourceRoot":"","sources":["../../../src/core/errors/apiKeyErrors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apiKeyErrors.js","sourceRoot":"","sources":["../../../src/core/errors/apiKeyErrors.ts"],"names":[],"mappings":"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"}