vibecodingmachine-core 2026.2.20-438 → 2026.2.26-1739

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 (202) hide show
  1. package/README.md +240 -0
  2. package/package.json +10 -2
  3. package/src/agents/Agent.js +300 -0
  4. package/src/agents/AgentAdditionService.js +311 -0
  5. package/src/agents/AgentCheckService.js +690 -0
  6. package/src/agents/AgentInstallationService.js +140 -0
  7. package/src/agents/AgentSetupService.js +467 -0
  8. package/src/agents/AgentStatus.js +183 -0
  9. package/src/agents/AgentVerificationService.js +634 -0
  10. package/src/agents/ConfigurationSchemaValidator.js +543 -0
  11. package/src/agents/EnvironmentConfigurationManager.js +602 -0
  12. package/src/agents/InstallationErrorHandler.js +372 -0
  13. package/src/agents/InstallationLog.js +363 -0
  14. package/src/agents/InstallationMethod.js +510 -0
  15. package/src/agents/InstallationOrchestrator.js +352 -0
  16. package/src/agents/InstallationProgressReporter.js +372 -0
  17. package/src/agents/InstallationRetryManager.js +322 -0
  18. package/src/agents/InstallationType.js +254 -0
  19. package/src/agents/OperationTypes.js +310 -0
  20. package/src/agents/PerformanceMetricsCollector.js +493 -0
  21. package/src/agents/SecurityValidationService.js +534 -0
  22. package/src/agents/VerificationTest.js +354 -0
  23. package/src/agents/VerificationType.js +226 -0
  24. package/src/agents/WindowsPermissionHandler.js +518 -0
  25. package/src/agents/config/AgentConfigManager.js +393 -0
  26. package/src/agents/config/AgentDefaultsRegistry.js +373 -0
  27. package/src/agents/config/ConfigValidator.js +281 -0
  28. package/src/agents/discovery/AgentDiscoveryService.js +707 -0
  29. package/src/agents/logging/AgentLogger.js +511 -0
  30. package/src/agents/status/AgentStatusManager.js +481 -0
  31. package/src/agents/storage/FileManager.js +454 -0
  32. package/src/agents/verification/AgentCommunicationTester.js +474 -0
  33. package/src/agents/verification/BaseVerifier.js +430 -0
  34. package/src/agents/verification/CommandVerifier.js +480 -0
  35. package/src/agents/verification/FileOperationVerifier.js +453 -0
  36. package/src/agents/verification/ResultAnalyzer.js +707 -0
  37. package/src/agents/verification/TestRequirementManager.js +495 -0
  38. package/src/agents/verification/VerificationRunner.js +433 -0
  39. package/src/agents/windows/BaseWindowsInstaller.js +441 -0
  40. package/src/agents/windows/ChocolateyInstaller.js +509 -0
  41. package/src/agents/windows/DirectInstaller.js +443 -0
  42. package/src/agents/windows/InstallerFactory.js +391 -0
  43. package/src/agents/windows/NpmInstaller.js +505 -0
  44. package/src/agents/windows/PowerShellInstaller.js +458 -0
  45. package/src/agents/windows/WinGetInstaller.js +390 -0
  46. package/src/analysis/analysis-reporter.js +132 -0
  47. package/src/analysis/boundary-detector.js +712 -0
  48. package/src/analysis/categorizer.js +340 -0
  49. package/src/analysis/codebase-scanner.js +384 -0
  50. package/src/analysis/line-counter.js +513 -0
  51. package/src/analysis/priority-calculator.js +679 -0
  52. package/src/analysis/report/analysis-report.js +250 -0
  53. package/src/analysis/report/package-analyzer.js +278 -0
  54. package/src/analysis/report/recommendation-generator.js +382 -0
  55. package/src/analysis/report/statistics-generator.js +515 -0
  56. package/src/analysis/reports/analysis-report-model.js +101 -0
  57. package/src/analysis/reports/recommendation-generator.js +283 -0
  58. package/src/analysis/reports/report-generators.js +191 -0
  59. package/src/analysis/reports/statistics-calculator.js +231 -0
  60. package/src/analysis/reports/trend-analyzer.js +219 -0
  61. package/src/analysis/strategy-generator.js +814 -0
  62. package/src/auto-mode/AutoModeBusinessLogic.js +836 -0
  63. package/src/config/refactoring-config.js +307 -0
  64. package/src/health-tracking/json-storage.js +38 -2
  65. package/src/ide-integration/applescript-manager-core.js +233 -0
  66. package/src/ide-integration/applescript-manager.cjs +357 -28
  67. package/src/ide-integration/applescript-manager.js +89 -3599
  68. package/src/ide-integration/cdp-manager.js +306 -0
  69. package/src/ide-integration/claude-code-cli-manager.cjs +1 -1
  70. package/src/ide-integration/continuation-handler.js +337 -0
  71. package/src/ide-integration/ide-status-checker.js +292 -0
  72. package/src/ide-integration/macos-ide-manager.js +627 -0
  73. package/src/ide-integration/macos-text-sender.js +528 -0
  74. package/src/ide-integration/response-reader.js +548 -0
  75. package/src/ide-integration/windows-automation-manager.js +121 -0
  76. package/src/ide-integration/windows-ide-manager.js +373 -0
  77. package/src/index.cjs +25 -3
  78. package/src/index.js +15 -1
  79. package/src/llm/direct-llm-manager.cjs +90 -2
  80. package/src/models/compliance-report.js +538 -0
  81. package/src/models/file-analysis.js +681 -0
  82. package/src/models/refactoring-plan.js +770 -0
  83. package/src/monitoring/alert-system.js +834 -0
  84. package/src/monitoring/compliance-progress-tracker.js +437 -0
  85. package/src/monitoring/continuous-scan-notifications.js +661 -0
  86. package/src/monitoring/continuous-scanner.js +279 -0
  87. package/src/monitoring/file-monitor/file-analyzer.js +262 -0
  88. package/src/monitoring/file-monitor/file-monitor.js +237 -0
  89. package/src/monitoring/file-monitor/watcher.js +194 -0
  90. package/src/monitoring/file-monitor.js +17 -0
  91. package/src/monitoring/notification-manager.js +437 -0
  92. package/src/monitoring/scanner-core.js +368 -0
  93. package/src/monitoring/scanner-events.js +214 -0
  94. package/src/monitoring/violation-notification-system.js +515 -0
  95. package/src/refactoring/boundaries/cohesion-analyzer.js +316 -0
  96. package/src/refactoring/boundaries/extraction-result.js +285 -0
  97. package/src/refactoring/boundaries/extraction-strategies.js +392 -0
  98. package/src/refactoring/boundaries/module-boundary.js +209 -0
  99. package/src/refactoring/boundary/boundary-detector.js +741 -0
  100. package/src/refactoring/boundary/boundary-types.js +405 -0
  101. package/src/refactoring/boundary/extraction-strategies.js +554 -0
  102. package/src/refactoring/boundary-extraction-result.js +77 -0
  103. package/src/refactoring/boundary-extraction-strategies.js +330 -0
  104. package/src/refactoring/boundary-extractor.js +384 -0
  105. package/src/refactoring/boundary-types.js +46 -0
  106. package/src/refactoring/circular/circular-dependency.js +88 -0
  107. package/src/refactoring/circular/cycle-detection.js +147 -0
  108. package/src/refactoring/circular/dependency-node.js +82 -0
  109. package/src/refactoring/circular/dependency-result.js +107 -0
  110. package/src/refactoring/circular/dependency-types.js +58 -0
  111. package/src/refactoring/circular/graph-builder.js +213 -0
  112. package/src/refactoring/circular/resolution-strategy.js +72 -0
  113. package/src/refactoring/circular/strategy-generator.js +229 -0
  114. package/src/refactoring/circular-dependency-resolver-original.js +809 -0
  115. package/src/refactoring/circular-dependency-resolver.js +200 -0
  116. package/src/refactoring/code-mover.js +761 -0
  117. package/src/refactoring/file-splitter.js +696 -0
  118. package/src/refactoring/functionality-validator.js +816 -0
  119. package/src/refactoring/import-manager.js +774 -0
  120. package/src/refactoring/module-boundary.js +107 -0
  121. package/src/refactoring/refactoring-executor.js +672 -0
  122. package/src/refactoring/refactoring-rollback.js +614 -0
  123. package/src/refactoring/test-validator.js +631 -0
  124. package/src/requirement-management/default-requirement-manager.js +321 -0
  125. package/src/requirement-management/requirement-file-parser.js +159 -0
  126. package/src/requirement-management/requirement-sequencer.js +221 -0
  127. package/src/rui/commands/AgentCommandParser.js +600 -0
  128. package/src/rui/commands/AgentCommands.js +487 -0
  129. package/src/rui/commands/AgentResponseFormatter.js +832 -0
  130. package/src/scripts/verify-full-compliance.js +269 -0
  131. package/src/sync/sync-engine-core.js +1 -0
  132. package/src/sync/sync-engine-remote-handlers.js +135 -0
  133. package/src/task-generation/automated-task-generator.js +351 -0
  134. package/src/task-generation/prioritizer.js +287 -0
  135. package/src/task-generation/task-list-updater.js +215 -0
  136. package/src/task-generation/task-management-integration.js +480 -0
  137. package/src/task-generation/task-manager-integration.js +270 -0
  138. package/src/task-generation/violation-task-generator.js +474 -0
  139. package/src/task-management/continuous-scan-integration.js +342 -0
  140. package/src/timeout-management/index.js +12 -3
  141. package/src/timeout-management/response-time-tracker.js +167 -0
  142. package/src/timeout-management/timeout-calculator.js +159 -0
  143. package/src/timeout-management/timeout-config-manager.js +172 -0
  144. package/src/utils/ast-analyzer.js +417 -0
  145. package/src/utils/current-requirement-manager.js +276 -0
  146. package/src/utils/current-requirement-operations.js +472 -0
  147. package/src/utils/dependency-mapper.js +456 -0
  148. package/src/utils/download-with-progress.js +4 -2
  149. package/src/utils/electron-update-checker.js +4 -1
  150. package/src/utils/file-size-analyzer.js +272 -0
  151. package/src/utils/import-updater.js +280 -0
  152. package/src/utils/refactoring-tools.js +512 -0
  153. package/src/utils/report-generator.js +569 -0
  154. package/src/utils/reports/report-analysis.js +218 -0
  155. package/src/utils/reports/report-types.js +55 -0
  156. package/src/utils/reports/summary-generators.js +102 -0
  157. package/src/utils/requirement-file-management.js +157 -0
  158. package/src/utils/requirement-helpers/requirement-file-ops.js +392 -0
  159. package/src/utils/requirement-helpers/requirement-mover.js +414 -0
  160. package/src/utils/requirement-helpers/requirement-parser.js +326 -0
  161. package/src/utils/requirement-helpers/requirement-status.js +320 -0
  162. package/src/utils/requirement-helpers-new.js +55 -0
  163. package/src/utils/requirement-helpers-refactored.js +367 -0
  164. package/src/utils/requirement-helpers.js +291 -1191
  165. package/src/utils/requirement-movement-operations.js +450 -0
  166. package/src/utils/requirement-movement.js +312 -0
  167. package/src/utils/requirement-parsing-helpers.js +56 -0
  168. package/src/utils/requirement-statistics.js +200 -0
  169. package/src/utils/requirement-text-utils.js +58 -0
  170. package/src/utils/rollback/rollback-handlers.js +125 -0
  171. package/src/utils/rollback/rollback-operation.js +63 -0
  172. package/src/utils/rollback/rollback-recorder.js +166 -0
  173. package/src/utils/rollback/rollback-state-manager.js +175 -0
  174. package/src/utils/rollback/rollback-types.js +33 -0
  175. package/src/utils/rollback/rollback-utils.js +110 -0
  176. package/src/utils/rollback-manager-original.js +569 -0
  177. package/src/utils/rollback-manager.js +202 -0
  178. package/src/utils/smoke-test-cli.js +362 -0
  179. package/src/utils/smoke-test-gui.js +351 -0
  180. package/src/utils/smoke-test-orchestrator.js +321 -0
  181. package/src/utils/smoke-test-runner.js +60 -0
  182. package/src/utils/smoke-test-web.js +347 -0
  183. package/src/utils/specification-helpers.js +39 -13
  184. package/src/utils/specification-migration.js +97 -0
  185. package/src/utils/test-runner.js +579 -0
  186. package/src/utils/validation-framework.js +518 -0
  187. package/src/validation/compliance-analyzer.js +197 -0
  188. package/src/validation/compliance-report-generator.js +343 -0
  189. package/src/validation/compliance-reporter.js +711 -0
  190. package/src/validation/compliance-rules.js +127 -0
  191. package/src/validation/constitution-validator-new.js +196 -0
  192. package/src/validation/constitution-validator.js +17 -0
  193. package/src/validation/file-validators.js +170 -0
  194. package/src/validation/line-limit/file-analyzer.js +201 -0
  195. package/src/validation/line-limit/line-limit-validator.js +208 -0
  196. package/src/validation/line-limit/validation-result.js +144 -0
  197. package/src/validation/line-limit-core.js +225 -0
  198. package/src/validation/line-limit-reporter.js +134 -0
  199. package/src/validation/line-limit-result.js +125 -0
  200. package/src/validation/line-limit-validator.js +41 -0
  201. package/src/validation/metrics-calculator.js +660 -0
  202. package/src/sync/sync-engine-backup.js +0 -559
@@ -0,0 +1,311 @@
1
+ /**
2
+ * Agent Addition Service
3
+ *
4
+ * Handles adding new agents to the system.
5
+ * Follows constitutional requirements: <555 lines, test-first approach.
6
+ */
7
+
8
+ const ConfigValidator = require('./config/ConfigValidator');
9
+ const AgentConfigManager = require('./config/AgentConfigManager');
10
+ const AgentLogger = require('./logging/AgentLogger');
11
+
12
+ /**
13
+ * Agent Addition Service class
14
+ */
15
+ class AgentAdditionService {
16
+ /**
17
+ * Create agent addition service instance
18
+ * @param {Object} options - Service options
19
+ */
20
+ constructor(options = {}) {
21
+ this.configManager = options.configManager || new AgentConfigManager();
22
+ this.validator = options.validator || new ConfigValidator();
23
+ this.logger = options.logger || new AgentLogger();
24
+ this.configPath = options.configPath || 'config/agents.json';
25
+ }
26
+
27
+ /**
28
+ * Add a new agent to the system
29
+ * @param {Object} agentConfig - Agent configuration
30
+ * @returns {Object} - Addition result
31
+ */
32
+ async addAgent(agentConfig) {
33
+ try {
34
+ this.logger.info(`Adding agent: ${agentConfig.id || 'unknown'}`);
35
+
36
+ // Validate agent configuration
37
+ const validation = this.validator.validateAgent(agentConfig);
38
+ if (!validation.valid) {
39
+ const error = `Agent validation failed: ${validation.errors.join(', ')}`;
40
+ this.logger.error(error);
41
+ return {
42
+ success: false,
43
+ error,
44
+ validation
45
+ };
46
+ }
47
+
48
+ // Check if agent already exists
49
+ const existingAgents = await this.configManager.loadAgents();
50
+ if (existingAgents[agentConfig.id]) {
51
+ const error = `Agent ${agentConfig.id} already exists`;
52
+ this.logger.error(error);
53
+ return {
54
+ success: false,
55
+ error,
56
+ agentId: agentConfig.id
57
+ };
58
+ }
59
+
60
+ // Add agent to configuration
61
+ const updatedAgents = {
62
+ ...existingAgents,
63
+ [agentConfig.id]: {
64
+ ...agentConfig,
65
+ enabled: agentConfig.enabled !== false, // Default to enabled
66
+ status: 'NOT_INSTALLED',
67
+ lastChecked: null,
68
+ lastVerified: null
69
+ }
70
+ };
71
+
72
+ // Save updated configuration
73
+ await this.configManager.saveAgents(updatedAgents);
74
+
75
+ this.logger.info(`Successfully added agent: ${agentConfig.id}`);
76
+
77
+ return {
78
+ success: true,
79
+ agentId: agentConfig.id,
80
+ agent: updatedAgents[agentConfig.id],
81
+ validation
82
+ };
83
+
84
+ } catch (error) {
85
+ this.logger.error(`Failed to add agent: ${error.message}`);
86
+ return {
87
+ success: false,
88
+ error: error.message,
89
+ agentId: agentConfig.id
90
+ };
91
+ }
92
+ }
93
+
94
+ /**
95
+ * Remove an agent from the system
96
+ * @param {string} agentId - Agent ID to remove
97
+ * @returns {Object} - Removal result
98
+ */
99
+ async removeAgent(agentId) {
100
+ try {
101
+ this.logger.info(`Removing agent: ${agentId}`);
102
+
103
+ // Check if agent exists
104
+ const existingAgents = await this.configManager.loadAgents();
105
+ if (!existingAgents[agentId]) {
106
+ const error = `Agent ${agentId} not found`;
107
+ this.logger.error(error);
108
+ return {
109
+ success: false,
110
+ error,
111
+ agentId
112
+ };
113
+ }
114
+
115
+ // Remove agent from configuration
116
+ const { [agentId]: removed, ...remainingAgents } = existingAgents;
117
+
118
+ // Save updated configuration
119
+ await this.configManager.saveAgents(remainingAgents);
120
+
121
+ this.logger.info(`Successfully removed agent: ${agentId}`);
122
+
123
+ return {
124
+ success: true,
125
+ agentId,
126
+ removedAgent: removed
127
+ };
128
+
129
+ } catch (error) {
130
+ this.logger.error(`Failed to remove agent: ${error.message}`);
131
+ return {
132
+ success: false,
133
+ error: error.message,
134
+ agentId
135
+ };
136
+ }
137
+ }
138
+
139
+ /**
140
+ * Update an existing agent configuration
141
+ * @param {string} agentId - Agent ID to update
142
+ * @param {Object} updates - Configuration updates
143
+ * @returns {Object} - Update result
144
+ */
145
+ async updateAgent(agentId, updates) {
146
+ try {
147
+ this.logger.info(`Updating agent: ${agentId}`);
148
+
149
+ // Check if agent exists
150
+ const existingAgents = await this.configManager.loadAgents();
151
+ if (!existingAgents[agentId]) {
152
+ const error = `Agent ${agentId} not found`;
153
+ this.logger.error(error);
154
+ return {
155
+ success: false,
156
+ error,
157
+ agentId
158
+ };
159
+ }
160
+
161
+ // Merge updates with existing configuration
162
+ const updatedConfig = {
163
+ ...existingAgents[agentId],
164
+ ...updates,
165
+ id: agentId // Preserve ID
166
+ };
167
+
168
+ // Validate updated configuration
169
+ const validation = this.validator.validateAgent(updatedConfig);
170
+ if (!validation.valid) {
171
+ const error = `Agent validation failed: ${validation.errors.join(', ')}`;
172
+ this.logger.error(error);
173
+ return {
174
+ success: false,
175
+ error,
176
+ validation
177
+ };
178
+ }
179
+
180
+ // Update agent in configuration
181
+ const updatedAgents = {
182
+ ...existingAgents,
183
+ [agentId]: updatedConfig
184
+ };
185
+
186
+ // Save updated configuration
187
+ await this.configManager.saveAgents(updatedAgents);
188
+
189
+ this.logger.info(`Successfully updated agent: ${agentId}`);
190
+
191
+ return {
192
+ success: true,
193
+ agentId,
194
+ agent: updatedConfig,
195
+ validation
196
+ };
197
+
198
+ } catch (error) {
199
+ this.logger.error(`Failed to update agent: ${error.message}`);
200
+ return {
201
+ success: false,
202
+ error: error.message,
203
+ agentId
204
+ };
205
+ }
206
+ }
207
+
208
+ /**
209
+ * Enable or disable an agent
210
+ * @param {string} agentId - Agent ID
211
+ * @param {boolean} enabled - Whether to enable the agent
212
+ * @returns {Object} - Update result
213
+ */
214
+ async setAgentEnabled(agentId, enabled) {
215
+ return this.updateAgent(agentId, { enabled });
216
+ }
217
+
218
+ /**
219
+ * Get list of available agents
220
+ * @returns {Object} - List of agents
221
+ */
222
+ async getAgents() {
223
+ try {
224
+ const agents = await this.configManager.loadAgents();
225
+ return {
226
+ success: true,
227
+ agents: Object.keys(agents).map(id => ({
228
+ id,
229
+ ...agents[id]
230
+ }))
231
+ };
232
+ } catch (error) {
233
+ this.logger.error(`Failed to get agents: ${error.message}`);
234
+ return {
235
+ success: false,
236
+ error: error.message
237
+ };
238
+ }
239
+ }
240
+
241
+ /**
242
+ * Get specific agent details
243
+ * @param {string} agentId - Agent ID
244
+ * @returns {Object} - Agent details
245
+ */
246
+ async getAgent(agentId) {
247
+ try {
248
+ const agents = await this.configManager.loadAgents();
249
+ const agent = agents[agentId];
250
+
251
+ if (!agent) {
252
+ return {
253
+ success: false,
254
+ error: `Agent ${agentId} not found`,
255
+ agentId
256
+ };
257
+ }
258
+
259
+ return {
260
+ success: true,
261
+ agent: {
262
+ id: agentId,
263
+ ...agent
264
+ }
265
+ };
266
+ } catch (error) {
267
+ this.logger.error(`Failed to get agent: ${error.message}`);
268
+ return {
269
+ success: false,
270
+ error: error.message,
271
+ agentId
272
+ };
273
+ }
274
+ }
275
+
276
+ /**
277
+ * Validate agent configuration without adding it
278
+ * @param {Object} agentConfig - Agent configuration to validate
279
+ * @returns {Object} - Validation result
280
+ */
281
+ validateAgentConfig(agentConfig) {
282
+ return this.validator.validateAgent(agentConfig);
283
+ }
284
+
285
+ /**
286
+ * Check if agent ID is available
287
+ * @param {string} agentId - Agent ID to check
288
+ * @returns {Object} - Availability result
289
+ */
290
+ async isAgentIdAvailable(agentId) {
291
+ try {
292
+ const agents = await this.configManager.loadAgents();
293
+ const available = !agents[agentId];
294
+
295
+ return {
296
+ success: true,
297
+ available,
298
+ agentId
299
+ };
300
+ } catch (error) {
301
+ this.logger.error(`Failed to check agent ID availability: ${error.message}`);
302
+ return {
303
+ success: false,
304
+ error: error.message,
305
+ agentId
306
+ };
307
+ }
308
+ }
309
+ }
310
+
311
+ module.exports = AgentAdditionService;