@boshu2/vibe-check 1.8.1 → 2.0.0

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 (371) hide show
  1. package/.claude/settings.local.json +1 -1
  2. package/CHANGELOG.md +10 -0
  3. package/Makefile +4 -4
  4. package/bin/vibe-check.js +1 -1
  5. package/claude-progress.json +18 -0
  6. package/dist/analysis/cross-session-analysis.d.ts +1 -1
  7. package/dist/analysis/cross-session-analysis.d.ts.map +1 -1
  8. package/dist/analysis/cross-session-analysis.js +9 -18
  9. package/dist/analysis/cross-session-analysis.js.map +1 -1
  10. package/dist/analysis/index.d.ts +1 -1
  11. package/dist/analysis/index.d.ts.map +1 -1
  12. package/dist/analysis/index.js +1 -11
  13. package/dist/analysis/index.js.map +1 -1
  14. package/dist/analyzers/audit.d.ts +28 -0
  15. package/dist/analyzers/audit.d.ts.map +1 -0
  16. package/dist/analyzers/audit.js +86 -0
  17. package/dist/analyzers/audit.js.map +1 -0
  18. package/dist/analyzers/patterns.d.ts +1 -1
  19. package/dist/analyzers/patterns.d.ts.map +1 -1
  20. package/dist/analyzers/patterns.js +4 -10
  21. package/dist/analyzers/patterns.js.map +1 -1
  22. package/dist/analyzers/quality.d.ts +1 -1
  23. package/dist/analyzers/quality.d.ts.map +1 -1
  24. package/dist/analyzers/quality.js +5 -12
  25. package/dist/analyzers/quality.js.map +1 -1
  26. package/dist/analyzers/sessions.d.ts +1 -1
  27. package/dist/analyzers/sessions.d.ts.map +1 -1
  28. package/dist/analyzers/sessions.js +1 -4
  29. package/dist/analyzers/sessions.js.map +1 -1
  30. package/dist/cli.js +20 -20
  31. package/dist/cli.js.map +1 -1
  32. package/dist/commands/analyze.d.ts.map +1 -1
  33. package/dist/commands/analyze.js +114 -149
  34. package/dist/commands/analyze.js.map +1 -1
  35. package/dist/commands/audit.d.ts +3 -0
  36. package/dist/commands/audit.d.ts.map +1 -0
  37. package/dist/commands/audit.js +77 -0
  38. package/dist/commands/audit.js.map +1 -0
  39. package/dist/commands/cache.js +31 -70
  40. package/dist/commands/cache.js.map +1 -1
  41. package/dist/commands/dashboard.d.ts.map +1 -1
  42. package/dist/commands/dashboard.js +22 -58
  43. package/dist/commands/dashboard.js.map +1 -1
  44. package/dist/commands/forensics.d.ts +2 -2
  45. package/dist/commands/forensics.d.ts.map +1 -1
  46. package/dist/commands/forensics.js +41 -48
  47. package/dist/commands/forensics.js.map +1 -1
  48. package/dist/commands/index.d.ts +14 -13
  49. package/dist/commands/index.d.ts.map +1 -1
  50. package/dist/commands/index.js +14 -33
  51. package/dist/commands/index.js.map +1 -1
  52. package/dist/commands/init-hook.js +26 -32
  53. package/dist/commands/init-hook.js.map +1 -1
  54. package/dist/commands/insights.js +39 -45
  55. package/dist/commands/insights.js.map +1 -1
  56. package/dist/commands/pipeline.js +39 -78
  57. package/dist/commands/pipeline.js.map +1 -1
  58. package/dist/commands/profile.js +68 -74
  59. package/dist/commands/profile.js.map +1 -1
  60. package/dist/commands/session.js +88 -129
  61. package/dist/commands/session.js.map +1 -1
  62. package/dist/commands/sessions.d.ts +1 -1
  63. package/dist/commands/sessions.d.ts.map +1 -1
  64. package/dist/commands/sessions.js +42 -49
  65. package/dist/commands/sessions.js.map +1 -1
  66. package/dist/commands/start.js +22 -67
  67. package/dist/commands/start.js.map +1 -1
  68. package/dist/commands/timeline.js +74 -81
  69. package/dist/commands/timeline.js.map +1 -1
  70. package/dist/commands/watch.js +54 -60
  71. package/dist/commands/watch.js.map +1 -1
  72. package/dist/gamification/achievements.d.ts +1 -1
  73. package/dist/gamification/achievements.d.ts.map +1 -1
  74. package/dist/gamification/achievements.js +7 -13
  75. package/dist/gamification/achievements.js.map +1 -1
  76. package/dist/gamification/index.d.ts +8 -8
  77. package/dist/gamification/index.d.ts.map +1 -1
  78. package/dist/gamification/index.js +8 -28
  79. package/dist/gamification/index.js.map +1 -1
  80. package/dist/gamification/profile.d.ts +2 -2
  81. package/dist/gamification/profile.d.ts.map +1 -1
  82. package/dist/gamification/profile.js +21 -64
  83. package/dist/gamification/profile.js.map +1 -1
  84. package/dist/gamification/stats.d.ts +1 -1
  85. package/dist/gamification/stats.d.ts.map +1 -1
  86. package/dist/gamification/stats.js +4 -10
  87. package/dist/gamification/stats.js.map +1 -1
  88. package/dist/gamification/streaks.d.ts +1 -1
  89. package/dist/gamification/streaks.d.ts.map +1 -1
  90. package/dist/gamification/streaks.js +8 -18
  91. package/dist/gamification/streaks.js.map +1 -1
  92. package/dist/gamification/types.js +3 -6
  93. package/dist/gamification/types.js.map +1 -1
  94. package/dist/gamification/xp.d.ts +1 -1
  95. package/dist/gamification/xp.d.ts.map +1 -1
  96. package/dist/gamification/xp.js +29 -38
  97. package/dist/gamification/xp.js.map +1 -1
  98. package/dist/git.d.ts +1 -1
  99. package/dist/git.d.ts.map +1 -1
  100. package/dist/git.js +15 -27
  101. package/dist/git.js.map +1 -1
  102. package/dist/inner-loop/context-amnesia.d.ts +2 -2
  103. package/dist/inner-loop/context-amnesia.d.ts.map +1 -1
  104. package/dist/inner-loop/context-amnesia.js +7 -10
  105. package/dist/inner-loop/context-amnesia.js.map +1 -1
  106. package/dist/inner-loop/index.d.ts +7 -7
  107. package/dist/inner-loop/index.d.ts.map +1 -1
  108. package/dist/inner-loop/index.js +18 -45
  109. package/dist/inner-loop/index.js.map +1 -1
  110. package/dist/inner-loop/instruction-drift.d.ts +2 -2
  111. package/dist/inner-loop/instruction-drift.d.ts.map +1 -1
  112. package/dist/inner-loop/instruction-drift.js +5 -10
  113. package/dist/inner-loop/instruction-drift.js.map +1 -1
  114. package/dist/inner-loop/logging-only.d.ts +2 -2
  115. package/dist/inner-loop/logging-only.d.ts.map +1 -1
  116. package/dist/inner-loop/logging-only.js +9 -17
  117. package/dist/inner-loop/logging-only.js.map +1 -1
  118. package/dist/inner-loop/tests-passing-lie.d.ts +2 -2
  119. package/dist/inner-loop/tests-passing-lie.d.ts.map +1 -1
  120. package/dist/inner-loop/tests-passing-lie.js +12 -17
  121. package/dist/inner-loop/tests-passing-lie.js.map +1 -1
  122. package/dist/inner-loop/types.js +1 -4
  123. package/dist/inner-loop/types.js.map +1 -1
  124. package/dist/insights/generators.d.ts +4 -4
  125. package/dist/insights/generators.d.ts.map +1 -1
  126. package/dist/insights/generators.js +9 -20
  127. package/dist/insights/generators.js.map +1 -1
  128. package/dist/insights/index.d.ts +4 -4
  129. package/dist/insights/index.d.ts.map +1 -1
  130. package/dist/insights/index.js +23 -27
  131. package/dist/insights/index.js.map +1 -1
  132. package/dist/insights/types.js +1 -2
  133. package/dist/insights/types.js.map +1 -1
  134. package/dist/metrics/code-stability.d.ts +1 -1
  135. package/dist/metrics/code-stability.d.ts.map +1 -1
  136. package/dist/metrics/code-stability.js +1 -4
  137. package/dist/metrics/code-stability.js.map +1 -1
  138. package/dist/metrics/file-churn.d.ts +1 -1
  139. package/dist/metrics/file-churn.d.ts.map +1 -1
  140. package/dist/metrics/file-churn.js +1 -4
  141. package/dist/metrics/file-churn.js.map +1 -1
  142. package/dist/metrics/flow.d.ts +1 -1
  143. package/dist/metrics/flow.d.ts.map +1 -1
  144. package/dist/metrics/flow.js +1 -4
  145. package/dist/metrics/flow.js.map +1 -1
  146. package/dist/metrics/index.d.ts +2 -2
  147. package/dist/metrics/index.d.ts.map +1 -1
  148. package/dist/metrics/index.js +15 -20
  149. package/dist/metrics/index.js.map +1 -1
  150. package/dist/metrics/rework.d.ts +1 -1
  151. package/dist/metrics/rework.d.ts.map +1 -1
  152. package/dist/metrics/rework.js +1 -4
  153. package/dist/metrics/rework.js.map +1 -1
  154. package/dist/metrics/spirals.d.ts +1 -1
  155. package/dist/metrics/spirals.d.ts.map +1 -1
  156. package/dist/metrics/spirals.js +5 -10
  157. package/dist/metrics/spirals.js.map +1 -1
  158. package/dist/metrics/time-spiral.d.ts +1 -1
  159. package/dist/metrics/time-spiral.d.ts.map +1 -1
  160. package/dist/metrics/time-spiral.js +1 -4
  161. package/dist/metrics/time-spiral.js.map +1 -1
  162. package/dist/metrics/trust.d.ts +1 -1
  163. package/dist/metrics/trust.d.ts.map +1 -1
  164. package/dist/metrics/trust.js +3 -6
  165. package/dist/metrics/trust.js.map +1 -1
  166. package/dist/metrics/velocity-anomaly.d.ts +1 -1
  167. package/dist/metrics/velocity-anomaly.d.ts.map +1 -1
  168. package/dist/metrics/velocity-anomaly.js +3 -6
  169. package/dist/metrics/velocity-anomaly.js.map +1 -1
  170. package/dist/metrics/velocity.d.ts +1 -1
  171. package/dist/metrics/velocity.d.ts.map +1 -1
  172. package/dist/metrics/velocity.js +6 -10
  173. package/dist/metrics/velocity.js.map +1 -1
  174. package/dist/output/index.d.ts +4 -4
  175. package/dist/output/index.d.ts.map +1 -1
  176. package/dist/output/index.js +10 -18
  177. package/dist/output/index.js.map +1 -1
  178. package/dist/output/json.d.ts +1 -1
  179. package/dist/output/json.d.ts.map +1 -1
  180. package/dist/output/json.js +1 -4
  181. package/dist/output/json.js.map +1 -1
  182. package/dist/output/markdown.d.ts +1 -1
  183. package/dist/output/markdown.d.ts.map +1 -1
  184. package/dist/output/markdown.js +5 -8
  185. package/dist/output/markdown.js.map +1 -1
  186. package/dist/output/terminal.d.ts +1 -1
  187. package/dist/output/terminal.d.ts.map +1 -1
  188. package/dist/output/terminal.js +55 -62
  189. package/dist/output/terminal.js.map +1 -1
  190. package/dist/output/timeline-html.d.ts +1 -1
  191. package/dist/output/timeline-html.d.ts.map +1 -1
  192. package/dist/output/timeline-html.js +5 -8
  193. package/dist/output/timeline-html.js.map +1 -1
  194. package/dist/output/timeline-markdown.d.ts +1 -1
  195. package/dist/output/timeline-markdown.d.ts.map +1 -1
  196. package/dist/output/timeline-markdown.js +5 -8
  197. package/dist/output/timeline-markdown.js.map +1 -1
  198. package/dist/output/timeline.d.ts +1 -1
  199. package/dist/output/timeline.d.ts.map +1 -1
  200. package/dist/output/timeline.js +46 -52
  201. package/dist/output/timeline.js.map +1 -1
  202. package/dist/patterns/detour.d.ts +1 -1
  203. package/dist/patterns/detour.d.ts.map +1 -1
  204. package/dist/patterns/detour.js +1 -4
  205. package/dist/patterns/detour.js.map +1 -1
  206. package/dist/patterns/flow-state.d.ts +1 -1
  207. package/dist/patterns/flow-state.d.ts.map +1 -1
  208. package/dist/patterns/flow-state.js +1 -4
  209. package/dist/patterns/flow-state.js.map +1 -1
  210. package/dist/patterns/index.d.ts +7 -7
  211. package/dist/patterns/index.d.ts.map +1 -1
  212. package/dist/patterns/index.js +7 -21
  213. package/dist/patterns/index.js.map +1 -1
  214. package/dist/patterns/intervention-effectiveness.d.ts +1 -1
  215. package/dist/patterns/intervention-effectiveness.d.ts.map +1 -1
  216. package/dist/patterns/intervention-effectiveness.js +3 -8
  217. package/dist/patterns/intervention-effectiveness.js.map +1 -1
  218. package/dist/patterns/late-night.d.ts +1 -1
  219. package/dist/patterns/late-night.d.ts.map +1 -1
  220. package/dist/patterns/late-night.js +1 -4
  221. package/dist/patterns/late-night.js.map +1 -1
  222. package/dist/patterns/post-delete-sprint.d.ts +1 -1
  223. package/dist/patterns/post-delete-sprint.d.ts.map +1 -1
  224. package/dist/patterns/post-delete-sprint.js +1 -4
  225. package/dist/patterns/post-delete-sprint.js.map +1 -1
  226. package/dist/patterns/spiral-regression.d.ts +1 -1
  227. package/dist/patterns/spiral-regression.d.ts.map +1 -1
  228. package/dist/patterns/spiral-regression.js +3 -8
  229. package/dist/patterns/spiral-regression.js.map +1 -1
  230. package/dist/patterns/thrashing.d.ts +1 -1
  231. package/dist/patterns/thrashing.d.ts.map +1 -1
  232. package/dist/patterns/thrashing.js +3 -6
  233. package/dist/patterns/thrashing.js.map +1 -1
  234. package/dist/score/index.d.ts +3 -3
  235. package/dist/score/index.d.ts.map +1 -1
  236. package/dist/score/index.js +4 -10
  237. package/dist/score/index.js.map +1 -1
  238. package/dist/score/weights.js +2 -6
  239. package/dist/score/weights.js.map +1 -1
  240. package/dist/sessions/index.js +9 -51
  241. package/dist/sessions/index.js.map +1 -1
  242. package/dist/storage/atomic.js +10 -51
  243. package/dist/storage/atomic.js.map +1 -1
  244. package/dist/storage/commit-log.d.ts +1 -1
  245. package/dist/storage/commit-log.d.ts.map +1 -1
  246. package/dist/storage/commit-log.js +11 -51
  247. package/dist/storage/commit-log.js.map +1 -1
  248. package/dist/storage/index.d.ts +5 -5
  249. package/dist/storage/index.d.ts.map +1 -1
  250. package/dist/storage/index.js +5 -37
  251. package/dist/storage/index.js.map +1 -1
  252. package/dist/storage/schema.js +4 -9
  253. package/dist/storage/schema.js.map +1 -1
  254. package/dist/storage/spiral-history.js +14 -57
  255. package/dist/storage/spiral-history.js.map +1 -1
  256. package/dist/storage/timeline-store.d.ts +2 -2
  257. package/dist/storage/timeline-store.d.ts.map +1 -1
  258. package/dist/storage/timeline-store.js +17 -61
  259. package/dist/storage/timeline-store.js.map +1 -1
  260. package/dist/types.js +1 -2
  261. package/docs/ENHANCEMENT-PLAN.md +361 -0
  262. package/feature-list.json +6 -0
  263. package/package.json +8 -7
  264. package/dist/calibration/ece.d.ts +0 -26
  265. package/dist/calibration/ece.d.ts.map +0 -1
  266. package/dist/calibration/ece.js +0 -93
  267. package/dist/calibration/ece.js.map +0 -1
  268. package/dist/calibration/index.d.ts +0 -3
  269. package/dist/calibration/index.d.ts.map +0 -1
  270. package/dist/calibration/index.js +0 -15
  271. package/dist/calibration/index.js.map +0 -1
  272. package/dist/calibration/storage.d.ts +0 -34
  273. package/dist/calibration/storage.d.ts.map +0 -1
  274. package/dist/calibration/storage.js +0 -188
  275. package/dist/calibration/storage.js.map +0 -1
  276. package/dist/commands/intervene.d.ts +0 -15
  277. package/dist/commands/intervene.d.ts.map +0 -1
  278. package/dist/commands/intervene.js +0 -183
  279. package/dist/commands/intervene.js.map +0 -1
  280. package/dist/commands/learn.d.ts +0 -3
  281. package/dist/commands/learn.d.ts.map +0 -1
  282. package/dist/commands/learn.js +0 -161
  283. package/dist/commands/learn.js.map +0 -1
  284. package/dist/commands/lesson.d.ts +0 -8
  285. package/dist/commands/lesson.d.ts.map +0 -1
  286. package/dist/commands/lesson.js +0 -206
  287. package/dist/commands/lesson.js.map +0 -1
  288. package/dist/commands/level.d.ts +0 -3
  289. package/dist/commands/level.d.ts.map +0 -1
  290. package/dist/commands/level.js +0 -277
  291. package/dist/commands/level.js.map +0 -1
  292. package/dist/gamification/badges.d.ts +0 -29
  293. package/dist/gamification/badges.d.ts.map +0 -1
  294. package/dist/gamification/badges.js +0 -114
  295. package/dist/gamification/badges.js.map +0 -1
  296. package/dist/gamification/challenges.d.ts +0 -42
  297. package/dist/gamification/challenges.d.ts.map +0 -1
  298. package/dist/gamification/challenges.js +0 -184
  299. package/dist/gamification/challenges.js.map +0 -1
  300. package/dist/gamification/hall-of-fame.d.ts +0 -17
  301. package/dist/gamification/hall-of-fame.d.ts.map +0 -1
  302. package/dist/gamification/hall-of-fame.js +0 -64
  303. package/dist/gamification/hall-of-fame.js.map +0 -1
  304. package/dist/gamification/intervention-memory.d.ts +0 -61
  305. package/dist/gamification/intervention-memory.d.ts.map +0 -1
  306. package/dist/gamification/intervention-memory.js +0 -229
  307. package/dist/gamification/intervention-memory.js.map +0 -1
  308. package/dist/gamification/leaderboards.d.ts +0 -49
  309. package/dist/gamification/leaderboards.d.ts.map +0 -1
  310. package/dist/gamification/leaderboards.js +0 -179
  311. package/dist/gamification/leaderboards.js.map +0 -1
  312. package/dist/gamification/pattern-memory.d.ts +0 -45
  313. package/dist/gamification/pattern-memory.d.ts.map +0 -1
  314. package/dist/gamification/pattern-memory.js +0 -188
  315. package/dist/gamification/pattern-memory.js.map +0 -1
  316. package/dist/gamification/share.d.ts +0 -29
  317. package/dist/gamification/share.d.ts.map +0 -1
  318. package/dist/gamification/share.js +0 -57
  319. package/dist/gamification/share.js.map +0 -1
  320. package/dist/learning/cadence.d.ts +0 -15
  321. package/dist/learning/cadence.d.ts.map +0 -1
  322. package/dist/learning/cadence.js +0 -130
  323. package/dist/learning/cadence.js.map +0 -1
  324. package/dist/learning/index.d.ts +0 -19
  325. package/dist/learning/index.d.ts.map +0 -1
  326. package/dist/learning/index.js +0 -35
  327. package/dist/learning/index.js.map +0 -1
  328. package/dist/learning/lessons-storage.d.ts +0 -48
  329. package/dist/learning/lessons-storage.d.ts.map +0 -1
  330. package/dist/learning/lessons-storage.js +0 -266
  331. package/dist/learning/lessons-storage.js.map +0 -1
  332. package/dist/learning/lessons-types.d.ts +0 -83
  333. package/dist/learning/lessons-types.d.ts.map +0 -1
  334. package/dist/learning/lessons-types.js +0 -15
  335. package/dist/learning/lessons-types.js.map +0 -1
  336. package/dist/learning/nudges.d.ts +0 -20
  337. package/dist/learning/nudges.d.ts.map +0 -1
  338. package/dist/learning/nudges.js +0 -68
  339. package/dist/learning/nudges.js.map +0 -1
  340. package/dist/learning/retrospective.d.ts +0 -27
  341. package/dist/learning/retrospective.d.ts.map +0 -1
  342. package/dist/learning/retrospective.js +0 -184
  343. package/dist/learning/retrospective.js.map +0 -1
  344. package/dist/learning/storage.d.ts +0 -44
  345. package/dist/learning/storage.d.ts.map +0 -1
  346. package/dist/learning/storage.js +0 -194
  347. package/dist/learning/storage.js.map +0 -1
  348. package/dist/learning/surfacing.d.ts +0 -36
  349. package/dist/learning/surfacing.d.ts.map +0 -1
  350. package/dist/learning/surfacing.js +0 -255
  351. package/dist/learning/surfacing.js.map +0 -1
  352. package/dist/learning/synthesis.d.ts +0 -17
  353. package/dist/learning/synthesis.d.ts.map +0 -1
  354. package/dist/learning/synthesis.js +0 -293
  355. package/dist/learning/synthesis.js.map +0 -1
  356. package/dist/learning/types.d.ts +0 -60
  357. package/dist/learning/types.d.ts.map +0 -1
  358. package/dist/learning/types.js +0 -17
  359. package/dist/learning/types.js.map +0 -1
  360. package/dist/recommend/index.d.ts +0 -3
  361. package/dist/recommend/index.d.ts.map +0 -1
  362. package/dist/recommend/index.js +0 -14
  363. package/dist/recommend/index.js.map +0 -1
  364. package/dist/recommend/ordered-logistic.d.ts +0 -49
  365. package/dist/recommend/ordered-logistic.d.ts.map +0 -1
  366. package/dist/recommend/ordered-logistic.js +0 -153
  367. package/dist/recommend/ordered-logistic.js.map +0 -1
  368. package/dist/recommend/questions.d.ts +0 -19
  369. package/dist/recommend/questions.d.ts.map +0 -1
  370. package/dist/recommend/questions.js +0 -73
  371. package/dist/recommend/questions.js.map +0 -1
@@ -1,24 +1,17 @@
1
- "use strict";
2
1
  /**
3
2
  * Forensics Command (VIBE-045)
4
3
  *
5
4
  * Analyze git history to detect failure patterns and calculate quality metrics.
6
5
  * Proven algorithm from release-engineering retrospective (475 commits analyzed).
7
6
  */
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.createForensicsCommand = createForensicsCommand;
13
- exports.runForensics = runForensics;
14
- const commander_1 = require("commander");
15
- const chalk_1 = __importDefault(require("chalk"));
16
- const git_1 = require("../git");
17
- const patterns_1 = require("../analyzers/patterns");
18
- const quality_1 = require("../analyzers/quality");
19
- const date_fns_1 = require("date-fns");
20
- function createForensicsCommand() {
21
- const cmd = new commander_1.Command('forensics')
7
+ import { Command } from 'commander';
8
+ import chalk from 'chalk';
9
+ import { getCommits, isGitRepo } from '../git.js';
10
+ import { detectPatterns, } from '../analyzers/patterns.js';
11
+ import { calculateQualityMetrics, getRecommendation, } from '../analyzers/quality.js';
12
+ import { format } from 'date-fns';
13
+ export function createForensicsCommand() {
14
+ const cmd = new Command('forensics')
22
15
  .description('Analyze git history for failure patterns (VIBE-045)')
23
16
  .option('--since <date>', 'Start date for analysis', '3 months ago')
24
17
  .option('--until <date>', 'End date for analysis (default: now)')
@@ -30,37 +23,37 @@ function createForensicsCommand() {
30
23
  });
31
24
  return cmd;
32
25
  }
33
- async function runForensics(options) {
26
+ export async function runForensics(options) {
34
27
  try {
35
28
  const { since, until, format: outputFormat, repo, verbose } = options;
36
29
  // Check if repo is valid
37
- if (!(await (0, git_1.isGitRepo)(repo))) {
38
- console.error(chalk_1.default.red(`Not a git repository: ${repo}`));
30
+ if (!(await isGitRepo(repo))) {
31
+ console.error(chalk.red(`Not a git repository: ${repo}`));
39
32
  process.exit(1);
40
33
  }
41
34
  if (verbose) {
42
- console.error(chalk_1.default.gray(`Analyzing repository: ${repo}`));
43
- console.error(chalk_1.default.gray(`Since: ${since}`));
35
+ console.error(chalk.gray(`Analyzing repository: ${repo}`));
36
+ console.error(chalk.gray(`Since: ${since}`));
44
37
  if (until)
45
- console.error(chalk_1.default.gray(`Until: ${until}`));
38
+ console.error(chalk.gray(`Until: ${until}`));
46
39
  }
47
40
  // Get commits
48
- const commits = await (0, git_1.getCommits)(repo, since, until);
41
+ const commits = await getCommits(repo, since, until);
49
42
  if (commits.length === 0) {
50
- console.log(chalk_1.default.yellow('\nNo commits found in the specified range.\n'));
51
- console.log(chalk_1.default.gray('Try specifying a different date range:'));
52
- console.log(chalk_1.default.gray(' vibe-check forensics --since "6 months ago"'));
43
+ console.log(chalk.yellow('\nNo commits found in the specified range.\n'));
44
+ console.log(chalk.gray('Try specifying a different date range:'));
45
+ console.log(chalk.gray(' vibe-check forensics --since "6 months ago"'));
53
46
  process.exit(0);
54
47
  }
55
48
  if (verbose) {
56
- console.error(chalk_1.default.gray(`Found ${commits.length} commits`));
49
+ console.error(chalk.gray(`Found ${commits.length} commits`));
57
50
  }
58
51
  // Detect patterns
59
- const patterns = (0, patterns_1.detectPatterns)(commits);
52
+ const patterns = detectPatterns(commits);
60
53
  // Calculate quality metrics
61
- const qualityMetrics = (0, quality_1.calculateQualityMetrics)(commits);
54
+ const qualityMetrics = calculateQualityMetrics(commits);
62
55
  // Get recommendation
63
- const recommendation = (0, quality_1.getRecommendation)(qualityMetrics, patterns.debugSpirals !== null);
56
+ const recommendation = getRecommendation(qualityMetrics, patterns.debugSpirals !== null);
64
57
  // Sort commits to get date range
65
58
  const sortedCommits = [...commits].sort((a, b) => a.date.getTime() - b.date.getTime());
66
59
  const result = {
@@ -88,7 +81,7 @@ async function runForensics(options) {
88
81
  }
89
82
  catch (error) {
90
83
  if (error instanceof Error) {
91
- console.error(chalk_1.default.red(`Error: ${error.message}`));
84
+ console.error(chalk.red(`Error: ${error.message}`));
92
85
  }
93
86
  process.exit(1);
94
87
  }
@@ -157,56 +150,56 @@ function outputMarkdown(result) {
157
150
  function outputTerminal(result) {
158
151
  const { analysisPeriod, totalCommits, patterns, qualityMetrics, recommendation } = result;
159
152
  console.log('');
160
- console.log(chalk_1.default.bold.cyan('🔍 Git Forensics Report'));
161
- console.log(chalk_1.default.gray('─'.repeat(50)));
153
+ console.log(chalk.bold.cyan('🔍 Git Forensics Report'));
154
+ console.log(chalk.gray('─'.repeat(50)));
162
155
  console.log('');
163
156
  // Period and count
164
157
  const fromDate = new Date(analysisPeriod.from);
165
158
  const toDate = new Date(analysisPeriod.to);
166
- console.log(`Period: ${(0, date_fns_1.format)(fromDate, 'MMM d, yyyy')} - ${(0, date_fns_1.format)(toDate, 'MMM d, yyyy')}`);
167
- console.log(`Commits: ${chalk_1.default.cyan(totalCommits)}`);
159
+ console.log(`Period: ${format(fromDate, 'MMM d, yyyy')} - ${format(toDate, 'MMM d, yyyy')}`);
160
+ console.log(`Commits: ${chalk.cyan(totalCommits)}`);
168
161
  console.log('');
169
162
  // Quality metrics
170
- console.log(chalk_1.default.bold('Quality Metrics:'));
171
- const convColor = qualityMetrics.conventionalCommits.percentage >= 80 ? chalk_1.default.green : qualityMetrics.conventionalCommits.percentage >= 50 ? chalk_1.default.yellow : chalk_1.default.red;
172
- const vagueColor = qualityMetrics.vagueCommits.percentage <= 10 ? chalk_1.default.green : qualityMetrics.vagueCommits.percentage <= 30 ? chalk_1.default.yellow : chalk_1.default.red;
163
+ console.log(chalk.bold('Quality Metrics:'));
164
+ const convColor = qualityMetrics.conventionalCommits.percentage >= 80 ? chalk.green : qualityMetrics.conventionalCommits.percentage >= 50 ? chalk.yellow : chalk.red;
165
+ const vagueColor = qualityMetrics.vagueCommits.percentage <= 10 ? chalk.green : qualityMetrics.vagueCommits.percentage <= 30 ? chalk.yellow : chalk.red;
173
166
  console.log(` Conventional: ${convColor(qualityMetrics.conventionalCommits.percentage + '%')} (${qualityMetrics.conventionalCommits.count} commits)`);
174
- console.log(` Descriptive: ${chalk_1.default.cyan(qualityMetrics.descriptiveCommits.percentage + '%')} (${qualityMetrics.descriptiveCommits.count} commits)`);
167
+ console.log(` Descriptive: ${chalk.cyan(qualityMetrics.descriptiveCommits.percentage + '%')} (${qualityMetrics.descriptiveCommits.count} commits)`);
175
168
  console.log(` Vague: ${vagueColor(qualityMetrics.vagueCommits.percentage + '%')} (${qualityMetrics.vagueCommits.count} commits)`);
176
169
  console.log('');
177
170
  // Patterns
178
- console.log(chalk_1.default.bold('Patterns Detected:'));
171
+ console.log(chalk.bold('Patterns Detected:'));
179
172
  // Debug spirals
180
173
  if (patterns.debugSpirals) {
181
- console.log(chalk_1.default.red(` ⚠️ Debug Spirals: ${patterns.debugSpirals.count} commits over ${patterns.debugSpirals.durationMinutes} min`));
174
+ console.log(chalk.red(` ⚠️ Debug Spirals: ${patterns.debugSpirals.count} commits over ${patterns.debugSpirals.durationMinutes} min`));
182
175
  }
183
176
  else {
184
- console.log(chalk_1.default.green(' ✅ No debug spirals'));
177
+ console.log(chalk.green(' ✅ No debug spirals'));
185
178
  }
186
179
  // Context amnesia
187
180
  if (patterns.contextAmnesia.scopes.length > 0) {
188
181
  const topScopes = patterns.contextAmnesia.scopes.slice(0, 3).map(s => `${s.name}(${s.visits})`).join(', ');
189
- console.log(chalk_1.default.yellow(` ⚠️ Context Amnesia: ${topScopes}`));
182
+ console.log(chalk.yellow(` ⚠️ Context Amnesia: ${topScopes}`));
190
183
  }
191
184
  else {
192
- console.log(chalk_1.default.green(' ✅ No context amnesia'));
185
+ console.log(chalk.green(' ✅ No context amnesia'));
193
186
  }
194
187
  // Vague commits examples
195
188
  if (patterns.vagueCommits.examples.length > 0) {
196
189
  const examples = patterns.vagueCommits.examples.slice(0, 3).map(e => `"${e}"`).join(', ');
197
- console.log(chalk_1.default.gray(` 📝 Vague examples: ${examples}`));
190
+ console.log(chalk.gray(` 📝 Vague examples: ${examples}`));
198
191
  }
199
192
  console.log('');
200
193
  // Recommendation
201
- console.log(chalk_1.default.bold('Recommendation:'));
194
+ console.log(chalk.bold('Recommendation:'));
202
195
  if (recommendation === 'sweep') {
203
- console.log(chalk_1.default.yellow(' 🧹 SWEEP - Consider cleanup and commit discipline improvement'));
196
+ console.log(chalk.yellow(' 🧹 SWEEP - Consider cleanup and commit discipline improvement'));
204
197
  }
205
198
  else if (recommendation === 'celebrate') {
206
- console.log(chalk_1.default.green(' 🎉 CELEBRATE - Excellent commit hygiene!'));
199
+ console.log(chalk.green(' 🎉 CELEBRATE - Excellent commit hygiene!'));
207
200
  }
208
201
  else {
209
- console.log(chalk_1.default.cyan(' 👍 MAINTAIN - Commit quality is acceptable'));
202
+ console.log(chalk.cyan(' 👍 MAINTAIN - Commit quality is acceptable'));
210
203
  }
211
204
  console.log('');
212
205
  }
@@ -1 +1 @@
1
- {"version":3,"file":"forensics.js","sourceRoot":"","sources":["../../src/commands/forensics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forensics.js","sourceRoot":"","sources":["../../src/commands/forensics.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,15 @@
1
- export { createAnalyzeCommand, runAnalyze, AnalyzeOptions } from './analyze';
2
- export { createStartCommand } from './start';
3
- export { createProfileCommand } from './profile';
4
- export { createInitHookCommand } from './init-hook';
5
- export { createWatchCommand } from './watch';
6
- export { createTimelineCommand, runTimeline, TimelineOptions } from './timeline';
7
- export { createCacheCommand } from './cache';
8
- export { createDashboardCommand } from './dashboard';
9
- export { createSessionCommand, SessionMetricsOutput } from './session';
10
- export { createInsightsCommand } from './insights';
11
- export { createPipelineCommand } from './pipeline';
12
- export { createSessionsCommand, runSessions, SessionsOptions } from './sessions';
13
- export { createForensicsCommand, runForensics, ForensicsOptions, ForensicsResult } from './forensics';
1
+ export { createAnalyzeCommand, runAnalyze, AnalyzeOptions } from './analyze.js';
2
+ export { createStartCommand } from './start.js';
3
+ export { createProfileCommand } from './profile.js';
4
+ export { createInitHookCommand } from './init-hook.js';
5
+ export { createWatchCommand } from './watch.js';
6
+ export { createTimelineCommand, runTimeline, TimelineOptions } from './timeline.js';
7
+ export { createCacheCommand } from './cache.js';
8
+ export { createDashboardCommand } from './dashboard.js';
9
+ export { createSessionCommand, SessionMetricsOutput } from './session.js';
10
+ export { createInsightsCommand } from './insights.js';
11
+ export { createPipelineCommand } from './pipeline.js';
12
+ export { createSessionsCommand, runSessions, SessionsOptions } from './sessions.js';
13
+ export { createForensicsCommand, runForensics, ForensicsOptions, ForensicsResult } from './forensics.js';
14
+ export { createAuditCommand } from './audit.js';
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACzG,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
@@ -1,34 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.runForensics = exports.createForensicsCommand = exports.runSessions = exports.createSessionsCommand = exports.createPipelineCommand = exports.createInsightsCommand = exports.createSessionCommand = exports.createDashboardCommand = exports.createCacheCommand = exports.runTimeline = exports.createTimelineCommand = exports.createWatchCommand = exports.createInitHookCommand = exports.createProfileCommand = exports.createStartCommand = exports.runAnalyze = exports.createAnalyzeCommand = void 0;
4
- var analyze_1 = require("./analyze");
5
- Object.defineProperty(exports, "createAnalyzeCommand", { enumerable: true, get: function () { return analyze_1.createAnalyzeCommand; } });
6
- Object.defineProperty(exports, "runAnalyze", { enumerable: true, get: function () { return analyze_1.runAnalyze; } });
7
- var start_1 = require("./start");
8
- Object.defineProperty(exports, "createStartCommand", { enumerable: true, get: function () { return start_1.createStartCommand; } });
9
- var profile_1 = require("./profile");
10
- Object.defineProperty(exports, "createProfileCommand", { enumerable: true, get: function () { return profile_1.createProfileCommand; } });
11
- var init_hook_1 = require("./init-hook");
12
- Object.defineProperty(exports, "createInitHookCommand", { enumerable: true, get: function () { return init_hook_1.createInitHookCommand; } });
13
- var watch_1 = require("./watch");
14
- Object.defineProperty(exports, "createWatchCommand", { enumerable: true, get: function () { return watch_1.createWatchCommand; } });
15
- var timeline_1 = require("./timeline");
16
- Object.defineProperty(exports, "createTimelineCommand", { enumerable: true, get: function () { return timeline_1.createTimelineCommand; } });
17
- Object.defineProperty(exports, "runTimeline", { enumerable: true, get: function () { return timeline_1.runTimeline; } });
18
- var cache_1 = require("./cache");
19
- Object.defineProperty(exports, "createCacheCommand", { enumerable: true, get: function () { return cache_1.createCacheCommand; } });
20
- var dashboard_1 = require("./dashboard");
21
- Object.defineProperty(exports, "createDashboardCommand", { enumerable: true, get: function () { return dashboard_1.createDashboardCommand; } });
22
- var session_1 = require("./session");
23
- Object.defineProperty(exports, "createSessionCommand", { enumerable: true, get: function () { return session_1.createSessionCommand; } });
24
- var insights_1 = require("./insights");
25
- Object.defineProperty(exports, "createInsightsCommand", { enumerable: true, get: function () { return insights_1.createInsightsCommand; } });
26
- var pipeline_1 = require("./pipeline");
27
- Object.defineProperty(exports, "createPipelineCommand", { enumerable: true, get: function () { return pipeline_1.createPipelineCommand; } });
28
- var sessions_1 = require("./sessions");
29
- Object.defineProperty(exports, "createSessionsCommand", { enumerable: true, get: function () { return sessions_1.createSessionsCommand; } });
30
- Object.defineProperty(exports, "runSessions", { enumerable: true, get: function () { return sessions_1.runSessions; } });
31
- var forensics_1 = require("./forensics");
32
- Object.defineProperty(exports, "createForensicsCommand", { enumerable: true, get: function () { return forensics_1.createForensicsCommand; } });
33
- Object.defineProperty(exports, "runForensics", { enumerable: true, get: function () { return forensics_1.runForensics; } });
1
+ export { createAnalyzeCommand, runAnalyze } from './analyze.js';
2
+ export { createStartCommand } from './start.js';
3
+ export { createProfileCommand } from './profile.js';
4
+ export { createInitHookCommand } from './init-hook.js';
5
+ export { createWatchCommand } from './watch.js';
6
+ export { createTimelineCommand, runTimeline } from './timeline.js';
7
+ export { createCacheCommand } from './cache.js';
8
+ export { createDashboardCommand } from './dashboard.js';
9
+ export { createSessionCommand } from './session.js';
10
+ export { createInsightsCommand } from './insights.js';
11
+ export { createPipelineCommand } from './pipeline.js';
12
+ export { createSessionsCommand, runSessions } from './sessions.js';
13
+ export { createForensicsCommand, runForensics } from './forensics.js';
14
+ export { createAuditCommand } from './audit.js';
34
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;AAAA,qCAA6E;AAApE,+GAAA,oBAAoB,OAAA;AAAE,qGAAA,UAAU,OAAA;AACzC,iCAA6C;AAApC,2GAAA,kBAAkB,OAAA;AAC3B,qCAAiD;AAAxC,+GAAA,oBAAoB,OAAA;AAC7B,yCAAoD;AAA3C,kHAAA,qBAAqB,OAAA;AAC9B,iCAA6C;AAApC,2GAAA,kBAAkB,OAAA;AAC3B,uCAAiF;AAAxE,iHAAA,qBAAqB,OAAA;AAAE,uGAAA,WAAW,OAAA;AAC3C,iCAA6C;AAApC,2GAAA,kBAAkB,OAAA;AAC3B,yCAAqD;AAA5C,mHAAA,sBAAsB,OAAA;AAC/B,qCAAuE;AAA9D,+GAAA,oBAAoB,OAAA;AAC7B,uCAAmD;AAA1C,iHAAA,qBAAqB,OAAA;AAC9B,uCAAmD;AAA1C,iHAAA,qBAAqB,OAAA;AAC9B,uCAAiF;AAAxE,iHAAA,qBAAqB,OAAA;AAAE,uGAAA,WAAW,OAAA;AAC3C,yCAAsG;AAA7F,mHAAA,sBAAsB,OAAA;AAAE,yGAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAkB,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAmB,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAwB,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAmB,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAqC,MAAM,gBAAgB,CAAC;AACzG,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
@@ -1,13 +1,7 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createInitHookCommand = createInitHookCommand;
7
- const commander_1 = require("commander");
8
- const chalk_1 = __importDefault(require("chalk"));
9
- const fs_1 = require("fs");
10
- const path_1 = require("path");
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { writeFileSync, existsSync, mkdirSync, chmodSync } from 'fs';
4
+ import { join } from 'path';
11
5
  const PRE_PUSH_HOOK = `#!/bin/bash
12
6
  # vibe-check pre-push hook
13
7
  # Runs vibe-check on commits being pushed and displays metrics
@@ -110,8 +104,8 @@ echo
110
104
 
111
105
  exit 0
112
106
  `;
113
- function createInitHookCommand() {
114
- const cmd = new commander_1.Command('init-hook')
107
+ export function createInitHookCommand() {
108
+ const cmd = new Command('init-hook')
115
109
  .description('Install vibe-check git hook in current repository')
116
110
  .option('-f, --force', 'Overwrite existing hook', false)
117
111
  .option('--block-low', 'Configure hook to block pushes on LOW rating', false)
@@ -122,24 +116,24 @@ function createInitHookCommand() {
122
116
  }
123
117
  async function runInitHook(options) {
124
118
  const cwd = process.cwd();
125
- const gitDir = (0, path_1.join)(cwd, '.git');
126
- const hooksDir = (0, path_1.join)(gitDir, 'hooks');
127
- const hookPath = (0, path_1.join)(hooksDir, 'pre-push');
119
+ const gitDir = join(cwd, '.git');
120
+ const hooksDir = join(gitDir, 'hooks');
121
+ const hookPath = join(hooksDir, 'pre-push');
128
122
  // Check if we're in a git repo
129
- if (!(0, fs_1.existsSync)(gitDir)) {
130
- console.error(chalk_1.default.red('Error: Not a git repository'));
131
- console.error(chalk_1.default.gray('Run this command from the root of a git repository'));
123
+ if (!existsSync(gitDir)) {
124
+ console.error(chalk.red('Error: Not a git repository'));
125
+ console.error(chalk.gray('Run this command from the root of a git repository'));
132
126
  process.exit(1);
133
127
  }
134
128
  // Check if hook already exists
135
- if ((0, fs_1.existsSync)(hookPath) && !options.force) {
136
- console.error(chalk_1.default.yellow('pre-push hook already exists'));
137
- console.error(chalk_1.default.gray('Use --force to overwrite'));
129
+ if (existsSync(hookPath) && !options.force) {
130
+ console.error(chalk.yellow('pre-push hook already exists'));
131
+ console.error(chalk.gray('Use --force to overwrite'));
138
132
  process.exit(1);
139
133
  }
140
134
  // Create hooks directory if needed
141
- if (!(0, fs_1.existsSync)(hooksDir)) {
142
- (0, fs_1.mkdirSync)(hooksDir, { recursive: true });
135
+ if (!existsSync(hooksDir)) {
136
+ mkdirSync(hooksDir, { recursive: true });
143
137
  }
144
138
  // Modify hook content if blocking is enabled
145
139
  let hookContent = PRE_PUSH_HOOK;
@@ -147,19 +141,19 @@ async function runInitHook(options) {
147
141
  hookContent = hookContent.replace('VIBE_CHECK_BLOCK_LOW=${VIBE_CHECK_BLOCK_LOW:-false}', 'VIBE_CHECK_BLOCK_LOW=${VIBE_CHECK_BLOCK_LOW:-true}');
148
142
  }
149
143
  // Write the hook
150
- (0, fs_1.writeFileSync)(hookPath, hookContent);
151
- (0, fs_1.chmodSync)(hookPath, 0o755);
144
+ writeFileSync(hookPath, hookContent);
145
+ chmodSync(hookPath, 0o755);
152
146
  console.log();
153
- console.log(chalk_1.default.green('✓ vibe-check pre-push hook installed'));
147
+ console.log(chalk.green('✓ vibe-check pre-push hook installed'));
154
148
  console.log();
155
- console.log(chalk_1.default.gray('Location:'), hookPath);
149
+ console.log(chalk.gray('Location:'), hookPath);
156
150
  console.log();
157
- console.log(chalk_1.default.bold('Configuration:'));
158
- console.log(chalk_1.default.gray(' VIBE_CHECK_BLOCK_LOW=true Block push on LOW rating'));
159
- console.log(chalk_1.default.gray(' VIBE_CHECK_SIMPLE=false Show full output'));
160
- console.log(chalk_1.default.gray(' VIBE_CHECK_SCORE=false Hide vibe score'));
151
+ console.log(chalk.bold('Configuration:'));
152
+ console.log(chalk.gray(' VIBE_CHECK_BLOCK_LOW=true Block push on LOW rating'));
153
+ console.log(chalk.gray(' VIBE_CHECK_SIMPLE=false Show full output'));
154
+ console.log(chalk.gray(' VIBE_CHECK_SCORE=false Hide vibe score'));
161
155
  console.log();
162
- console.log(chalk_1.default.cyan('The hook will run automatically on every git push'));
156
+ console.log(chalk.cyan('The hook will run automatically on every git push'));
163
157
  console.log();
164
158
  }
165
159
  //# sourceMappingURL=init-hook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init-hook.js","sourceRoot":"","sources":["../../src/commands/init-hook.ts"],"names":[],"mappings":";;;;;AA4GA,sDAUC;AAtHD,yCAAoC;AACpC,kDAA0B;AAC1B,2BAAqE;AACrE,+BAA4B;AAE5B,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqGrB,CAAC;AAEF,SAAgB,qBAAqB;IACnC,MAAM,GAAG,GAAG,IAAI,mBAAO,CAAC,WAAW,CAAC;SACjC,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,aAAa,EAAE,yBAAyB,EAAE,KAAK,CAAC;SACvD,MAAM,CAAC,aAAa,EAAE,8CAA8C,EAAE,KAAK,CAAC;SAC5E,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,OAA8C;IACvE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAE5C,+BAA+B;IAC/B,IAAI,CAAC,IAAA,eAAU,EAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC,CAAC;QAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,+BAA+B;IAC/B,IAAI,IAAA,eAAU,EAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,mCAAmC;IACnC,IAAI,CAAC,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,IAAA,cAAS,EAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,6CAA6C;IAC7C,IAAI,WAAW,GAAG,aAAa,CAAC;IAChC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,WAAW,GAAG,WAAW,CAAC,OAAO,CAC/B,qDAAqD,EACrD,oDAAoD,CACrD,CAAC;IACJ,CAAC;IAED,iBAAiB;IACjB,IAAA,kBAAa,EAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACrC,IAAA,cAAS,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAE3B,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"init-hook.js","sourceRoot":"","sources":["../../src/commands/init-hook.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,8 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createInsightsCommand = createInsightsCommand;
7
- const commander_1 = require("commander");
8
- const chalk_1 = __importDefault(require("chalk"));
9
- const spiral_history_1 = require("../storage/spiral-history");
10
- function createInsightsCommand() {
11
- const cmd = new commander_1.Command('insights')
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { getPatternStats, getPatternDisplayName, getResolutionDisplayName, readSpiralHistory, } from '../storage/spiral-history.js';
4
+ export function createInsightsCommand() {
5
+ const cmd = new Command('insights')
12
6
  .description('Show your spiral patterns and what works for you')
13
7
  .option('-d, --days <number>', 'Days to analyze (default: 30)', '30')
14
8
  .option('-f, --format <type>', 'Output format: terminal, json', 'terminal')
@@ -20,15 +14,15 @@ function createInsightsCommand() {
20
14
  async function runInsights(options) {
21
15
  const days = parseInt(options.days, 10) || 30;
22
16
  const format = options.format;
23
- const stats = (0, spiral_history_1.getPatternStats)(days);
24
- const allHistory = (0, spiral_history_1.readSpiralHistory)();
17
+ const stats = getPatternStats(days);
18
+ const allHistory = readSpiralHistory();
25
19
  if (format === 'json') {
26
20
  console.log(JSON.stringify({
27
21
  period_days: days,
28
22
  total_spirals: allHistory.length,
29
23
  patterns: stats.map(s => ({
30
24
  pattern: s.pattern,
31
- display_name: (0, spiral_history_1.getPatternDisplayName)(s.pattern),
25
+ display_name: getPatternDisplayName(s.pattern),
32
26
  times: s.times,
33
27
  avg_duration_min: s.avgDuration,
34
28
  best_fix: s.bestFix,
@@ -39,82 +33,82 @@ async function runInsights(options) {
39
33
  }
40
34
  // Terminal output
41
35
  console.log('');
42
- console.log(chalk_1.default.bold.cyan('═'.repeat(64)));
43
- console.log(chalk_1.default.bold.cyan(' YOUR SPIRAL PATTERNS'));
44
- console.log(chalk_1.default.bold.cyan('═'.repeat(64)));
36
+ console.log(chalk.bold.cyan('═'.repeat(64)));
37
+ console.log(chalk.bold.cyan(' YOUR SPIRAL PATTERNS'));
38
+ console.log(chalk.bold.cyan('═'.repeat(64)));
45
39
  console.log('');
46
40
  if (stats.length === 0) {
47
- console.log(chalk_1.default.gray(' No spirals recorded in the last ' + days + ' days.'));
48
- console.log(chalk_1.default.gray(' Run vibe-check analyze or session end to start tracking.'));
41
+ console.log(chalk.gray(' No spirals recorded in the last ' + days + ' days.'));
42
+ console.log(chalk.gray(' Run vibe-check analyze or session end to start tracking.'));
49
43
  console.log('');
50
44
  return;
51
45
  }
52
46
  // Summary stats
53
47
  const totalSpirals = stats.reduce((sum, s) => sum + s.times, 0);
54
48
  const avgDuration = stats.reduce((sum, s) => sum + s.avgDuration * s.times, 0) / totalSpirals;
55
- console.log(chalk_1.default.white(` Period: Last ${days} days`));
56
- console.log(chalk_1.default.white(` Total spirals: ${totalSpirals}`));
57
- console.log(chalk_1.default.white(` Avg duration: ${Math.round(avgDuration)} min`));
49
+ console.log(chalk.white(` Period: Last ${days} days`));
50
+ console.log(chalk.white(` Total spirals: ${totalSpirals}`));
51
+ console.log(chalk.white(` Avg duration: ${Math.round(avgDuration)} min`));
58
52
  console.log('');
59
53
  // Pattern breakdown
60
- console.log(chalk_1.default.bold.white(' PATTERNS BY FREQUENCY'));
54
+ console.log(chalk.bold.white(' PATTERNS BY FREQUENCY'));
61
55
  console.log('');
62
56
  for (const stat of stats) {
63
- const patternName = (0, spiral_history_1.getPatternDisplayName)(stat.pattern);
57
+ const patternName = getPatternDisplayName(stat.pattern);
64
58
  const bar = '█'.repeat(Math.min(stat.times * 2, 20));
65
59
  const fixText = stat.bestFix
66
- ? (0, spiral_history_1.getResolutionDisplayName)(stat.bestFix).toLowerCase()
60
+ ? getResolutionDisplayName(stat.bestFix).toLowerCase()
67
61
  : 'no resolution data';
68
- console.log(chalk_1.default.yellow(` ${patternName}`));
69
- console.log(` ${chalk_1.default.cyan(bar)} ${stat.times}x, avg ${stat.avgDuration} min`);
70
- console.log(chalk_1.default.gray(` Best fix: ${fixText}`));
71
- console.log(chalk_1.default.gray(` Components: ${stat.components.slice(0, 3).join(', ')}${stat.components.length > 3 ? '...' : ''}`));
62
+ console.log(chalk.yellow(` ${patternName}`));
63
+ console.log(` ${chalk.cyan(bar)} ${stat.times}x, avg ${stat.avgDuration} min`);
64
+ console.log(chalk.gray(` Best fix: ${fixText}`));
65
+ console.log(chalk.gray(` Components: ${stat.components.slice(0, 3).join(', ')}${stat.components.length > 3 ? '...' : ''}`));
72
66
  console.log('');
73
67
  }
74
68
  // Top trigger identification
75
69
  if (stats.length > 0) {
76
70
  const topPattern = stats[0];
77
- const topPatternName = (0, spiral_history_1.getPatternDisplayName)(topPattern.pattern);
71
+ const topPatternName = getPatternDisplayName(topPattern.pattern);
78
72
  const topComponents = topPattern.components.slice(0, 2).join(', ');
79
- console.log(chalk_1.default.bold.white(' TOP TRIGGER'));
73
+ console.log(chalk.bold.white(' TOP TRIGGER'));
80
74
  console.log('');
81
- console.log(chalk_1.default.yellow(` ${topPatternName} in ${topComponents}`));
75
+ console.log(chalk.yellow(` ${topPatternName} in ${topComponents}`));
82
76
  console.log('');
83
77
  // Generate recommendation
84
78
  if (topPattern.bestFix) {
85
- const fixName = (0, spiral_history_1.getResolutionDisplayName)(topPattern.bestFix).toLowerCase();
86
- console.log(chalk_1.default.bold.cyan(' RECOMMENDATION'));
79
+ const fixName = getResolutionDisplayName(topPattern.bestFix).toLowerCase();
80
+ console.log(chalk.bold.cyan(' RECOMMENDATION'));
87
81
  console.log('');
88
- console.log(chalk_1.default.white(` Your go-to fix for ${topPatternName} is ${fixName}.`));
82
+ console.log(chalk.white(` Your go-to fix for ${topPatternName} is ${fixName}.`));
89
83
  // Specific recommendations by fix type
90
84
  switch (topPattern.bestFix) {
91
85
  case 'TEST':
92
- console.log(chalk_1.default.gray(` Consider adding a tracer test for ${topComponents} before starting.`));
86
+ console.log(chalk.gray(` Consider adding a tracer test for ${topComponents} before starting.`));
93
87
  break;
94
88
  case 'BREAK':
95
- console.log(chalk_1.default.gray(` Set a timer to take breaks when working on ${topComponents}.`));
89
+ console.log(chalk.gray(` Set a timer to take breaks when working on ${topComponents}.`));
96
90
  break;
97
91
  case 'DOCS':
98
- console.log(chalk_1.default.gray(` Bookmark the docs for ${topComponents} for quick reference.`));
92
+ console.log(chalk.gray(` Bookmark the docs for ${topComponents} for quick reference.`));
99
93
  break;
100
94
  case 'HELP':
101
- console.log(chalk_1.default.gray(` Consider pairing on ${topComponents} tasks.`));
95
+ console.log(chalk.gray(` Consider pairing on ${topComponents} tasks.`));
102
96
  break;
103
97
  case 'ROLLBACK':
104
- console.log(chalk_1.default.gray(` Make smaller commits when working on ${topComponents}.`));
98
+ console.log(chalk.gray(` Make smaller commits when working on ${topComponents}.`));
105
99
  break;
106
100
  }
107
101
  }
108
102
  else {
109
- console.log(chalk_1.default.bold.cyan(' RECOMMENDATION'));
103
+ console.log(chalk.bold.cyan(' RECOMMENDATION'));
110
104
  console.log('');
111
- console.log(chalk_1.default.white(` No resolution data yet for ${topPatternName}.`));
112
- console.log(chalk_1.default.gray(` After your next spiral, try: test, break, docs, or ask for help.`));
105
+ console.log(chalk.white(` No resolution data yet for ${topPatternName}.`));
106
+ console.log(chalk.gray(` After your next spiral, try: test, break, docs, or ask for help.`));
113
107
  }
114
108
  console.log('');
115
109
  }
116
- console.log(chalk_1.default.cyan('═'.repeat(64)));
117
- console.log(chalk_1.default.gray(` Run with --days 90 for longer history, --format json for export`));
110
+ console.log(chalk.cyan('═'.repeat(64)));
111
+ console.log(chalk.gray(` Run with --days 90 for longer history, --format json for export`));
118
112
  console.log('');
119
113
  }
120
114
  //# sourceMappingURL=insights.js.map