@mesrai/cli 0.4.21

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 (629) hide show
  1. package/README.md +670 -0
  2. package/dist/agents/agent.interface.d.ts +41 -0
  3. package/dist/agents/agent.interface.d.ts.map +1 -0
  4. package/dist/agents/agent.interface.js +2 -0
  5. package/dist/agents/agent.interface.js.map +1 -0
  6. package/dist/agents/claude-code.agent.d.ts +14 -0
  7. package/dist/agents/claude-code.agent.d.ts.map +1 -0
  8. package/dist/agents/claude-code.agent.js +90 -0
  9. package/dist/agents/claude-code.agent.js.map +1 -0
  10. package/dist/agents/codex.agent.d.ts +14 -0
  11. package/dist/agents/codex.agent.d.ts.map +1 -0
  12. package/dist/agents/codex.agent.js +77 -0
  13. package/dist/agents/codex.agent.js.map +1 -0
  14. package/dist/agents/cursor.agent.d.ts +29 -0
  15. package/dist/agents/cursor.agent.d.ts.map +1 -0
  16. package/dist/agents/cursor.agent.js +85 -0
  17. package/dist/agents/cursor.agent.js.map +1 -0
  18. package/dist/cli.d.ts +4 -0
  19. package/dist/cli.d.ts.map +1 -0
  20. package/dist/cli.js +60 -0
  21. package/dist/cli.js.map +1 -0
  22. package/dist/commands/auth/index.d.ts +3 -0
  23. package/dist/commands/auth/index.d.ts.map +1 -0
  24. package/dist/commands/auth/index.js +37 -0
  25. package/dist/commands/auth/index.js.map +1 -0
  26. package/dist/commands/auth/login.d.ts +11 -0
  27. package/dist/commands/auth/login.d.ts.map +1 -0
  28. package/dist/commands/auth/login.js +158 -0
  29. package/dist/commands/auth/login.js.map +1 -0
  30. package/dist/commands/auth/logout.d.ts +2 -0
  31. package/dist/commands/auth/logout.d.ts.map +1 -0
  32. package/dist/commands/auth/logout.js +26 -0
  33. package/dist/commands/auth/logout.js.map +1 -0
  34. package/dist/commands/auth/status.d.ts +2 -0
  35. package/dist/commands/auth/status.d.ts.map +1 -0
  36. package/dist/commands/auth/status.js +82 -0
  37. package/dist/commands/auth/status.js.map +1 -0
  38. package/dist/commands/auth/team-key.d.ts +5 -0
  39. package/dist/commands/auth/team-key.d.ts.map +1 -0
  40. package/dist/commands/auth/team-key.js +112 -0
  41. package/dist/commands/auth/team-key.js.map +1 -0
  42. package/dist/commands/auth/token.d.ts +2 -0
  43. package/dist/commands/auth/token.d.ts.map +1 -0
  44. package/dist/commands/auth/token.js +33 -0
  45. package/dist/commands/auth/token.js.map +1 -0
  46. package/dist/commands/config.d.ts +5 -0
  47. package/dist/commands/config.d.ts.map +1 -0
  48. package/dist/commands/config.js +26 -0
  49. package/dist/commands/config.js.map +1 -0
  50. package/dist/commands/diff.d.ts +3 -0
  51. package/dist/commands/diff.d.ts.map +1 -0
  52. package/dist/commands/diff.js +23 -0
  53. package/dist/commands/diff.js.map +1 -0
  54. package/dist/commands/hook/index.d.ts +3 -0
  55. package/dist/commands/hook/index.d.ts.map +1 -0
  56. package/dist/commands/hook/index.js +24 -0
  57. package/dist/commands/hook/index.js.map +1 -0
  58. package/dist/commands/hook/install.d.ts +11 -0
  59. package/dist/commands/hook/install.d.ts.map +1 -0
  60. package/dist/commands/hook/install.js +149 -0
  61. package/dist/commands/hook/install.js.map +1 -0
  62. package/dist/commands/hook/status.d.ts +2 -0
  63. package/dist/commands/hook/status.d.ts.map +1 -0
  64. package/dist/commands/hook/status.js +36 -0
  65. package/dist/commands/hook/status.js.map +1 -0
  66. package/dist/commands/hook/uninstall.d.ts +5 -0
  67. package/dist/commands/hook/uninstall.d.ts.map +1 -0
  68. package/dist/commands/hook/uninstall.js +66 -0
  69. package/dist/commands/hook/uninstall.js.map +1 -0
  70. package/dist/commands/memory/capture.d.ts +8 -0
  71. package/dist/commands/memory/capture.d.ts.map +1 -0
  72. package/dist/commands/memory/capture.js +124 -0
  73. package/dist/commands/memory/capture.js.map +1 -0
  74. package/dist/commands/memory/disable.d.ts +5 -0
  75. package/dist/commands/memory/disable.d.ts.map +1 -0
  76. package/dist/commands/memory/disable.js +67 -0
  77. package/dist/commands/memory/disable.js.map +1 -0
  78. package/dist/commands/memory/enable.d.ts +7 -0
  79. package/dist/commands/memory/enable.d.ts.map +1 -0
  80. package/dist/commands/memory/enable.js +74 -0
  81. package/dist/commands/memory/enable.js.map +1 -0
  82. package/dist/commands/memory/hooks.d.ts +31 -0
  83. package/dist/commands/memory/hooks.d.ts.map +1 -0
  84. package/dist/commands/memory/hooks.js +283 -0
  85. package/dist/commands/memory/hooks.js.map +1 -0
  86. package/dist/commands/memory/index.d.ts +3 -0
  87. package/dist/commands/memory/index.d.ts.map +1 -0
  88. package/dist/commands/memory/index.js +36 -0
  89. package/dist/commands/memory/index.js.map +1 -0
  90. package/dist/commands/memory/session-hooks/claude-code.d.ts +2 -0
  91. package/dist/commands/memory/session-hooks/claude-code.d.ts.map +1 -0
  92. package/dist/commands/memory/session-hooks/claude-code.js +24 -0
  93. package/dist/commands/memory/session-hooks/claude-code.js.map +1 -0
  94. package/dist/commands/memory/session-hooks/codex.d.ts +2 -0
  95. package/dist/commands/memory/session-hooks/codex.d.ts.map +1 -0
  96. package/dist/commands/memory/session-hooks/codex.js +16 -0
  97. package/dist/commands/memory/session-hooks/codex.js.map +1 -0
  98. package/dist/commands/memory/session-hooks/cursor.d.ts +2 -0
  99. package/dist/commands/memory/session-hooks/cursor.d.ts.map +1 -0
  100. package/dist/commands/memory/session-hooks/cursor.js +20 -0
  101. package/dist/commands/memory/session-hooks/cursor.js.map +1 -0
  102. package/dist/commands/memory/session-hooks/index.d.ts +3 -0
  103. package/dist/commands/memory/session-hooks/index.d.ts.map +1 -0
  104. package/dist/commands/memory/session-hooks/index.js +21 -0
  105. package/dist/commands/memory/session-hooks/index.js.map +1 -0
  106. package/dist/commands/memory/session-hooks/shared.d.ts +7 -0
  107. package/dist/commands/memory/session-hooks/shared.d.ts.map +1 -0
  108. package/dist/commands/memory/session-hooks/shared.js +52 -0
  109. package/dist/commands/memory/session-hooks/shared.js.map +1 -0
  110. package/dist/commands/memory/session-hooks-install-codex.d.ts +19 -0
  111. package/dist/commands/memory/session-hooks-install-codex.d.ts.map +1 -0
  112. package/dist/commands/memory/session-hooks-install-codex.js +91 -0
  113. package/dist/commands/memory/session-hooks-install-codex.js.map +1 -0
  114. package/dist/commands/memory/session-hooks-install-cursor.d.ts +9 -0
  115. package/dist/commands/memory/session-hooks-install-cursor.d.ts.map +1 -0
  116. package/dist/commands/memory/session-hooks-install-cursor.js +119 -0
  117. package/dist/commands/memory/session-hooks-install-cursor.js.map +1 -0
  118. package/dist/commands/memory/session-hooks-install.d.ts +9 -0
  119. package/dist/commands/memory/session-hooks-install.d.ts.map +1 -0
  120. package/dist/commands/memory/session-hooks-install.js +173 -0
  121. package/dist/commands/memory/session-hooks-install.js.map +1 -0
  122. package/dist/commands/pr.d.ts +2 -0
  123. package/dist/commands/pr.d.ts.map +1 -0
  124. package/dist/commands/pr.js +2 -0
  125. package/dist/commands/pr.js.map +1 -0
  126. package/dist/commands/review.d.ts +2 -0
  127. package/dist/commands/review.d.ts.map +1 -0
  128. package/dist/commands/review.js +2 -0
  129. package/dist/commands/review.js.map +1 -0
  130. package/dist/commands/rules.d.ts +31 -0
  131. package/dist/commands/rules.d.ts.map +1 -0
  132. package/dist/commands/rules.js +159 -0
  133. package/dist/commands/rules.js.map +1 -0
  134. package/dist/commands/schema.d.ts +3 -0
  135. package/dist/commands/schema.d.ts.map +1 -0
  136. package/dist/commands/schema.js +62 -0
  137. package/dist/commands/schema.js.map +1 -0
  138. package/dist/commands/skills.d.ts +3 -0
  139. package/dist/commands/skills.d.ts.map +1 -0
  140. package/dist/commands/skills.js +85 -0
  141. package/dist/commands/skills.js.map +1 -0
  142. package/dist/commands/status.d.ts +3 -0
  143. package/dist/commands/status.d.ts.map +1 -0
  144. package/dist/commands/status.js +99 -0
  145. package/dist/commands/status.js.map +1 -0
  146. package/dist/commands/subscribe.d.ts +4 -0
  147. package/dist/commands/subscribe.d.ts.map +1 -0
  148. package/dist/commands/subscribe.js +25 -0
  149. package/dist/commands/subscribe.js.map +1 -0
  150. package/dist/commands/update.d.ts +10 -0
  151. package/dist/commands/update.d.ts.map +1 -0
  152. package/dist/commands/update.js +112 -0
  153. package/dist/commands/update.js.map +1 -0
  154. package/dist/constants.d.ts +3 -0
  155. package/dist/constants.d.ts.map +1 -0
  156. package/dist/constants.js +6 -0
  157. package/dist/constants.js.map +1 -0
  158. package/dist/features/centralized-config/actions.d.ts +20 -0
  159. package/dist/features/centralized-config/actions.d.ts.map +1 -0
  160. package/dist/features/centralized-config/actions.js +114 -0
  161. package/dist/features/centralized-config/actions.js.map +1 -0
  162. package/dist/features/centralized-config/command.d.ts +4 -0
  163. package/dist/features/centralized-config/command.d.ts.map +1 -0
  164. package/dist/features/centralized-config/command.js +43 -0
  165. package/dist/features/centralized-config/command.js.map +1 -0
  166. package/dist/features/pr/command.d.ts +4 -0
  167. package/dist/features/pr/command.d.ts.map +1 -0
  168. package/dist/features/pr/command.js +222 -0
  169. package/dist/features/pr/command.js.map +1 -0
  170. package/dist/features/repo-config/actions.d.ts +33 -0
  171. package/dist/features/repo-config/actions.d.ts.map +1 -0
  172. package/dist/features/repo-config/actions.js +271 -0
  173. package/dist/features/repo-config/actions.js.map +1 -0
  174. package/dist/features/repo-config/command.d.ts +15 -0
  175. package/dist/features/repo-config/command.d.ts.map +1 -0
  176. package/dist/features/repo-config/command.js +135 -0
  177. package/dist/features/repo-config/command.js.map +1 -0
  178. package/dist/features/review/command.d.ts +4 -0
  179. package/dist/features/review/command.d.ts.map +1 -0
  180. package/dist/features/review/command.js +404 -0
  181. package/dist/features/review/command.js.map +1 -0
  182. package/dist/features/review/diff.d.ts +23 -0
  183. package/dist/features/review/diff.d.ts.map +1 -0
  184. package/dist/features/review/diff.js +47 -0
  185. package/dist/features/review/diff.js.map +1 -0
  186. package/dist/features/review/errors.d.ts +3 -0
  187. package/dist/features/review/errors.d.ts.map +1 -0
  188. package/dist/features/review/errors.js +26 -0
  189. package/dist/features/review/errors.js.map +1 -0
  190. package/dist/features/review/hunk-context.d.ts +25 -0
  191. package/dist/features/review/hunk-context.d.ts.map +1 -0
  192. package/dist/features/review/hunk-context.js +158 -0
  193. package/dist/features/review/hunk-context.js.map +1 -0
  194. package/dist/features/review/hunk-viewer.d.ts +25 -0
  195. package/dist/features/review/hunk-viewer.d.ts.map +1 -0
  196. package/dist/features/review/hunk-viewer.js +59 -0
  197. package/dist/features/review/hunk-viewer.js.map +1 -0
  198. package/dist/features/review/no-changes.d.ts +6 -0
  199. package/dist/features/review/no-changes.d.ts.map +1 -0
  200. package/dist/features/review/no-changes.js +31 -0
  201. package/dist/features/review/no-changes.js.map +1 -0
  202. package/dist/features/review/options.d.ts +7 -0
  203. package/dist/features/review/options.d.ts.map +1 -0
  204. package/dist/features/review/options.js +18 -0
  205. package/dist/features/review/options.js.map +1 -0
  206. package/dist/features/review/result.d.ts +40 -0
  207. package/dist/features/review/result.d.ts.map +1 -0
  208. package/dist/features/review/result.js +95 -0
  209. package/dist/features/review/result.js.map +1 -0
  210. package/dist/formatters/json.d.ts +7 -0
  211. package/dist/formatters/json.d.ts.map +1 -0
  212. package/dist/formatters/json.js +7 -0
  213. package/dist/formatters/json.js.map +1 -0
  214. package/dist/formatters/markdown.d.ts +7 -0
  215. package/dist/formatters/markdown.d.ts.map +1 -0
  216. package/dist/formatters/markdown.js +93 -0
  217. package/dist/formatters/markdown.js.map +1 -0
  218. package/dist/formatters/prompt.d.ts +12 -0
  219. package/dist/formatters/prompt.d.ts.map +1 -0
  220. package/dist/formatters/prompt.js +90 -0
  221. package/dist/formatters/prompt.js.map +1 -0
  222. package/dist/formatters/repo-config.d.ts +7 -0
  223. package/dist/formatters/repo-config.d.ts.map +1 -0
  224. package/dist/formatters/repo-config.js +99 -0
  225. package/dist/formatters/repo-config.js.map +1 -0
  226. package/dist/formatters/terminal.d.ts +7 -0
  227. package/dist/formatters/terminal.d.ts.map +1 -0
  228. package/dist/formatters/terminal.js +130 -0
  229. package/dist/formatters/terminal.js.map +1 -0
  230. package/dist/index.d.ts +3 -0
  231. package/dist/index.d.ts.map +1 -0
  232. package/dist/index.js +51 -0
  233. package/dist/index.js.map +1 -0
  234. package/dist/services/api/api-core.d.ts +27 -0
  235. package/dist/services/api/api-core.d.ts.map +1 -0
  236. package/dist/services/api/api-core.js +451 -0
  237. package/dist/services/api/api-core.js.map +1 -0
  238. package/dist/services/api/api.interface.d.ts +101 -0
  239. package/dist/services/api/api.interface.d.ts.map +1 -0
  240. package/dist/services/api/api.interface.js +2 -0
  241. package/dist/services/api/api.interface.js.map +1 -0
  242. package/dist/services/api/api.real.d.ts +19 -0
  243. package/dist/services/api/api.real.d.ts.map +1 -0
  244. package/dist/services/api/api.real.js +20 -0
  245. package/dist/services/api/api.real.js.map +1 -0
  246. package/dist/services/api/auth.api.d.ts +17 -0
  247. package/dist/services/api/auth.api.d.ts.map +1 -0
  248. package/dist/services/api/auth.api.js +73 -0
  249. package/dist/services/api/auth.api.js.map +1 -0
  250. package/dist/services/api/cli-auth.api.d.ts +29 -0
  251. package/dist/services/api/cli-auth.api.d.ts.map +1 -0
  252. package/dist/services/api/cli-auth.api.js +23 -0
  253. package/dist/services/api/cli-auth.api.js.map +1 -0
  254. package/dist/services/api/config.api.d.ts +34 -0
  255. package/dist/services/api/config.api.d.ts.map +1 -0
  256. package/dist/services/api/config.api.js +108 -0
  257. package/dist/services/api/config.api.js.map +1 -0
  258. package/dist/services/api/index.d.ts +4 -0
  259. package/dist/services/api/index.d.ts.map +1 -0
  260. package/dist/services/api/index.js +3 -0
  261. package/dist/services/api/index.js.map +1 -0
  262. package/dist/services/api/memory.api.d.ts +10 -0
  263. package/dist/services/api/memory.api.d.ts.map +1 -0
  264. package/dist/services/api/memory.api.js +19 -0
  265. package/dist/services/api/memory.api.js.map +1 -0
  266. package/dist/services/api/review.api.d.ts +27 -0
  267. package/dist/services/api/review.api.d.ts.map +1 -0
  268. package/dist/services/api/review.api.js +140 -0
  269. package/dist/services/api/review.api.js.map +1 -0
  270. package/dist/services/api/rules.api.d.ts +13 -0
  271. package/dist/services/api/rules.api.d.ts.map +1 -0
  272. package/dist/services/api/rules.api.js +41 -0
  273. package/dist/services/api/rules.api.js.map +1 -0
  274. package/dist/services/api/sessions.api.d.ts +6 -0
  275. package/dist/services/api/sessions.api.d.ts.map +1 -0
  276. package/dist/services/api/sessions.api.js +129 -0
  277. package/dist/services/api/sessions.api.js.map +1 -0
  278. package/dist/services/api/trial.api.d.ts +10 -0
  279. package/dist/services/api/trial.api.d.ts.map +1 -0
  280. package/dist/services/api/trial.api.js +11 -0
  281. package/dist/services/api/trial.api.js.map +1 -0
  282. package/dist/services/auth.service.d.ts +29 -0
  283. package/dist/services/auth.service.d.ts.map +1 -0
  284. package/dist/services/auth.service.js +190 -0
  285. package/dist/services/auth.service.js.map +1 -0
  286. package/dist/services/browser-login.service.d.ts +23 -0
  287. package/dist/services/browser-login.service.d.ts.map +1 -0
  288. package/dist/services/browser-login.service.js +187 -0
  289. package/dist/services/browser-login.service.js.map +1 -0
  290. package/dist/services/centralized-config.service.d.ts +24 -0
  291. package/dist/services/centralized-config.service.d.ts.map +1 -0
  292. package/dist/services/centralized-config.service.js +112 -0
  293. package/dist/services/centralized-config.service.js.map +1 -0
  294. package/dist/services/context.service.d.ts +25 -0
  295. package/dist/services/context.service.d.ts.map +1 -0
  296. package/dist/services/context.service.js +134 -0
  297. package/dist/services/context.service.js.map +1 -0
  298. package/dist/services/device-login.service.d.ts +23 -0
  299. package/dist/services/device-login.service.d.ts.map +1 -0
  300. package/dist/services/device-login.service.js +70 -0
  301. package/dist/services/device-login.service.js.map +1 -0
  302. package/dist/services/fix.service.d.ts +31 -0
  303. package/dist/services/fix.service.d.ts.map +1 -0
  304. package/dist/services/fix.service.js +121 -0
  305. package/dist/services/fix.service.js.map +1 -0
  306. package/dist/services/git-hooks.service.d.ts +20 -0
  307. package/dist/services/git-hooks.service.d.ts.map +1 -0
  308. package/dist/services/git-hooks.service.js +126 -0
  309. package/dist/services/git-hooks.service.js.map +1 -0
  310. package/dist/services/git.service.d.ts +44 -0
  311. package/dist/services/git.service.d.ts.map +1 -0
  312. package/dist/services/git.service.js +321 -0
  313. package/dist/services/git.service.js.map +1 -0
  314. package/dist/services/hook-logger.service.d.ts +18 -0
  315. package/dist/services/hook-logger.service.d.ts.map +1 -0
  316. package/dist/services/hook-logger.service.js +48 -0
  317. package/dist/services/hook-logger.service.js.map +1 -0
  318. package/dist/services/lifecycle-events.d.ts +49 -0
  319. package/dist/services/lifecycle-events.d.ts.map +1 -0
  320. package/dist/services/lifecycle-events.js +86 -0
  321. package/dist/services/lifecycle-events.js.map +1 -0
  322. package/dist/services/lifecycle-git-context.d.ts +15 -0
  323. package/dist/services/lifecycle-git-context.d.ts.map +1 -0
  324. package/dist/services/lifecycle-git-context.js +23 -0
  325. package/dist/services/lifecycle-git-context.js.map +1 -0
  326. package/dist/services/lifecycle-local-turn-state.d.ts +14 -0
  327. package/dist/services/lifecycle-local-turn-state.d.ts.map +1 -0
  328. package/dist/services/lifecycle-local-turn-state.js +18 -0
  329. package/dist/services/lifecycle-local-turn-state.js.map +1 -0
  330. package/dist/services/lifecycle-transcript.d.ts +25 -0
  331. package/dist/services/lifecycle-transcript.d.ts.map +1 -0
  332. package/dist/services/lifecycle-transcript.js +29 -0
  333. package/dist/services/lifecycle-transcript.js.map +1 -0
  334. package/dist/services/lifecycle-turn-data.d.ts +11 -0
  335. package/dist/services/lifecycle-turn-data.d.ts.map +1 -0
  336. package/dist/services/lifecycle-turn-data.js +23 -0
  337. package/dist/services/lifecycle-turn-data.js.map +1 -0
  338. package/dist/services/lifecycle.service.d.ts +14 -0
  339. package/dist/services/lifecycle.service.d.ts.map +1 -0
  340. package/dist/services/lifecycle.service.js +276 -0
  341. package/dist/services/lifecycle.service.js.map +1 -0
  342. package/dist/services/repo-config.service.d.ts +22 -0
  343. package/dist/services/repo-config.service.d.ts.map +1 -0
  344. package/dist/services/repo-config.service.js +81 -0
  345. package/dist/services/repo-config.service.js.map +1 -0
  346. package/dist/services/repo-settings-wizard.service.d.ts +19 -0
  347. package/dist/services/repo-settings-wizard.service.d.ts.map +1 -0
  348. package/dist/services/repo-settings-wizard.service.js +260 -0
  349. package/dist/services/repo-settings-wizard.service.js.map +1 -0
  350. package/dist/services/repo-settings.service.d.ts +30 -0
  351. package/dist/services/repo-settings.service.d.ts.map +1 -0
  352. package/dist/services/repo-settings.service.js +99 -0
  353. package/dist/services/repo-settings.service.js.map +1 -0
  354. package/dist/services/review-auth-fallback.d.ts +7 -0
  355. package/dist/services/review-auth-fallback.d.ts.map +1 -0
  356. package/dist/services/review-auth-fallback.js +25 -0
  357. package/dist/services/review-auth-fallback.js.map +1 -0
  358. package/dist/services/review-config-builder.d.ts +19 -0
  359. package/dist/services/review-config-builder.d.ts.map +1 -0
  360. package/dist/services/review-config-builder.js +29 -0
  361. package/dist/services/review-config-builder.js.map +1 -0
  362. package/dist/services/review-file-filter.d.ts +3 -0
  363. package/dist/services/review-file-filter.d.ts.map +1 -0
  364. package/dist/services/review-file-filter.js +35 -0
  365. package/dist/services/review-file-filter.js.map +1 -0
  366. package/dist/services/review-normalizer.d.ts +6 -0
  367. package/dist/services/review-normalizer.d.ts.map +1 -0
  368. package/dist/services/review-normalizer.js +62 -0
  369. package/dist/services/review-normalizer.js.map +1 -0
  370. package/dist/services/review-verbose.d.ts +28 -0
  371. package/dist/services/review-verbose.d.ts.map +1 -0
  372. package/dist/services/review-verbose.js +52 -0
  373. package/dist/services/review-verbose.js.map +1 -0
  374. package/dist/services/review.service.d.ts +38 -0
  375. package/dist/services/review.service.d.ts.map +1 -0
  376. package/dist/services/review.service.js +152 -0
  377. package/dist/services/review.service.js.map +1 -0
  378. package/dist/services/rules.service.d.ts +16 -0
  379. package/dist/services/rules.service.d.ts.map +1 -0
  380. package/dist/services/rules.service.js +98 -0
  381. package/dist/services/rules.service.js.map +1 -0
  382. package/dist/services/session-local.service.d.ts +25 -0
  383. package/dist/services/session-local.service.d.ts.map +1 -0
  384. package/dist/services/session-local.service.js +79 -0
  385. package/dist/services/session-local.service.js.map +1 -0
  386. package/dist/services/transcript-parser.service.d.ts +10 -0
  387. package/dist/services/transcript-parser.service.d.ts.map +1 -0
  388. package/dist/services/transcript-parser.service.js +127 -0
  389. package/dist/services/transcript-parser.service.js.map +1 -0
  390. package/dist/services/transcript.service.d.ts +33 -0
  391. package/dist/services/transcript.service.d.ts.map +1 -0
  392. package/dist/services/transcript.service.js +264 -0
  393. package/dist/services/transcript.service.js.map +1 -0
  394. package/dist/types/auth.d.ts +18 -0
  395. package/dist/types/auth.d.ts.map +1 -0
  396. package/dist/types/auth.js +2 -0
  397. package/dist/types/auth.js.map +1 -0
  398. package/dist/types/cli.d.ts +41 -0
  399. package/dist/types/cli.d.ts.map +1 -0
  400. package/dist/types/cli.js +2 -0
  401. package/dist/types/cli.js.map +1 -0
  402. package/dist/types/command-output.d.ts +29 -0
  403. package/dist/types/command-output.d.ts.map +1 -0
  404. package/dist/types/command-output.js +2 -0
  405. package/dist/types/command-output.js.map +1 -0
  406. package/dist/types/config.d.ts +68 -0
  407. package/dist/types/config.d.ts.map +1 -0
  408. package/dist/types/config.js +2 -0
  409. package/dist/types/config.js.map +1 -0
  410. package/dist/types/errors.d.ts +8 -0
  411. package/dist/types/errors.d.ts.map +1 -0
  412. package/dist/types/errors.js +15 -0
  413. package/dist/types/errors.js.map +1 -0
  414. package/dist/types/index.d.ts +10 -0
  415. package/dist/types/index.d.ts.map +1 -0
  416. package/dist/types/index.js +2 -0
  417. package/dist/types/index.js.map +1 -0
  418. package/dist/types/memory.d.ts +39 -0
  419. package/dist/types/memory.d.ts.map +1 -0
  420. package/dist/types/memory.js +2 -0
  421. package/dist/types/memory.js.map +1 -0
  422. package/dist/types/repo-config.d.ts +24 -0
  423. package/dist/types/repo-config.d.ts.map +1 -0
  424. package/dist/types/repo-config.js +2 -0
  425. package/dist/types/repo-config.js.map +1 -0
  426. package/dist/types/review.d.ts +112 -0
  427. package/dist/types/review.d.ts.map +1 -0
  428. package/dist/types/review.js +2 -0
  429. package/dist/types/review.js.map +1 -0
  430. package/dist/types/rules.d.ts +42 -0
  431. package/dist/types/rules.d.ts.map +1 -0
  432. package/dist/types/rules.js +7 -0
  433. package/dist/types/rules.js.map +1 -0
  434. package/dist/types/session-events.d.ts +48 -0
  435. package/dist/types/session-events.d.ts.map +1 -0
  436. package/dist/types/session-events.js +2 -0
  437. package/dist/types/session-events.js.map +1 -0
  438. package/dist/types/session.d.ts +150 -0
  439. package/dist/types/session.d.ts.map +1 -0
  440. package/dist/types/session.js +9 -0
  441. package/dist/types/session.js.map +1 -0
  442. package/dist/types/trial.d.ts +10 -0
  443. package/dist/types/trial.d.ts.map +1 -0
  444. package/dist/types/trial.js +2 -0
  445. package/dist/types/trial.js.map +1 -0
  446. package/dist/ui/interactive-formatters.d.ts +6 -0
  447. package/dist/ui/interactive-formatters.d.ts.map +1 -0
  448. package/dist/ui/interactive-formatters.js +61 -0
  449. package/dist/ui/interactive-formatters.js.map +1 -0
  450. package/dist/ui/interactive-helpers.d.ts +20 -0
  451. package/dist/ui/interactive-helpers.d.ts.map +1 -0
  452. package/dist/ui/interactive-helpers.js +82 -0
  453. package/dist/ui/interactive-helpers.js.map +1 -0
  454. package/dist/ui/interactive-renderers.d.ts +6 -0
  455. package/dist/ui/interactive-renderers.d.ts.map +1 -0
  456. package/dist/ui/interactive-renderers.js +82 -0
  457. package/dist/ui/interactive-renderers.js.map +1 -0
  458. package/dist/ui/interactive.d.ts +25 -0
  459. package/dist/ui/interactive.d.ts.map +1 -0
  460. package/dist/ui/interactive.js +228 -0
  461. package/dist/ui/interactive.js.map +1 -0
  462. package/dist/utils/auth-mode.d.ts +7 -0
  463. package/dist/utils/auth-mode.d.ts.map +1 -0
  464. package/dist/utils/auth-mode.js +42 -0
  465. package/dist/utils/auth-mode.js.map +1 -0
  466. package/dist/utils/banner.d.ts +2 -0
  467. package/dist/utils/banner.d.ts.map +1 -0
  468. package/dist/utils/banner.js +180 -0
  469. package/dist/utils/banner.js.map +1 -0
  470. package/dist/utils/cli-exit.d.ts +13 -0
  471. package/dist/utils/cli-exit.d.ts.map +1 -0
  472. package/dist/utils/cli-exit.js +29 -0
  473. package/dist/utils/cli-exit.js.map +1 -0
  474. package/dist/utils/clipboard.d.ts +2 -0
  475. package/dist/utils/clipboard.d.ts.map +1 -0
  476. package/dist/utils/clipboard.js +11 -0
  477. package/dist/utils/clipboard.js.map +1 -0
  478. package/dist/utils/command-context.d.ts +12 -0
  479. package/dist/utils/command-context.d.ts.map +1 -0
  480. package/dist/utils/command-context.js +15 -0
  481. package/dist/utils/command-context.js.map +1 -0
  482. package/dist/utils/command-errors.d.ts +12 -0
  483. package/dist/utils/command-errors.d.ts.map +1 -0
  484. package/dist/utils/command-errors.js +112 -0
  485. package/dist/utils/command-errors.js.map +1 -0
  486. package/dist/utils/command-output.d.ts +5 -0
  487. package/dist/utils/command-output.d.ts.map +1 -0
  488. package/dist/utils/command-output.js +46 -0
  489. package/dist/utils/command-output.js.map +1 -0
  490. package/dist/utils/command-schema.d.ts +29 -0
  491. package/dist/utils/command-schema.d.ts.map +1 -0
  492. package/dist/utils/command-schema.js +74 -0
  493. package/dist/utils/command-schema.js.map +1 -0
  494. package/dist/utils/commander-errors.d.ts +8 -0
  495. package/dist/utils/commander-errors.d.ts.map +1 -0
  496. package/dist/utils/commander-errors.js +79 -0
  497. package/dist/utils/commander-errors.js.map +1 -0
  498. package/dist/utils/commander-setup.d.ts +3 -0
  499. package/dist/utils/commander-setup.d.ts.map +1 -0
  500. package/dist/utils/commander-setup.js +10 -0
  501. package/dist/utils/commander-setup.js.map +1 -0
  502. package/dist/utils/config.d.ts +13 -0
  503. package/dist/utils/config.d.ts.map +1 -0
  504. package/dist/utils/config.js +71 -0
  505. package/dist/utils/config.js.map +1 -0
  506. package/dist/utils/credentials.d.ts +6 -0
  507. package/dist/utils/credentials.d.ts.map +1 -0
  508. package/dist/utils/credentials.js +64 -0
  509. package/dist/utils/credentials.js.map +1 -0
  510. package/dist/utils/device.d.ts +7 -0
  511. package/dist/utils/device.d.ts.map +1 -0
  512. package/dist/utils/device.js +133 -0
  513. package/dist/utils/device.js.map +1 -0
  514. package/dist/utils/field-mask.d.ts +2 -0
  515. package/dist/utils/field-mask.d.ts.map +1 -0
  516. package/dist/utils/field-mask.js +93 -0
  517. package/dist/utils/field-mask.js.map +1 -0
  518. package/dist/utils/git-diff.d.ts +5 -0
  519. package/dist/utils/git-diff.d.ts.map +1 -0
  520. package/dist/utils/git-diff.js +14 -0
  521. package/dist/utils/git-diff.js.map +1 -0
  522. package/dist/utils/git-file-reader.d.ts +22 -0
  523. package/dist/utils/git-file-reader.d.ts.map +1 -0
  524. package/dist/utils/git-file-reader.js +45 -0
  525. package/dist/utils/git-file-reader.js.map +1 -0
  526. package/dist/utils/git-file-selection.d.ts +14 -0
  527. package/dist/utils/git-file-selection.d.ts.map +1 -0
  528. package/dist/utils/git-file-selection.js +20 -0
  529. package/dist/utils/git-file-selection.js.map +1 -0
  530. package/dist/utils/git-file-targets.d.ts +4 -0
  531. package/dist/utils/git-file-targets.d.ts.map +1 -0
  532. package/dist/utils/git-file-targets.js +11 -0
  533. package/dist/utils/git-file-targets.js.map +1 -0
  534. package/dist/utils/git-remote.d.ts +7 -0
  535. package/dist/utils/git-remote.d.ts.map +1 -0
  536. package/dist/utils/git-remote.js +94 -0
  537. package/dist/utils/git-remote.js.map +1 -0
  538. package/dist/utils/git-status.d.ts +7 -0
  539. package/dist/utils/git-status.d.ts.map +1 -0
  540. package/dist/utils/git-status.js +36 -0
  541. package/dist/utils/git-status.js.map +1 -0
  542. package/dist/utils/hunk.d.ts +15 -0
  543. package/dist/utils/hunk.d.ts.map +1 -0
  544. package/dist/utils/hunk.js +44 -0
  545. package/dist/utils/hunk.js.map +1 -0
  546. package/dist/utils/input-validation.d.ts +11 -0
  547. package/dist/utils/input-validation.d.ts.map +1 -0
  548. package/dist/utils/input-validation.js +73 -0
  549. package/dist/utils/input-validation.js.map +1 -0
  550. package/dist/utils/install-instructions.d.ts +6 -0
  551. package/dist/utils/install-instructions.d.ts.map +1 -0
  552. package/dist/utils/install-instructions.js +18 -0
  553. package/dist/utils/install-instructions.js.map +1 -0
  554. package/dist/utils/logger.d.ts +13 -0
  555. package/dist/utils/logger.d.ts.map +1 -0
  556. package/dist/utils/logger.js +48 -0
  557. package/dist/utils/logger.js.map +1 -0
  558. package/dist/utils/rate-limit.d.ts +5 -0
  559. package/dist/utils/rate-limit.d.ts.map +1 -0
  560. package/dist/utils/rate-limit.js +56 -0
  561. package/dist/utils/rate-limit.js.map +1 -0
  562. package/dist/utils/recent-activity.d.ts +9 -0
  563. package/dist/utils/recent-activity.d.ts.map +1 -0
  564. package/dist/utils/recent-activity.js +139 -0
  565. package/dist/utils/recent-activity.js.map +1 -0
  566. package/dist/utils/repo-settings-dashboard.d.ts +6 -0
  567. package/dist/utils/repo-settings-dashboard.d.ts.map +1 -0
  568. package/dist/utils/repo-settings-dashboard.js +36 -0
  569. package/dist/utils/repo-settings-dashboard.js.map +1 -0
  570. package/dist/utils/repo-settings-patterns.d.ts +7 -0
  571. package/dist/utils/repo-settings-patterns.d.ts.map +1 -0
  572. package/dist/utils/repo-settings-patterns.js +66 -0
  573. package/dist/utils/repo-settings-patterns.js.map +1 -0
  574. package/dist/utils/repo-settings-schema.d.ts +6 -0
  575. package/dist/utils/repo-settings-schema.d.ts.map +1 -0
  576. package/dist/utils/repo-settings-schema.js +70 -0
  577. package/dist/utils/repo-settings-schema.js.map +1 -0
  578. package/dist/utils/review-output.d.ts +4 -0
  579. package/dist/utils/review-output.d.ts.map +1 -0
  580. package/dist/utils/review-output.js +18 -0
  581. package/dist/utils/review-output.js.map +1 -0
  582. package/dist/utils/skills-sync-manifest.d.ts +5 -0
  583. package/dist/utils/skills-sync-manifest.d.ts.map +1 -0
  584. package/dist/utils/skills-sync-manifest.js +39 -0
  585. package/dist/utils/skills-sync-manifest.js.map +1 -0
  586. package/dist/utils/skills-sync-paths.d.ts +5 -0
  587. package/dist/utils/skills-sync-paths.d.ts.map +1 -0
  588. package/dist/utils/skills-sync-paths.js +60 -0
  589. package/dist/utils/skills-sync-paths.js.map +1 -0
  590. package/dist/utils/skills-sync-targets.d.ts +3 -0
  591. package/dist/utils/skills-sync-targets.d.ts.map +1 -0
  592. package/dist/utils/skills-sync-targets.js +218 -0
  593. package/dist/utils/skills-sync-targets.js.map +1 -0
  594. package/dist/utils/skills-sync.d.ts +39 -0
  595. package/dist/utils/skills-sync.d.ts.map +1 -0
  596. package/dist/utils/skills-sync.js +200 -0
  597. package/dist/utils/skills-sync.js.map +1 -0
  598. package/dist/utils/skills.d.ts +13 -0
  599. package/dist/utils/skills.d.ts.map +1 -0
  600. package/dist/utils/skills.js +117 -0
  601. package/dist/utils/skills.js.map +1 -0
  602. package/dist/utils/stream-input.d.ts +13 -0
  603. package/dist/utils/stream-input.d.ts.map +1 -0
  604. package/dist/utils/stream-input.js +36 -0
  605. package/dist/utils/stream-input.js.map +1 -0
  606. package/dist/utils/team-key-auth.d.ts +5 -0
  607. package/dist/utils/team-key-auth.d.ts.map +1 -0
  608. package/dist/utils/team-key-auth.js +14 -0
  609. package/dist/utils/team-key-auth.js.map +1 -0
  610. package/dist/utils/update-check.d.ts +2 -0
  611. package/dist/utils/update-check.d.ts.map +1 -0
  612. package/dist/utils/update-check.js +30 -0
  613. package/dist/utils/update-check.js.map +1 -0
  614. package/package.json +90 -0
  615. package/skills/README.md +64 -0
  616. package/skills/hunk-review/SKILL.md +154 -0
  617. package/skills/mesrai-business-rules-validation/SKILL.md +65 -0
  618. package/skills/mesrai-centralized-config/SKILL.md +102 -0
  619. package/skills/mesrai-mesrai-rules/SKILL.md +103 -0
  620. package/skills/mesrai-mesrai-rules/instructions/create-mesrai-rule.md +56 -0
  621. package/skills/mesrai-mesrai-rules/instructions/update-mesrai-rule.md +63 -0
  622. package/skills/mesrai-mesrai-rules/instructions/view-mesrai-rules.md +65 -0
  623. package/skills/mesrai-mesrai-rules/rules/create-mesrai-rule.md +48 -0
  624. package/skills/mesrai-mesrai-rules/rules/update-mesrai-rule.md +55 -0
  625. package/skills/mesrai-mesrai-rules/rules/view-mesrai-rules.md +56 -0
  626. package/skills/mesrai-pr-suggestions-resolver/SKILL.md +61 -0
  627. package/skills/mesrai-review/SKILL.md +53 -0
  628. package/skills/mesrai-review-dev/SKILL.md +55 -0
  629. package/skills/mesrai-review-dev/scripts/run-local-cli.sh +49 -0
@@ -0,0 +1,81 @@
1
+ import { api } from './api/index.js';
2
+ import { gitService } from './git.service.js';
3
+ import { CommandError } from '../utils/command-errors.js';
4
+ import { resolveTeamKeyAccess } from '../utils/team-key-auth.js';
5
+ class RepoConfigService {
6
+ async addRepository(target) {
7
+ const config = await this.loadTeamKeyConfig();
8
+ const repositoryRef = await this.resolveRepositoryReference(target);
9
+ const availableRepositories = await api.config.getAvailableRepositories(config.teamKey);
10
+ const matchedRepository = this.findRepositoryMatch(repositoryRef, availableRepositories);
11
+ if (!matchedRepository) {
12
+ throw new CommandError('INVALID_INPUT', `Repository '${repositoryRef}' was not found in the repositories available to this team. Check the git remote and Mesrai provider connection.`);
13
+ }
14
+ const repositoryFullName = this.toRepositoryFullName(matchedRepository);
15
+ if (matchedRepository.selected) {
16
+ return {
17
+ status: 'already-added',
18
+ repositoryFullName,
19
+ };
20
+ }
21
+ const response = await api.config.addRepositories(config.teamKey, [matchedRepository.id]);
22
+ if (response.message === 'Repositories already added' ||
23
+ response.alreadyAddedRepositoryIds?.includes(matchedRepository.id)) {
24
+ return {
25
+ status: 'already-added',
26
+ repositoryFullName,
27
+ };
28
+ }
29
+ return {
30
+ status: 'added',
31
+ repositoryFullName,
32
+ };
33
+ }
34
+ async listRepositories() {
35
+ const config = await this.loadTeamKeyConfig();
36
+ const repositories = await api.config.getSelectedRepositories(config.teamKey);
37
+ return repositories.map((repository) => ({
38
+ id: repository.id,
39
+ fullName: this.toRepositoryFullName(repository),
40
+ }));
41
+ }
42
+ async loadTeamKeyConfig() {
43
+ return resolveTeamKeyAccess('Repository configuration requires team-key auth. Run: mesrai auth team-key --key <your-key>.');
44
+ }
45
+ async resolveRepositoryReference(target) {
46
+ if (target !== '.') {
47
+ const normalized = target.trim().replace(/^\/+|\/+$/g, '');
48
+ if (!normalized || !normalized.includes('/')) {
49
+ throw new CommandError('INVALID_INPUT', "Pass '.' for the current repository or use 'owner/repo'.");
50
+ }
51
+ return normalized.toLowerCase();
52
+ }
53
+ const isRepo = await gitService.isGitRepository();
54
+ if (!isRepo) {
55
+ throw new CommandError('NOT_IN_GIT_REPO', 'Current directory is not a git repository. Run this command inside a repository or pass owner/repo explicitly.');
56
+ }
57
+ const remoteUrl = await gitService.getRemoteUrl();
58
+ if (!remoteUrl) {
59
+ throw new CommandError('INVALID_INPUT', "No git remote found for this repository. Configure 'origin' or pass owner/repo explicitly.");
60
+ }
61
+ const orgRepo = await gitService.extractOrgRepo();
62
+ if (!orgRepo) {
63
+ throw new CommandError('INVALID_INPUT', `Could not resolve repository from git remote '${remoteUrl}'. Pass owner/repo explicitly.`);
64
+ }
65
+ return `${orgRepo.org}/${orgRepo.repo}`.toLowerCase();
66
+ }
67
+ findRepositoryMatch(repositoryRef, repositories) {
68
+ const normalizedTarget = repositoryRef.toLowerCase();
69
+ return repositories.find((repository) => {
70
+ const fullName = this.toRepositoryFullName(repository).toLowerCase();
71
+ return fullName === normalizedTarget;
72
+ });
73
+ }
74
+ toRepositoryFullName(repository) {
75
+ return (repository.full_name ||
76
+ `${repository.organizationName}/${repository.name}`);
77
+ }
78
+ }
79
+ export { RepoConfigService };
80
+ export const repoConfigService = new RepoConfigService();
81
+ //# sourceMappingURL=repo-config.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-config.service.js","sourceRoot":"","sources":["../../src/services/repo-config.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { RepositorySettings } from '../types/repo-config.js';
2
+ type CollectSettingsOptions = {
3
+ yes?: boolean;
4
+ writeLine?: (line: string) => void;
5
+ };
6
+ type SettingsSection = 'all' | 'general' | 'patterns';
7
+ declare class RepositorySettingsWizardService {
8
+ collectSettings(current: RepositorySettings, options?: CollectSettingsOptions, section?: SettingsSection): Promise<RepositorySettings>;
9
+ collectGeneralSettings(current: RepositorySettings, options?: CollectSettingsOptions): Promise<RepositorySettings>;
10
+ collectPatternSettings(current: RepositorySettings, options?: CollectSettingsOptions): Promise<RepositorySettings>;
11
+ private collectIgnoredFilePatterns;
12
+ private collectPatternList;
13
+ private shouldUseSelectedPatterns;
14
+ private confirmPatternDraft;
15
+ private selectPatternMode;
16
+ }
17
+ export { RepositorySettingsWizardService };
18
+ export declare const repositorySettingsWizardService: RepositorySettingsWizardService;
19
+ //# sourceMappingURL=repo-settings-wizard.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-settings-wizard.service.d.ts","sourceRoot":"","sources":["../../src/services/repo-settings-wizard.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAIlE,KAAK,sBAAsB,GAAG;IAC1B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC,CAAC;AAEF,KAAK,eAAe,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC;AAoDtD,cAAM,+BAA+B;IAC3B,eAAe,CACjB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,GAAE,sBAA2B,EACpC,OAAO,GAAE,eAAuB,GACjC,OAAO,CAAC,kBAAkB,CAAC;IAiBxB,sBAAsB,CACxB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,GAAE,sBAA2B,GACrC,OAAO,CAAC,kBAAkB,CAAC;IAyDxB,sBAAsB,CACxB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,GAAE,sBAA2B,GACrC,OAAO,CAAC,kBAAkB,CAAC;YAsDhB,0BAA0B;YAqD1B,kBAAkB;YAsDlB,yBAAyB;YAazB,mBAAmB;YAgBnB,iBAAiB;CAiClC;AAED,OAAO,EAAE,+BAA+B,EAAE,CAAC;AAC3C,eAAO,MAAM,+BAA+B,iCACH,CAAC"}
@@ -0,0 +1,260 @@
1
+ import { checkbox, input, select } from '@inquirer/prompts';
2
+ import { formatRepositorySetupSection } from '../formatters/repo-config.js';
3
+ import { parseRepositoryPatternList } from '../utils/repo-settings-schema.js';
4
+ const RECOMMENDED_IGNORED_FILE_PATTERNS = [
5
+ 'yarn.lock',
6
+ 'package-lock.json',
7
+ 'package.json',
8
+ '.env',
9
+ '**/*.json',
10
+ ];
11
+ const COMMON_IGNORED_FILE_PATTERNS = [
12
+ ...RECOMMENDED_IGNORED_FILE_PATTERNS,
13
+ 'dist/**',
14
+ 'coverage/**',
15
+ '**/generated/**',
16
+ ];
17
+ const COMMON_BASE_BRANCH_PATTERNS = [
18
+ 'main',
19
+ 'develop',
20
+ 'release/*',
21
+ 'hotfix/*',
22
+ ];
23
+ const COMMON_IGNORED_TITLE_PATTERNS = [
24
+ 'wip*',
25
+ 'draft*',
26
+ 'chore(release)*',
27
+ 'release:*',
28
+ ];
29
+ function summarizePatterns(patterns) {
30
+ return patterns.length > 0 ? patterns.join(', ') : '(none)';
31
+ }
32
+ function summarizePatternOption(patterns, maxItems = 3) {
33
+ if (patterns.length === 0) {
34
+ return '(none)';
35
+ }
36
+ const visible = patterns.slice(0, maxItems);
37
+ const remaining = patterns.length - visible.length;
38
+ if (remaining <= 0) {
39
+ return visible.join(', ');
40
+ }
41
+ return `${visible.join(', ')} +${remaining} more`;
42
+ }
43
+ class RepositorySettingsWizardService {
44
+ async collectSettings(current, options = {}, section = 'all') {
45
+ if (options.yes) {
46
+ return current;
47
+ }
48
+ if (section === 'general') {
49
+ return this.collectGeneralSettings(current, options);
50
+ }
51
+ if (section === 'patterns') {
52
+ return this.collectPatternSettings(current, options);
53
+ }
54
+ const withGeneral = await this.collectGeneralSettings(current, options);
55
+ return this.collectPatternSettings(withGeneral, options);
56
+ }
57
+ async collectGeneralSettings(current, options = {}) {
58
+ const writeLine = options.writeLine ?? (() => { });
59
+ for (const line of formatRepositorySetupSection('General', 'Choose the review behaviors you want for this repository.')) {
60
+ writeLine(line);
61
+ }
62
+ writeLine('Mesrai automatically reviews pull requests when they are opened or updated.');
63
+ writeLine('When disabled, you can still trigger a review manually with @mesrai start-review.');
64
+ const reviewEnabled = await select({
65
+ message: 'Automated code review',
66
+ default: current.reviewEnabled,
67
+ choices: [
68
+ { name: 'Enabled', value: true },
69
+ { name: 'Disabled', value: false },
70
+ ],
71
+ });
72
+ writeLine('Automatically approves the pull request when the review finishes without issues.');
73
+ const autoApproveEnabled = await select({
74
+ message: 'Pull request approval',
75
+ default: current.autoApproveEnabled,
76
+ choices: [
77
+ { name: 'Enabled', value: true },
78
+ { name: 'Disabled', value: false },
79
+ ],
80
+ });
81
+ writeLine('Only suggestions at or above this severity will be posted.');
82
+ const requestChangesMinSeverity = await select({
83
+ message: 'Minimum severity level',
84
+ default: current.requestChangesMinSeverity,
85
+ choices: [
86
+ { name: 'Low', value: 'low' },
87
+ { name: 'Medium', value: 'medium' },
88
+ { name: 'High', value: 'high' },
89
+ { name: 'Critical', value: 'critical' },
90
+ ],
91
+ });
92
+ return {
93
+ ...current,
94
+ reviewEnabled,
95
+ autoApproveEnabled,
96
+ requestChangesMinSeverity: requestChangesMinSeverity,
97
+ };
98
+ }
99
+ async collectPatternSettings(current, options = {}) {
100
+ const writeLine = options.writeLine ?? (() => { });
101
+ for (const line of formatRepositorySetupSection('Patterns', 'Files and titles can use glob patterns. Branches accept branch names or expressions like release/*.')) {
102
+ writeLine(line);
103
+ }
104
+ writeLine('Files matching these glob patterns will be skipped during review.');
105
+ writeLine(`Current ignored files: ${summarizePatterns(current.ignoredFilePatterns)}`);
106
+ writeLine('Examples: yarn.lock, package-lock.json, .env, **/*.json');
107
+ const ignoredFilePatterns = await this.collectIgnoredFilePatterns(current.ignoredFilePatterns);
108
+ writeLine('Additional base branches that Mesrai should review against.');
109
+ writeLine(`Current base branches: ${summarizePatterns(current.baseBranchPatterns)}`);
110
+ writeLine('Examples: main, develop, release/*');
111
+ const baseBranchPatterns = await this.collectPatternList({
112
+ fieldLabel: 'Base branches',
113
+ customMessage: 'Base branches (comma-separated or one per line)',
114
+ current: current.baseBranchPatterns,
115
+ commonPatterns: COMMON_BASE_BRANCH_PATTERNS,
116
+ });
117
+ writeLine('Mesrai skips the review when the pull request title matches one of these patterns.');
118
+ writeLine(`Current ignored title patterns: ${summarizePatterns(current.ignoredTitlePatterns)}`);
119
+ writeLine('Case-insensitive. Examples: wip*, draft*, chore(release)*');
120
+ const ignoredTitlePatterns = await this.collectPatternList({
121
+ fieldLabel: 'Ignored title patterns',
122
+ customMessage: 'Ignored title patterns (comma-separated or one per line)',
123
+ current: current.ignoredTitlePatterns,
124
+ commonPatterns: COMMON_IGNORED_TITLE_PATTERNS,
125
+ });
126
+ return {
127
+ ...current,
128
+ ignoredFilePatterns,
129
+ baseBranchPatterns,
130
+ ignoredTitlePatterns,
131
+ };
132
+ }
133
+ async collectIgnoredFilePatterns(current) {
134
+ while (true) {
135
+ const mode = await this.selectPatternMode('Ignored files', current, COMMON_IGNORED_FILE_PATTERNS.length, true);
136
+ switch (mode) {
137
+ case 'recommended':
138
+ return [...RECOMMENDED_IGNORED_FILE_PATTERNS];
139
+ case 'common': {
140
+ const selected = await checkbox({
141
+ message: 'Choose the file patterns to ignore',
142
+ choices: COMMON_IGNORED_FILE_PATTERNS.map((pattern) => ({
143
+ name: pattern,
144
+ value: pattern,
145
+ checked: current.includes(pattern),
146
+ })),
147
+ });
148
+ if (await this.shouldUseSelectedPatterns()) {
149
+ return selected;
150
+ }
151
+ continue;
152
+ }
153
+ case 'custom':
154
+ {
155
+ const customPatterns = parseRepositoryPatternList(await input({
156
+ message: 'Ignored file patterns (comma-separated or one per line)',
157
+ default: current.join('\n'),
158
+ }));
159
+ if (await this.confirmPatternDraft(customPatterns)) {
160
+ return customPatterns;
161
+ }
162
+ }
163
+ continue;
164
+ case 'clear':
165
+ return [];
166
+ case 'keep-current':
167
+ default:
168
+ return current;
169
+ }
170
+ }
171
+ }
172
+ async collectPatternList(options) {
173
+ while (true) {
174
+ const mode = await this.selectPatternMode(options.fieldLabel, options.current, options.commonPatterns.length);
175
+ switch (mode) {
176
+ case 'common': {
177
+ const selected = await checkbox({
178
+ message: `Choose ${options.fieldLabel.toLowerCase()}`,
179
+ choices: options.commonPatterns.map((pattern) => ({
180
+ name: pattern,
181
+ value: pattern,
182
+ checked: options.current.includes(pattern),
183
+ })),
184
+ });
185
+ if (await this.shouldUseSelectedPatterns()) {
186
+ return selected;
187
+ }
188
+ continue;
189
+ }
190
+ case 'custom':
191
+ {
192
+ const customPatterns = parseRepositoryPatternList(await input({
193
+ message: options.customMessage,
194
+ default: options.current.join('\n'),
195
+ }));
196
+ if (await this.confirmPatternDraft(customPatterns)) {
197
+ return customPatterns;
198
+ }
199
+ }
200
+ continue;
201
+ case 'clear':
202
+ return [];
203
+ case 'keep-current':
204
+ default:
205
+ return options.current;
206
+ }
207
+ }
208
+ }
209
+ async shouldUseSelectedPatterns() {
210
+ const nextAction = await select({
211
+ message: 'What do you want to do with this selection?',
212
+ default: 'apply',
213
+ choices: [
214
+ { name: 'Use selected patterns', value: 'apply' },
215
+ { name: 'Back to pattern options', value: 'back' },
216
+ ],
217
+ });
218
+ return nextAction === 'apply';
219
+ }
220
+ async confirmPatternDraft(patterns) {
221
+ const nextAction = await select({
222
+ message: 'What do you want to do with these patterns?',
223
+ default: 'apply',
224
+ choices: [
225
+ {
226
+ name: `Use these patterns (${summarizePatterns(patterns)})`,
227
+ value: 'apply',
228
+ },
229
+ { name: 'Back to pattern options', value: 'back' },
230
+ ],
231
+ });
232
+ return nextAction === 'apply';
233
+ }
234
+ async selectPatternMode(fieldLabel, current, commonPatternCount, includeRecommended = false) {
235
+ const choices = [
236
+ {
237
+ name: `Keep current value (${summarizePatterns(current)})`,
238
+ value: 'keep-current',
239
+ },
240
+ ];
241
+ if (includeRecommended) {
242
+ choices.push({
243
+ name: `Use recommended defaults (${summarizePatternOption(RECOMMENDED_IGNORED_FILE_PATTERNS)})`,
244
+ value: 'recommended',
245
+ });
246
+ }
247
+ choices.push({
248
+ name: `Choose common patterns (${commonPatternCount} available)`,
249
+ value: 'common',
250
+ }, { name: 'Enter custom patterns', value: 'custom' }, { name: 'Clear patterns ((none))', value: 'clear' });
251
+ return await select({
252
+ message: fieldLabel,
253
+ default: 'keep-current',
254
+ choices,
255
+ });
256
+ }
257
+ }
258
+ export { RepositorySettingsWizardService };
259
+ export const repositorySettingsWizardService = new RepositorySettingsWizardService();
260
+ //# sourceMappingURL=repo-settings-wizard.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-settings-wizard.service.js","sourceRoot":"","sources":["../../src/services/repo-settings-wizard.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { CentralizedPrMetadata } from '../types/config.js';
2
+ import type { RepositorySettings } from '../types/repo-config.js';
3
+ export type RepositorySettingsResult = {
4
+ repositoryId: string;
5
+ repositoryFullName: string;
6
+ settings: RepositorySettings;
7
+ };
8
+ export type RepositorySettingsCentralizedPrResult = {
9
+ repositoryId: string;
10
+ repositoryFullName: string;
11
+ centralized: CentralizedPrMetadata & {
12
+ mode: 'centralized-pr';
13
+ };
14
+ };
15
+ export type RepositorySettingsMutationResult = RepositorySettingsResult | RepositorySettingsCentralizedPrResult;
16
+ declare class RepositorySettingsService {
17
+ getRepositorySettings(target: string): Promise<RepositorySettingsResult>;
18
+ updateRepositorySettings(target: string, settings: RepositorySettings): Promise<RepositorySettingsMutationResult>;
19
+ private resolveConfiguredRepository;
20
+ private requireTeamKey;
21
+ private getRepositorySettingsWithTeamKey;
22
+ private updateRepositorySettingsWithTeamKey;
23
+ private resolveRepositoryReference;
24
+ private findRepositoryMatch;
25
+ private toRepositoryFullName;
26
+ private isCentralizedPrMetadata;
27
+ }
28
+ export { RepositorySettingsService };
29
+ export declare const repositorySettingsService: RepositorySettingsService;
30
+ //# sourceMappingURL=repo-settings.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-settings.service.d.ts","sourceRoot":"","sources":["../../src/services/repo-settings.service.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,MAAM,MAAM,wBAAwB,GAAG;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,kBAAkB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,qCAAqC,GAAG;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,qBAAqB,GAAG;QAAE,IAAI,EAAE,gBAAgB,CAAA;KAAE,CAAC;CACnE,CAAC;AAEF,MAAM,MAAM,gCAAgC,GACtC,wBAAwB,GACxB,qCAAqC,CAAC;AAE5C,cAAM,yBAAyB;IACrB,qBAAqB,CACvB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,wBAAwB,CAAC;IAK9B,wBAAwB,CAC1B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,kBAAkB,GAC7B,OAAO,CAAC,gCAAgC,CAAC;YAS9B,2BAA2B;YA0B3B,cAAc;YAad,gCAAgC;YAoBhC,mCAAmC;YA+BnC,0BAA0B;IAuCxC,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,uBAAuB;CAYlC;AAED,OAAO,EAAE,yBAAyB,EAAE,CAAC;AACrC,eAAO,MAAM,yBAAyB,2BAAkC,CAAC"}
@@ -0,0 +1,99 @@
1
+ import { api } from './api/index.js';
2
+ import { authService } from './auth.service.js';
3
+ import { gitService } from './git.service.js';
4
+ import { CommandError } from '../utils/command-errors.js';
5
+ class RepositorySettingsService {
6
+ async getRepositorySettings(target) {
7
+ const teamKey = await this.requireTeamKey();
8
+ return this.getRepositorySettingsWithTeamKey(target, teamKey);
9
+ }
10
+ async updateRepositorySettings(target, settings) {
11
+ const teamKey = await this.requireTeamKey();
12
+ return this.updateRepositorySettingsWithTeamKey(target, teamKey, settings);
13
+ }
14
+ async resolveConfiguredRepository(target, accessToken) {
15
+ const repositoryRef = await this.resolveRepositoryReference(target);
16
+ const repositories = await api.config.getSelectedRepositories(accessToken);
17
+ const matchedRepository = this.findRepositoryMatch(repositoryRef, repositories);
18
+ if (!matchedRepository) {
19
+ throw new CommandError('INVALID_INPUT', `Repository '${repositoryRef}' is not configured in Mesrai yet. Run 'mesrai config add -r ${target}' first.`);
20
+ }
21
+ return {
22
+ matchedRepository,
23
+ };
24
+ }
25
+ async requireTeamKey() {
26
+ const accessToken = await authService.getValidToken();
27
+ if (accessToken.startsWith('mesrai_')) {
28
+ return accessToken;
29
+ }
30
+ throw new CommandError('AUTH_REQUIRED', 'Repository settings require team-key auth. Run: mesrai auth team-key --key <your-key>.');
31
+ }
32
+ async getRepositorySettingsWithTeamKey(target, teamKey) {
33
+ const { matchedRepository } = await this.resolveConfiguredRepository(target, teamKey);
34
+ const settings = await api.config.getRepositorySettings(teamKey, matchedRepository.id);
35
+ return {
36
+ repositoryId: matchedRepository.id,
37
+ repositoryFullName: this.toRepositoryFullName(matchedRepository),
38
+ settings,
39
+ };
40
+ }
41
+ async updateRepositorySettingsWithTeamKey(target, teamKey, settings) {
42
+ const { matchedRepository } = await this.resolveConfiguredRepository(target, teamKey);
43
+ const updatedSettings = await api.config.updateRepositorySettings(teamKey, matchedRepository.id, settings);
44
+ if (this.isCentralizedPrMetadata(updatedSettings)) {
45
+ return {
46
+ repositoryId: matchedRepository.id,
47
+ repositoryFullName: this.toRepositoryFullName(matchedRepository),
48
+ centralized: updatedSettings,
49
+ };
50
+ }
51
+ return {
52
+ repositoryId: matchedRepository.id,
53
+ repositoryFullName: this.toRepositoryFullName(matchedRepository),
54
+ settings: updatedSettings,
55
+ };
56
+ }
57
+ async resolveRepositoryReference(target) {
58
+ if (target !== '.') {
59
+ const normalized = target.trim().replace(/^\/+|\/+$/g, '');
60
+ if (!normalized || !normalized.includes('/')) {
61
+ throw new CommandError('INVALID_INPUT', "Pass '.' for the current repository or use 'owner/repo'.");
62
+ }
63
+ return normalized.toLowerCase();
64
+ }
65
+ const isRepo = await gitService.isGitRepository();
66
+ if (!isRepo) {
67
+ throw new CommandError('NOT_IN_GIT_REPO', 'Current directory is not a git repository. Run this command inside a repository or pass owner/repo explicitly.');
68
+ }
69
+ const remoteUrl = await gitService.getRemoteUrl();
70
+ if (!remoteUrl) {
71
+ throw new CommandError('INVALID_INPUT', "No git remote found for this repository. Configure 'origin' or pass owner/repo explicitly.");
72
+ }
73
+ const orgRepo = await gitService.extractOrgRepo();
74
+ if (!orgRepo) {
75
+ throw new CommandError('INVALID_INPUT', `Could not resolve repository from git remote '${remoteUrl}'. Pass owner/repo explicitly.`);
76
+ }
77
+ return `${orgRepo.org}/${orgRepo.repo}`.toLowerCase();
78
+ }
79
+ findRepositoryMatch(repositoryRef, repositories) {
80
+ const normalizedTarget = repositoryRef.toLowerCase();
81
+ return repositories.find((repository) => {
82
+ const fullName = this.toRepositoryFullName(repository).toLowerCase();
83
+ return fullName === normalizedTarget;
84
+ });
85
+ }
86
+ toRepositoryFullName(repository) {
87
+ return (repository.full_name ||
88
+ `${repository.organizationName}/${repository.name}`);
89
+ }
90
+ isCentralizedPrMetadata(value) {
91
+ return (typeof value === 'object' &&
92
+ value !== null &&
93
+ 'mode' in value &&
94
+ value.mode === 'centralized-pr');
95
+ }
96
+ }
97
+ export { RepositorySettingsService };
98
+ export const repositorySettingsService = new RepositorySettingsService();
99
+ //# sourceMappingURL=repo-settings.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-settings.service.js","sourceRoot":"","sources":["../../src/services/repo-settings.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { CliConfig } from '../utils/config.js';
2
+ export declare function withTeamKeyFallback<T>({ token, loadConfig, operation, }: {
3
+ token: string;
4
+ loadConfig: () => Promise<CliConfig | null>;
5
+ operation: (token: string) => Promise<T>;
6
+ }): Promise<T>;
7
+ //# sourceMappingURL=review-auth-fallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-auth-fallback.d.ts","sourceRoot":"","sources":["../../src/services/review-auth-fallback.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,EACzC,KAAK,EACL,UAAU,EACV,SAAS,GACZ,EAAE;IACC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAC5C,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CAC5C,GAAG,OAAO,CAAC,CAAC,CAAC,CAwBb"}
@@ -0,0 +1,25 @@
1
+ import { ApiError } from '../types/errors.js';
2
+ export async function withTeamKeyFallback({ token, loadConfig, operation, }) {
3
+ try {
4
+ return await operation(token);
5
+ }
6
+ catch (error) {
7
+ const canFallbackToTeamKey = error instanceof ApiError &&
8
+ error.statusCode === 401 &&
9
+ !token.startsWith('mesrai_');
10
+ if (!canFallbackToTeamKey) {
11
+ throw error;
12
+ }
13
+ const config = await loadConfig();
14
+ if (!config?.teamKey) {
15
+ throw error;
16
+ }
17
+ try {
18
+ return await operation(config.teamKey);
19
+ }
20
+ catch (fallbackError) {
21
+ throw fallbackError;
22
+ }
23
+ }
24
+ }
25
+ //# sourceMappingURL=review-auth-fallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-auth-fallback.js","sourceRoot":"","sources":["../../src/services/review-auth-fallback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAI,EACzC,KAAK,EACL,UAAU,EACV,SAAS,GAKZ;IACG,IAAI,CAAC;QACD,OAAO,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,oBAAoB,GACtB,KAAK,YAAY,QAAQ;YACzB,KAAK,CAAC,UAAU,KAAK,GAAG;YACxB,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAEjC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACxB,MAAM,KAAK,CAAC;QAChB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YACnB,MAAM,KAAK,CAAC;QAChB,CAAC;QAED,IAAI,CAAC;YACD,OAAO,MAAM,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,aAAa,EAAE,CAAC;YACrB,MAAM,aAAa,CAAC;QACxB,CAAC;IACL,CAAC;AACL,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { FileContent, ReviewConfig } from '../types/review.js';
2
+ export declare function buildReviewConfig({ rulesOnly, fast, options, getFullFileContents, filterFiles, }: {
3
+ rulesOnly?: boolean;
4
+ fast?: boolean;
5
+ options?: {
6
+ files?: string[];
7
+ staged?: boolean;
8
+ commit?: string;
9
+ branch?: string;
10
+ quiet?: boolean;
11
+ };
12
+ getFullFileContents: (files?: string[], options?: {
13
+ staged?: boolean;
14
+ commit?: string;
15
+ branch?: string;
16
+ }) => Promise<FileContent[]>;
17
+ filterFiles: (files: FileContent[], quiet?: boolean) => FileContent[];
18
+ }): Promise<ReviewConfig>;
19
+ //# sourceMappingURL=review-config-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-config-builder.d.ts","sourceRoot":"","sources":["../../src/services/review-config-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEpE,wBAAsB,iBAAiB,CAAC,EACpC,SAAS,EACT,IAAI,EACJ,OAAO,EACP,mBAAmB,EACnB,WAAW,GACd,EAAE;IACC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,mBAAmB,EAAE,CACjB,KAAK,CAAC,EAAE,MAAM,EAAE,EAChB,OAAO,CAAC,EAAE;QACN,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB,KACA,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5B,WAAW,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,WAAW,EAAE,CAAC;CACzE,GAAG,OAAO,CAAC,YAAY,CAAC,CA+BxB"}
@@ -0,0 +1,29 @@
1
+ export async function buildReviewConfig({ rulesOnly, fast, options, getFullFileContents, filterFiles, }) {
2
+ const reviewConfig = {
3
+ rulesOnly,
4
+ fast,
5
+ };
6
+ // Skip inlining file contents when:
7
+ // - fast mode: the server runs with a capped step budget; the full
8
+ // file bodies are extra payload with diminishing returns.
9
+ // - branch / commit mode: the diff is computed against committed
10
+ // history, so the backend can clone the same commit into its
11
+ // sandbox and read files from there (via readFile/grep). Sending
12
+ // 20+ MB of inlined content per request on large refactors blew
13
+ // past the backend's body parser limit for no benefit.
14
+ //
15
+ // Working-tree reviews (default and --staged) still inline files, since
16
+ // local WIP changes don't exist on any remote the backend could clone.
17
+ const skipInlining = fast || !!options?.branch || !!options?.commit;
18
+ if (skipInlining) {
19
+ return reviewConfig;
20
+ }
21
+ const allFiles = await getFullFileContents(options?.files, {
22
+ staged: options?.staged,
23
+ commit: options?.commit,
24
+ branch: options?.branch,
25
+ });
26
+ reviewConfig.files = filterFiles(allFiles, options?.quiet ?? false);
27
+ return reviewConfig;
28
+ }
29
+ //# sourceMappingURL=review-config-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-config-builder.js","sourceRoot":"","sources":["../../src/services/review-config-builder.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EACpC,SAAS,EACT,IAAI,EACJ,OAAO,EACP,mBAAmB,EACnB,WAAW,GAoBd;IACG,MAAM,YAAY,GAAiB;QAC/B,SAAS;QACT,IAAI;KACP,CAAC;IAEF,oCAAoC;IACpC,qEAAqE;IACrE,8DAA8D;IAC9D,mEAAmE;IACnE,iEAAiE;IACjE,qEAAqE;IACrE,oEAAoE;IACpE,2DAA2D;IAC3D,EAAE;IACF,wEAAwE;IACxE,uEAAuE;IACvE,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC;IACpE,IAAI,YAAY,EAAE,CAAC;QACf,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE;QACvD,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,MAAM,EAAE,OAAO,EAAE,MAAM;KAC1B,CAAC,CAAC;IAEH,YAAY,CAAC,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC;IAEpE,OAAO,YAAY,CAAC;AACxB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { FileContent } from '../types/review.js';
2
+ export declare function filterReviewFiles(files: FileContent[], quiet?: boolean): FileContent[];
3
+ //# sourceMappingURL=review-file-filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-file-filter.d.ts","sourceRoot":"","sources":["../../src/services/review-file-filter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMtD,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,WAAW,EAAE,EACpB,KAAK,UAAQ,GACd,WAAW,EAAE,CA8Cf"}