erosolar-cli 2.1.270 → 2.1.271

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 (112) hide show
  1. package/dist/capabilities/index.d.ts +0 -1
  2. package/dist/capabilities/index.d.ts.map +1 -1
  3. package/dist/capabilities/index.js +1 -1
  4. package/dist/capabilities/index.js.map +1 -1
  5. package/dist/capabilities/orchestrationCapability.d.ts.map +1 -1
  6. package/dist/capabilities/orchestrationCapability.js +56 -108
  7. package/dist/capabilities/orchestrationCapability.js.map +1 -1
  8. package/dist/core/iMessageVerification.d.ts +1 -1
  9. package/dist/core/infrastructureTemplates.d.ts +1 -1
  10. package/dist/core/infrastructureTemplates.js +5 -5
  11. package/dist/core/infrastructureTemplates.js.map +1 -1
  12. package/dist/core/persistentObjectiveStore.d.ts +13 -1
  13. package/dist/core/persistentObjectiveStore.d.ts.map +1 -1
  14. package/dist/core/persistentObjectiveStore.js.map +1 -1
  15. package/dist/core/securityDeliverableGenerator.d.ts +1 -1
  16. package/dist/core/securityDeliverableGenerator.d.ts.map +1 -1
  17. package/dist/core/securityDeliverableGenerator.js +3 -3
  18. package/dist/core/securityDeliverableGenerator.js.map +1 -1
  19. package/dist/core/toolRuntime.d.ts.map +1 -1
  20. package/dist/core/toolRuntime.js +11 -5
  21. package/dist/core/toolRuntime.js.map +1 -1
  22. package/dist/core/types.js.map +1 -1
  23. package/dist/core/unifiedOrchestrator.d.ts +265 -77
  24. package/dist/core/unifiedOrchestrator.d.ts.map +1 -1
  25. package/dist/core/unifiedOrchestrator.js +915 -254
  26. package/dist/core/unifiedOrchestrator.js.map +1 -1
  27. package/dist/providers/anthropicProvider.d.ts +1 -1
  28. package/dist/shell/interactiveShell.d.ts +1 -1
  29. package/dist/shell/interactiveShell.d.ts.map +1 -1
  30. package/dist/shell/interactiveShell.js +188 -207
  31. package/dist/shell/interactiveShell.js.map +1 -1
  32. package/dist/tools/tao/rl.js +1 -1
  33. package/dist/tools/tao/rl.js.map +1 -1
  34. package/dist/tools/taoTools.js +5 -5
  35. package/dist/tools/taoTools.js.map +1 -1
  36. package/package.json +1 -1
  37. package/dist/capabilities/unifiedInvestigationCapability.d.ts +0 -22
  38. package/dist/capabilities/unifiedInvestigationCapability.d.ts.map +0 -1
  39. package/dist/capabilities/unifiedInvestigationCapability.js +0 -41
  40. package/dist/capabilities/unifiedInvestigationCapability.js.map +0 -1
  41. package/dist/core/agentOrchestrator.d.ts +0 -400
  42. package/dist/core/agentOrchestrator.d.ts.map +0 -1
  43. package/dist/core/agentOrchestrator.js +0 -2133
  44. package/dist/core/agentOrchestrator.js.map +0 -1
  45. package/dist/core/autoExecutionOrchestrator.d.ts +0 -172
  46. package/dist/core/autoExecutionOrchestrator.d.ts.map +0 -1
  47. package/dist/core/autoExecutionOrchestrator.js +0 -591
  48. package/dist/core/autoExecutionOrchestrator.js.map +0 -1
  49. package/dist/core/dualAgentOrchestrator.d.ts +0 -34
  50. package/dist/core/dualAgentOrchestrator.d.ts.map +0 -1
  51. package/dist/core/dualAgentOrchestrator.js +0 -94
  52. package/dist/core/dualAgentOrchestrator.js.map +0 -1
  53. package/dist/core/failureRecovery.d.ts +0 -26
  54. package/dist/core/failureRecovery.d.ts.map +0 -1
  55. package/dist/core/failureRecovery.js +0 -54
  56. package/dist/core/failureRecovery.js.map +0 -1
  57. package/dist/core/intelligentTestFlows.d.ts +0 -45
  58. package/dist/core/intelligentTestFlows.d.ts.map +0 -1
  59. package/dist/core/intelligentTestFlows.js +0 -25
  60. package/dist/core/intelligentTestFlows.js.map +0 -1
  61. package/dist/core/learningPersistence.d.ts +0 -58
  62. package/dist/core/learningPersistence.d.ts.map +0 -1
  63. package/dist/core/learningPersistence.js +0 -46
  64. package/dist/core/learningPersistence.js.map +0 -1
  65. package/dist/core/metricsTracker.d.ts +0 -40
  66. package/dist/core/metricsTracker.d.ts.map +0 -1
  67. package/dist/core/metricsTracker.js +0 -83
  68. package/dist/core/metricsTracker.js.map +0 -1
  69. package/dist/core/orchestration.d.ts +0 -534
  70. package/dist/core/orchestration.d.ts.map +0 -1
  71. package/dist/core/orchestration.js +0 -2009
  72. package/dist/core/orchestration.js.map +0 -1
  73. package/dist/core/performanceMonitor.d.ts +0 -30
  74. package/dist/core/performanceMonitor.d.ts.map +0 -1
  75. package/dist/core/performanceMonitor.js +0 -39
  76. package/dist/core/performanceMonitor.js.map +0 -1
  77. package/dist/core/selfEvolution.d.ts +0 -61
  78. package/dist/core/selfEvolution.d.ts.map +0 -1
  79. package/dist/core/selfEvolution.js +0 -38
  80. package/dist/core/selfEvolution.js.map +0 -1
  81. package/dist/core/selfImprovement.d.ts +0 -82
  82. package/dist/core/selfImprovement.d.ts.map +0 -1
  83. package/dist/core/selfImprovement.js +0 -25
  84. package/dist/core/selfImprovement.js.map +0 -1
  85. package/dist/core/unifiedFraudOrchestrator.d.ts +0 -738
  86. package/dist/core/unifiedFraudOrchestrator.d.ts.map +0 -1
  87. package/dist/core/unifiedFraudOrchestrator.js +0 -3312
  88. package/dist/core/unifiedFraudOrchestrator.js.map +0 -1
  89. package/dist/core/unifiedRealOrchestrator.d.ts +0 -126
  90. package/dist/core/unifiedRealOrchestrator.d.ts.map +0 -1
  91. package/dist/core/unifiedRealOrchestrator.js +0 -558
  92. package/dist/core/unifiedRealOrchestrator.js.map +0 -1
  93. package/dist/core/userDefenseOrchestrator.d.ts +0 -202
  94. package/dist/core/userDefenseOrchestrator.d.ts.map +0 -1
  95. package/dist/core/userDefenseOrchestrator.js +0 -1006
  96. package/dist/core/userDefenseOrchestrator.js.map +0 -1
  97. package/dist/plugins/tools/unifiedInvestigation/unifiedInvestigationPlugin.d.ts +0 -3
  98. package/dist/plugins/tools/unifiedInvestigation/unifiedInvestigationPlugin.d.ts.map +0 -1
  99. package/dist/plugins/tools/unifiedInvestigation/unifiedInvestigationPlugin.js +0 -14
  100. package/dist/plugins/tools/unifiedInvestigation/unifiedInvestigationPlugin.js.map +0 -1
  101. package/dist/tools/frontendTestingTools.d.ts +0 -9
  102. package/dist/tools/frontendTestingTools.d.ts.map +0 -1
  103. package/dist/tools/frontendTestingTools.js +0 -291
  104. package/dist/tools/frontendTestingTools.js.map +0 -1
  105. package/dist/tools/unifiedInvestigationTools.d.ts +0 -19
  106. package/dist/tools/unifiedInvestigationTools.d.ts.map +0 -1
  107. package/dist/tools/unifiedInvestigationTools.js +0 -1163
  108. package/dist/tools/unifiedInvestigationTools.js.map +0 -1
  109. package/scripts/human-verification.mjs +0 -380
  110. package/scripts/isolated-verification-runner.mjs +0 -364
  111. package/scripts/isolated-verification-wrapper.mjs +0 -276
  112. package/scripts/verify-task-completion.mjs +0 -143
@@ -1,364 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * ISOLATED VERIFICATION RUNNER
5
- *
6
- * This script runs in a completely separate Node.js process to verify
7
- * assistant responses and task completion. It:
8
- * - Runs in a fresh Node.js process with no shared state
9
- * - Uses separate memory space and event loop
10
- * - Has independent error handling
11
- * - Cannot access main application state
12
- * - Verifies claims by running actual commands
13
- *
14
- * USAGE: node scripts/isolated-verification-runner.mjs <verification-type> [args...]
15
- */
16
-
17
- import { spawn, exec } from 'node:child_process';
18
- import { promisify } from 'node:util';
19
- import { readFileSync, existsSync, writeFileSync } from 'node:fs';
20
- import { fileURLToPath } from 'node:url';
21
- import { dirname, join } from 'node:path';
22
-
23
- const execAsync = promisify(exec);
24
- const __dirname = dirname(fileURLToPath(import.meta.url));
25
-
26
- // ============================================================================
27
- // TYPES
28
- // ============================================================================
29
-
30
- class IsolatedVerificationError extends Error {
31
- constructor(message, code = 'VERIFICATION_ERROR') {
32
- super(message);
33
- this.name = 'IsolatedVerificationError';
34
- this.code = code;
35
- }
36
- }
37
-
38
- // ============================================================================
39
- // ISOLATED PROCESS MANAGEMENT
40
- // ============================================================================
41
-
42
- /**
43
- * Spawn a completely isolated Node.js process for verification
44
- */
45
- function spawnIsolatedProcess(scriptPath, args = [], options = {}) {
46
- return new Promise((resolve, reject) => {
47
- const child = spawn(process.execPath, [scriptPath, ...args], {
48
- stdio: ['pipe', 'pipe', 'pipe'],
49
- cwd: process.cwd(),
50
- env: {
51
- ...process.env,
52
- // Ensure no shared state
53
- NODE_NO_WARNINGS: '1',
54
- VERIFICATION_ISOLATED: 'true',
55
- // Prevent any shared module cache
56
- NODE_OPTIONS: '--max-old-space-size=512'
57
- },
58
- ...options
59
- });
60
-
61
- let stdout = '';
62
- let stderr = '';
63
-
64
- child.stdout.on('data', (data) => {
65
- stdout += data.toString();
66
- });
67
-
68
- child.stderr.on('data', (data) => {
69
- stderr += data.toString();
70
- });
71
-
72
- child.on('close', (code) => {
73
- if (code === 0) {
74
- resolve({ stdout, stderr, code });
75
- } else {
76
- reject(new IsolatedVerificationError(
77
- `Isolated process failed with code ${code}: ${stderr}`,
78
- 'PROCESS_FAILED'
79
- ));
80
- }
81
- });
82
-
83
- child.on('error', (error) => {
84
- reject(new IsolatedVerificationError(
85
- `Failed to spawn isolated process: ${error.message}`,
86
- 'SPAWN_FAILED'
87
- ));
88
- });
89
- });
90
- }
91
-
92
- // ============================================================================
93
- // VERIFICATION TYPES
94
- // ============================================================================
95
-
96
- /**
97
- * Verify task completion by running actual commands
98
- */
99
- async function verifyTaskCompletion(taskDescription, changes = {}) {
100
- // Only log to stderr to keep stdout clean for JSON output
101
- process.stderr.write('šŸ” ISOLATED TASK VERIFICATION\n');
102
- process.stderr.write('==============================\n');
103
- process.stderr.write(`Task: ${taskDescription}\n`);
104
- process.stderr.write('\n');
105
-
106
- const results = {
107
- taskDescription,
108
- timestamp: new Date().toISOString(),
109
- verificationSteps: [],
110
- overallStatus: 'UNKNOWN'
111
- };
112
-
113
- // Step 1: Verify build system
114
- results.verificationSteps.push(await verifyBuildSystem());
115
-
116
- // Step 2: Verify test system
117
- results.verificationSteps.push(await verifyTestSystem());
118
-
119
- // Step 3: Verify health check
120
- results.verificationSteps.push(await verifyHealthCheck());
121
-
122
- // Step 4: Verify file changes
123
- results.verificationSteps.push(await verifyFileChanges(changes));
124
-
125
- // Determine overall status
126
- const failedSteps = results.verificationSteps.filter(step => !step.success);
127
- const criticalFailed = results.verificationSteps.filter(step =>
128
- !step.success && step.critical
129
- );
130
-
131
- if (criticalFailed.length > 0) {
132
- results.overallStatus = 'FAILED';
133
- } else if (failedSteps.length > 0) {
134
- results.overallStatus = 'PARTIAL_SUCCESS';
135
- } else {
136
- results.overallStatus = 'SUCCESS';
137
- }
138
-
139
- return results;
140
- }
141
-
142
- /**
143
- * Verify build system in isolation
144
- */
145
- async function verifyBuildSystem() {
146
- const step = {
147
- name: 'Build System Verification',
148
- critical: true,
149
- success: false,
150
- details: '',
151
- commands: []
152
- };
153
-
154
- try {
155
- // Check if TypeScript compilation works
156
- const { stdout: buildOutput } = await execAsync('npm run build', {
157
- timeout: 60000
158
- });
159
-
160
- step.commands.push('npm run build');
161
- step.details = buildOutput;
162
-
163
- // Verify dist directory exists
164
- if (existsSync('dist')) {
165
- step.success = true;
166
- step.details += '\nāœ… Build directory created successfully';
167
- } else {
168
- step.details += '\nāŒ Build directory not found';
169
- }
170
- } catch (error) {
171
- step.details = `Build failed: ${error.message}`;
172
- }
173
-
174
- return step;
175
- }
176
-
177
- /**
178
- * Verify test system in isolation
179
- */
180
- async function verifyTestSystem() {
181
- const step = {
182
- name: 'Test System Verification',
183
- critical: false,
184
- success: false,
185
- details: '',
186
- commands: []
187
- };
188
-
189
- try {
190
- // Run a simple test to verify system - use a more reliable test pattern
191
- const { stdout: testOutput } = await execAsync('npm test -- --testNamePattern="working-jest|health-check" --passWithNoTests', {
192
- timeout: 30000
193
- });
194
-
195
- step.commands.push('npm test -- --testNamePattern="working-jest|health-check" --passWithNoTests');
196
- step.details = testOutput;
197
-
198
- // Check if tests ran successfully (even if some failed)
199
- if (testOutput.includes('Test Suites:') || testOutput.includes('Tests:')) {
200
- step.success = true;
201
- step.details += '\nāœ… Test system operational';
202
- } else {
203
- step.details += '\nāš ļø Test system may have issues';
204
- }
205
- } catch (error) {
206
- // If tests fail, still mark as success for verification purposes
207
- // since we're testing the verification system itself
208
- step.success = true;
209
- step.details = `Test execution completed (some failures expected): ${error.message.substring(0, 200)}...`;
210
- }
211
-
212
- return step;
213
- }
214
-
215
- /**
216
- * Verify health check in isolation
217
- */
218
- async function verifyHealthCheck() {
219
- const step = {
220
- name: 'Health Check Verification',
221
- critical: false,
222
- success: false,
223
- details: '',
224
- commands: []
225
- };
226
-
227
- try {
228
- const { stdout: healthOutput } = await execAsync('npm run health-check', {
229
- timeout: 15000
230
- });
231
-
232
- step.commands.push('npm run health-check');
233
- step.details = healthOutput;
234
-
235
- if (healthOutput.includes('Health check passed') || healthOutput.includes('āœ…')) {
236
- step.success = true;
237
- step.details += '\nāœ… Health check passed';
238
- } else {
239
- step.details += '\nāš ļø Health check has warnings';
240
- }
241
- } catch (error) {
242
- step.details = `Health check failed: ${error.message}`;
243
- }
244
-
245
- return step;
246
- }
247
-
248
- /**
249
- * Verify file changes in isolation
250
- */
251
- async function verifyFileChanges(changes) {
252
- const step = {
253
- name: 'File Changes Verification',
254
- critical: false,
255
- success: false,
256
- details: '',
257
- commands: []
258
- };
259
-
260
- try {
261
- const changedFiles = Object.keys(changes);
262
- let verifiedFiles = 0;
263
-
264
- for (const file of changedFiles) {
265
- if (existsSync(file)) {
266
- verifiedFiles++;
267
- step.details += `\nāœ… ${file} exists`;
268
- } else {
269
- step.details += `\nāŒ ${file} missing`;
270
- }
271
- }
272
-
273
- step.success = verifiedFiles > 0;
274
- step.commands.push(`Checked ${changedFiles.length} files`);
275
-
276
- } catch (error) {
277
- step.details = `File verification failed: ${error.message}`;
278
- }
279
-
280
- return step;
281
- }
282
-
283
- // ============================================================================
284
- // MAIN VERIFICATION WORKFLOW
285
- // ============================================================================
286
-
287
- /**
288
- * Main verification entry point
289
- */
290
- async function main() {
291
- const args = process.argv.slice(2);
292
-
293
- if (args.length === 0) {
294
- console.error('Usage: node scripts/isolated-verification-runner.mjs <verification-type> [args...]');
295
- console.error('');
296
- console.error('Verification types:');
297
- console.error(' task <description> - Verify task completion');
298
- console.error(' build - Verify build system');
299
- console.error(' test - Verify test system');
300
- console.error(' health - Verify health check');
301
- process.exit(1);
302
- }
303
-
304
- const verificationType = args[0];
305
-
306
- try {
307
- let result;
308
-
309
- switch (verificationType) {
310
- case 'task':
311
- const taskDescription = args.slice(1).join(' ') || 'Unknown task';
312
- result = await verifyTaskCompletion(taskDescription);
313
- break;
314
-
315
- case 'build':
316
- result = await verifyBuildSystem();
317
- break;
318
-
319
- case 'test':
320
- result = await verifyTestSystem();
321
- break;
322
-
323
- case 'health':
324
- result = await verifyHealthCheck();
325
- break;
326
-
327
- default:
328
- throw new IsolatedVerificationError(`Unknown verification type: ${verificationType}`);
329
- }
330
-
331
- // Output results as JSON for machine consumption (stdout only)
332
- console.log(JSON.stringify(result, null, 2));
333
-
334
- // Exit with appropriate code
335
- // Only exit with error code if critical verification fails
336
- if (result.overallStatus === 'FAILED' || (result.success === false && result.critical)) {
337
- process.exit(1);
338
- } else {
339
- process.exit(0);
340
- }
341
-
342
- } catch (error) {
343
- console.error('Verification failed:', error.message);
344
- process.exit(1);
345
- }
346
- }
347
-
348
- // Run if called directly
349
- if (import.meta.url === `file://${process.argv[1]}`) {
350
- main().catch(error => {
351
- console.error('Fatal verification error:', error);
352
- process.exit(1);
353
- });
354
- }
355
-
356
- // Export for testing
357
-
358
- export {
359
- verifyTaskCompletion,
360
- verifyBuildSystem,
361
- verifyTestSystem,
362
- verifyHealthCheck,
363
- IsolatedVerificationError
364
- };
@@ -1,276 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * ISOLATED VERIFICATION WRAPPER
5
- *
6
- * This script provides a clean interface between the main CLI and the
7
- * isolated verification runner. It:
8
- * - Spawns completely separate processes for verification
9
- * - Handles communication via stdin/stdout
10
- * - Provides structured results to the main CLI
11
- * - Ensures no shared state between verification and main runtime
12
- *
13
- * USAGE: node scripts/isolated-verification-wrapper.mjs <command>
14
- */
15
-
16
- import { spawn } from 'node:child_process';
17
- import { readFileSync } from 'node:fs';
18
- import { fileURLToPath } from 'node:url';
19
- import { dirname, join } from 'node:path';
20
-
21
- const __dirname = dirname(fileURLToPath(import.meta.url));
22
-
23
- // ============================================================================
24
- // VERIFICATION INTERFACE
25
- // ============================================================================
26
-
27
- class IsolatedVerificationWrapper {
28
- constructor() {
29
- this.verifierPath = join(__dirname, 'isolated-verification-runner.mjs');
30
- }
31
-
32
- /**
33
- * Verify task completion in isolated process
34
- */
35
- async verifyTaskCompletion(taskDescription, changes = {}) {
36
- console.log('šŸš€ LAUNCHING ISOLATED VERIFICATION');
37
- console.log('===================================');
38
-
39
- return new Promise((resolve, reject) => {
40
- const child = spawn(process.execPath, [
41
- this.verifierPath,
42
- 'task',
43
- taskDescription
44
- ], {
45
- stdio: ['pipe', 'pipe', 'pipe'],
46
- cwd: process.cwd(),
47
- env: {
48
- ...process.env,
49
- // Ensure complete isolation
50
- NODE_NO_WARNINGS: '1',
51
- VERIFICATION_ISOLATED: 'true',
52
- // Prevent any shared module cache
53
- NODE_OPTIONS: '--max-old-space-size=512 --no-warnings'
54
- }
55
- });
56
-
57
- let stdout = '';
58
- let stderr = '';
59
-
60
- child.stdout.on('data', (data) => {
61
- stdout += data.toString();
62
- });
63
-
64
- child.stderr.on('data', (data) => {
65
- stderr += data.toString();
66
- });
67
-
68
- child.on('close', (code) => {
69
- try {
70
- if (code === 0) {
71
- const result = JSON.parse(stdout);
72
- resolve(result);
73
- } else {
74
- reject(new Error(`Verification failed with code ${code}: ${stderr}`));
75
- }
76
- } catch (error) {
77
- reject(new Error(`Failed to parse verification result: ${error.message}`));
78
- }
79
- });
80
-
81
- child.on('error', (error) => {
82
- reject(new Error(`Failed to spawn verification process: ${error.message}`));
83
- });
84
- });
85
- }
86
-
87
- /**
88
- * Verify build system in isolated process
89
- */
90
- async verifyBuildSystem() {
91
- return this.runIsolatedVerification('build');
92
- }
93
-
94
- /**
95
- * Verify test system in isolated process
96
- */
97
- async verifyTestSystem() {
98
- return this.runIsolatedVerification('test');
99
- }
100
-
101
- /**
102
- * Verify health check in isolated process
103
- */
104
- async verifyHealthCheck() {
105
- return this.runIsolatedVerification('health');
106
- }
107
-
108
- /**
109
- * Generic isolated verification runner
110
- */
111
- async runIsolatedVerification(type) {
112
- return new Promise((resolve, reject) => {
113
- const child = spawn(process.execPath, [
114
- this.verifierPath,
115
- type
116
- ], {
117
- stdio: ['pipe', 'pipe', 'pipe'],
118
- cwd: process.cwd(),
119
- env: {
120
- ...process.env,
121
- NODE_NO_WARNINGS: '1',
122
- VERIFICATION_ISOLATED: 'true',
123
- NODE_OPTIONS: '--max-old-space-size=512'
124
- }
125
- });
126
-
127
- let stdout = '';
128
- let stderr = '';
129
-
130
- child.stdout.on('data', (data) => {
131
- stdout += data.toString();
132
- });
133
-
134
- child.stderr.on('data', (data) => {
135
- stderr += data.toString();
136
- });
137
-
138
- child.on('close', (code) => {
139
- if (code === 0) {
140
- try {
141
- const result = JSON.parse(stdout);
142
- resolve(result);
143
- } catch (error) {
144
- resolve({ success: true, output: stdout });
145
- }
146
- } else {
147
- reject(new Error(`Verification failed: ${stderr}`));
148
- }
149
- });
150
-
151
- child.on('error', (error) => {
152
- reject(new Error(`Failed to spawn verification: ${error.message}`));
153
- });
154
- });
155
- }
156
-
157
- /**
158
- * Generate human-readable verification report
159
- */
160
- generateReport(result) {
161
- let report = '\nšŸ“Š ISOLATED VERIFICATION REPORT\n';
162
- report += '================================\n\n';
163
-
164
- if (result.overallStatus) {
165
- const statusIcon = result.overallStatus === 'SUCCESS' ? 'āœ…' :
166
- result.overallStatus === 'PARTIAL_SUCCESS' ? 'āš ļø' : 'āŒ';
167
- report += `${statusIcon} OVERALL STATUS: ${result.overallStatus}\n\n`;
168
- }
169
-
170
- if (result.verificationSteps) {
171
- report += 'šŸ” VERIFICATION STEPS:\n';
172
- result.verificationSteps.forEach((step, index) => {
173
- const stepIcon = step.success ? 'āœ…' : step.critical ? 'āŒ' : 'āš ļø';
174
- report += ` ${stepIcon} ${step.name}\n`;
175
- if (step.details) {
176
- const lines = step.details.split('\n').slice(0, 3);
177
- lines.forEach(line => {
178
- if (line.trim()) report += ` ${line}\n`;
179
- });
180
- }
181
- });
182
- }
183
-
184
- if (result.success !== undefined) {
185
- const icon = result.success ? 'āœ…' : 'āŒ';
186
- report += `\n${icon} VERIFICATION: ${result.success ? 'PASSED' : 'FAILED'}\n`;
187
- }
188
-
189
- report += '\nšŸ”’ VERIFICATION ISOLATION: COMPLETE\n';
190
- report += ' • Separate Node.js process\n';
191
- report += ' • Independent memory space\n';
192
- report += ' • No shared state with main CLI\n';
193
-
194
- return report;
195
- }
196
- }
197
-
198
- // ============================================================================
199
- // CLI INTERFACE
200
- // ============================================================================
201
-
202
- /**
203
- * Main CLI entry point
204
- */
205
- async function main() {
206
- const args = process.argv.slice(2);
207
-
208
- if (args.length === 0) {
209
- console.error('Usage: node scripts/isolated-verification-wrapper.mjs <command> [args...]');
210
- console.error('');
211
- console.error('Commands:');
212
- console.error(' task <description> - Verify task completion');
213
- console.error(' build - Verify build system');
214
- console.error(' test - Verify test system');
215
- console.error(' health - Verify health check');
216
- console.error('');
217
- console.error('Example:');
218
- console.error(' node scripts/isolated-verification-wrapper.mjs task "Fix verification system"');
219
- process.exit(1);
220
- }
221
-
222
- const wrapper = new IsolatedVerificationWrapper();
223
- const command = args[0];
224
-
225
- try {
226
- let result;
227
-
228
- switch (command) {
229
- case 'task':
230
- const taskDescription = args.slice(1).join(' ') || 'Unknown task';
231
- result = await wrapper.verifyTaskCompletion(taskDescription);
232
- break;
233
-
234
- case 'build':
235
- result = await wrapper.verifyBuildSystem();
236
- break;
237
-
238
- case 'test':
239
- result = await wrapper.verifyTestSystem();
240
- break;
241
-
242
- case 'health':
243
- result = await wrapper.verifyHealthCheck();
244
- break;
245
-
246
- default:
247
- console.error(`Unknown command: ${command}`);
248
- process.exit(1);
249
- }
250
-
251
- // Generate and display report
252
- const report = wrapper.generateReport(result);
253
- console.log(report);
254
-
255
- // Exit with appropriate code
256
- // Only exit with error if critical verification fails
257
- const success = result.overallStatus !== 'FAILED' &&
258
- !(result.success === false && result.critical);
259
- process.exit(success ? 0 : 1);
260
-
261
- } catch (error) {
262
- console.error('āŒ Verification wrapper failed:', error.message);
263
- process.exit(1);
264
- }
265
- }
266
-
267
- // Run if called directly
268
- if (import.meta.url === `file://${process.argv[1]}`) {
269
- main().catch(error => {
270
- console.error('Fatal error in verification wrapper:', error);
271
- process.exit(1);
272
- });
273
- }
274
-
275
- // Export for use in main CLI
276
- export { IsolatedVerificationWrapper };