vibecodingmachine-core 2026.2.20-438 → 2026.2.26-1642
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +240 -0
- package/package.json +10 -2
- package/src/agents/Agent.js +300 -0
- package/src/agents/AgentAdditionService.js +311 -0
- package/src/agents/AgentCheckService.js +690 -0
- package/src/agents/AgentInstallationService.js +140 -0
- package/src/agents/AgentSetupService.js +467 -0
- package/src/agents/AgentStatus.js +183 -0
- package/src/agents/AgentVerificationService.js +634 -0
- package/src/agents/ConfigurationSchemaValidator.js +543 -0
- package/src/agents/EnvironmentConfigurationManager.js +602 -0
- package/src/agents/InstallationErrorHandler.js +372 -0
- package/src/agents/InstallationLog.js +363 -0
- package/src/agents/InstallationMethod.js +510 -0
- package/src/agents/InstallationOrchestrator.js +352 -0
- package/src/agents/InstallationProgressReporter.js +372 -0
- package/src/agents/InstallationRetryManager.js +322 -0
- package/src/agents/InstallationType.js +254 -0
- package/src/agents/OperationTypes.js +310 -0
- package/src/agents/PerformanceMetricsCollector.js +493 -0
- package/src/agents/SecurityValidationService.js +534 -0
- package/src/agents/VerificationTest.js +354 -0
- package/src/agents/VerificationType.js +226 -0
- package/src/agents/WindowsPermissionHandler.js +518 -0
- package/src/agents/config/AgentConfigManager.js +393 -0
- package/src/agents/config/AgentDefaultsRegistry.js +373 -0
- package/src/agents/config/ConfigValidator.js +281 -0
- package/src/agents/discovery/AgentDiscoveryService.js +707 -0
- package/src/agents/logging/AgentLogger.js +511 -0
- package/src/agents/status/AgentStatusManager.js +481 -0
- package/src/agents/storage/FileManager.js +454 -0
- package/src/agents/verification/AgentCommunicationTester.js +474 -0
- package/src/agents/verification/BaseVerifier.js +430 -0
- package/src/agents/verification/CommandVerifier.js +480 -0
- package/src/agents/verification/FileOperationVerifier.js +453 -0
- package/src/agents/verification/ResultAnalyzer.js +707 -0
- package/src/agents/verification/TestRequirementManager.js +495 -0
- package/src/agents/verification/VerificationRunner.js +433 -0
- package/src/agents/windows/BaseWindowsInstaller.js +441 -0
- package/src/agents/windows/ChocolateyInstaller.js +509 -0
- package/src/agents/windows/DirectInstaller.js +443 -0
- package/src/agents/windows/InstallerFactory.js +391 -0
- package/src/agents/windows/NpmInstaller.js +505 -0
- package/src/agents/windows/PowerShellInstaller.js +458 -0
- package/src/agents/windows/WinGetInstaller.js +390 -0
- package/src/analysis/analysis-reporter.js +132 -0
- package/src/analysis/boundary-detector.js +712 -0
- package/src/analysis/categorizer.js +340 -0
- package/src/analysis/codebase-scanner.js +384 -0
- package/src/analysis/line-counter.js +513 -0
- package/src/analysis/priority-calculator.js +679 -0
- package/src/analysis/report/analysis-report.js +250 -0
- package/src/analysis/report/package-analyzer.js +278 -0
- package/src/analysis/report/recommendation-generator.js +382 -0
- package/src/analysis/report/statistics-generator.js +515 -0
- package/src/analysis/reports/analysis-report-model.js +101 -0
- package/src/analysis/reports/recommendation-generator.js +283 -0
- package/src/analysis/reports/report-generators.js +191 -0
- package/src/analysis/reports/statistics-calculator.js +231 -0
- package/src/analysis/reports/trend-analyzer.js +219 -0
- package/src/analysis/strategy-generator.js +814 -0
- package/src/auto-mode/AutoModeBusinessLogic.js +836 -0
- package/src/config/refactoring-config.js +307 -0
- package/src/health-tracking/json-storage.js +38 -2
- package/src/ide-integration/applescript-manager-core.js +233 -0
- package/src/ide-integration/applescript-manager.cjs +357 -28
- package/src/ide-integration/applescript-manager.js +89 -3599
- package/src/ide-integration/cdp-manager.js +306 -0
- package/src/ide-integration/claude-code-cli-manager.cjs +1 -1
- package/src/ide-integration/continuation-handler.js +337 -0
- package/src/ide-integration/ide-status-checker.js +292 -0
- package/src/ide-integration/macos-ide-manager.js +627 -0
- package/src/ide-integration/macos-text-sender.js +528 -0
- package/src/ide-integration/response-reader.js +548 -0
- package/src/ide-integration/windows-automation-manager.js +121 -0
- package/src/ide-integration/windows-ide-manager.js +373 -0
- package/src/index.cjs +25 -3
- package/src/index.js +15 -1
- package/src/llm/direct-llm-manager.cjs +90 -2
- package/src/models/compliance-report.js +538 -0
- package/src/models/file-analysis.js +681 -0
- package/src/models/refactoring-plan.js +770 -0
- package/src/monitoring/alert-system.js +834 -0
- package/src/monitoring/compliance-progress-tracker.js +437 -0
- package/src/monitoring/continuous-scan-notifications.js +661 -0
- package/src/monitoring/continuous-scanner.js +279 -0
- package/src/monitoring/file-monitor/file-analyzer.js +262 -0
- package/src/monitoring/file-monitor/file-monitor.js +237 -0
- package/src/monitoring/file-monitor/watcher.js +194 -0
- package/src/monitoring/file-monitor.js +17 -0
- package/src/monitoring/notification-manager.js +437 -0
- package/src/monitoring/scanner-core.js +368 -0
- package/src/monitoring/scanner-events.js +214 -0
- package/src/monitoring/violation-notification-system.js +515 -0
- package/src/refactoring/boundaries/cohesion-analyzer.js +316 -0
- package/src/refactoring/boundaries/extraction-result.js +285 -0
- package/src/refactoring/boundaries/extraction-strategies.js +392 -0
- package/src/refactoring/boundaries/module-boundary.js +209 -0
- package/src/refactoring/boundary/boundary-detector.js +741 -0
- package/src/refactoring/boundary/boundary-types.js +405 -0
- package/src/refactoring/boundary/extraction-strategies.js +554 -0
- package/src/refactoring/boundary-extraction-result.js +77 -0
- package/src/refactoring/boundary-extraction-strategies.js +330 -0
- package/src/refactoring/boundary-extractor.js +384 -0
- package/src/refactoring/boundary-types.js +46 -0
- package/src/refactoring/circular/circular-dependency.js +88 -0
- package/src/refactoring/circular/cycle-detection.js +147 -0
- package/src/refactoring/circular/dependency-node.js +82 -0
- package/src/refactoring/circular/dependency-result.js +107 -0
- package/src/refactoring/circular/dependency-types.js +58 -0
- package/src/refactoring/circular/graph-builder.js +213 -0
- package/src/refactoring/circular/resolution-strategy.js +72 -0
- package/src/refactoring/circular/strategy-generator.js +229 -0
- package/src/refactoring/circular-dependency-resolver-original.js +809 -0
- package/src/refactoring/circular-dependency-resolver.js +200 -0
- package/src/refactoring/code-mover.js +761 -0
- package/src/refactoring/file-splitter.js +696 -0
- package/src/refactoring/functionality-validator.js +816 -0
- package/src/refactoring/import-manager.js +774 -0
- package/src/refactoring/module-boundary.js +107 -0
- package/src/refactoring/refactoring-executor.js +672 -0
- package/src/refactoring/refactoring-rollback.js +614 -0
- package/src/refactoring/test-validator.js +631 -0
- package/src/requirement-management/default-requirement-manager.js +321 -0
- package/src/requirement-management/requirement-file-parser.js +159 -0
- package/src/requirement-management/requirement-sequencer.js +221 -0
- package/src/rui/commands/AgentCommandParser.js +600 -0
- package/src/rui/commands/AgentCommands.js +487 -0
- package/src/rui/commands/AgentResponseFormatter.js +832 -0
- package/src/scripts/verify-full-compliance.js +269 -0
- package/src/sync/sync-engine-core.js +1 -0
- package/src/sync/sync-engine-remote-handlers.js +135 -0
- package/src/task-generation/automated-task-generator.js +351 -0
- package/src/task-generation/prioritizer.js +287 -0
- package/src/task-generation/task-list-updater.js +215 -0
- package/src/task-generation/task-management-integration.js +480 -0
- package/src/task-generation/task-manager-integration.js +270 -0
- package/src/task-generation/violation-task-generator.js +474 -0
- package/src/task-management/continuous-scan-integration.js +342 -0
- package/src/timeout-management/index.js +12 -3
- package/src/timeout-management/response-time-tracker.js +167 -0
- package/src/timeout-management/timeout-calculator.js +159 -0
- package/src/timeout-management/timeout-config-manager.js +172 -0
- package/src/utils/ast-analyzer.js +417 -0
- package/src/utils/current-requirement-manager.js +276 -0
- package/src/utils/current-requirement-operations.js +472 -0
- package/src/utils/dependency-mapper.js +456 -0
- package/src/utils/download-with-progress.js +4 -2
- package/src/utils/electron-update-checker.js +4 -1
- package/src/utils/file-size-analyzer.js +272 -0
- package/src/utils/import-updater.js +280 -0
- package/src/utils/refactoring-tools.js +512 -0
- package/src/utils/report-generator.js +569 -0
- package/src/utils/reports/report-analysis.js +218 -0
- package/src/utils/reports/report-types.js +55 -0
- package/src/utils/reports/summary-generators.js +102 -0
- package/src/utils/requirement-file-management.js +157 -0
- package/src/utils/requirement-helpers/requirement-file-ops.js +392 -0
- package/src/utils/requirement-helpers/requirement-mover.js +414 -0
- package/src/utils/requirement-helpers/requirement-parser.js +326 -0
- package/src/utils/requirement-helpers/requirement-status.js +320 -0
- package/src/utils/requirement-helpers-new.js +55 -0
- package/src/utils/requirement-helpers-refactored.js +367 -0
- package/src/utils/requirement-helpers.js +291 -1191
- package/src/utils/requirement-movement-operations.js +450 -0
- package/src/utils/requirement-movement.js +312 -0
- package/src/utils/requirement-parsing-helpers.js +56 -0
- package/src/utils/requirement-statistics.js +200 -0
- package/src/utils/requirement-text-utils.js +58 -0
- package/src/utils/rollback/rollback-handlers.js +125 -0
- package/src/utils/rollback/rollback-operation.js +63 -0
- package/src/utils/rollback/rollback-recorder.js +166 -0
- package/src/utils/rollback/rollback-state-manager.js +175 -0
- package/src/utils/rollback/rollback-types.js +33 -0
- package/src/utils/rollback/rollback-utils.js +110 -0
- package/src/utils/rollback-manager-original.js +569 -0
- package/src/utils/rollback-manager.js +202 -0
- package/src/utils/smoke-test-cli.js +362 -0
- package/src/utils/smoke-test-gui.js +351 -0
- package/src/utils/smoke-test-orchestrator.js +321 -0
- package/src/utils/smoke-test-runner.js +60 -0
- package/src/utils/smoke-test-web.js +347 -0
- package/src/utils/specification-helpers.js +39 -13
- package/src/utils/specification-migration.js +97 -0
- package/src/utils/test-runner.js +579 -0
- package/src/utils/validation-framework.js +518 -0
- package/src/validation/compliance-analyzer.js +197 -0
- package/src/validation/compliance-report-generator.js +343 -0
- package/src/validation/compliance-reporter.js +711 -0
- package/src/validation/compliance-rules.js +127 -0
- package/src/validation/constitution-validator-new.js +196 -0
- package/src/validation/constitution-validator.js +17 -0
- package/src/validation/file-validators.js +170 -0
- package/src/validation/line-limit/file-analyzer.js +201 -0
- package/src/validation/line-limit/line-limit-validator.js +208 -0
- package/src/validation/line-limit/validation-result.js +144 -0
- package/src/validation/line-limit-core.js +225 -0
- package/src/validation/line-limit-reporter.js +134 -0
- package/src/validation/line-limit-result.js +125 -0
- package/src/validation/line-limit-validator.js +41 -0
- package/src/validation/metrics-calculator.js +660 -0
- package/src/sync/sync-engine-backup.js +0 -559
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 100% File Size Compliance Verification
|
|
3
|
+
*
|
|
4
|
+
* Verifies that all source files in the repository comply with the 555-line limit.
|
|
5
|
+
* This is Task T065 from the 555 Max File Size Refactoring specification.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const path = require('path');
|
|
9
|
+
const { validateDirectory } = require('../validation/line-limit-validator');
|
|
10
|
+
|
|
11
|
+
class ComplianceVerifier {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.rootDir = path.resolve(__dirname, '../../../..'); // Go up to repo root
|
|
14
|
+
this.packagesDir = path.join(this.rootDir, 'packages');
|
|
15
|
+
this.totalFiles = 0;
|
|
16
|
+
this.compliantFiles = 0;
|
|
17
|
+
this.violationFiles = [];
|
|
18
|
+
this.violationDetails = [];
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Verify 100% file size compliance across all source files
|
|
23
|
+
*/
|
|
24
|
+
async verifyFullCompliance() {
|
|
25
|
+
console.log('🔍 Starting 100% file size compliance verification...');
|
|
26
|
+
console.log(`📁 Scanning directory: ${this.rootDir}`);
|
|
27
|
+
|
|
28
|
+
try {
|
|
29
|
+
// Validate all packages directories
|
|
30
|
+
const packages = this.getPackageDirectories();
|
|
31
|
+
|
|
32
|
+
for (const packageDir of packages) {
|
|
33
|
+
await this.verifyPackage(packageDir);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Generate compliance report
|
|
37
|
+
const complianceReport = this.generateComplianceReport();
|
|
38
|
+
|
|
39
|
+
// Log results
|
|
40
|
+
this.logResults(complianceReport);
|
|
41
|
+
|
|
42
|
+
return complianceReport;
|
|
43
|
+
|
|
44
|
+
} catch (error) {
|
|
45
|
+
console.error('❌ Compliance verification failed:', error.message);
|
|
46
|
+
throw error;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Get all package directories to scan
|
|
52
|
+
*/
|
|
53
|
+
getPackageDirectories() {
|
|
54
|
+
const packages = [];
|
|
55
|
+
|
|
56
|
+
// Core packages that should always be scanned
|
|
57
|
+
const corePackages = [
|
|
58
|
+
'packages/core',
|
|
59
|
+
'packages/cli',
|
|
60
|
+
'packages/electron-app',
|
|
61
|
+
'packages/web',
|
|
62
|
+
'packages/mobile',
|
|
63
|
+
'packages/vscode-extension',
|
|
64
|
+
'packages/chrome-extension',
|
|
65
|
+
'packages/admin',
|
|
66
|
+
'packages/api-server'
|
|
67
|
+
];
|
|
68
|
+
|
|
69
|
+
for (const pkg of corePackages) {
|
|
70
|
+
const fullPath = path.join(this.rootDir, pkg);
|
|
71
|
+
if (this.directoryExists(fullPath)) {
|
|
72
|
+
packages.push(fullPath);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return packages;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Verify a specific package directory
|
|
81
|
+
*/
|
|
82
|
+
async verifyPackage(packageDir) {
|
|
83
|
+
console.log(`\n📦 Verifying package: ${path.basename(packageDir)}`);
|
|
84
|
+
|
|
85
|
+
try {
|
|
86
|
+
const results = validateDirectory(packageDir, {
|
|
87
|
+
limit: 555,
|
|
88
|
+
warningThreshold: 500,
|
|
89
|
+
criticalThreshold: 800
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
this.processValidationResults(results, packageDir);
|
|
93
|
+
|
|
94
|
+
} catch (error) {
|
|
95
|
+
console.warn(`⚠️ Could not validate package ${packageDir}: ${error.message}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Process validation results
|
|
101
|
+
*/
|
|
102
|
+
processValidationResults(results, packageDir) {
|
|
103
|
+
for (const result of results) {
|
|
104
|
+
this.totalFiles++;
|
|
105
|
+
|
|
106
|
+
if (result.isViolation()) {
|
|
107
|
+
this.violationFiles.push(result.filePath);
|
|
108
|
+
this.violationDetails.push({
|
|
109
|
+
filePath: result.filePath,
|
|
110
|
+
lineCount: result.lineCount,
|
|
111
|
+
limit: result.limit,
|
|
112
|
+
excess: result.lineCount - result.limit,
|
|
113
|
+
severity: result.getComplianceStatus(),
|
|
114
|
+
package: path.basename(packageDir)
|
|
115
|
+
});
|
|
116
|
+
} else {
|
|
117
|
+
this.compliantFiles++;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Generate comprehensive compliance report
|
|
124
|
+
*/
|
|
125
|
+
generateComplianceReport() {
|
|
126
|
+
const compliancePercentage = this.totalFiles > 0 ?
|
|
127
|
+
(this.compliantFiles / this.totalFiles) * 100 : 0;
|
|
128
|
+
|
|
129
|
+
const isFullyCompliant = this.violationFiles.length === 0;
|
|
130
|
+
|
|
131
|
+
return {
|
|
132
|
+
summary: {
|
|
133
|
+
totalFiles: this.totalFiles,
|
|
134
|
+
compliantFiles: this.compliantFiles,
|
|
135
|
+
violationFiles: this.violationFiles.length,
|
|
136
|
+
compliancePercentage: compliancePercentage.toFixed(2),
|
|
137
|
+
isFullyCompliant: isFullyCompliant,
|
|
138
|
+
verifiedAt: new Date().toISOString()
|
|
139
|
+
},
|
|
140
|
+
violations: this.violationDetails,
|
|
141
|
+
status: isFullyCompliant ? 'COMPLIANT' : 'NON_COMPLIANT',
|
|
142
|
+
message: isFullyCompliant ?
|
|
143
|
+
'✅ All files comply with the 555-line limit!' :
|
|
144
|
+
`❌ ${this.violationFiles.length} files exceed the 555-line limit`
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Log detailed results
|
|
150
|
+
*/
|
|
151
|
+
logResults(report) {
|
|
152
|
+
console.log('\n' + '='.repeat(80));
|
|
153
|
+
console.log('📊 COMPLIANCE VERIFICATION RESULTS');
|
|
154
|
+
console.log('='.repeat(80));
|
|
155
|
+
|
|
156
|
+
console.log(`\n📈 SUMMARY:`);
|
|
157
|
+
console.log(` Total files scanned: ${report.summary.totalFiles}`);
|
|
158
|
+
console.log(` Compliant files: ${report.summary.compliantFiles}`);
|
|
159
|
+
console.log(` Violation files: ${report.summary.violationFiles}`);
|
|
160
|
+
console.log(` Compliance rate: ${report.summary.compliancePercentage}%`);
|
|
161
|
+
console.log(` Status: ${report.status}`);
|
|
162
|
+
|
|
163
|
+
if (report.violations.length > 0) {
|
|
164
|
+
console.log(`\n❌ VIOLATIONS (${report.violations.length}):`);
|
|
165
|
+
|
|
166
|
+
// Group violations by package
|
|
167
|
+
const violationsByPackage = {};
|
|
168
|
+
for (const violation of report.violations) {
|
|
169
|
+
if (!violationsByPackage[violation.package]) {
|
|
170
|
+
violationsByPackage[violation.package] = [];
|
|
171
|
+
}
|
|
172
|
+
violationsByPackage[violation.package].push(violation);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
for (const [pkg, pkgViolations] of Object.entries(violationsByPackage)) {
|
|
176
|
+
console.log(`\n📦 ${pkg} (${pkgViolations.length} violations):`);
|
|
177
|
+
|
|
178
|
+
for (const violation of pkgViolations.sort((a, b) => b.lineCount - a.lineCount)) {
|
|
179
|
+
console.log(` ❌ ${violation.lineCount} lines (+${violation.excess}) - ${violation.filePath}`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
console.log(`\n🎯 RECOMMENDATIONS:`);
|
|
184
|
+
console.log(` 1. Prioritize files with highest line counts`);
|
|
185
|
+
console.log(` 2. Use existing refactoring tools in packages/core/src/refactoring/`);
|
|
186
|
+
console.log(` 3. Run 'npm run check-compliance' after each refactoring`);
|
|
187
|
+
console.log(` 4. Update tasks.md to mark completed refactoring tasks`);
|
|
188
|
+
|
|
189
|
+
} else {
|
|
190
|
+
console.log(`\n🎉 EXCELLENT! All files are within the 555-line limit.`);
|
|
191
|
+
console.log(` The codebase is fully compliant with constitutional requirements.`);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
console.log('\n' + '='.repeat(80));
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Check if directory exists
|
|
199
|
+
*/
|
|
200
|
+
directoryExists(dirPath) {
|
|
201
|
+
try {
|
|
202
|
+
const stats = require('fs').statSync(dirPath);
|
|
203
|
+
return stats.isDirectory();
|
|
204
|
+
} catch {
|
|
205
|
+
return false;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* Get violations by severity
|
|
211
|
+
*/
|
|
212
|
+
getViolationsBySeverity() {
|
|
213
|
+
const bySeverity = {
|
|
214
|
+
critical: [],
|
|
215
|
+
warning: [],
|
|
216
|
+
info: []
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
for (const violation of this.violationDetails) {
|
|
220
|
+
const severity = this.getSeverityFromLineCount(violation.lineCount);
|
|
221
|
+
bySeverity[severity].push(violation);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
return bySeverity;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Get severity from line count
|
|
229
|
+
*/
|
|
230
|
+
getSeverityFromLineCount(lineCount) {
|
|
231
|
+
if (lineCount > 800) return 'critical';
|
|
232
|
+
if (lineCount > 555) return 'warning';
|
|
233
|
+
return 'info';
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Main execution function
|
|
239
|
+
*/
|
|
240
|
+
async function runComplianceVerification() {
|
|
241
|
+
const verifier = new ComplianceVerifier();
|
|
242
|
+
|
|
243
|
+
try {
|
|
244
|
+
const report = await verifier.verifyFullCompliance();
|
|
245
|
+
|
|
246
|
+
// Exit with appropriate code
|
|
247
|
+
if (report.summary.isFullyCompliant) {
|
|
248
|
+
console.log('\n✅ Compliance verification PASSED');
|
|
249
|
+
process.exit(0);
|
|
250
|
+
} else {
|
|
251
|
+
console.log('\n❌ Compliance verification FAILED');
|
|
252
|
+
process.exit(1);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
} catch (error) {
|
|
256
|
+
console.error('💥 Verification failed:', error);
|
|
257
|
+
process.exit(2);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
// Run if called directly
|
|
262
|
+
if (require.main === module) {
|
|
263
|
+
runComplianceVerification();
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
module.exports = {
|
|
267
|
+
ComplianceVerifier,
|
|
268
|
+
runComplianceVerification
|
|
269
|
+
};
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sync Engine Remote Control Handlers
|
|
3
|
+
* Extracted from sync-engine-backup.js for 555-line compliance
|
|
4
|
+
* Handles remote control commands for the sync engine
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Setup remote control event handlers
|
|
9
|
+
* @param {Object} syncEngine - The sync engine instance
|
|
10
|
+
*/
|
|
11
|
+
function setupRemoteControlHandlers(syncEngine) {
|
|
12
|
+
if (!syncEngine.remoteControlServer) return;
|
|
13
|
+
|
|
14
|
+
// Handle remote control commands
|
|
15
|
+
syncEngine.remoteControlServer.on('command', async (command) => {
|
|
16
|
+
console.log('🎮 Remote control command received:', command);
|
|
17
|
+
|
|
18
|
+
try {
|
|
19
|
+
switch (command.type) {
|
|
20
|
+
case 'start-auto':
|
|
21
|
+
await handleStartAutoCommand(syncEngine, command);
|
|
22
|
+
break;
|
|
23
|
+
case 'stop-auto':
|
|
24
|
+
await handleStopAutoCommand(syncEngine, command);
|
|
25
|
+
break;
|
|
26
|
+
case 'get-status':
|
|
27
|
+
await handleGetStatusCommand(syncEngine, command);
|
|
28
|
+
break;
|
|
29
|
+
default:
|
|
30
|
+
console.log('❌ Unknown remote control command:', command.type);
|
|
31
|
+
syncEngine.remoteControlServer.sendToClientById(command.clientId, 'command-error', {
|
|
32
|
+
command: command.type,
|
|
33
|
+
error: 'Unknown command type'
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
} catch (error) {
|
|
37
|
+
console.error('❌ Error handling remote control command:', error);
|
|
38
|
+
syncEngine.remoteControlServer.sendToClientById(command.clientId, 'command-error', {
|
|
39
|
+
command: command.type,
|
|
40
|
+
error: error.message
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
// Handle client authentication
|
|
46
|
+
syncEngine.remoteControlServer.on('client-authenticated', (data) => {
|
|
47
|
+
console.log('🔐 Remote control client authenticated:', data.userInfo.username);
|
|
48
|
+
syncEngine.emit('remote-client-authenticated', data);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
// Handle client disconnection
|
|
52
|
+
syncEngine.remoteControlServer.on('client-disconnected', (data) => {
|
|
53
|
+
console.log('🔌 Remote control client disconnected:', data.clientId);
|
|
54
|
+
syncEngine.emit('remote-client-disconnected', data);
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
console.log('✅ Remote control handlers setup complete');
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Handle start-auto command
|
|
62
|
+
* @param {Object} syncEngine - The sync engine instance
|
|
63
|
+
* @param {Object} command - The command object
|
|
64
|
+
*/
|
|
65
|
+
async function handleStartAutoCommand(syncEngine, command) {
|
|
66
|
+
console.log('🚀 Starting auto mode via remote control');
|
|
67
|
+
|
|
68
|
+
// Emit event for main application to handle
|
|
69
|
+
syncEngine.emit('remote-start-auto', {
|
|
70
|
+
clientId: command.clientId,
|
|
71
|
+
userInfo: command.userInfo,
|
|
72
|
+
data: command.data
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
// Send confirmation back to client
|
|
76
|
+
syncEngine.remoteControlServer.sendToClientById(command.clientId, 'command-success', {
|
|
77
|
+
command: 'start-auto',
|
|
78
|
+
message: 'Auto mode started successfully'
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Handle stop-auto command
|
|
84
|
+
* @param {Object} syncEngine - The sync engine instance
|
|
85
|
+
* @param {Object} command - The command object
|
|
86
|
+
*/
|
|
87
|
+
async function handleStopAutoCommand(syncEngine, command) {
|
|
88
|
+
console.log('🛑 Stopping auto mode via remote control');
|
|
89
|
+
|
|
90
|
+
// Emit event for main application to handle
|
|
91
|
+
syncEngine.emit('remote-stop-auto', {
|
|
92
|
+
clientId: command.clientId,
|
|
93
|
+
userInfo: command.userInfo,
|
|
94
|
+
data: command.data
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
// Send confirmation back to client
|
|
98
|
+
syncEngine.remoteControlServer.sendToClientById(command.clientId, 'command-success', {
|
|
99
|
+
command: 'stop-auto',
|
|
100
|
+
message: 'Auto mode stopped successfully'
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Handle get-status command
|
|
106
|
+
* @param {Object} syncEngine - The sync engine instance
|
|
107
|
+
* @param {Object} command - The command object
|
|
108
|
+
*/
|
|
109
|
+
async function handleGetStatusCommand(syncEngine, command) {
|
|
110
|
+
console.log('📊 Getting status via remote control');
|
|
111
|
+
|
|
112
|
+
// Get current status
|
|
113
|
+
const status = {
|
|
114
|
+
computerId: syncEngine.computerId,
|
|
115
|
+
isOnline: syncEngine.isOnline,
|
|
116
|
+
isSyncing: syncEngine.isSyncing,
|
|
117
|
+
lastSyncTime: syncEngine.lastSyncTime,
|
|
118
|
+
offlineQueueSize: syncEngine.offlineQueue?.length || 0,
|
|
119
|
+
changeHistorySize: syncEngine.changeHistory?.length || 0,
|
|
120
|
+
syncEngineStatus: 'running'
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
// Send status back to client
|
|
124
|
+
syncEngine.remoteControlServer.sendToClientById(command.clientId, 'status-response', {
|
|
125
|
+
command: 'get-status',
|
|
126
|
+
status
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
module.exports = {
|
|
131
|
+
setupRemoteControlHandlers,
|
|
132
|
+
handleStartAutoCommand,
|
|
133
|
+
handleStopAutoCommand,
|
|
134
|
+
handleGetStatusCommand
|
|
135
|
+
};
|