codehere 0.4.0 → 0.5.0-alpha

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 (324) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +113 -30
  3. package/dist/application/agents/execution-agent.js +2 -2
  4. package/dist/application/agents/execution-agent.js.map +1 -1
  5. package/dist/application/agents/multi-agent-orchestrator.d.ts +1 -0
  6. package/dist/application/agents/multi-agent-orchestrator.d.ts.map +1 -1
  7. package/dist/application/agents/multi-agent-orchestrator.js +10 -3
  8. package/dist/application/agents/multi-agent-orchestrator.js.map +1 -1
  9. package/dist/application/agents/planning-agent.d.ts.map +1 -1
  10. package/dist/application/agents/planning-agent.js +22 -10
  11. package/dist/application/agents/planning-agent.js.map +1 -1
  12. package/dist/application/agents/validation-agent.js +2 -2
  13. package/dist/application/agents/validation-agent.js.map +1 -1
  14. package/dist/application/reasoning/multi-model-planning-strategy.d.ts +21 -0
  15. package/dist/application/reasoning/multi-model-planning-strategy.d.ts.map +1 -0
  16. package/dist/application/reasoning/multi-model-planning-strategy.js +158 -0
  17. package/dist/application/reasoning/multi-model-planning-strategy.js.map +1 -0
  18. package/dist/application/reasoning/reasoning-config.d.ts +15 -0
  19. package/dist/application/reasoning/reasoning-config.d.ts.map +1 -0
  20. package/dist/application/reasoning/reasoning-config.js +50 -0
  21. package/dist/application/reasoning/reasoning-config.js.map +1 -0
  22. package/dist/application/reasoning/reasoning-orchestrator.d.ts +18 -0
  23. package/dist/application/reasoning/reasoning-orchestrator.d.ts.map +1 -0
  24. package/dist/application/reasoning/reasoning-orchestrator.js +170 -0
  25. package/dist/application/reasoning/reasoning-orchestrator.js.map +1 -0
  26. package/dist/application/reasoning/reasoning-strategy.interface.d.ts +24 -0
  27. package/dist/application/reasoning/reasoning-strategy.interface.d.ts.map +1 -0
  28. package/dist/application/reasoning/reasoning-strategy.interface.js +6 -0
  29. package/dist/application/reasoning/reasoning-strategy.interface.js.map +1 -0
  30. package/dist/application/reasoning/role-provider-resolver.d.ts +36 -0
  31. package/dist/application/reasoning/role-provider-resolver.d.ts.map +1 -0
  32. package/dist/application/reasoning/role-provider-resolver.js +74 -0
  33. package/dist/application/reasoning/role-provider-resolver.js.map +1 -0
  34. package/dist/application/reasoning/simple-planning-strategy.d.ts +22 -0
  35. package/dist/application/reasoning/simple-planning-strategy.d.ts.map +1 -0
  36. package/dist/application/reasoning/simple-planning-strategy.js +217 -0
  37. package/dist/application/reasoning/simple-planning-strategy.js.map +1 -0
  38. package/dist/application/reasoning/types.d.ts +65 -0
  39. package/dist/application/reasoning/types.d.ts.map +1 -0
  40. package/dist/application/reasoning/types.js +6 -0
  41. package/dist/application/reasoning/types.js.map +1 -0
  42. package/dist/application/reasoning/validator-strategy.d.ts +56 -0
  43. package/dist/application/reasoning/validator-strategy.d.ts.map +1 -0
  44. package/dist/application/reasoning/validator-strategy.js +103 -0
  45. package/dist/application/reasoning/validator-strategy.js.map +1 -0
  46. package/dist/application/services/dependency-container.d.ts +30 -6
  47. package/dist/application/services/dependency-container.d.ts.map +1 -1
  48. package/dist/application/services/dependency-container.js +96 -44
  49. package/dist/application/services/dependency-container.js.map +1 -1
  50. package/dist/application/services/intelligent-router.d.ts +6 -0
  51. package/dist/application/services/intelligent-router.d.ts.map +1 -1
  52. package/dist/application/services/intelligent-router.js +98 -9
  53. package/dist/application/services/intelligent-router.js.map +1 -1
  54. package/dist/application/use-cases/ask-question-use-case.d.ts +1 -0
  55. package/dist/application/use-cases/ask-question-use-case.d.ts.map +1 -1
  56. package/dist/application/use-cases/ask-question-use-case.js +4 -3
  57. package/dist/application/use-cases/ask-question-use-case.js.map +1 -1
  58. package/dist/application/use-cases/planning-use-case.d.ts +14 -1
  59. package/dist/application/use-cases/planning-use-case.d.ts.map +1 -1
  60. package/dist/application/use-cases/planning-use-case.js +109 -2
  61. package/dist/application/use-cases/planning-use-case.js.map +1 -1
  62. package/dist/domain/entities/memory.d.ts.map +1 -1
  63. package/dist/domain/entities/task.d.ts +1 -1
  64. package/dist/domain/entities/task.d.ts.map +1 -1
  65. package/dist/domain/entities/task.js +2 -2
  66. package/dist/domain/entities/task.js.map +1 -1
  67. package/dist/domain/errors/embeddings-not-found-error.d.ts +9 -0
  68. package/dist/domain/errors/embeddings-not-found-error.d.ts.map +1 -0
  69. package/dist/domain/errors/embeddings-not-found-error.js +13 -0
  70. package/dist/domain/errors/embeddings-not-found-error.js.map +1 -0
  71. package/dist/domain/interfaces/embedding-repository.interface.d.ts +5 -0
  72. package/dist/domain/interfaces/embedding-repository.interface.d.ts.map +1 -1
  73. package/dist/domain/services/environment-mode-manager.d.ts +4 -10
  74. package/dist/domain/services/environment-mode-manager.d.ts.map +1 -1
  75. package/dist/domain/services/environment-mode-manager.js +7 -22
  76. package/dist/domain/services/environment-mode-manager.js.map +1 -1
  77. package/dist/domain/services/query-intent-classifier.d.ts.map +1 -1
  78. package/dist/domain/services/query-intent-classifier.js +20 -1
  79. package/dist/domain/services/query-intent-classifier.js.map +1 -1
  80. package/dist/domain/services/risk-tier-detector.d.ts +8 -9
  81. package/dist/domain/services/risk-tier-detector.d.ts.map +1 -1
  82. package/dist/domain/services/risk-tier-detector.js +53 -40
  83. package/dist/domain/services/risk-tier-detector.js.map +1 -1
  84. package/dist/embed.d.ts.map +1 -1
  85. package/dist/embed.js +18 -8
  86. package/dist/embed.js.map +1 -1
  87. package/dist/index.js +405 -52
  88. package/dist/index.js.map +1 -1
  89. package/dist/infrastructure/ai/cohere-ai-service.js +4 -4
  90. package/dist/infrastructure/ai/cohere-ai-service.js.map +1 -1
  91. package/dist/infrastructure/ai/provider-ai-service.d.ts.map +1 -1
  92. package/dist/infrastructure/ai/provider-ai-service.js +7 -7
  93. package/dist/infrastructure/ai/provider-ai-service.js.map +1 -1
  94. package/dist/infrastructure/cache/query-result-cache.d.ts +14 -55
  95. package/dist/infrastructure/cache/query-result-cache.d.ts.map +1 -1
  96. package/dist/infrastructure/cache/query-result-cache.js +40 -112
  97. package/dist/infrastructure/cache/query-result-cache.js.map +1 -1
  98. package/dist/infrastructure/cache/response-cache.d.ts +10 -78
  99. package/dist/infrastructure/cache/response-cache.d.ts.map +1 -1
  100. package/dist/infrastructure/cache/response-cache.js +22 -198
  101. package/dist/infrastructure/cache/response-cache.js.map +1 -1
  102. package/dist/infrastructure/cache/security-scan-cache.d.ts +8 -49
  103. package/dist/infrastructure/cache/security-scan-cache.d.ts.map +1 -1
  104. package/dist/infrastructure/cache/security-scan-cache.js +25 -102
  105. package/dist/infrastructure/cache/security-scan-cache.js.map +1 -1
  106. package/dist/infrastructure/completion/bash-completion.d.ts +2 -3
  107. package/dist/infrastructure/completion/bash-completion.d.ts.map +1 -1
  108. package/dist/infrastructure/completion/bash-completion.js +11 -87
  109. package/dist/infrastructure/completion/bash-completion.js.map +1 -1
  110. package/dist/infrastructure/completion/fish-completion.d.ts +2 -3
  111. package/dist/infrastructure/completion/fish-completion.d.ts.map +1 -1
  112. package/dist/infrastructure/completion/fish-completion.js +15 -58
  113. package/dist/infrastructure/completion/fish-completion.js.map +1 -1
  114. package/dist/infrastructure/completion/zsh-completion.d.ts +2 -3
  115. package/dist/infrastructure/completion/zsh-completion.d.ts.map +1 -1
  116. package/dist/infrastructure/completion/zsh-completion.js +18 -73
  117. package/dist/infrastructure/completion/zsh-completion.js.map +1 -1
  118. package/dist/infrastructure/config/config-manager.d.ts +10 -0
  119. package/dist/infrastructure/config/config-manager.d.ts.map +1 -1
  120. package/dist/infrastructure/config/config-manager.js +13 -2
  121. package/dist/infrastructure/config/config-manager.js.map +1 -1
  122. package/dist/infrastructure/context/conversation-context.d.ts +27 -31
  123. package/dist/infrastructure/context/conversation-context.d.ts.map +1 -1
  124. package/dist/infrastructure/context/conversation-context.js +95 -136
  125. package/dist/infrastructure/context/conversation-context.js.map +1 -1
  126. package/dist/infrastructure/context/session-manager.d.ts +27 -11
  127. package/dist/infrastructure/context/session-manager.d.ts.map +1 -1
  128. package/dist/infrastructure/context/session-manager.js +69 -73
  129. package/dist/infrastructure/context/session-manager.js.map +1 -1
  130. package/dist/infrastructure/protocols/a2a-metadata.js +1 -1
  131. package/dist/infrastructure/protocols/mcp-oauth.js +1 -1
  132. package/dist/infrastructure/providers/cohere-provider.d.ts.map +1 -1
  133. package/dist/infrastructure/providers/cohere-provider.js +102 -17
  134. package/dist/infrastructure/providers/cohere-provider.js.map +1 -1
  135. package/dist/infrastructure/providers/openrouter-provider.d.ts +42 -0
  136. package/dist/infrastructure/providers/openrouter-provider.d.ts.map +1 -0
  137. package/dist/infrastructure/providers/openrouter-provider.js +401 -0
  138. package/dist/infrastructure/providers/openrouter-provider.js.map +1 -0
  139. package/dist/infrastructure/providers/operation-provider-resolver.d.ts.map +1 -1
  140. package/dist/infrastructure/providers/operation-provider-resolver.js +33 -7
  141. package/dist/infrastructure/providers/operation-provider-resolver.js.map +1 -1
  142. package/dist/infrastructure/security/input-validator.d.ts.map +1 -1
  143. package/dist/infrastructure/security/input-validator.js +19 -6
  144. package/dist/infrastructure/security/input-validator.js.map +1 -1
  145. package/dist/infrastructure/serialization/toon-serializer.d.ts +45 -0
  146. package/dist/infrastructure/serialization/toon-serializer.d.ts.map +1 -0
  147. package/dist/infrastructure/serialization/toon-serializer.js +119 -0
  148. package/dist/infrastructure/serialization/toon-serializer.js.map +1 -0
  149. package/dist/infrastructure/storage/embeddings-path.d.ts +18 -0
  150. package/dist/infrastructure/storage/embeddings-path.d.ts.map +1 -0
  151. package/dist/infrastructure/storage/embeddings-path.js +37 -0
  152. package/dist/infrastructure/storage/embeddings-path.js.map +1 -0
  153. package/dist/infrastructure/storage/plan-repository.d.ts +2 -0
  154. package/dist/infrastructure/storage/plan-repository.d.ts.map +1 -1
  155. package/dist/infrastructure/storage/plan-repository.js +36 -73
  156. package/dist/infrastructure/storage/plan-repository.js.map +1 -1
  157. package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts +10 -1
  158. package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts.map +1 -1
  159. package/dist/infrastructure/storage/sqlite-embedding-repository.js +37 -3
  160. package/dist/infrastructure/storage/sqlite-embedding-repository.js.map +1 -1
  161. package/dist/infrastructure/storage/task-helpers.d.ts +12 -1
  162. package/dist/infrastructure/storage/task-helpers.d.ts.map +1 -1
  163. package/dist/infrastructure/storage/task-helpers.js +48 -8
  164. package/dist/infrastructure/storage/task-helpers.js.map +1 -1
  165. package/dist/infrastructure/storage/task-repository.d.ts +2 -1
  166. package/dist/infrastructure/storage/task-repository.d.ts.map +1 -1
  167. package/dist/infrastructure/storage/task-repository.js +14 -3
  168. package/dist/infrastructure/storage/task-repository.js.map +1 -1
  169. package/dist/infrastructure/telemetry/telemetry-service.d.ts +74 -0
  170. package/dist/infrastructure/telemetry/telemetry-service.d.ts.map +1 -0
  171. package/dist/infrastructure/telemetry/telemetry-service.js +167 -0
  172. package/dist/infrastructure/telemetry/telemetry-service.js.map +1 -0
  173. package/dist/infrastructure/ux/capability-boundaries.d.ts +9 -37
  174. package/dist/infrastructure/ux/capability-boundaries.d.ts.map +1 -1
  175. package/dist/infrastructure/ux/capability-boundaries.js +23 -148
  176. package/dist/infrastructure/ux/capability-boundaries.js.map +1 -1
  177. package/dist/infrastructure/ux/comprehensive-formatter.d.ts +12 -54
  178. package/dist/infrastructure/ux/comprehensive-formatter.d.ts.map +1 -1
  179. package/dist/infrastructure/ux/comprehensive-formatter.js +87 -182
  180. package/dist/infrastructure/ux/comprehensive-formatter.js.map +1 -1
  181. package/dist/infrastructure/ux/contextual-feature-discovery.d.ts +5 -18
  182. package/dist/infrastructure/ux/contextual-feature-discovery.d.ts.map +1 -1
  183. package/dist/infrastructure/ux/contextual-feature-discovery.js +5 -139
  184. package/dist/infrastructure/ux/contextual-feature-discovery.js.map +1 -1
  185. package/dist/infrastructure/ux/feature-discovery.d.ts +3 -33
  186. package/dist/infrastructure/ux/feature-discovery.d.ts.map +1 -1
  187. package/dist/infrastructure/ux/feature-discovery.js +5 -181
  188. package/dist/infrastructure/ux/feature-discovery.js.map +1 -1
  189. package/dist/infrastructure/ux/feedback-prompt.d.ts +15 -31
  190. package/dist/infrastructure/ux/feedback-prompt.d.ts.map +1 -1
  191. package/dist/infrastructure/ux/feedback-prompt.js +30 -166
  192. package/dist/infrastructure/ux/feedback-prompt.js.map +1 -1
  193. package/dist/infrastructure/ux/progress-indicator.d.ts +4 -6
  194. package/dist/infrastructure/ux/progress-indicator.d.ts.map +1 -1
  195. package/dist/infrastructure/ux/progress-indicator.js +35 -50
  196. package/dist/infrastructure/ux/progress-indicator.js.map +1 -1
  197. package/dist/infrastructure/ux/review-checkpoint.d.ts +3 -1
  198. package/dist/infrastructure/ux/review-checkpoint.d.ts.map +1 -1
  199. package/dist/infrastructure/ux/review-checkpoint.js +33 -80
  200. package/dist/infrastructure/ux/review-checkpoint.js.map +1 -1
  201. package/dist/infrastructure/ux/staged-feature-intro.d.ts +14 -39
  202. package/dist/infrastructure/ux/staged-feature-intro.d.ts.map +1 -1
  203. package/dist/infrastructure/ux/staged-feature-intro.js +12 -132
  204. package/dist/infrastructure/ux/staged-feature-intro.js.map +1 -1
  205. package/dist/infrastructure/ux/syntax-highlighter.d.ts +1 -2
  206. package/dist/infrastructure/ux/syntax-highlighter.d.ts.map +1 -1
  207. package/dist/infrastructure/ux/syntax-highlighter.js +67 -148
  208. package/dist/infrastructure/ux/syntax-highlighter.js.map +1 -1
  209. package/dist/infrastructure/validation/agent-feedback.d.ts +25 -89
  210. package/dist/infrastructure/validation/agent-feedback.d.ts.map +1 -1
  211. package/dist/infrastructure/validation/agent-feedback.js +32 -204
  212. package/dist/infrastructure/validation/agent-feedback.js.map +1 -1
  213. package/dist/infrastructure/validation/agent-validation-helper.d.ts +53 -53
  214. package/dist/infrastructure/validation/agent-validation-helper.d.ts.map +1 -1
  215. package/dist/infrastructure/validation/agent-validation-helper.js +110 -61
  216. package/dist/infrastructure/validation/agent-validation-helper.js.map +1 -1
  217. package/dist/infrastructure/validation/review-handler.d.ts +13 -41
  218. package/dist/infrastructure/validation/review-handler.d.ts.map +1 -1
  219. package/dist/infrastructure/validation/review-handler.js +23 -189
  220. package/dist/infrastructure/validation/review-handler.js.map +1 -1
  221. package/dist/infrastructure/validation/summary-aggregator.d.ts +25 -22
  222. package/dist/infrastructure/validation/summary-aggregator.d.ts.map +1 -1
  223. package/dist/infrastructure/validation/summary-aggregator.js +47 -133
  224. package/dist/infrastructure/validation/summary-aggregator.js.map +1 -1
  225. package/dist/infrastructure/validation/summary-extractor.d.ts +13 -48
  226. package/dist/infrastructure/validation/summary-extractor.d.ts.map +1 -1
  227. package/dist/infrastructure/validation/summary-extractor.js +32 -89
  228. package/dist/infrastructure/validation/summary-extractor.js.map +1 -1
  229. package/dist/infrastructure/validation/trace-summary.d.ts +30 -57
  230. package/dist/infrastructure/validation/trace-summary.d.ts.map +1 -1
  231. package/dist/infrastructure/validation/trace-summary.js +37 -356
  232. package/dist/infrastructure/validation/trace-summary.js.map +1 -1
  233. package/dist/monitoring.d.ts +1 -1
  234. package/dist/monitoring.d.ts.map +1 -1
  235. package/dist/monitoring.js +12 -9
  236. package/dist/monitoring.js.map +1 -1
  237. package/dist/parallel-processor.d.ts.map +1 -1
  238. package/dist/parallel-processor.js +124 -45
  239. package/dist/parallel-processor.js.map +1 -1
  240. package/dist/presentation/cli/commands/ask-command.d.ts +2 -0
  241. package/dist/presentation/cli/commands/ask-command.d.ts.map +1 -1
  242. package/dist/presentation/cli/commands/ask-command.js +316 -129
  243. package/dist/presentation/cli/commands/ask-command.js.map +1 -1
  244. package/dist/presentation/cli/commands/config-command.d.ts.map +1 -1
  245. package/dist/presentation/cli/commands/config-command.js +22 -8
  246. package/dist/presentation/cli/commands/config-command.js.map +1 -1
  247. package/dist/presentation/cli/commands/decision-command.js +23 -6
  248. package/dist/presentation/cli/commands/decision-command.js.map +1 -1
  249. package/dist/presentation/cli/commands/docs-command.d.ts +3 -1
  250. package/dist/presentation/cli/commands/docs-command.d.ts.map +1 -1
  251. package/dist/presentation/cli/commands/docs-command.js +13 -184
  252. package/dist/presentation/cli/commands/docs-command.js.map +1 -1
  253. package/dist/presentation/cli/commands/fix-command.d.ts +2 -0
  254. package/dist/presentation/cli/commands/fix-command.d.ts.map +1 -1
  255. package/dist/presentation/cli/commands/fix-command.js +61 -276
  256. package/dist/presentation/cli/commands/fix-command.js.map +1 -1
  257. package/dist/presentation/cli/commands/help-command.d.ts.map +1 -1
  258. package/dist/presentation/cli/commands/help-command.js +21 -1
  259. package/dist/presentation/cli/commands/help-command.js.map +1 -1
  260. package/dist/presentation/cli/commands/memory-command.d.ts +17 -0
  261. package/dist/presentation/cli/commands/memory-command.d.ts.map +1 -0
  262. package/dist/presentation/cli/commands/memory-command.js +252 -0
  263. package/dist/presentation/cli/commands/memory-command.js.map +1 -0
  264. package/dist/presentation/cli/commands/models-command.d.ts +13 -0
  265. package/dist/presentation/cli/commands/models-command.d.ts.map +1 -0
  266. package/dist/presentation/cli/commands/models-command.js +194 -0
  267. package/dist/presentation/cli/commands/models-command.js.map +1 -0
  268. package/dist/presentation/cli/commands/orchestrate-command.d.ts +1 -0
  269. package/dist/presentation/cli/commands/orchestrate-command.d.ts.map +1 -1
  270. package/dist/presentation/cli/commands/orchestrate-command.js +129 -14
  271. package/dist/presentation/cli/commands/orchestrate-command.js.map +1 -1
  272. package/dist/presentation/cli/commands/plan-command.d.ts +1 -0
  273. package/dist/presentation/cli/commands/plan-command.d.ts.map +1 -1
  274. package/dist/presentation/cli/commands/plan-command.js +134 -25
  275. package/dist/presentation/cli/commands/plan-command.js.map +1 -1
  276. package/dist/presentation/cli/commands/product-command.d.ts +6 -4
  277. package/dist/presentation/cli/commands/product-command.d.ts.map +1 -1
  278. package/dist/presentation/cli/commands/product-command.js +12 -178
  279. package/dist/presentation/cli/commands/product-command.js.map +1 -1
  280. package/dist/presentation/cli/commands/react-command.d.ts.map +1 -1
  281. package/dist/presentation/cli/commands/react-command.js +5 -1
  282. package/dist/presentation/cli/commands/react-command.js.map +1 -1
  283. package/dist/presentation/cli/commands/review-command.d.ts +7 -7
  284. package/dist/presentation/cli/commands/review-command.d.ts.map +1 -1
  285. package/dist/presentation/cli/commands/review-command.js +167 -16
  286. package/dist/presentation/cli/commands/review-command.js.map +1 -1
  287. package/dist/presentation/cli/commands/run-command.d.ts +6 -8
  288. package/dist/presentation/cli/commands/run-command.d.ts.map +1 -1
  289. package/dist/presentation/cli/commands/run-command.js +182 -23
  290. package/dist/presentation/cli/commands/run-command.js.map +1 -1
  291. package/dist/presentation/cli/commands/setup-command.d.ts.map +1 -1
  292. package/dist/presentation/cli/commands/setup-command.js +15 -0
  293. package/dist/presentation/cli/commands/setup-command.js.map +1 -1
  294. package/dist/presentation/cli/commands/smart-command.d.ts.map +1 -1
  295. package/dist/presentation/cli/commands/smart-command.js +74 -6
  296. package/dist/presentation/cli/commands/smart-command.js.map +1 -1
  297. package/dist/presentation/cli/commands/status-command.d.ts +3 -0
  298. package/dist/presentation/cli/commands/status-command.d.ts.map +1 -1
  299. package/dist/presentation/cli/commands/status-command.js +151 -156
  300. package/dist/presentation/cli/commands/status-command.js.map +1 -1
  301. package/dist/presentation/cli/commands/suggest-command.d.ts +3 -5
  302. package/dist/presentation/cli/commands/suggest-command.d.ts.map +1 -1
  303. package/dist/presentation/cli/commands/suggest-command.js +132 -19
  304. package/dist/presentation/cli/commands/suggest-command.js.map +1 -1
  305. package/dist/presentation/cli/error-display.d.ts.map +1 -1
  306. package/dist/presentation/cli/error-display.js +75 -17
  307. package/dist/presentation/cli/error-display.js.map +1 -1
  308. package/dist/search.d.ts.map +1 -1
  309. package/dist/search.js +6 -1
  310. package/dist/search.js.map +1 -1
  311. package/dist/session.d.ts +1 -0
  312. package/dist/session.d.ts.map +1 -1
  313. package/dist/session.js +55 -7
  314. package/dist/session.js.map +1 -1
  315. package/dist/tools/bash.d.ts.map +1 -1
  316. package/dist/tools/bash.js +3 -0
  317. package/dist/tools/bash.js.map +1 -1
  318. package/dist/tools/git-tool.js +7 -7
  319. package/dist/tools/git-tool.js.map +1 -1
  320. package/dist/ui.d.ts +11 -0
  321. package/dist/ui.d.ts.map +1 -1
  322. package/dist/ui.js +54 -1
  323. package/dist/ui.js.map +1 -1
  324. package/package.json +14 -4
@@ -1,181 +1,45 @@
1
1
  /**
2
- * Infrastructure: Explicit Feedback Prompt
3
- * Task 6.1: Add thumbs up/down for responses, request refinement option
2
+ * Feedback Prompt
3
+ * Collect and store user feedback for bidirectional learning
4
4
  *
5
- * Features:
6
- * - Feedback prompts after operations
7
- * - Thumbs up/down collection
8
- * - Refinement request option
9
- * - Feedback storage for learning
5
+ * Phase 1: v0.5.0-alpha.0
10
6
  */
11
- import { colors, createBox, separator, newline } from '../../ui.js';
12
- import * as readline from 'readline';
13
7
  /**
14
- * Display feedback prompt and collect user input
15
- * Task 6.1: Explicit feedback collection after operations
16
- * FIXED: Now works in non-TTY mode via environment variables
8
+ * Prompt user for feedback (non-blocking, returns null if user skips)
17
9
  */
18
10
  export async function promptForFeedback(operation, context) {
19
- // P1 FIX: Support non-TTY mode via environment variables
20
- // Allows feedback collection in scripts/CI via CODEHERE_FEEDBACK env var
21
- if (!process.stdin.isTTY) {
22
- // Check for environment variable feedback (for non-interactive mode)
23
- const envFeedback = process.env.CODEHERE_FEEDBACK;
24
- if (envFeedback) {
25
- const normalized = envFeedback.trim().toLowerCase();
26
- let action;
27
- let signal;
28
- if (normalized === 'y' || normalized === 'yes' || normalized === 'positive' || normalized === 'thumbs_up') {
29
- action = 'thumbs_up';
30
- signal = 'positive';
31
- }
32
- else if (normalized === 'n' || normalized === 'no' || normalized === 'negative' || normalized === 'thumbs_down') {
33
- action = 'thumbs_down';
34
- signal = 'negative';
35
- }
36
- else if (normalized === 'r' || normalized === 'refine' || normalized === 'refinement') {
37
- action = 'refine';
38
- signal = 'neutral';
39
- // Get refinement message from env var if available
40
- const refineMsg = process.env.CODEHERE_FEEDBACK_MESSAGE;
41
- return {
42
- action,
43
- signal,
44
- message: refineMsg?.trim() || undefined,
45
- timestamp: Date.now(),
46
- };
47
- }
48
- else {
49
- // Invalid or skip
50
- return null;
51
- }
52
- return {
53
- action,
54
- signal,
55
- timestamp: Date.now(),
56
- };
57
- }
58
- // No TTY and no env var - skip silently (non-blocking)
59
- return null;
60
- }
61
- newline();
62
- console.log(separator('─', 80));
63
- const feedbackBox = createBox([
64
- `${colors.bold('Was this helpful?')}`,
65
- '',
66
- `${colors.dim('Press:')}`,
67
- ` ${colors.green('👍')} ${colors.cyan('y')} or ${colors.cyan('Enter')} - Yes (thumbs up)`,
68
- ` ${colors.red('👎')} ${colors.cyan('n')} - No (thumbs down)`,
69
- ` ${colors.yellow('✏️')} ${colors.cyan('r')} - Request refinement`,
70
- ` ${colors.dim('s')} - Skip`,
71
- '',
72
- `${colors.dim('Your feedback helps improve Codehere!')}`,
73
- ].join('\n'), { borderColor: colors.cyan });
74
- console.log(feedbackBox);
75
- console.log(separator('─', 80));
76
- newline();
77
- // Create readline interface for input
78
- const rl = readline.createInterface({
79
- input: process.stdin,
80
- output: process.stdout,
81
- });
82
- return new Promise((resolve) => {
83
- const timeout = setTimeout(() => {
84
- rl.close();
85
- resolve(null); // Timeout - skip feedback
86
- }, 10000); // 10 second timeout
87
- rl.question(colors.dim('Your choice: '), (answer) => {
88
- clearTimeout(timeout);
89
- rl.close();
90
- const normalized = answer.trim().toLowerCase();
91
- let action;
92
- let signal;
93
- if (normalized === 'y' || normalized === 'yes' || normalized === '' || normalized === '👍') {
94
- action = 'thumbs_up';
95
- signal = 'positive';
96
- }
97
- else if (normalized === 'n' || normalized === 'no' || normalized === '👎') {
98
- action = 'thumbs_down';
99
- signal = 'negative';
100
- }
101
- else if (normalized === 'r' || normalized === 'refine' || normalized === '✏️') {
102
- action = 'refine';
103
- signal = 'neutral';
104
- }
105
- else if (normalized === 's' || normalized === 'skip') {
106
- resolve(null); // Skip feedback
107
- return;
108
- }
109
- else {
110
- // Invalid input - skip
111
- resolve(null);
112
- return;
113
- }
114
- const result = {
115
- action,
116
- signal,
117
- timestamp: Date.now(),
118
- };
119
- // If refinement requested, ask for details
120
- if (action === 'refine') {
121
- const refineRl = readline.createInterface({
122
- input: process.stdin,
123
- output: process.stdout,
124
- });
125
- refineRl.question(colors.cyan('What would you like to refine? '), (refinementMessage) => {
126
- refineRl.close();
127
- result.message = refinementMessage.trim() || undefined;
128
- resolve(result);
129
- });
130
- }
131
- else {
132
- resolve(result);
133
- }
134
- });
135
- });
11
+ // In alpha, we skip interactive prompts to avoid blocking
12
+ // This can be enhanced later with readline-based prompts
13
+ return null;
136
14
  }
137
15
  /**
138
- * Store feedback using BiDirectionalLearning system
16
+ * Store feedback in the learning system
139
17
  */
140
- export function storeFeedback(learningSystem, userId, feedback, context) {
141
- return learningSystem.recordExplicitFeedback(userId, {
142
- signal: feedback.signal,
143
- message: feedback.message || (feedback.action === 'thumbs_up' ? 'Positive feedback' : feedback.action === 'thumbs_down' ? 'Negative feedback' : 'Refinement requested'),
144
- context: {
145
- operation: context?.operation,
146
- query: context?.query,
147
- sessionId: context?.sessionId,
148
- feedbackAction: feedback.action,
149
- },
150
- });
18
+ export function storeFeedback(learningSystem, userId, feedback, metadata) {
19
+ if (!learningSystem || !feedback) {
20
+ return;
21
+ }
22
+ try {
23
+ // Store feedback if learning system supports it
24
+ if (typeof learningSystem.storeFeedback === 'function') {
25
+ learningSystem.storeFeedback({
26
+ userId,
27
+ feedback,
28
+ metadata,
29
+ timestamp: new Date().toISOString(),
30
+ });
31
+ }
32
+ }
33
+ catch (error) {
34
+ // Silent failure - feedback collection should not break the workflow
35
+ console.error('Failed to store feedback:', error);
36
+ }
151
37
  }
152
38
  /**
153
- * Display feedback confirmation
39
+ * Display feedback confirmation message
154
40
  */
155
41
  export function displayFeedbackConfirmation(feedback) {
156
- newline();
157
- let message;
158
- let color;
159
- switch (feedback.action) {
160
- case 'thumbs_up':
161
- message = `${colors.green('👍')} Thank you for your positive feedback!`;
162
- color = colors.green;
163
- break;
164
- case 'thumbs_down':
165
- message = `${colors.red('👎')} Thank you for your feedback. We'll use this to improve.`;
166
- color = colors.yellow;
167
- break;
168
- case 'refine':
169
- message = `${colors.yellow('✏️')} Refinement request recorded. We'll work on improving this.`;
170
- color = colors.cyan;
171
- break;
172
- default:
173
- return;
174
- }
175
- console.log(color(message));
176
- if (feedback.message) {
177
- console.log(colors.dim(` Note: "${feedback.message}"`));
178
- }
179
- newline();
42
+ // In alpha, skip confirmation display to keep CLI clean
43
+ // This can be enhanced later
180
44
  }
181
45
  //# sourceMappingURL=feedback-prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"feedback-prompt.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/feedback-prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feedback-prompt.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/feedback-prompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAAiB,EACjB,OAAwB;IAExB,0DAA0D;IAC1D,yDAAyD;IACzD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,cAAmB,EACnB,MAAc,EACd,QAAgB,EAChB,QAAyB;IAEzB,IAAI,CAAC,cAAc,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjC,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,gDAAgD;QAChD,IAAI,OAAO,cAAc,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;YACvD,cAAc,CAAC,aAAa,CAAC;gBAC3B,MAAM;gBACN,QAAQ;gBACR,QAAQ;gBACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qEAAqE;QACrE,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,QAAgB;IAC1D,wDAAwD;IACxD,6BAA6B;AAC/B,CAAC"}
@@ -2,10 +2,7 @@
2
2
  * Progress Indicator Utilities
3
3
  * Provides progress indicators for long-running operations
4
4
  *
5
- * Features:
6
- * - Progress bars for operations with known total
7
- * - Spinners for operations with unknown duration
8
- * - Context-aware progress messages
5
+ * Phase 1: v0.5.0-alpha.0
9
6
  */
10
7
  export interface ProgressOptions {
11
8
  total?: number;
@@ -18,6 +15,8 @@ export declare class ProgressIndicator {
18
15
  private progressBar;
19
16
  private operationStartTime;
20
17
  private currentValue;
18
+ private total;
19
+ private message;
21
20
  /**
22
21
  * Start progress indicator
23
22
  */
@@ -32,9 +31,8 @@ export declare class ProgressIndicator {
32
31
  increment(delta?: number, message?: string): void;
33
32
  /**
34
33
  * Stop progress indicator with smooth transition
35
- * DELIGHTFUL UX: Smooth completion with visual feedback
36
34
  */
37
- stop(success?: boolean, finalMessage?: string): void;
35
+ stop(success?: boolean, finalMessage?: string, suppressMessage?: boolean): void;
38
36
  /**
39
37
  * Get elapsed time
40
38
  */
@@ -1 +1 @@
1
- {"version":3,"file":"progress-indicator.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/progress-indicator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,YAAY,CAAa;IAEjC;;OAEG;IACH,KAAK,CAAC,OAAO,GAAE,eAAoB,GAAG,IAAI;IAmB1C;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAe7C;;OAEG;IACH,SAAS,CAAC,KAAK,GAAE,MAAU,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAIpD;;;OAGG;IACH,IAAI,CAAC,OAAO,GAAE,OAAc,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IA4B1D;;OAEG;IACH,cAAc,IAAI,MAAM;CAGzB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAS9E;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,iBAAiB,CAMhE;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,iBAAiB,CAMjE"}
1
+ {"version":3,"file":"progress-indicator.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/progress-indicator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAiD;IAChE,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,OAAO,CAAc;IAE7B;;OAEG;IACH,KAAK,CAAC,OAAO,GAAE,eAAoB,GAAG,IAAI;IAgB1C;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAoB7C;;OAEG;IACH,SAAS,CAAC,KAAK,GAAE,MAAU,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAIpD;;OAEG;IACH,IAAI,CAAC,OAAO,GAAE,OAAc,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,eAAe,GAAE,OAAe,GAAG,IAAI;IAc5F;;OAEG;IACH,cAAc,IAAI,MAAM;CAGzB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAS9E;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,iBAAiB,CAMhE;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,iBAAiB,CAMjE"}
@@ -2,35 +2,31 @@
2
2
  * Progress Indicator Utilities
3
3
  * Provides progress indicators for long-running operations
4
4
  *
5
- * Features:
6
- * - Progress bars for operations with known total
7
- * - Spinners for operations with unknown duration
8
- * - Context-aware progress messages
5
+ * Phase 1: v0.5.0-alpha.0
9
6
  */
10
- import { createSpinner, createProgressBar, colors } from '../../ui.js';
7
+ import { createSpinner } from '../../ui.js';
11
8
  export class ProgressIndicator {
12
9
  spinner = null;
13
- progressBar = null;
10
+ progressBar = '';
14
11
  operationStartTime = 0;
15
12
  currentValue = 0;
13
+ total = 0;
14
+ message = '';
16
15
  /**
17
16
  * Start progress indicator
18
17
  */
19
18
  start(options = {}) {
20
19
  this.operationStartTime = Date.now();
21
20
  this.currentValue = 0;
22
- if (options.total && options.total > 0) {
23
- // Use progress bar for operations with known total
24
- const format = options.message
25
- ? `${colors.dim(options.message)} |{bar}| ${colors.cyan('{percentage}%')} | {value}/{total}`
26
- : undefined;
27
- this.progressBar = createProgressBar(options.total, format);
28
- this.progressBar.start(options.total, 0);
21
+ this.total = options.total || 0;
22
+ this.message = options.message || 'Processing...';
23
+ if (this.total > 0) {
24
+ // Progress bar mode
25
+ this.update(0, this.message);
29
26
  }
30
27
  else {
31
- // Use spinner for operations with unknown duration
32
- const message = options.message || 'Processing...';
33
- this.spinner = createSpinner(message);
28
+ // Spinner mode
29
+ this.spinner = createSpinner(this.message);
34
30
  this.spinner.start();
35
31
  }
36
32
  }
@@ -39,16 +35,20 @@ export class ProgressIndicator {
39
35
  */
40
36
  update(value, message) {
41
37
  this.currentValue = value;
42
- if (this.progressBar) {
43
- this.progressBar.update(value);
44
- if (message) {
45
- // Update progress bar format with new message
46
- // Note: cli-progress doesn't support dynamic message updates easily
47
- // So we'll just update the value
48
- }
38
+ if (message) {
39
+ this.message = message;
49
40
  }
50
- else if (this.spinner && message) {
51
- this.spinner.text = colors.dim(message);
41
+ if (this.total > 0) {
42
+ // Progress bar
43
+ const percentage = Math.min(100, Math.floor((value / this.total) * 100));
44
+ const barLength = 20;
45
+ const filled = Math.floor((percentage / 100) * barLength);
46
+ const bar = '█'.repeat(filled) + '░'.repeat(barLength - filled);
47
+ process.stdout.write(`\r${this.message} [${bar}] ${percentage}% (${value}/${this.total})`);
48
+ }
49
+ else if (this.spinner) {
50
+ // Spinner
51
+ this.spinner.text = this.message;
52
52
  }
53
53
  }
54
54
  /**
@@ -59,33 +59,18 @@ export class ProgressIndicator {
59
59
  }
60
60
  /**
61
61
  * Stop progress indicator with smooth transition
62
- * DELIGHTFUL UX: Smooth completion with visual feedback
63
62
  */
64
- stop(success = true, finalMessage) {
65
- const duration = ((Date.now() - this.operationStartTime) / 1000).toFixed(2);
66
- if (this.progressBar) {
67
- // Smooth completion - ensure bar reaches 100%
68
- if (this.progressBar.getTotal() && this.currentValue < this.progressBar.getTotal()) {
69
- this.progressBar.update(this.progressBar.getTotal());
70
- }
71
- this.progressBar.stop();
72
- this.progressBar = null;
73
- if (finalMessage) {
74
- // Color-coded success message
75
- const messageColor = success ? colors.green : colors.red;
76
- console.log(messageColor(` ${finalMessage} (${duration}s)`));
77
- }
78
- }
79
- else if (this.spinner) {
80
- // Smooth spinner stop with success indicator
63
+ stop(success = true, finalMessage, suppressMessage = false) {
64
+ if (this.spinner) {
81
65
  this.spinner.stop();
82
66
  this.spinner = null;
83
- if (finalMessage) {
84
- const icon = success ? colors.green('✓') : colors.red('✗');
85
- // Enhanced formatting with color
86
- const messageColor = success ? colors.green : colors.red;
87
- console.log(`${icon} ${messageColor(finalMessage)} ${colors.dim(`(${duration}s)`)}`);
88
- }
67
+ }
68
+ else if (this.total > 0) {
69
+ // Clear progress bar
70
+ process.stdout.write('\r' + ' '.repeat(80) + '\r');
71
+ }
72
+ if (finalMessage && !suppressMessage) {
73
+ console.log(finalMessage);
89
74
  }
90
75
  }
91
76
  /**
@@ -102,7 +87,7 @@ export function createEmbeddingSearchProgress(total) {
102
87
  const indicator = new ProgressIndicator();
103
88
  indicator.start({
104
89
  total,
105
- message: 'Searching codebase',
90
+ message: 'Searching embeddings',
106
91
  showPercentage: true,
107
92
  showCount: true,
108
93
  });
@@ -1 +1 @@
1
- {"version":3,"file":"progress-indicator.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/progress-indicator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"progress-indicator.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/progress-indicator.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * Review Checkpoint UI
3
- * Shows summary before applying edits - Task 5.1
3
+ * Shows summary before applying edits
4
+ *
5
+ * Phase 1: v0.5.0-alpha.0
4
6
  */
5
7
  export interface EditSummary {
6
8
  filepath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"review-checkpoint.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/review-checkpoint.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,WAAW,EAAE,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAyExE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAwCpE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAc9D"}
1
+ {"version":3,"file":"review-checkpoint.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/review-checkpoint.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,WAAW,EAAE,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CA8BxE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CA4BA;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAE9D"}
@@ -1,66 +1,37 @@
1
1
  /**
2
2
  * Review Checkpoint UI
3
- * Shows summary before applying edits - Task 5.1
3
+ * Shows summary before applying edits
4
+ *
5
+ * Phase 1: v0.5.0-alpha.0
4
6
  */
5
- import { colors, separator, newline, success, warning, error, createTable, } from '../../ui.js';
7
+ import { colors, separator } from '../../ui.js';
6
8
  /**
7
9
  * Display review checkpoint before applying edits
8
10
  */
9
11
  export function displayReviewCheckpoint(info) {
10
- newline();
12
+ console.log('\n' + separator('═', 80));
13
+ console.log(colors.bold('📋 Review Checkpoint'));
11
14
  console.log(separator('═', 80));
12
- console.log(colors.bold('📝 Review Changes'));
13
- console.log(separator('═', 80));
14
- newline();
15
15
  // Files summary
16
- console.log(colors.bold(`Files to modify: ${info.filesToModify.length}`));
17
- newline();
18
- // File details table
19
- const fileRows = info.filesToModify.map(file => [
20
- file.filepath,
21
- `${file.linesAdded} added, ${file.linesRemoved} removed`,
22
- file.linesChanged > 0 ? `${file.linesChanged} changed` : '-',
23
- ]);
24
- const fileTable = createTable(['File', 'Changes', 'Modified Lines'], fileRows);
25
- console.log(fileTable.toString());
26
- newline();
27
- // Status indicators
28
- console.log(colors.bold('Status:'));
29
- const statusRows = [
30
- [
31
- 'Security Scan',
32
- info.securityScanPassed ? success('✓ Passed') : error('✗ Failed'),
33
- ],
34
- [
35
- 'Compilation',
36
- info.compilationValid ? success('✓ Valid') : error('✗ Invalid'),
37
- ],
38
- ];
39
- const statusTable = createTable(['Check', 'Status'], statusRows);
40
- console.log(statusTable.toString());
41
- newline();
42
- // Risk level indicator
43
- const riskColors = {
44
- low: colors.green,
45
- medium: colors.yellow,
46
- high: colors.yellow,
47
- critical: colors.red,
48
- };
49
- const riskLabels = {
50
- low: 'Low Risk',
51
- medium: 'Medium Risk',
52
- high: 'High Risk',
53
- critical: 'Critical Risk',
54
- };
55
- console.log(colors.bold('Risk Level: ') +
56
- riskColors[info.riskLevel](riskLabels[info.riskLevel]));
57
- if (info.uncertainty && info.uncertainty > 0.5) {
58
- const percent = (info.uncertainty * 100).toFixed(0);
59
- console.log(warning(`⚠️ Uncertainty: ${percent}% - Please verify output carefully`));
16
+ console.log(`\n${colors.bold('Files to modify:')} ${info.filesToModify.length}`);
17
+ info.filesToModify.forEach((file, idx) => {
18
+ console.log(` ${idx + 1}. ${file.filepath}`);
19
+ console.log(` +${file.linesAdded} -${file.linesRemoved} ~${file.linesChanged}`);
20
+ });
21
+ // Validation status
22
+ console.log(`\n${colors.bold('Validation:')}`);
23
+ console.log(` Security scan: ${info.securityScanPassed ? colors.green('✓ Passed') : colors.red('✗ Failed')}`);
24
+ console.log(` Compilation: ${info.compilationValid ? colors.green(' Valid') : colors.red(' Invalid')}`);
25
+ // Risk level
26
+ const riskColor = info.riskLevel === 'low' ? colors.green :
27
+ info.riskLevel === 'medium' ? colors.yellow :
28
+ info.riskLevel === 'high' ? colors.red :
29
+ colors.red;
30
+ console.log(` Risk level: ${riskColor(info.riskLevel.toUpperCase())}`);
31
+ if (info.uncertainty !== undefined) {
32
+ console.log(` Uncertainty: ${(info.uncertainty * 100).toFixed(1)}%`);
60
33
  }
61
- newline();
62
- console.log(separator('═', 80));
63
- newline();
34
+ console.log(separator('═', 80) + '\n');
64
35
  }
65
36
  /**
66
37
  * Calculate diff summary from old and new content
@@ -71,26 +42,18 @@ export function calculateDiffSummary(oldContent, newContent) {
71
42
  let linesAdded = 0;
72
43
  let linesRemoved = 0;
73
44
  let linesChanged = 0;
74
- // Simple line-based diff calculation
75
- const oldSet = new Set(oldLines);
76
- const newSet = new Set(newLines);
77
- // Count added lines (in new but not in old)
78
- for (const line of newLines) {
79
- if (!oldSet.has(line)) {
45
+ // Simple line-by-line comparison
46
+ const maxLen = Math.max(oldLines.length, newLines.length);
47
+ for (let i = 0; i < maxLen; i++) {
48
+ const oldLine = oldLines[i];
49
+ const newLine = newLines[i];
50
+ if (oldLine === undefined) {
80
51
  linesAdded++;
81
52
  }
82
- }
83
- // Count removed lines (in old but not in new)
84
- for (const line of oldLines) {
85
- if (!newSet.has(line)) {
53
+ else if (newLine === undefined) {
86
54
  linesRemoved++;
87
55
  }
88
- }
89
- // Changed lines = lines that exist in both but at different positions
90
- // Simplified: count lines that are in both but position differs
91
- const minLength = Math.min(oldLines.length, newLines.length);
92
- for (let i = 0; i < minLength; i++) {
93
- if (oldLines[i] !== newLines[i] && oldSet.has(newLines[i])) {
56
+ else if (oldLine !== newLine) {
94
57
  linesChanged++;
95
58
  }
96
59
  }
@@ -104,16 +67,6 @@ export function calculateDiffSummary(oldContent, newContent) {
104
67
  * Format edit summary for display
105
68
  */
106
69
  export function formatEditSummary(summary) {
107
- const changes = [];
108
- if (summary.linesAdded > 0) {
109
- changes.push(`${summary.linesAdded} added`);
110
- }
111
- if (summary.linesRemoved > 0) {
112
- changes.push(`${summary.linesRemoved} removed`);
113
- }
114
- if (summary.linesChanged > 0) {
115
- changes.push(`${summary.linesChanged} changed`);
116
- }
117
- return changes.length > 0 ? changes.join(', ') : 'No changes';
70
+ return `${summary.filepath}: +${summary.linesAdded} -${summary.linesRemoved} ~${summary.linesChanged}`;
118
71
  }
119
72
  //# sourceMappingURL=review-checkpoint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"review-checkpoint.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/review-checkpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review-checkpoint.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/review-checkpoint.ts"],"names":[],"mappings":"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"}