claude-flow-novice 2.0.4 โ†’ 2.0.5

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 (496) hide show
  1. package/dist/src/cli/commands/guidance.js +668 -487
  2. package/dist/src/cli/commands/index-validate.js +29 -18
  3. package/dist/src/cli/commands/mcp-troubleshoot.js +282 -230
  4. package/dist/src/cli/commands/neural-goal-init.js +125 -92
  5. package/dist/src/cli/commands/swarm-exec.js +393 -317
  6. package/dist/src/cli/commands/validate-framework.js +1100 -983
  7. package/dist/src/cli/commands/validate.js +223 -144
  8. package/dist/src/cli/main.js +1 -1
  9. package/dist/src/cli/simple-commands/__tests__/agent.test.js +277 -265
  10. package/dist/src/cli/simple-commands/__tests__/memory.test.js +7 -6
  11. package/dist/src/cli/simple-commands/__tests__/swarm.test.js +356 -373
  12. package/dist/src/cli/simple-commands/__tests__/task.test.js +7 -6
  13. package/dist/src/cli/simple-commands/agent.js +193 -157
  14. package/dist/src/cli/simple-commands/analysis.js +446 -336
  15. package/dist/src/cli/simple-commands/automation-executor.js +1339 -1095
  16. package/dist/src/cli/simple-commands/automation.js +469 -481
  17. package/dist/src/cli/simple-commands/batch-manager.js +313 -261
  18. package/dist/src/cli/simple-commands/claude-telemetry.js +267 -241
  19. package/dist/src/cli/simple-commands/claude-track.js +90 -68
  20. package/dist/src/cli/simple-commands/concurrent-display.js +320 -266
  21. package/dist/src/cli/simple-commands/config.js +290 -245
  22. package/dist/src/cli/simple-commands/coordination.js +234 -182
  23. package/dist/src/cli/simple-commands/enhanced-ui-views.js +615 -812
  24. package/dist/src/cli/simple-commands/enhanced-webui-complete.js +981 -922
  25. package/dist/src/cli/simple-commands/fix-hook-variables.js +294 -274
  26. package/dist/src/cli/simple-commands/github/gh-coordinator.js +457 -378
  27. package/dist/src/cli/simple-commands/github/github-api.js +574 -535
  28. package/dist/src/cli/simple-commands/github/init.js +303 -276
  29. package/dist/src/cli/simple-commands/github.js +247 -222
  30. package/dist/src/cli/simple-commands/goal.js +63 -51
  31. package/dist/src/cli/simple-commands/hive-mind/auto-save-middleware.js +278 -208
  32. package/dist/src/cli/simple-commands/hive-mind/communication.js +696 -601
  33. package/dist/src/cli/simple-commands/hive-mind/core.js +979 -907
  34. package/dist/src/cli/simple-commands/hive-mind/db-optimizer.js +655 -406
  35. package/dist/src/cli/simple-commands/hive-mind/mcp-wrapper.js +1245 -1125
  36. package/dist/src/cli/simple-commands/hive-mind/memory.js +1090 -854
  37. package/dist/src/cli/simple-commands/hive-mind/performance-optimizer.js +574 -459
  38. package/dist/src/cli/simple-commands/hive-mind/performance-test.js +347 -263
  39. package/dist/src/cli/simple-commands/hive-mind/queen.js +768 -727
  40. package/dist/src/cli/simple-commands/hive-mind/session-manager.js +1049 -745
  41. package/dist/src/cli/simple-commands/hive-mind-optimize.js +283 -227
  42. package/dist/src/cli/simple-commands/hive-mind-wizard.js +217 -174
  43. package/dist/src/cli/simple-commands/hive-mind.js +2282 -1841
  44. package/dist/src/cli/simple-commands/hive.js +79 -90
  45. package/dist/src/cli/simple-commands/hook-safety.js +521 -431
  46. package/dist/src/cli/simple-commands/hooks/session-start-soul.js +254 -203
  47. package/dist/src/cli/simple-commands/hooks.js +1204 -1064
  48. package/dist/src/cli/simple-commands/init/agent-copier.js +319 -294
  49. package/dist/src/cli/simple-commands/init/batch-init.js +562 -496
  50. package/dist/src/cli/simple-commands/init/claude-commands/claude-flow-commands.js +19 -13
  51. package/dist/src/cli/simple-commands/init/claude-commands/optimized-claude-flow-commands.js +19 -13
  52. package/dist/src/cli/simple-commands/init/claude-commands/optimized-slash-commands.js +88 -61
  53. package/dist/src/cli/simple-commands/init/claude-commands/optimized-sparc-commands.js +150 -125
  54. package/dist/src/cli/simple-commands/init/claude-commands/slash-commands.js +49 -42
  55. package/dist/src/cli/simple-commands/init/claude-commands/sparc-commands.js +61 -43
  56. package/dist/src/cli/simple-commands/init/copy-revised-templates.js +147 -141
  57. package/dist/src/cli/simple-commands/init/executable-wrapper.js +44 -31
  58. package/dist/src/cli/simple-commands/init/gitignore-updater.js +90 -64
  59. package/dist/src/cli/simple-commands/init/help.js +107 -104
  60. package/dist/src/cli/simple-commands/init/hive-mind-init.js +528 -509
  61. package/dist/src/cli/simple-commands/init/index.js +1759 -1510
  62. package/dist/src/cli/simple-commands/init/performance-monitor.js +317 -234
  63. package/dist/src/cli/simple-commands/init/rollback/backup-manager.js +504 -441
  64. package/dist/src/cli/simple-commands/init/rollback/index.js +364 -289
  65. package/dist/src/cli/simple-commands/init/rollback/recovery-manager.js +728 -652
  66. package/dist/src/cli/simple-commands/init/rollback/rollback-executor.js +481 -416
  67. package/dist/src/cli/simple-commands/init/rollback/state-tracker.js +448 -369
  68. package/dist/src/cli/simple-commands/init/sparc/roo-readme.js +2 -1
  69. package/dist/src/cli/simple-commands/init/sparc/roomodes-config.js +99 -122
  70. package/dist/src/cli/simple-commands/init/sparc/workflows.js +37 -32
  71. package/dist/src/cli/simple-commands/init/sparc-structure.js +62 -55
  72. package/dist/src/cli/simple-commands/init/template-copier.js +533 -421
  73. package/dist/src/cli/simple-commands/init/templates/coordination-md.js +6 -3
  74. package/dist/src/cli/simple-commands/init/templates/enhanced-templates.js +318 -344
  75. package/dist/src/cli/simple-commands/init/templates/github-safe-enhanced.js +218 -173
  76. package/dist/src/cli/simple-commands/init/templates/github-safe.js +75 -65
  77. package/dist/src/cli/simple-commands/init/templates/memory-bank-md.js +6 -3
  78. package/dist/src/cli/simple-commands/init/templates/readme-files.js +4 -2
  79. package/dist/src/cli/simple-commands/init/templates/safe-hook-patterns.js +230 -187
  80. package/dist/src/cli/simple-commands/init/templates/sparc-modes.js +80 -53
  81. package/dist/src/cli/simple-commands/init/templates/verification-claude-md.js +85 -101
  82. package/dist/src/cli/simple-commands/init/validation/config-validator.js +330 -283
  83. package/dist/src/cli/simple-commands/init/validation/health-checker.js +561 -495
  84. package/dist/src/cli/simple-commands/init/validation/index.js +358 -302
  85. package/dist/src/cli/simple-commands/init/validation/mode-validator.js +359 -308
  86. package/dist/src/cli/simple-commands/init/validation/post-init-validator.js +366 -389
  87. package/dist/src/cli/simple-commands/init/validation/pre-init-validator.js +268 -270
  88. package/dist/src/cli/simple-commands/init/validation/test-runner.js +447 -427
  89. package/dist/src/cli/simple-commands/init.js +2 -1
  90. package/dist/src/cli/simple-commands/mcp-health.js +158 -131
  91. package/dist/src/cli/simple-commands/mcp-integration-layer.js +634 -533
  92. package/dist/src/cli/simple-commands/mcp.js +400 -345
  93. package/dist/src/cli/simple-commands/memory-consolidation.js +537 -426
  94. package/dist/src/cli/simple-commands/memory.js +311 -247
  95. package/dist/src/cli/simple-commands/migrate-hooks.js +46 -39
  96. package/dist/src/cli/simple-commands/monitor.js +363 -294
  97. package/dist/src/cli/simple-commands/neural.js +65 -51
  98. package/dist/src/cli/simple-commands/pair-autofix-only.js +662 -538
  99. package/dist/src/cli/simple-commands/pair-basic.js +656 -528
  100. package/dist/src/cli/simple-commands/pair-old.js +543 -430
  101. package/dist/src/cli/simple-commands/pair-working.js +751 -615
  102. package/dist/src/cli/simple-commands/pair.js +751 -615
  103. package/dist/src/cli/simple-commands/performance-hooks.js +111 -83
  104. package/dist/src/cli/simple-commands/performance-metrics.js +433 -348
  105. package/dist/src/cli/simple-commands/process-ui-enhanced.js +787 -708
  106. package/dist/src/cli/simple-commands/process-ui.js +254 -230
  107. package/dist/src/cli/simple-commands/realtime-update-system.js +611 -525
  108. package/dist/src/cli/simple-commands/sparc/architecture.js +1530 -1704
  109. package/dist/src/cli/simple-commands/sparc/commands.js +516 -438
  110. package/dist/src/cli/simple-commands/sparc/completion.js +1481 -1224
  111. package/dist/src/cli/simple-commands/sparc/coordinator.js +978 -913
  112. package/dist/src/cli/simple-commands/sparc/index.js +298 -241
  113. package/dist/src/cli/simple-commands/sparc/phase-base.js +390 -314
  114. package/dist/src/cli/simple-commands/sparc/pseudocode.js +869 -965
  115. package/dist/src/cli/simple-commands/sparc/refinement.js +1273 -980
  116. package/dist/src/cli/simple-commands/sparc/specification.js +645 -559
  117. package/dist/src/cli/simple-commands/sparc-modes/architect.js +1 -1
  118. package/dist/src/cli/simple-commands/sparc-modes/ask.js +1 -1
  119. package/dist/src/cli/simple-commands/sparc-modes/code.js +1 -1
  120. package/dist/src/cli/simple-commands/sparc-modes/debug.js +1 -1
  121. package/dist/src/cli/simple-commands/sparc-modes/devops.js +1 -1
  122. package/dist/src/cli/simple-commands/sparc-modes/docs-writer.js +1 -1
  123. package/dist/src/cli/simple-commands/sparc-modes/generic.js +1 -1
  124. package/dist/src/cli/simple-commands/sparc-modes/index.js +55 -47
  125. package/dist/src/cli/simple-commands/sparc-modes/integration.js +1 -1
  126. package/dist/src/cli/simple-commands/sparc-modes/mcp.js +1 -1
  127. package/dist/src/cli/simple-commands/sparc-modes/monitoring.js +1 -1
  128. package/dist/src/cli/simple-commands/sparc-modes/optimization.js +1 -1
  129. package/dist/src/cli/simple-commands/sparc-modes/security-review.js +1 -1
  130. package/dist/src/cli/simple-commands/sparc-modes/sparc-orchestrator.js +1 -1
  131. package/dist/src/cli/simple-commands/sparc-modes/spec-pseudocode.js +1 -1
  132. package/dist/src/cli/simple-commands/sparc-modes/supabase-admin.js +1 -1
  133. package/dist/src/cli/simple-commands/sparc-modes/swarm.js +87 -101
  134. package/dist/src/cli/simple-commands/sparc-modes/tdd.js +1 -1
  135. package/dist/src/cli/simple-commands/sparc-modes/tutorial.js +1 -1
  136. package/dist/src/cli/simple-commands/sparc.js +493 -465
  137. package/dist/src/cli/simple-commands/start-ui.js +132 -108
  138. package/dist/src/cli/simple-commands/start-wrapper.js +268 -240
  139. package/dist/src/cli/simple-commands/start.js +1 -1
  140. package/dist/src/cli/simple-commands/status.js +275 -254
  141. package/dist/src/cli/simple-commands/stream-chain-clean.js +171 -128
  142. package/dist/src/cli/simple-commands/stream-chain-fixed.js +82 -61
  143. package/dist/src/cli/simple-commands/stream-chain-real.js +331 -267
  144. package/dist/src/cli/simple-commands/stream-chain-working.js +263 -211
  145. package/dist/src/cli/simple-commands/stream-chain.js +318 -260
  146. package/dist/src/cli/simple-commands/stream-processor.js +315 -290
  147. package/dist/src/cli/simple-commands/swarm-executor.js +222 -189
  148. package/dist/src/cli/simple-commands/swarm-metrics-integration.js +300 -208
  149. package/dist/src/cli/simple-commands/swarm-ui.js +703 -623
  150. package/dist/src/cli/simple-commands/swarm-webui-integration.js +286 -258
  151. package/dist/src/cli/simple-commands/swarm.js +1082 -887
  152. package/dist/src/cli/simple-commands/task.js +206 -161
  153. package/dist/src/cli/simple-commands/timestamp-fix.js +89 -59
  154. package/dist/src/cli/simple-commands/token-tracker.js +316 -258
  155. package/dist/src/cli/simple-commands/tool-execution-framework.js +519 -433
  156. package/dist/src/cli/simple-commands/train-and-stream.js +331 -275
  157. package/dist/src/cli/simple-commands/training-pipeline.js +725 -619
  158. package/dist/src/cli/simple-commands/training.js +227 -170
  159. package/dist/src/cli/simple-commands/verification-hooks.js +284 -261
  160. package/dist/src/cli/simple-commands/verification-integration.js +417 -389
  161. package/dist/src/cli/simple-commands/verification-training-integration.js +606 -486
  162. package/dist/src/cli/simple-commands/verification.js +513 -493
  163. package/dist/src/cli/simple-commands/web-server.js +836 -766
  164. package/dist/src/cli/simple-commands/webui-validator.js +124 -106
  165. package/dist/src/coordination/byzantine-memory-channels.js +25 -1
  166. package/dist/src/coordination/event-bus/demo-wasm-integration.js +251 -212
  167. package/dist/src/coordination/event-bus/qe-event-bus.js +748 -608
  168. package/dist/src/coordination/event-bus/qe-event-bus.test.js +454 -379
  169. package/dist/src/coordination/iteration-tracker.js +454 -363
  170. package/dist/src/index.js +384 -35
  171. package/dist/src/mcp/DEPRECATED.js +60 -46
  172. package/dist/src/mcp/fixes/mcp-error-fixes.js +134 -115
  173. package/dist/src/mcp/implementations/agent-tracker.js +128 -114
  174. package/dist/src/mcp/implementations/daa-tools.js +350 -292
  175. package/dist/src/mcp/implementations/workflow-tools.js +361 -329
  176. package/dist/src/mcp/mcp-config-manager.js +1331 -1183
  177. package/dist/src/mcp/mcp-server-novice-simplified.js +17 -11
  178. package/dist/src/mcp/mcp-server-novice.js +17 -11
  179. package/dist/src/mcp/mcp-server-sdk.js +17 -11
  180. package/dist/src/mcp/mcp-server.js +1484 -1620
  181. package/dist/src/mcp/ruv-swarm-wrapper.js +239 -209
  182. package/dist/src/memory/advanced-serializer.js +589 -609
  183. package/dist/src/memory/enhanced-examples.js +305 -220
  184. package/dist/src/memory/enhanced-memory.js +336 -295
  185. package/dist/src/memory/enhanced-session-serializer.js +492 -408
  186. package/dist/src/memory/fallback-memory-system.js +1021 -900
  187. package/dist/src/memory/fallback-store.js +131 -93
  188. package/dist/src/memory/high-performance-serialization.js +730 -592
  189. package/dist/src/memory/in-memory-store.js +213 -161
  190. package/dist/src/memory/index.js +157 -123
  191. package/dist/src/memory/lock-free-structures.js +764 -578
  192. package/dist/src/memory/memory-mapped-persistence.js +766 -585
  193. package/dist/src/memory/memory-pressure-manager.js +707 -569
  194. package/dist/src/memory/migration.js +445 -358
  195. package/dist/src/memory/shared-memory.js +768 -641
  196. package/dist/src/memory/sqlite-store.js +325 -245
  197. package/dist/src/memory/sqlite-wrapper.js +151 -122
  198. package/dist/src/memory/swarm-memory.js +603 -470
  199. package/dist/src/memory/test-example.js +134 -126
  200. package/dist/src/memory/ultra-fast-memory-store.js +821 -622
  201. package/dist/src/memory/unified-memory-manager.js +437 -356
  202. package/dist/src/swarm/CodeRefactoringSwarm.js +952 -777
  203. package/dist/src/utils/__tests__/github-cli-safety-wrapper.test.js +400 -332
  204. package/dist/src/utils/error-handler.js +2 -36
  205. package/dist/src/utils/github-cli-safe.js +64 -56
  206. package/dist/src/utils/github-cli-safety-wrapper.js +546 -451
  207. package/dist/src/utils/npx-isolated-cache.js +119 -104
  208. package/dist/src/utils/preference-manager.js +652 -622
  209. package/dist/src/utils/timezone-utils.js +105 -86
  210. package/dist/src/web/api/apm-routes.js +353 -0
  211. package/dist/src/web/api/config/api-config.js +184 -0
  212. package/dist/src/web/api/middleware/auth.js +203 -0
  213. package/dist/src/web/api/middleware/cache.js +273 -0
  214. package/dist/src/web/api/middleware/error-handler.js +257 -0
  215. package/dist/src/web/api/middleware/request-logger.js +215 -0
  216. package/dist/src/web/api/middleware/validation.js +323 -0
  217. package/dist/src/web/api/routes/events.js +463 -0
  218. package/dist/src/web/api/routes/hierarchy.js +300 -0
  219. package/dist/src/web/api/routes/index.js +12 -0
  220. package/dist/src/web/api/routes/metrics.js +559 -0
  221. package/dist/src/web/api/routes/parallel-status.js +359 -0
  222. package/dist/src/web/api/routes/status.js +448 -0
  223. package/dist/src/web/api/server.js +462 -0
  224. package/dist/src/web/dashboard/hooks/useWebSocket.js +383 -0
  225. package/dist/src/web/dashboard/index.js +85 -0
  226. package/dist/src/web/dashboard/realtime/CustomSyncManager.js +439 -0
  227. package/dist/src/web/dashboard/realtime/NativeWebSocketManager.js +323 -0
  228. package/dist/src/web/dashboard/realtime/PerformanceBenchmark.js +527 -0
  229. package/dist/src/web/dashboard/realtime/RealtimeCommunicationManager.js +474 -0
  230. package/dist/src/web/dashboard/realtime/RealtimeServer.js +666 -0
  231. package/dist/src/web/dashboard/realtime/SSEManager.js +426 -0
  232. package/dist/src/web/dashboard/types.js +4 -0
  233. package/dist/src/web/messaging/agent-status-tracker.js +453 -0
  234. package/dist/src/web/messaging/human-intervention-system.js +305 -0
  235. package/dist/src/web/messaging/message-filter.js +302 -0
  236. package/dist/src/web/messaging/swarm-message-router.js +324 -0
  237. package/dist/src/web/messaging/transparency-logger.js +421 -0
  238. package/dist/src/web/portal-server.js +460 -0
  239. package/dist/src/web/server.js +322 -0
  240. package/dist/src/web/websocket/apm-websocket-handler.js +453 -0
  241. package/dist/src/web/websocket/websocket-manager.js +780 -0
  242. package/package.json +5 -3
  243. package/dist/src/cli/minimal-main.js +0 -22
  244. package/dist/src/enterprise/analytics-manager.js +0 -1135
  245. package/dist/src/enterprise/audit-manager.js +0 -1115
  246. package/dist/src/enterprise/cloud-manager.js +0 -891
  247. package/dist/src/enterprise/deployment-manager.js +0 -966
  248. package/dist/src/enterprise/index.js +0 -6
  249. package/dist/src/enterprise/project-manager.js +0 -584
  250. package/dist/src/enterprise/security-manager.js +0 -991
  251. package/dist/src/migration/index.js +0 -92
  252. package/dist/src/migration/logger.js +0 -121
  253. package/dist/src/migration/migration-analyzer.js +0 -268
  254. package/dist/src/migration/migration-runner.js +0 -522
  255. package/dist/src/migration/migration-validator.js +0 -285
  256. package/dist/src/migration/progress-reporter.js +0 -150
  257. package/dist/src/migration/rollback-manager.js +0 -321
  258. package/dist/src/migration/tests/migration-system.test.js +0 -7
  259. package/dist/src/migration/types.js +0 -3
  260. package/dist/src/swarm/__tests__/integration.test.js +0 -227
  261. package/dist/src/swarm/__tests__/prompt-copier.test.js +0 -344
  262. package/dist/src/swarm/advanced-orchestrator.js +0 -1095
  263. package/dist/src/swarm/claude-code-interface.js +0 -961
  264. package/dist/src/swarm/claude-flow-executor.js +0 -229
  265. package/dist/src/swarm/consensus-coordinator.js +0 -475
  266. package/dist/src/swarm/coordinator.js +0 -2993
  267. package/dist/src/swarm/direct-executor.js +0 -1180
  268. package/dist/src/swarm/error-recovery/advanced-error-detection.js +0 -691
  269. package/dist/src/swarm/error-recovery/automated-recovery-workflows.js +0 -998
  270. package/dist/src/swarm/error-recovery/error-recovery-coordinator.js +0 -1197
  271. package/dist/src/swarm/error-recovery/recovery-monitoring.js +0 -772
  272. package/dist/src/swarm/error-recovery/resilience-architecture.js +0 -714
  273. package/dist/src/swarm/error-recovery/self-healing-mechanisms.js +0 -1319
  274. package/dist/src/swarm/error-recovery/test-error-recovery-effectiveness.js +0 -808
  275. package/dist/src/swarm/executor-v2.js +0 -322
  276. package/dist/src/swarm/executor.js +0 -815
  277. package/dist/src/swarm/hive-mind-integration.js +0 -703
  278. package/dist/src/swarm/index.js +0 -41
  279. package/dist/src/swarm/json-output-aggregator.js +0 -267
  280. package/dist/src/swarm/large-scale-coordinator.js +0 -542
  281. package/dist/src/swarm/mcp-integration-wrapper.js +0 -628
  282. package/dist/src/swarm/memory.js +0 -1117
  283. package/dist/src/swarm/optimizations/__tests__/optimization.test.js +0 -348
  284. package/dist/src/swarm/optimizations/async-file-manager.js +0 -285
  285. package/dist/src/swarm/optimizations/circular-buffer.js +0 -162
  286. package/dist/src/swarm/optimizations/connection-pool.js +0 -244
  287. package/dist/src/swarm/optimizations/index.js +0 -28
  288. package/dist/src/swarm/optimizations/optimized-executor.js +0 -320
  289. package/dist/src/swarm/optimizations/ttl-map.js +0 -234
  290. package/dist/src/swarm/prompt-cli.js +0 -200
  291. package/dist/src/swarm/prompt-copier-enhanced.js +0 -202
  292. package/dist/src/swarm/prompt-copier.js +0 -381
  293. package/dist/src/swarm/prompt-manager.js +0 -295
  294. package/dist/src/swarm/prompt-utils.js +0 -310
  295. package/dist/src/swarm/result-aggregator.js +0 -718
  296. package/dist/src/swarm/sparc-executor.js +0 -1568
  297. package/dist/src/swarm/strategies/auto.js +0 -758
  298. package/dist/src/swarm/strategies/base.js +0 -128
  299. package/dist/src/swarm/strategies/research.js +0 -914
  300. package/dist/src/swarm/strategies/strategy-metrics-patch.js +0 -2
  301. package/dist/src/swarm/types.js +0 -52
  302. package/dist/src/swarm/workers/copy-worker.js +0 -56
  303. package/dist/src/validators/epic-config-schema.js +0 -214
  304. package/dist/src/validators/index.js +0 -10
  305. package/dist/src/validators/swarm-init-validator.js +0 -259
  306. package/dist/src/validators/todowrite-batching-validator.js +0 -215
  307. package/dist/src/validators/todowrite-integration.js +0 -187
  308. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/documentSymbols/browser/documentSymbols.js +0 -23
  309. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +0 -57
  310. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +0 -401
  311. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +0 -181
  312. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js +0 -44
  313. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +0 -157
  314. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/edit.js +0 -71
  315. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/editorState/browser/editorState.js +0 -112
  316. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findController.js +0 -990
  317. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findDecorations.js +0 -296
  318. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findModel.js +0 -488
  319. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findOptionsWidget.js +0 -138
  320. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findState.js +0 -243
  321. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findWidget.js +0 -1177
  322. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/folding/browser/folding.js +0 -1093
  323. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +0 -133
  324. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/folding/browser/foldingModel.js +0 -538
  325. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/folding/browser/foldingRanges.js +0 -351
  326. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +0 -49
  327. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/format/browser/format.js +0 -360
  328. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/format/browser/formatActions.js +0 -263
  329. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/format/browser/formattingEdit.js +0 -54
  330. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/gotoSymbol/browser/link/clickLinkGesture.js +0 -149
  331. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/hover/browser/contentHover.js +0 -874
  332. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/inlineCompletions/browser/commandIds.js +0 -7
  333. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/inlineCompletions/browser/commands.js +0 -199
  334. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/linesOperations/browser/copyLinesCommand.js +0 -70
  335. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/quickAccess/browser/commandsQuickAccess.js +0 -26
  336. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/quickAccess/browser/editorNavigationQuickAccess.js +0 -153
  337. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +0 -33
  338. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js +0 -354
  339. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/smartSelect/browser/bracketSelections.js +0 -146
  340. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/suggest/browser/completionModel.js +0 -224
  341. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +0 -119
  342. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/edcore.main.js +0 -14
  343. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/editor.all.js +0 -63
  344. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/editor.api.js +0 -55
  345. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/editor.main.js +0 -7
  346. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/editor.worker.js +0 -25
  347. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/standalone/browser/colorizer.js +0 -118
  348. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/language/css/css.worker.js +0 -36869
  349. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/language/css/cssMode.js +0 -2035
  350. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/accessibility/browser/accessibilityService.js +0 -88
  351. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/accessibility/common/accessibility.js +0 -9
  352. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/action/common/action.js +0 -7
  353. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/action/common/actionCommonCategories.js +0 -13
  354. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/browser/actionList.js +0 -276
  355. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/browser/actionWidget.js +0 -248
  356. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/common/actionWidget.js +0 -5
  357. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actions/common/actions.js +0 -409
  358. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/audioCues/browser/audioCueService.js +0 -176
  359. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/clipboard/browser/clipboardService.js +0 -141
  360. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/clipboard/common/clipboardService.js +0 -6
  361. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/commands/common/commands.js +0 -80
  362. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configuration.js +0 -86
  363. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurationModels.js +0 -554
  364. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurationRegistry.js +0 -317
  365. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurations.js +0 -41
  366. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/browser/contextKeyService.js +0 -432
  367. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/common/contextkey.js +0 -1547
  368. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/common/contextkeys.js +0 -18
  369. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextMenuHandler.js +0 -124
  370. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextMenuService.js +0 -101
  371. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextView.js +0 -7
  372. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextViewService.js +0 -72
  373. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/dialogs/common/dialogs.js +0 -2
  374. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/dnd/browser/dnd.js +0 -36
  375. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/editor/common/editor.js +0 -17
  376. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/environment/common/environment.js +0 -2
  377. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/extensions/common/extensions.js +0 -47
  378. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/files/common/files.js +0 -9
  379. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +0 -105
  380. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/instantiation/common/descriptors.js +0 -11
  381. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/instantiation/common/extensions.js +0 -15
  382. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/keybinding/common/abstractKeybindingService.js +0 -277
  383. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/keybinding/common/baseResolvedKeybinding.js +0 -53
  384. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +0 -354
  385. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/theme/browser/defaultStyles.js +0 -162
  386. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/theme/common/colorRegistry.js +0 -482
  387. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/abap/abap.js +0 -10
  388. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/apex/apex.js +0 -10
  389. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/azcli/azcli.js +0 -10
  390. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/bat/bat.js +0 -10
  391. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/bicep/bicep.js +0 -11
  392. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/cameligo/cameligo.js +0 -10
  393. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/clojure/clojure.js +0 -10
  394. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/coffee/coffee.js +0 -10
  395. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/cpp/cpp.js +0 -10
  396. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/csharp/csharp.js +0 -10
  397. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/csp/csp.js +0 -10
  398. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/css/css.js +0 -12
  399. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/cypher/cypher.js +0 -10
  400. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/dart/dart.js +0 -10
  401. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/dockerfile/dockerfile.js +0 -10
  402. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/ecl/ecl.js +0 -10
  403. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/elixir/elixir.js +0 -10
  404. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/flow9/flow9.js +0 -10
  405. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.js +0 -745
  406. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.de.js +0 -31
  407. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.es.js +0 -31
  408. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.fr.js +0 -29
  409. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.it.js +0 -29
  410. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.ja.js +0 -31
  411. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.js +0 -29
  412. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.ko.js +0 -29
  413. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.ru.js +0 -31
  414. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.zh-cn.js +0 -31
  415. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.zh-tw.js +0 -29
  416. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/language/css/cssMode.js +0 -13
  417. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/language/css/cssWorker.js +0 -81
  418. package/dist/src/web/frontend/node_modules/.multicast-dns-iKseM9bB/cli.js +0 -64
  419. package/dist/src/web/frontend/node_modules/.multicast-dns-iKseM9bB/example.js +0 -36
  420. package/dist/src/web/frontend/node_modules/.multicast-dns-iKseM9bB/index.js +0 -205
  421. package/dist/src/web/frontend/node_modules/.multicast-dns-iKseM9bB/test.js +0 -260
  422. package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/async/index.browser.js +0 -34
  423. package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/async/index.js +0 -35
  424. package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/async/index.native.js +0 -26
  425. package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/index.browser.js +0 -34
  426. package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/index.js +0 -45
  427. package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/nanoid.js +0 -1
  428. package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/non-secure/index.js +0 -21
  429. package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/url-alphabet/index.js +0 -3
  430. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/bin/nodemon.js +0 -16
  431. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/cli/index.js +0 -49
  432. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/cli/parse.js +0 -230
  433. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/command.js +0 -43
  434. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/defaults.js +0 -34
  435. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/exec.js +0 -234
  436. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/index.js +0 -93
  437. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/load.js +0 -225
  438. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/help/index.js +0 -27
  439. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/index.js +0 -1
  440. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/index.js +0 -4
  441. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/match.js +0 -287
  442. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/run.js +0 -562
  443. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/signals.js +0 -34
  444. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/watch.js +0 -244
  445. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/nodemon.js +0 -317
  446. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/rules/add.js +0 -89
  447. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/rules/index.js +0 -53
  448. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/rules/parse.js +0 -43
  449. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/spawn.js +0 -74
  450. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/bus.js +0 -44
  451. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/clone.js +0 -40
  452. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/colour.js +0 -26
  453. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/index.js +0 -103
  454. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/log.js +0 -82
  455. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/merge.js +0 -47
  456. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/version.js +0 -100
  457. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/brace-expansion/index.js +0 -201
  458. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/has-flag/index.js +0 -8
  459. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/minimatch/minimatch.js +0 -947
  460. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/supports-color/browser.js +0 -5
  461. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/supports-color/index.js +0 -131
  462. package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/bin/pidtree.js +0 -128
  463. package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/index.js +0 -49
  464. package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/bin.js +0 -61
  465. package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/get.js +0 -45
  466. package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/pidtree.js +0 -104
  467. package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/ps.js +0 -47
  468. package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/wmic.js +0 -49
  469. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/doc.js +0 -1270
  470. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/acorn.js +0 -15
  471. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/angular.js +0 -2
  472. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/babel.js +0 -15
  473. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/estree.js +0 -36
  474. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/flow.js +0 -19
  475. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/glimmer.js +0 -29
  476. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/graphql.js +0 -29
  477. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/html.js +0 -22
  478. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/markdown.js +0 -63
  479. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/meriyah.js +0 -4
  480. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/postcss.js +0 -54
  481. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/typescript.js +0 -20
  482. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/yaml.js +0 -160
  483. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/standalone.js +0 -34
  484. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/bin/react-scripts.js +0 -58
  485. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/env.js +0 -112
  486. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/getHttpsConfig.js +0 -74
  487. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/jest/babelTransform.js +0 -37
  488. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/jest/cssTransform.js +0 -22
  489. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/jest/fileTransform.js +0 -40
  490. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/modules.js +0 -142
  491. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/paths.js +0 -153
  492. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/webpack/persistentCache/createEnvironmentHash.js +0 -9
  493. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/webpack.config.js +0 -796
  494. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/webpackDevServer.config.js +0 -135
  495. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/scripts/build.js +0 -225
  496. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/scripts/eject.js +0 -340
@@ -1,666 +1,801 @@
1
1
  /**
2
2
  * Enhanced Pair Programming with Working Auto-Fix
3
3
  * This version actually applies fixes using real commands
4
- */ import fs from "node:fs/promises";
5
- import path from "path";
6
- import { exec } from "child_process";
7
- import { promisify } from "util";
8
- import readline from "readline";
4
+ */
5
+
6
+ import fs from 'fs/promises';
7
+ import path from 'path';
8
+ import { spawn, exec } from 'child_process';
9
+ import { promisify } from 'util';
10
+ import readline from 'readline';
11
+
9
12
  const execAsync = promisify(exec);
13
+
10
14
  // Guidance mode configurations
11
15
  const GUIDANCE_MODES = {
12
- beginner: {
13
- verbosity: 'high',
14
- suggestions: 'frequent',
15
- explanations: 'detailed',
16
- autoFix: true,
17
- threshold: 0.9,
18
- description: 'Detailed explanations and step-by-step guidance'
19
- },
20
- intermediate: {
21
- verbosity: 'medium',
22
- suggestions: 'balanced',
23
- explanations: 'concise',
24
- autoFix: true,
25
- threshold: 0.95,
26
- description: 'Balanced guidance with key explanations'
27
- },
28
- expert: {
29
- verbosity: 'low',
30
- suggestions: 'minimal',
31
- explanations: 'brief',
32
- autoFix: true,
33
- threshold: 0.98,
34
- description: 'Minimal guidance, maximum efficiency'
35
- },
36
- mentor: {
37
- verbosity: 'high',
38
- suggestions: 'educational',
39
- explanations: 'teaching',
40
- autoFix: false,
41
- threshold: 0.9,
42
- description: 'Educational focus with learning opportunities'
43
- },
44
- strict: {
45
- verbosity: 'medium',
46
- suggestions: 'quality-focused',
47
- explanations: 'standards',
48
- autoFix: true,
49
- threshold: 0.99,
50
- description: 'Enforces highest code quality standards'
51
- }
16
+ beginner: {
17
+ verbosity: 'high',
18
+ suggestions: 'frequent',
19
+ explanations: 'detailed',
20
+ autoFix: true,
21
+ threshold: 0.9,
22
+ description: 'Detailed explanations and step-by-step guidance',
23
+ },
24
+ intermediate: {
25
+ verbosity: 'medium',
26
+ suggestions: 'balanced',
27
+ explanations: 'concise',
28
+ autoFix: true,
29
+ threshold: 0.95,
30
+ description: 'Balanced guidance with key explanations',
31
+ },
32
+ expert: {
33
+ verbosity: 'low',
34
+ suggestions: 'minimal',
35
+ explanations: 'brief',
36
+ autoFix: true,
37
+ threshold: 0.98,
38
+ description: 'Minimal guidance, maximum efficiency',
39
+ },
40
+ mentor: {
41
+ verbosity: 'high',
42
+ suggestions: 'educational',
43
+ explanations: 'teaching',
44
+ autoFix: false,
45
+ threshold: 0.9,
46
+ description: 'Educational focus with learning opportunities',
47
+ },
48
+ strict: {
49
+ verbosity: 'medium',
50
+ suggestions: 'quality-focused',
51
+ explanations: 'standards',
52
+ autoFix: true,
53
+ threshold: 0.99,
54
+ description: 'Enforces highest code quality standards',
55
+ },
52
56
  };
53
- let WorkingPairSession = class WorkingPairSession {
54
- async start() {
55
- await this.saveSession();
56
- this.showWelcome();
57
- if (this.verify && this.autoFix) {
58
- console.log('\n๐Ÿ”„ Auto-Fix Mode Enabled');
59
- console.log(' โ€ข Will automatically fix issues until threshold is met');
60
- console.log(` โ€ข Maximum iterations: ${this.maxIterations}`);
61
- console.log(` โ€ข Target threshold: ${this.threshold}`);
62
- await this.recursiveFixLoop();
63
- } else if (this.verify) {
64
- await this.runVerification();
65
- }
66
- await this.startInteractiveMode();
57
+
58
+ class WorkingPairSession {
59
+ constructor(options = {}) {
60
+ this.sessionId = `pair_${Date.now()}`;
61
+ this.guidanceMode = options.guidance || 'intermediate';
62
+ this.guidance = GUIDANCE_MODES[this.guidanceMode];
63
+ this.autoFix = options.autoFix ?? this.guidance.autoFix;
64
+ this.threshold = options.threshold || this.guidance.threshold;
65
+ this.maxIterations = options.maxIterations || 5;
66
+ this.verify = options.verify || false;
67
+ this.startTime = new Date();
68
+ this.status = 'active';
69
+ this.verificationScores = [];
70
+ this.fixHistory = [];
71
+ this.currentIteration = 0;
72
+ this.rl = null;
73
+ }
74
+
75
+ async start() {
76
+ await this.saveSession();
77
+ this.showWelcome();
78
+
79
+ if (this.verify && this.autoFix) {
80
+ console.log('\n๐Ÿ”„ Auto-Fix Mode Enabled');
81
+ console.log(' โ€ข Will automatically fix issues until threshold is met');
82
+ console.log(` โ€ข Maximum iterations: ${this.maxIterations}`);
83
+ console.log(` โ€ข Target threshold: ${this.threshold}`);
84
+
85
+ await this.recursiveFixLoop();
86
+ } else if (this.verify) {
87
+ await this.runVerification();
67
88
  }
68
- /**
89
+
90
+ await this.startInteractiveMode();
91
+ }
92
+
93
+ /**
69
94
  * Working recursive fix loop that actually applies fixes
70
- */ async recursiveFixLoop() {
71
- console.log('\n๐Ÿš€ Starting Auto-Fix Loop with Real Fixes...');
72
- console.log('โ”'.repeat(50));
73
- let score = 0;
74
- this.currentIteration = 0;
75
- while(score < this.threshold && this.currentIteration < this.maxIterations){
76
- this.currentIteration++;
77
- console.log(`\n๐Ÿ“ Iteration ${this.currentIteration}/${this.maxIterations}`);
78
- // Step 1: Run verification
79
- const verificationResult = await this.runVerification();
80
- score = verificationResult.score;
81
- if (score >= this.threshold) {
82
- console.log(`\nโœจ Threshold met! Score: ${score.toFixed(2)} >= ${this.threshold}`);
83
- break;
84
- }
85
- // Step 2: Apply actual fixes
86
- console.log('\n๐Ÿ”ง Applying fixes...');
87
- const fixResults = await this.applyRealFixes(verificationResult);
88
- if (fixResults.applied > 0) {
89
- console.log(` โœ… Applied ${fixResults.applied} fixes`);
90
- this.fixHistory.push({
91
- iteration: this.currentIteration,
92
- fixes: fixResults.fixes,
93
- timestamp: new Date()
94
- });
95
- }
96
- // Wait before next iteration
97
- await new Promise((resolve)=>setTimeout(resolve, 2000));
98
- }
99
- this.showFixSummary();
95
+ */
96
+ async recursiveFixLoop() {
97
+ console.log('\n๐Ÿš€ Starting Auto-Fix Loop with Real Fixes...');
98
+ console.log('โ”'.repeat(50));
99
+
100
+ let score = 0;
101
+ this.currentIteration = 0;
102
+
103
+ while (score < this.threshold && this.currentIteration < this.maxIterations) {
104
+ this.currentIteration++;
105
+ console.log(`\n๐Ÿ“ Iteration ${this.currentIteration}/${this.maxIterations}`);
106
+
107
+ // Step 1: Run verification
108
+ const verificationResult = await this.runVerification();
109
+ score = verificationResult.score;
110
+
111
+ if (score >= this.threshold) {
112
+ console.log(`\nโœจ Threshold met! Score: ${score.toFixed(2)} >= ${this.threshold}`);
113
+ break;
114
+ }
115
+
116
+ // Step 2: Apply actual fixes
117
+ console.log('\n๐Ÿ”ง Applying fixes...');
118
+ const fixResults = await this.applyRealFixes(verificationResult);
119
+
120
+ if (fixResults.applied > 0) {
121
+ console.log(` โœ… Applied ${fixResults.applied} fixes`);
122
+ this.fixHistory.push({
123
+ iteration: this.currentIteration,
124
+ fixes: fixResults.fixes,
125
+ timestamp: new Date(),
126
+ });
127
+ }
128
+
129
+ // Wait before next iteration
130
+ await new Promise((resolve) => setTimeout(resolve, 2000));
100
131
  }
101
- /**
132
+
133
+ this.showFixSummary();
134
+ }
135
+
136
+ /**
102
137
  * Apply real fixes to the codebase
103
- */ async applyRealFixes(verificationResult) {
104
- const fixResults = {
105
- applied: 0,
106
- fixes: []
107
- };
108
- // Fix linting issues
109
- if (verificationResult.lintScore < 0.8) {
110
- console.log(' ๐Ÿ”ง Fixing linting issues...');
111
- try {
112
- // First try auto-fix
113
- const { stdout, stderr } = await execAsync('(npm run lint -- --fix) 2>&1 || true');
114
- // Check if fixes were applied
115
- const afterLint = await execAsync('(npm run lint) 2>&1 || true');
116
- const stillHasErrors = afterLint.stdout.toLowerCase().includes('error');
117
- if (!stillHasErrors || afterLint.stdout.match(/error/gi)?.length < stdout.match(/error/gi)?.length) {
118
- console.log(' โœ… Applied ESLint auto-fixes');
119
- fixResults.applied++;
120
- fixResults.fixes.push('ESLint auto-fix');
121
- }
122
- // If still has errors, try prettier
123
- if (stillHasErrors) {
124
- await execAsync('npx prettier --write "src/**/*.{js,ts,jsx,tsx}" 2>&1 || true');
125
- console.log(' โœ… Applied Prettier formatting');
126
- fixResults.applied++;
127
- fixResults.fixes.push('Prettier formatting');
128
- }
129
- } catch (error) {
130
- console.log(' โš ๏ธ Some linting issues require manual fixes');
131
- }
138
+ */
139
+ async applyRealFixes(verificationResult) {
140
+ const fixResults = {
141
+ applied: 0,
142
+ fixes: [],
143
+ };
144
+
145
+ // Fix linting issues
146
+ if (verificationResult.lintScore < 0.8) {
147
+ console.log(' ๐Ÿ”ง Fixing linting issues...');
148
+ try {
149
+ // First try auto-fix
150
+ const { stdout, stderr } = await execAsync('(npm run lint -- --fix) 2>&1 || true');
151
+
152
+ // Check if fixes were applied
153
+ const afterLint = await execAsync('(npm run lint) 2>&1 || true');
154
+ const stillHasErrors = afterLint.stdout.toLowerCase().includes('error');
155
+
156
+ if (
157
+ !stillHasErrors ||
158
+ afterLint.stdout.match(/error/gi)?.length < stdout.match(/error/gi)?.length
159
+ ) {
160
+ console.log(' โœ… Applied ESLint auto-fixes');
161
+ fixResults.applied++;
162
+ fixResults.fixes.push('ESLint auto-fix');
132
163
  }
133
- // Fix TypeScript issues
134
- if (verificationResult.typeScore < 0.8) {
135
- console.log(' ๐Ÿ”ง Analyzing TypeScript errors...');
136
- try {
137
- const { stdout: tsErrors } = await execAsync('(npm run typecheck) 2>&1 || true');
138
- // Common auto-fixable TypeScript issues
139
- if (tsErrors.includes('Could not find a declaration file')) {
140
- console.log(' ๐Ÿ“ฆ Installing missing type definitions...');
141
- const missingTypes = this.extractMissingTypes(tsErrors);
142
- for (const pkg of missingTypes){
143
- try {
144
- await execAsync(`npm install --save-dev @types/${pkg} 2>&1 || true`);
145
- console.log(` โœ… Installed @types/${pkg}`);
146
- fixResults.applied++;
147
- fixResults.fixes.push(`Installed @types/${pkg}`);
148
- } catch (e) {
149
- // Type package might not exist
150
- }
151
- }
152
- }
153
- // Add basic type annotations for 'any' types
154
- if (tsErrors.includes("implicitly has an 'any' type")) {
155
- console.log(' ๐Ÿ“ Adding type annotations for implicit any...');
156
- // This would need more complex AST manipulation in production
157
- // For now, we'll just report it
158
- console.log(' โ„น๏ธ Manual type annotations needed');
159
- }
160
- } catch (error) {
161
- console.log(' โš ๏ธ TypeScript fixes require manual intervention');
162
- }
164
+
165
+ // If still has errors, try prettier
166
+ if (stillHasErrors) {
167
+ await execAsync('npx prettier --write "src/**/*.{js,ts,jsx,tsx}" 2>&1 || true');
168
+ console.log(' โœ… Applied Prettier formatting');
169
+ fixResults.applied++;
170
+ fixResults.fixes.push('Prettier formatting');
163
171
  }
164
- // Fix build issues
165
- if (verificationResult.buildScore < 0.8) {
166
- console.log(' ๐Ÿ”ง Fixing build configuration...');
172
+ } catch (error) {
173
+ console.log(' โš ๏ธ Some linting issues require manual fixes');
174
+ }
175
+ }
176
+
177
+ // Fix TypeScript issues
178
+ if (verificationResult.typeScore < 0.8) {
179
+ console.log(' ๐Ÿ”ง Analyzing TypeScript errors...');
180
+ try {
181
+ const { stdout: tsErrors } = await execAsync('(npm run typecheck) 2>&1 || true');
182
+
183
+ // Common auto-fixable TypeScript issues
184
+ if (tsErrors.includes('Could not find a declaration file')) {
185
+ console.log(' ๐Ÿ“ฆ Installing missing type definitions...');
186
+ const missingTypes = this.extractMissingTypes(tsErrors);
187
+ for (const pkg of missingTypes) {
167
188
  try {
168
- // Clear cache and rebuild
169
- await execAsync('rm -rf dist 2>&1 || true');
170
- await execAsync('(npm run build) 2>&1 || true');
171
- console.log(' โœ… Cleared cache and rebuilt');
172
- fixResults.applied++;
173
- fixResults.fixes.push('Cache clear and rebuild');
174
- } catch (error) {
175
- console.log(' โš ๏ธ Build issues may require configuration changes');
189
+ await execAsync(`npm install --save-dev @types/${pkg} 2>&1 || true`);
190
+ console.log(` โœ… Installed @types/${pkg}`);
191
+ fixResults.applied++;
192
+ fixResults.fixes.push(`Installed @types/${pkg}`);
193
+ } catch (e) {
194
+ // Type package might not exist
176
195
  }
196
+ }
177
197
  }
178
- // Fix package issues
179
- console.log(' ๐Ÿ”ง Checking for dependency issues...');
180
- try {
181
- // Audit and fix vulnerabilities
182
- const { stdout: auditOutput } = await execAsync('npm audit --json 2>&1 || true');
183
- const audit = JSON.parse(auditOutput);
184
- if (audit.metadata?.vulnerabilities?.total > 0) {
185
- console.log(' ๐Ÿ›ก๏ธ Fixing security vulnerabilities...');
186
- await execAsync('npm audit fix 2>&1 || true');
187
- console.log(' โœ… Applied security fixes');
188
- fixResults.applied++;
189
- fixResults.fixes.push('Security vulnerability fixes');
190
- }
191
- // Update outdated packages (only patch/minor)
192
- await execAsync('npm update 2>&1 || true');
193
- console.log(' โœ… Updated dependencies');
194
- fixResults.applied++;
195
- fixResults.fixes.push('Dependency updates');
196
- } catch (error) {
197
- // Audit might fail, that's okay
198
+
199
+ // Add basic type annotations for 'any' types
200
+ if (tsErrors.includes("implicitly has an 'any' type")) {
201
+ console.log(' ๐Ÿ“ Adding type annotations for implicit any...');
202
+ // This would need more complex AST manipulation in production
203
+ // For now, we'll just report it
204
+ console.log(' โ„น๏ธ Manual type annotations needed');
198
205
  }
199
- return fixResults;
206
+ } catch (error) {
207
+ console.log(' โš ๏ธ TypeScript fixes require manual intervention');
208
+ }
209
+ }
210
+
211
+ // Fix build issues
212
+ if (verificationResult.buildScore < 0.8) {
213
+ console.log(' ๐Ÿ”ง Fixing build configuration...');
214
+ try {
215
+ // Clear cache and rebuild
216
+ await execAsync('rm -rf dist 2>&1 || true');
217
+ await execAsync('(npm run build) 2>&1 || true');
218
+ console.log(' โœ… Cleared cache and rebuilt');
219
+ fixResults.applied++;
220
+ fixResults.fixes.push('Cache clear and rebuild');
221
+ } catch (error) {
222
+ console.log(' โš ๏ธ Build issues may require configuration changes');
223
+ }
224
+ }
225
+
226
+ // Fix package issues
227
+ console.log(' ๐Ÿ”ง Checking for dependency issues...');
228
+ try {
229
+ // Audit and fix vulnerabilities
230
+ const { stdout: auditOutput } = await execAsync('npm audit --json 2>&1 || true');
231
+ const audit = JSON.parse(auditOutput);
232
+
233
+ if (audit.metadata?.vulnerabilities?.total > 0) {
234
+ console.log(' ๐Ÿ›ก๏ธ Fixing security vulnerabilities...');
235
+ await execAsync('npm audit fix 2>&1 || true');
236
+ console.log(' โœ… Applied security fixes');
237
+ fixResults.applied++;
238
+ fixResults.fixes.push('Security vulnerability fixes');
239
+ }
240
+
241
+ // Update outdated packages (only patch/minor)
242
+ await execAsync('npm update 2>&1 || true');
243
+ console.log(' โœ… Updated dependencies');
244
+ fixResults.applied++;
245
+ fixResults.fixes.push('Dependency updates');
246
+ } catch (error) {
247
+ // Audit might fail, that's okay
200
248
  }
201
- /**
249
+
250
+ return fixResults;
251
+ }
252
+
253
+ /**
202
254
  * Extract missing type packages from TypeScript errors
203
- */ extractMissingTypes(tsErrors) {
204
- const packages = new Set();
205
- const regex = /Could not find a declaration file for module '([^']+)'/g;
206
- let match;
207
- while((match = regex.exec(tsErrors)) !== null){
208
- const pkg = match[1];
209
- // Clean package name (remove @org/ prefix if present)
210
- const cleanPkg = pkg.replace(/^@[^/]+\//, '');
211
- packages.add(cleanPkg);
212
- }
213
- return Array.from(packages);
255
+ */
256
+ extractMissingTypes(tsErrors) {
257
+ const packages = new Set();
258
+ const regex = /Could not find a declaration file for module '([^']+)'/g;
259
+ let match;
260
+
261
+ while ((match = regex.exec(tsErrors)) !== null) {
262
+ const pkg = match[1];
263
+ // Clean package name (remove @org/ prefix if present)
264
+ const cleanPkg = pkg.replace(/^@[^/]+\//, '');
265
+ packages.add(cleanPkg);
214
266
  }
215
- /**
267
+
268
+ return Array.from(packages);
269
+ }
270
+
271
+ /**
216
272
  * Run verification with detailed scoring
217
- */ async runVerification() {
218
- console.log('\n๐Ÿ” Running verification check...');
219
- const checks = [
220
- {
221
- name: 'Type Check',
222
- command: '(npm run typecheck) 2>&1 || true',
223
- weight: 0.4,
224
- scoreKey: 'typeScore'
225
- },
226
- {
227
- name: 'Linting',
228
- command: '(npm run lint) 2>&1 || true',
229
- weight: 0.3,
230
- scoreKey: 'lintScore'
231
- },
232
- {
233
- name: 'Build',
234
- command: '(npm run build) 2>&1 || true',
235
- weight: 0.3,
236
- scoreKey: 'buildScore'
237
- }
238
- ];
239
- const results = {};
240
- let totalScore = 0;
241
- let totalWeight = 0;
242
- for (const check of checks){
243
- try {
244
- const { stdout, stderr } = await execAsync(check.command);
245
- const output = stdout + stderr;
246
- // Calculate score based on actual errors/warnings
247
- let score = 1.0;
248
- const errorCount = (output.match(/error/gi) || []).length;
249
- const warningCount = (output.match(/warning/gi) || []).length;
250
- if (errorCount > 0) {
251
- score = Math.max(0.2, 1.0 - errorCount * 0.1);
252
- } else if (warningCount > 0) {
253
- score = Math.max(0.7, 1.0 - warningCount * 0.05);
254
- }
255
- results[check.scoreKey] = score;
256
- totalScore += score * check.weight;
257
- totalWeight += check.weight;
258
- const icon = score >= 0.8 ? 'โœ…' : score >= 0.5 ? 'โš ๏ธ' : 'โŒ';
259
- console.log(` ${icon} ${check.name}: ${score.toFixed(2)}`);
260
- } catch (error) {
261
- console.log(` โŒ ${check.name}: 0.00 (failed)`);
262
- results[check.scoreKey] = 0;
263
- totalWeight += check.weight;
264
- }
265
- }
266
- const averageScore = totalWeight > 0 ? totalScore / totalWeight : 0;
267
- console.log(`\n๐Ÿ“Š Verification Score: ${averageScore.toFixed(2)}/${this.threshold}`);
268
- if (this.guidanceMode === 'beginner' && averageScore < this.threshold) {
269
- console.log("\n๐Ÿ’ก Don't worry! Use /autofix to automatically improve the score");
270
- }
271
- const verificationResult = {
272
- score: averageScore,
273
- ...results,
274
- timestamp: new Date(),
275
- iteration: this.currentIteration
276
- };
277
- this.verificationScores.push(verificationResult);
278
- return verificationResult;
279
- }
280
- showWelcome() {
281
- console.log('\n๐Ÿš€ Enhanced Pair Programming Session');
282
- console.log('โ”'.repeat(50));
283
- console.log(`Session ID: ${this.sessionId}`);
284
- console.log(`Guidance Mode: ${this.guidanceMode.charAt(0).toUpperCase() + this.guidanceMode.slice(1)}`);
285
- console.log(`Description: ${this.guidance.description}`);
286
- console.log(`Verification: ${this.verify ? 'โœ… Enabled' : 'โŒ Disabled'}`);
287
- console.log(`Auto-Fix: ${this.autoFix ? 'โœ… Enabled' : 'โŒ Disabled'}`);
288
- console.log(`Target Threshold: ${this.threshold}`);
289
- console.log('โ”'.repeat(50));
290
- if (this.guidanceMode === 'beginner') {
291
- console.log('\n๐Ÿ“š Guidance Settings:');
292
- console.log(` โ€ข Mode: ${this.guidanceMode.charAt(0).toUpperCase() + this.guidanceMode.slice(1)}`);
293
- console.log(` โ€ข Verbosity: ${this.guidance.verbosity}`);
294
- console.log(` โ€ข Suggestions: ${this.guidance.suggestions}`);
295
- console.log(` โ€ข Explanations: ${this.guidance.explanations}`);
296
- console.log('\n๐Ÿ’ก Beginner Tips:');
297
- console.log(' โ€ข Use /explain for detailed explanations');
298
- console.log(' โ€ข Use /pattern to see design patterns');
299
- console.log(' โ€ข Use /best for best practices');
300
- console.log(' โ€ข Use /why to understand decisions');
273
+ */
274
+ async runVerification() {
275
+ console.log('\n๐Ÿ” Running verification check...');
276
+
277
+ const checks = [
278
+ {
279
+ name: 'Type Check',
280
+ command: '(npm run typecheck) 2>&1 || true',
281
+ weight: 0.4,
282
+ scoreKey: 'typeScore',
283
+ },
284
+ {
285
+ name: 'Linting',
286
+ command: '(npm run lint) 2>&1 || true',
287
+ weight: 0.3,
288
+ scoreKey: 'lintScore',
289
+ },
290
+ {
291
+ name: 'Build',
292
+ command: '(npm run build) 2>&1 || true',
293
+ weight: 0.3,
294
+ scoreKey: 'buildScore',
295
+ },
296
+ ];
297
+
298
+ const results = {};
299
+ let totalScore = 0;
300
+ let totalWeight = 0;
301
+
302
+ for (const check of checks) {
303
+ try {
304
+ const { stdout, stderr } = await execAsync(check.command);
305
+ const output = stdout + stderr;
306
+
307
+ // Calculate score based on actual errors/warnings
308
+ let score = 1.0;
309
+ const errorCount = (output.match(/error/gi) || []).length;
310
+ const warningCount = (output.match(/warning/gi) || []).length;
311
+
312
+ if (errorCount > 0) {
313
+ score = Math.max(0.2, 1.0 - errorCount * 0.1);
314
+ } else if (warningCount > 0) {
315
+ score = Math.max(0.7, 1.0 - warningCount * 0.05);
301
316
  }
317
+
318
+ results[check.scoreKey] = score;
319
+ totalScore += score * check.weight;
320
+ totalWeight += check.weight;
321
+
322
+ const icon = score >= 0.8 ? 'โœ…' : score >= 0.5 ? 'โš ๏ธ' : 'โŒ';
323
+ console.log(` ${icon} ${check.name}: ${score.toFixed(2)}`);
324
+ } catch (error) {
325
+ console.log(` โŒ ${check.name}: 0.00 (failed)`);
326
+ results[check.scoreKey] = 0;
327
+ totalWeight += check.weight;
328
+ }
302
329
  }
303
- showFixSummary() {
304
- if (this.fixHistory.length > 0) {
305
- console.log('\n๐Ÿ“‹ Fix Summary:');
306
- console.log('โ”'.repeat(50));
307
- let totalFixes = 0;
308
- for (const entry of this.fixHistory){
309
- console.log(`\nIteration ${entry.iteration}:`);
310
- for (const fix of entry.fixes){
311
- console.log(` โœ… ${fix}`);
312
- totalFixes++;
313
- }
314
- }
315
- console.log('โ”'.repeat(50));
316
- console.log(`Total fixes applied: ${totalFixes}`);
317
- console.log(`Iterations completed: ${this.currentIteration}`);
318
- if (this.verificationScores.length > 1) {
319
- const first = this.verificationScores[0].score;
320
- const last = this.verificationScores[this.verificationScores.length - 1].score;
321
- const improvement = ((last - first) * 100).toFixed(1);
322
- if (improvement > 0) {
323
- console.log(`Score improvement: +${improvement}%`);
324
- }
325
- }
326
- }
330
+
331
+ const averageScore = totalWeight > 0 ? totalScore / totalWeight : 0;
332
+ console.log(`\n๐Ÿ“Š Verification Score: ${averageScore.toFixed(2)}/${this.threshold}`);
333
+
334
+ if (this.guidanceMode === 'beginner' && averageScore < this.threshold) {
335
+ console.log("\n๐Ÿ’ก Don't worry! Use /autofix to automatically improve the score");
327
336
  }
328
- async startInteractiveMode() {
329
- this.rl = readline.createInterface({
330
- input: process.stdin,
331
- output: process.stdout,
332
- prompt: '\n๐Ÿ’ป pair> '
333
- });
334
- console.log('\n๐Ÿ’ก Interactive mode active. Type /help for commands.\n');
335
- this.showCommands();
336
- this.rl.prompt();
337
- this.rl.on('line', async (line)=>{
338
- const input = line.trim();
339
- if (input.startsWith('/')) {
340
- await this.handleCommand(input);
341
- } else if (input.startsWith('?')) {
342
- await this.askQuestion(input.slice(1).trim());
343
- } else if (input) {
344
- console.log('๐Ÿค– Processing your input...');
345
- }
346
- this.rl.prompt();
347
- });
348
- this.rl.on('close', ()=>{
349
- this.end();
350
- });
337
+
338
+ const verificationResult = {
339
+ score: averageScore,
340
+ ...results,
341
+ timestamp: new Date(),
342
+ iteration: this.currentIteration,
343
+ };
344
+
345
+ this.verificationScores.push(verificationResult);
346
+ return verificationResult;
347
+ }
348
+
349
+ showWelcome() {
350
+ console.log('\n๐Ÿš€ Enhanced Pair Programming Session');
351
+ console.log('โ”'.repeat(50));
352
+ console.log(`Session ID: ${this.sessionId}`);
353
+ console.log(
354
+ `Guidance Mode: ${this.guidanceMode.charAt(0).toUpperCase() + this.guidanceMode.slice(1)}`,
355
+ );
356
+ console.log(`Description: ${this.guidance.description}`);
357
+ console.log(`Verification: ${this.verify ? 'โœ… Enabled' : 'โŒ Disabled'}`);
358
+ console.log(`Auto-Fix: ${this.autoFix ? 'โœ… Enabled' : 'โŒ Disabled'}`);
359
+ console.log(`Target Threshold: ${this.threshold}`);
360
+ console.log('โ”'.repeat(50));
361
+
362
+ if (this.guidanceMode === 'beginner') {
363
+ console.log('\n๐Ÿ“š Guidance Settings:');
364
+ console.log(
365
+ ` โ€ข Mode: ${this.guidanceMode.charAt(0).toUpperCase() + this.guidanceMode.slice(1)}`,
366
+ );
367
+ console.log(` โ€ข Verbosity: ${this.guidance.verbosity}`);
368
+ console.log(` โ€ข Suggestions: ${this.guidance.suggestions}`);
369
+ console.log(` โ€ข Explanations: ${this.guidance.explanations}`);
370
+
371
+ console.log('\n๐Ÿ’ก Beginner Tips:');
372
+ console.log(' โ€ข Use /explain for detailed explanations');
373
+ console.log(' โ€ข Use /pattern to see design patterns');
374
+ console.log(' โ€ข Use /best for best practices');
375
+ console.log(' โ€ข Use /why to understand decisions');
351
376
  }
352
- showCommands() {
353
- console.log('\n๐Ÿ“ Session Commands:');
354
- console.log(' /help - Show all commands');
355
- console.log(' /verify - Run verification');
356
- console.log(' /autofix - Start auto-fix loop');
357
- console.log(' /suggest - Get suggestions');
358
- console.log(' /explain <topic> - Explain concept');
359
- console.log(' /best <area> - Show best practices');
360
- console.log(' /pattern - Pattern suggestions');
361
- console.log(' /why - Explain decisions');
362
- console.log(' /status - Session status');
363
- console.log(' /metrics - Quality metrics');
364
- console.log(' /guidance - Change guidance mode');
365
- console.log(' /test - Run tests');
366
- console.log(' /commit - Commit with verification');
367
- console.log(' /end - End session');
368
- if (this.guidanceMode === 'beginner') {
369
- console.log('\n๐Ÿ’ก Quick tips:');
370
- console.log(' โ€ข Type ? followed by question for Q&A');
371
- console.log(' โ€ข Use Tab for command completion');
377
+ }
378
+
379
+ showFixSummary() {
380
+ if (this.fixHistory.length > 0) {
381
+ console.log('\n๐Ÿ“‹ Fix Summary:');
382
+ console.log('โ”'.repeat(50));
383
+
384
+ let totalFixes = 0;
385
+ for (const entry of this.fixHistory) {
386
+ console.log(`\nIteration ${entry.iteration}:`);
387
+ for (const fix of entry.fixes) {
388
+ console.log(` โœ… ${fix}`);
389
+ totalFixes++;
372
390
  }
373
- }
374
- async handleCommand(command) {
375
- const [cmd, ...args] = command.split(' ');
376
- switch(cmd){
377
- case '/help':
378
- this.showCommands();
379
- break;
380
- case '/verify':
381
- await this.runVerification();
382
- break;
383
- case '/autofix':
384
- await this.recursiveFixLoop();
385
- break;
386
- case '/suggest':
387
- await this.showSuggestions();
388
- break;
389
- case '/explain':
390
- await this.explainConcept(args.join(' '));
391
- break;
392
- case '/best':
393
- this.showBestPractices(args[0] || 'general');
394
- break;
395
- case '/pattern':
396
- this.showPatternSuggestions();
397
- break;
398
- case '/why':
399
- this.explainDecisions();
400
- break;
401
- case '/status':
402
- await this.showStatus();
403
- break;
404
- case '/metrics':
405
- this.showMetrics();
406
- break;
407
- case '/guidance':
408
- await this.changeGuidanceMode(args[0]);
409
- break;
410
- case '/test':
411
- await this.runTests();
412
- break;
413
- case '/commit':
414
- await this.commitWithVerification();
415
- break;
416
- case '/end':
417
- case '/exit':
418
- await this.end();
419
- process.exit(0);
420
- break;
421
- default:
422
- console.log(`โŒ Unknown command: ${cmd}`);
423
- console.log('๐Ÿ’ก Type /help for available commands');
391
+ }
392
+
393
+ console.log('โ”'.repeat(50));
394
+ console.log(`Total fixes applied: ${totalFixes}`);
395
+ console.log(`Iterations completed: ${this.currentIteration}`);
396
+
397
+ if (this.verificationScores.length > 1) {
398
+ const first = this.verificationScores[0].score;
399
+ const last = this.verificationScores[this.verificationScores.length - 1].score;
400
+ const improvement = ((last - first) * 100).toFixed(1);
401
+ if (improvement > 0) {
402
+ console.log(`Score improvement: +${improvement}%`);
424
403
  }
404
+ }
425
405
  }
426
- async showSuggestions() {
427
- console.log('\n๐Ÿ’ก Analyzing for suggestions...');
428
- // Get latest verification scores
429
- let latestScore = null;
430
- if (this.verificationScores.length > 0) {
431
- latestScore = this.verificationScores[this.verificationScores.length - 1];
432
- } else {
433
- latestScore = await this.runVerification();
434
- }
435
- console.log('\n๐Ÿ“ Immediate Actions:');
436
- if (latestScore.lintScore < 0.8) {
437
- console.log(' 1. Fix linting issues: Run /autofix or npm run lint --fix');
438
- }
439
- if (latestScore.typeScore < 0.8) {
440
- console.log(' 2. Fix TypeScript errors: Check npm run typecheck output');
441
- }
442
- if (latestScore.buildScore < 0.8) {
443
- console.log(' 3. Fix build issues: Clear cache and rebuild');
444
- }
445
- if (latestScore.score >= this.threshold) {
446
- console.log(' โœจ Code quality meets threshold! Consider adding tests or documentation.');
447
- }
406
+ }
407
+
408
+ async startInteractiveMode() {
409
+ this.rl = readline.createInterface({
410
+ input: process.stdin,
411
+ output: process.stdout,
412
+ prompt: '\n๐Ÿ’ป pair> ',
413
+ });
414
+
415
+ console.log('\n๐Ÿ’ก Interactive mode active. Type /help for commands.\n');
416
+
417
+ this.showCommands();
418
+ this.rl.prompt();
419
+
420
+ this.rl.on('line', async (line) => {
421
+ const input = line.trim();
422
+
423
+ if (input.startsWith('/')) {
424
+ await this.handleCommand(input);
425
+ } else if (input.startsWith('?')) {
426
+ await this.askQuestion(input.slice(1).trim());
427
+ } else if (input) {
428
+ console.log('๐Ÿค– Processing your input...');
429
+ }
430
+
431
+ this.rl.prompt();
432
+ });
433
+
434
+ this.rl.on('close', () => {
435
+ this.end();
436
+ });
437
+ }
438
+
439
+ showCommands() {
440
+ console.log('\n๐Ÿ“ Session Commands:');
441
+ console.log(' /help - Show all commands');
442
+ console.log(' /verify - Run verification');
443
+ console.log(' /autofix - Start auto-fix loop');
444
+ console.log(' /suggest - Get suggestions');
445
+ console.log(' /explain <topic> - Explain concept');
446
+ console.log(' /best <area> - Show best practices');
447
+ console.log(' /pattern - Pattern suggestions');
448
+ console.log(' /why - Explain decisions');
449
+ console.log(' /status - Session status');
450
+ console.log(' /metrics - Quality metrics');
451
+ console.log(' /guidance - Change guidance mode');
452
+ console.log(' /test - Run tests');
453
+ console.log(' /commit - Commit with verification');
454
+ console.log(' /end - End session');
455
+
456
+ if (this.guidanceMode === 'beginner') {
457
+ console.log('\n๐Ÿ’ก Quick tips:');
458
+ console.log(' โ€ข Type ? followed by question for Q&A');
459
+ console.log(' โ€ข Use Tab for command completion');
448
460
  }
449
- async explainConcept(topic) {
450
- if (!topic) {
451
- console.log('Usage: /explain <topic>');
452
- return;
453
- }
454
- console.log(`\n๐Ÿ“š Explaining: ${topic}`);
455
- console.log('โ”'.repeat(40));
456
- // Provide explanations based on common topics
457
- const explanations = {
458
- typescript: 'TypeScript adds static typing to JavaScript, catching errors at compile time.',
459
- linting: 'Linting analyzes code for potential errors and style issues.',
460
- testing: 'Tests verify your code works as expected and prevent regressions.',
461
- async: 'Async/await provides cleaner syntax for handling promises.',
462
- hooks: 'React hooks allow using state in functional components.'
463
- };
464
- const explanation = explanations[topic.toLowerCase()];
465
- if (explanation) {
466
- console.log(explanation);
467
- } else {
468
- console.log('Topic not found. Try: typescript, linting, testing, async, hooks');
469
- }
461
+ }
462
+
463
+ async handleCommand(command) {
464
+ const [cmd, ...args] = command.split(' ');
465
+
466
+ switch (cmd) {
467
+ case '/help':
468
+ this.showCommands();
469
+ break;
470
+
471
+ case '/verify':
472
+ await this.runVerification();
473
+ break;
474
+
475
+ case '/autofix':
476
+ await this.recursiveFixLoop();
477
+ break;
478
+
479
+ case '/suggest':
480
+ await this.showSuggestions();
481
+ break;
482
+
483
+ case '/explain':
484
+ await this.explainConcept(args.join(' '));
485
+ break;
486
+
487
+ case '/best':
488
+ this.showBestPractices(args[0] || 'general');
489
+ break;
490
+
491
+ case '/pattern':
492
+ this.showPatternSuggestions();
493
+ break;
494
+
495
+ case '/why':
496
+ this.explainDecisions();
497
+ break;
498
+
499
+ case '/status':
500
+ await this.showStatus();
501
+ break;
502
+
503
+ case '/metrics':
504
+ this.showMetrics();
505
+ break;
506
+
507
+ case '/guidance':
508
+ await this.changeGuidanceMode(args[0]);
509
+ break;
510
+
511
+ case '/test':
512
+ await this.runTests();
513
+ break;
514
+
515
+ case '/commit':
516
+ await this.commitWithVerification();
517
+ break;
518
+
519
+ case '/end':
520
+ case '/exit':
521
+ await this.end();
522
+ process.exit(0);
523
+ break;
524
+
525
+ default:
526
+ console.log(`โŒ Unknown command: ${cmd}`);
527
+ console.log('๐Ÿ’ก Type /help for available commands');
470
528
  }
471
- showBestPractices(area) {
472
- console.log(`\n๐Ÿ“š Best Practices for ${area}:`);
473
- console.log('โ”'.repeat(40));
474
- const practices = {
475
- general: [
476
- 'โ€ข Write self-documenting code',
477
- 'โ€ข Keep functions small and focused',
478
- 'โ€ข Use meaningful variable names',
479
- 'โ€ข Handle errors properly',
480
- 'โ€ข Write tests for critical paths'
481
- ],
482
- testing: [
483
- 'โ€ข Test behavior, not implementation',
484
- 'โ€ข Use descriptive test names',
485
- 'โ€ข Follow AAA pattern',
486
- 'โ€ข Mock external dependencies',
487
- 'โ€ข Test edge cases'
488
- ]
489
- };
490
- const selected = practices[area] || practices.general;
491
- selected.forEach((p)=>console.log(p));
529
+ }
530
+
531
+ async showSuggestions() {
532
+ console.log('\n๐Ÿ’ก Analyzing for suggestions...');
533
+
534
+ // Get latest verification scores
535
+ let latestScore = null;
536
+ if (this.verificationScores.length > 0) {
537
+ latestScore = this.verificationScores[this.verificationScores.length - 1];
538
+ } else {
539
+ latestScore = await this.runVerification();
492
540
  }
493
- showPatternSuggestions() {
494
- console.log('\n๐Ÿ—๏ธ Recommended Design Patterns:');
495
- console.log('โ”'.repeat(40));
496
- console.log('โ€ข Singleton - One instance throughout app');
497
- console.log('โ€ข Factory - Create objects without specifying class');
498
- console.log('โ€ข Observer - Subscribe to and notify changes');
499
- console.log('โ€ข Strategy - Encapsulate algorithms');
500
- console.log('โ€ข Decorator - Add functionality to objects');
541
+
542
+ console.log('\n๐Ÿ“ Immediate Actions:');
543
+ if (latestScore.lintScore < 0.8) {
544
+ console.log(' 1. Fix linting issues: Run /autofix or npm run lint --fix');
501
545
  }
502
- explainDecisions() {
503
- console.log('\n๐Ÿค” Decision Rationale:');
504
- console.log('โ”'.repeat(40));
505
- console.log('Auto-fix decisions are based on:');
506
- console.log('โ€ข Industry best practices');
507
- console.log('โ€ข Code maintainability');
508
- console.log('โ€ข Performance optimization');
509
- console.log('โ€ข Security considerations');
510
- console.log('โ€ข Team consistency');
546
+ if (latestScore.typeScore < 0.8) {
547
+ console.log(' 2. Fix TypeScript errors: Check npm run typecheck output');
511
548
  }
512
- async showStatus() {
513
- const duration = Math.floor((Date.now() - this.startTime) / 1000 / 60);
514
- console.log('\n๐Ÿ“Š Session Status');
515
- console.log('โ”'.repeat(40));
516
- console.log(`Session ID: ${this.sessionId}`);
517
- console.log(`Duration: ${duration} minutes`);
518
- console.log(`Guidance Mode: ${this.guidanceMode}`);
519
- console.log(`Auto-Fix: ${this.autoFix ? 'Enabled' : 'Disabled'}`);
520
- console.log(`Fix Iterations: ${this.currentIteration}`);
521
- console.log(`Total Fixes Applied: ${this.fixHistory.reduce((sum, h)=>sum + h.fixes.length, 0)}`);
522
- if (this.verificationScores.length > 0) {
523
- const latest = this.verificationScores[this.verificationScores.length - 1];
524
- console.log(`Latest Score: ${latest.score.toFixed(2)}`);
525
- }
549
+ if (latestScore.buildScore < 0.8) {
550
+ console.log(' 3. Fix build issues: Clear cache and rebuild');
526
551
  }
527
- showMetrics() {
528
- console.log('\n๐Ÿ“ˆ Quality Metrics');
529
- console.log('โ”'.repeat(40));
530
- if (this.verificationScores.length > 0) {
531
- console.log('\nScore Progression:');
532
- this.verificationScores.forEach((v, i)=>{
533
- const bar = 'โ–ˆ'.repeat(Math.floor(v.score * 20));
534
- console.log(` ${i + 1}. ${bar} ${v.score.toFixed(2)}`);
535
- });
536
- if (this.verificationScores.length > 1) {
537
- const first = this.verificationScores[0].score;
538
- const last = this.verificationScores[this.verificationScores.length - 1].score;
539
- const improvement = ((last - first) * 100).toFixed(1);
540
- if (improvement > 0) {
541
- console.log(`\n Improvement: +${improvement}%`);
542
- }
543
- }
544
- }
552
+
553
+ if (latestScore.score >= this.threshold) {
554
+ console.log(' โœจ Code quality meets threshold! Consider adding tests or documentation.');
545
555
  }
546
- async changeGuidanceMode(newMode) {
547
- if (!newMode || !GUIDANCE_MODES[newMode]) {
548
- console.log('Available modes: beginner, intermediate, expert, mentor, strict');
549
- return;
550
- }
551
- this.guidanceMode = newMode;
552
- this.guidance = GUIDANCE_MODES[newMode];
553
- console.log(`โœ… Guidance mode changed to: ${newMode}`);
554
- console.log(`Description: ${this.guidance.description}`);
556
+ }
557
+
558
+ async explainConcept(topic) {
559
+ if (!topic) {
560
+ console.log('Usage: /explain <topic>');
561
+ return;
555
562
  }
556
- async askQuestion(question) {
557
- console.log('\nโ“ Question:', question);
558
- console.log('\n๐Ÿ“š Answer:');
559
- console.log('โ”'.repeat(40));
560
- // Provide contextual answers
561
- if (question.toLowerCase().includes('why')) {
562
- console.log('This is important for code quality and maintainability.');
563
- } else if (question.toLowerCase().includes('how')) {
564
- console.log('You can achieve this by following the suggested approach.');
565
- } else {
566
- console.log("That's a great question! Consider exploring the documentation.");
567
- }
563
+
564
+ console.log(`\n๐Ÿ“š Explaining: ${topic}`);
565
+ console.log('โ”'.repeat(40));
566
+
567
+ // Provide explanations based on common topics
568
+ const explanations = {
569
+ typescript: 'TypeScript adds static typing to JavaScript, catching errors at compile time.',
570
+ linting: 'Linting analyzes code for potential errors and style issues.',
571
+ testing: 'Tests verify your code works as expected and prevent regressions.',
572
+ async: 'Async/await provides cleaner syntax for handling promises.',
573
+ hooks: 'React hooks allow using state in functional components.',
574
+ };
575
+
576
+ const explanation = explanations[topic.toLowerCase()];
577
+ if (explanation) {
578
+ console.log(explanation);
579
+ } else {
580
+ console.log('Topic not found. Try: typescript, linting, testing, async, hooks');
568
581
  }
569
- async runTests() {
570
- console.log('\n๐Ÿงช Running tests...');
571
- try {
572
- const { stdout } = await execAsync('npm test 2>&1 || true');
573
- const passed = !stdout.toLowerCase().includes('fail');
574
- console.log(` ${passed ? 'โœ…' : 'โŒ'} Tests ${passed ? 'passed' : 'failed'}`);
575
- return passed;
576
- } catch (error) {
577
- console.log(' โŒ Test execution failed:', error.message);
578
- return false;
579
- }
582
+ }
583
+
584
+ showBestPractices(area) {
585
+ console.log(`\n๐Ÿ“š Best Practices for ${area}:`);
586
+ console.log('โ”'.repeat(40));
587
+
588
+ const practices = {
589
+ general: [
590
+ 'โ€ข Write self-documenting code',
591
+ 'โ€ข Keep functions small and focused',
592
+ 'โ€ข Use meaningful variable names',
593
+ 'โ€ข Handle errors properly',
594
+ 'โ€ข Write tests for critical paths',
595
+ ],
596
+ testing: [
597
+ 'โ€ข Test behavior, not implementation',
598
+ 'โ€ข Use descriptive test names',
599
+ 'โ€ข Follow AAA pattern',
600
+ 'โ€ข Mock external dependencies',
601
+ 'โ€ข Test edge cases',
602
+ ],
603
+ };
604
+
605
+ const selected = practices[area] || practices.general;
606
+ selected.forEach((p) => console.log(p));
607
+ }
608
+
609
+ showPatternSuggestions() {
610
+ console.log('\n๐Ÿ—๏ธ Recommended Design Patterns:');
611
+ console.log('โ”'.repeat(40));
612
+ console.log('โ€ข Singleton - One instance throughout app');
613
+ console.log('โ€ข Factory - Create objects without specifying class');
614
+ console.log('โ€ข Observer - Subscribe to and notify changes');
615
+ console.log('โ€ข Strategy - Encapsulate algorithms');
616
+ console.log('โ€ข Decorator - Add functionality to objects');
617
+ }
618
+
619
+ explainDecisions() {
620
+ console.log('\n๐Ÿค” Decision Rationale:');
621
+ console.log('โ”'.repeat(40));
622
+ console.log('Auto-fix decisions are based on:');
623
+ console.log('โ€ข Industry best practices');
624
+ console.log('โ€ข Code maintainability');
625
+ console.log('โ€ข Performance optimization');
626
+ console.log('โ€ข Security considerations');
627
+ console.log('โ€ข Team consistency');
628
+ }
629
+
630
+ async showStatus() {
631
+ const duration = Math.floor((Date.now() - this.startTime) / 1000 / 60);
632
+
633
+ console.log('\n๐Ÿ“Š Session Status');
634
+ console.log('โ”'.repeat(40));
635
+ console.log(`Session ID: ${this.sessionId}`);
636
+ console.log(`Duration: ${duration} minutes`);
637
+ console.log(`Guidance Mode: ${this.guidanceMode}`);
638
+ console.log(`Auto-Fix: ${this.autoFix ? 'Enabled' : 'Disabled'}`);
639
+ console.log(`Fix Iterations: ${this.currentIteration}`);
640
+ console.log(
641
+ `Total Fixes Applied: ${this.fixHistory.reduce((sum, h) => sum + h.fixes.length, 0)}`,
642
+ );
643
+
644
+ if (this.verificationScores.length > 0) {
645
+ const latest = this.verificationScores[this.verificationScores.length - 1];
646
+ console.log(`Latest Score: ${latest.score.toFixed(2)}`);
580
647
  }
581
- async commitWithVerification() {
582
- const result = await this.runVerification();
583
- if (result.score >= this.threshold) {
584
- console.log('โœ… Verification passed! Ready to commit.');
585
- console.log('\n๐Ÿ“ Suggested commit message:');
586
- console.log(` "feat: improved code quality to ${result.score.toFixed(2)} threshold"`);
587
- } else {
588
- console.log('โŒ Verification failed!');
589
- console.log('๐Ÿ’ก Run /autofix to automatically fix issues');
648
+ }
649
+
650
+ showMetrics() {
651
+ console.log('\n๐Ÿ“ˆ Quality Metrics');
652
+ console.log('โ”'.repeat(40));
653
+
654
+ if (this.verificationScores.length > 0) {
655
+ console.log('\nScore Progression:');
656
+ this.verificationScores.forEach((v, i) => {
657
+ const bar = 'โ–ˆ'.repeat(Math.floor(v.score * 20));
658
+ console.log(` ${i + 1}. ${bar} ${v.score.toFixed(2)}`);
659
+ });
660
+
661
+ if (this.verificationScores.length > 1) {
662
+ const first = this.verificationScores[0].score;
663
+ const last = this.verificationScores[this.verificationScores.length - 1].score;
664
+ const improvement = ((last - first) * 100).toFixed(1);
665
+ if (improvement > 0) {
666
+ console.log(`\n Improvement: +${improvement}%`);
590
667
  }
668
+ }
591
669
  }
592
- async end() {
593
- console.log('\n๐Ÿ›‘ Ending pair programming session...');
594
- if (this.rl) this.rl.close();
595
- this.status = 'completed';
596
- await this.saveSession();
597
- const duration = Math.floor((Date.now() - this.startTime) / 1000 / 60);
598
- console.log('\nโœจ Session Complete!');
599
- console.log('โ”'.repeat(40));
600
- console.log(`Duration: ${duration} minutes`);
601
- console.log(`Total Fixes Applied: ${this.fixHistory.reduce((sum, h)=>sum + h.fixes.length, 0)}`);
602
- console.log(`Final Iterations: ${this.currentIteration}`);
603
- if (this.verificationScores.length > 0) {
604
- const final = this.verificationScores[this.verificationScores.length - 1];
605
- console.log(`Final Score: ${final.score.toFixed(2)}`);
606
- }
607
- console.log('\n๐Ÿ‘‹ Thanks for pair programming!\n');
670
+ }
671
+
672
+ async changeGuidanceMode(newMode) {
673
+ if (!newMode || !GUIDANCE_MODES[newMode]) {
674
+ console.log('Available modes: beginner, intermediate, expert, mentor, strict');
675
+ return;
608
676
  }
609
- async saveSession() {
610
- const sessionPath = '.claude-flow/sessions/pair';
611
- await fs.mkdir(sessionPath, {
612
- recursive: true
613
- });
614
- const sessionData = {
615
- id: this.sessionId,
616
- guidanceMode: this.guidanceMode,
617
- autoFix: this.autoFix,
618
- threshold: this.threshold,
619
- startTime: this.startTime.toISOString(),
620
- status: this.status,
621
- verificationScores: this.verificationScores,
622
- fixHistory: this.fixHistory,
623
- iterations: this.currentIteration
624
- };
625
- await fs.writeFile(path.join(sessionPath, `${this.sessionId}.json`), JSON.stringify(sessionData, null, 2));
677
+
678
+ this.guidanceMode = newMode;
679
+ this.guidance = GUIDANCE_MODES[newMode];
680
+ console.log(`โœ… Guidance mode changed to: ${newMode}`);
681
+ console.log(`Description: ${this.guidance.description}`);
682
+ }
683
+
684
+ async askQuestion(question) {
685
+ console.log('\nโ“ Question:', question);
686
+ console.log('\n๐Ÿ“š Answer:');
687
+ console.log('โ”'.repeat(40));
688
+
689
+ // Provide contextual answers
690
+ if (question.toLowerCase().includes('why')) {
691
+ console.log('This is important for code quality and maintainability.');
692
+ } else if (question.toLowerCase().includes('how')) {
693
+ console.log('You can achieve this by following the suggested approach.');
694
+ } else {
695
+ console.log("That's a great question! Consider exploring the documentation.");
626
696
  }
627
- constructor(options = {}){
628
- this.sessionId = `pair_${Date.now()}`;
629
- this.guidanceMode = options.guidance || 'intermediate';
630
- this.guidance = GUIDANCE_MODES[this.guidanceMode];
631
- this.autoFix = options.autoFix ?? this.guidance.autoFix;
632
- this.threshold = options.threshold || this.guidance.threshold;
633
- this.maxIterations = options.maxIterations || 5;
634
- this.verify = options.verify || false;
635
- this.startTime = new Date();
636
- this.status = 'active';
637
- this.verificationScores = [];
638
- this.fixHistory = [];
639
- this.currentIteration = 0;
640
- this.rl = null;
697
+ }
698
+
699
+ async runTests() {
700
+ console.log('\n๐Ÿงช Running tests...');
701
+ try {
702
+ const { stdout } = await execAsync('npm test 2>&1 || true');
703
+ const passed = !stdout.toLowerCase().includes('fail');
704
+ console.log(` ${passed ? 'โœ…' : 'โŒ'} Tests ${passed ? 'passed' : 'failed'}`);
705
+ return passed;
706
+ } catch (error) {
707
+ console.log(' โŒ Test execution failed:', error.message);
708
+ return false;
641
709
  }
642
- };
643
- async function pairCommand(args = [], flags = {}) {
644
- console.log('\n๐Ÿ‘ฅ Enhanced Pair Programming');
645
- console.log('โ”'.repeat(50));
646
- if (flags.help || args.includes('--help')) {
647
- showHelp();
648
- return;
710
+ }
711
+
712
+ async commitWithVerification() {
713
+ const result = await this.runVerification();
714
+
715
+ if (result.score >= this.threshold) {
716
+ console.log('โœ… Verification passed! Ready to commit.');
717
+ console.log('\n๐Ÿ“ Suggested commit message:');
718
+ console.log(` "feat: improved code quality to ${result.score.toFixed(2)} threshold"`);
719
+ } else {
720
+ console.log('โŒ Verification failed!');
721
+ console.log('๐Ÿ’ก Run /autofix to automatically fix issues');
649
722
  }
650
- if (flags.start) {
651
- const session = new WorkingPairSession({
652
- guidance: flags.guidance || 'intermediate',
653
- verify: flags.verify || false,
654
- autoFix: flags.autofix || flags.fix || false,
655
- threshold: parseFloat(flags.threshold) || undefined,
656
- maxIterations: parseInt(flags.iterations) || 5
657
- });
658
- return await session.start();
723
+ }
724
+
725
+ async end() {
726
+ console.log('\n๐Ÿ›‘ Ending pair programming session...');
727
+
728
+ if (this.rl) this.rl.close();
729
+
730
+ this.status = 'completed';
731
+ await this.saveSession();
732
+
733
+ const duration = Math.floor((Date.now() - this.startTime) / 1000 / 60);
734
+ console.log('\nโœจ Session Complete!');
735
+ console.log('โ”'.repeat(40));
736
+ console.log(`Duration: ${duration} minutes`);
737
+ console.log(
738
+ `Total Fixes Applied: ${this.fixHistory.reduce((sum, h) => sum + h.fixes.length, 0)}`,
739
+ );
740
+ console.log(`Final Iterations: ${this.currentIteration}`);
741
+
742
+ if (this.verificationScores.length > 0) {
743
+ const final = this.verificationScores[this.verificationScores.length - 1];
744
+ console.log(`Final Score: ${final.score.toFixed(2)}`);
659
745
  }
746
+
747
+ console.log('\n๐Ÿ‘‹ Thanks for pair programming!\n');
748
+ }
749
+
750
+ async saveSession() {
751
+ const sessionPath = '.claude-flow/sessions/pair';
752
+ await fs.mkdir(sessionPath, { recursive: true });
753
+
754
+ const sessionData = {
755
+ id: this.sessionId,
756
+ guidanceMode: this.guidanceMode,
757
+ autoFix: this.autoFix,
758
+ threshold: this.threshold,
759
+ startTime: this.startTime.toISOString(),
760
+ status: this.status,
761
+ verificationScores: this.verificationScores,
762
+ fixHistory: this.fixHistory,
763
+ iterations: this.currentIteration,
764
+ };
765
+
766
+ await fs.writeFile(
767
+ path.join(sessionPath, `${this.sessionId}.json`),
768
+ JSON.stringify(sessionData, null, 2),
769
+ );
770
+ }
771
+ }
772
+
773
+ async function pairCommand(args = [], flags = {}) {
774
+ console.log('\n๐Ÿ‘ฅ Enhanced Pair Programming');
775
+ console.log('โ”'.repeat(50));
776
+
777
+ if (flags.help || args.includes('--help')) {
660
778
  showHelp();
779
+ return;
780
+ }
781
+
782
+ if (flags.start) {
783
+ const session = new WorkingPairSession({
784
+ guidance: flags.guidance || 'intermediate',
785
+ verify: flags.verify || false,
786
+ autoFix: flags.autofix || flags.fix || false,
787
+ threshold: parseFloat(flags.threshold) || undefined,
788
+ maxIterations: parseInt(flags.iterations) || 5,
789
+ });
790
+
791
+ return await session.start();
792
+ }
793
+
794
+ showHelp();
661
795
  }
796
+
662
797
  function showHelp() {
663
- console.log(`
798
+ console.log(`
664
799
  ๐Ÿ“š USAGE:
665
800
  claude-flow-novice pair [options]
666
801
 
@@ -710,4 +845,5 @@ function showHelp() {
710
845
  .claude/commands/pair/README.md
711
846
  `);
712
847
  }
848
+
713
849
  export default pairCommand;