@cyanheads/git-mcp-server 2.2.4 → 2.3.2

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 (471) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +69 -25
  3. package/dist/config/index.d.ts +87 -0
  4. package/dist/config/index.d.ts.map +1 -0
  5. package/dist/config/index.js +7 -3
  6. package/dist/config/index.js.map +1 -0
  7. package/dist/index.d.ts +3 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +1 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/mcp-server/resources/gitWorkingDir/index.d.ts +6 -0
  12. package/dist/mcp-server/resources/gitWorkingDir/index.d.ts.map +1 -0
  13. package/dist/mcp-server/resources/gitWorkingDir/index.js +1 -0
  14. package/dist/mcp-server/resources/gitWorkingDir/index.js.map +1 -0
  15. package/dist/mcp-server/resources/gitWorkingDir/logic.d.ts +15 -0
  16. package/dist/mcp-server/resources/gitWorkingDir/logic.d.ts.map +1 -0
  17. package/dist/mcp-server/resources/gitWorkingDir/logic.js +1 -0
  18. package/dist/mcp-server/resources/gitWorkingDir/logic.js.map +1 -0
  19. package/dist/mcp-server/resources/gitWorkingDir/registration.d.ts +15 -0
  20. package/dist/mcp-server/resources/gitWorkingDir/registration.d.ts.map +1 -0
  21. package/dist/mcp-server/resources/gitWorkingDir/registration.js +9 -7
  22. package/dist/mcp-server/resources/gitWorkingDir/registration.js.map +1 -0
  23. package/dist/mcp-server/server.d.ts +13 -0
  24. package/dist/mcp-server/server.d.ts.map +1 -0
  25. package/dist/mcp-server/server.js +17 -6
  26. package/dist/mcp-server/server.js.map +1 -0
  27. package/dist/mcp-server/tools/gitAdd/index.d.ts +6 -0
  28. package/dist/mcp-server/tools/gitAdd/index.d.ts.map +1 -0
  29. package/dist/mcp-server/tools/gitAdd/index.js +1 -0
  30. package/dist/mcp-server/tools/gitAdd/index.js.map +1 -0
  31. package/dist/mcp-server/tools/gitAdd/logic.d.ts +167 -0
  32. package/dist/mcp-server/tools/gitAdd/logic.d.ts.map +1 -0
  33. package/dist/mcp-server/tools/gitAdd/logic.js +24 -5
  34. package/dist/mcp-server/tools/gitAdd/logic.js.map +1 -0
  35. package/dist/mcp-server/tools/gitAdd/registration.d.ts +6 -0
  36. package/dist/mcp-server/tools/gitAdd/registration.d.ts.map +1 -0
  37. package/dist/mcp-server/tools/gitAdd/registration.js +5 -2
  38. package/dist/mcp-server/tools/gitAdd/registration.js.map +1 -0
  39. package/dist/mcp-server/tools/gitBranch/index.d.ts +6 -0
  40. package/dist/mcp-server/tools/gitBranch/index.d.ts.map +1 -0
  41. package/dist/mcp-server/tools/gitBranch/index.js +1 -0
  42. package/dist/mcp-server/tools/gitBranch/index.js.map +1 -0
  43. package/dist/mcp-server/tools/gitBranch/logic.d.ts +175 -0
  44. package/dist/mcp-server/tools/gitBranch/logic.d.ts.map +1 -0
  45. package/dist/mcp-server/tools/gitBranch/logic.js +75 -27
  46. package/dist/mcp-server/tools/gitBranch/logic.js.map +1 -0
  47. package/dist/mcp-server/tools/gitBranch/registration.d.ts +16 -0
  48. package/dist/mcp-server/tools/gitBranch/registration.d.ts.map +1 -0
  49. package/dist/mcp-server/tools/gitBranch/registration.js +13 -4
  50. package/dist/mcp-server/tools/gitBranch/registration.js.map +1 -0
  51. package/dist/mcp-server/tools/gitCheckout/index.d.ts +6 -0
  52. package/dist/mcp-server/tools/gitCheckout/index.d.ts.map +1 -0
  53. package/dist/mcp-server/tools/gitCheckout/index.js +1 -0
  54. package/dist/mcp-server/tools/gitCheckout/index.js.map +1 -0
  55. package/dist/mcp-server/tools/gitCheckout/logic.d.ts +184 -0
  56. package/dist/mcp-server/tools/gitCheckout/logic.d.ts.map +1 -0
  57. package/dist/mcp-server/tools/gitCheckout/logic.js +45 -10
  58. package/dist/mcp-server/tools/gitCheckout/logic.js.map +1 -0
  59. package/dist/mcp-server/tools/gitCheckout/registration.d.ts +16 -0
  60. package/dist/mcp-server/tools/gitCheckout/registration.d.ts.map +1 -0
  61. package/dist/mcp-server/tools/gitCheckout/registration.js +12 -3
  62. package/dist/mcp-server/tools/gitCheckout/registration.js.map +1 -0
  63. package/dist/mcp-server/tools/gitCherryPick/index.d.ts +6 -0
  64. package/dist/mcp-server/tools/gitCherryPick/index.d.ts.map +1 -0
  65. package/dist/mcp-server/tools/gitCherryPick/index.js +1 -0
  66. package/dist/mcp-server/tools/gitCherryPick/index.js.map +1 -0
  67. package/dist/mcp-server/tools/gitCherryPick/logic.d.ts +190 -0
  68. package/dist/mcp-server/tools/gitCherryPick/logic.d.ts.map +1 -0
  69. package/dist/mcp-server/tools/gitCherryPick/logic.js +38 -10
  70. package/dist/mcp-server/tools/gitCherryPick/logic.js.map +1 -0
  71. package/dist/mcp-server/tools/gitCherryPick/registration.d.ts +16 -0
  72. package/dist/mcp-server/tools/gitCherryPick/registration.d.ts.map +1 -0
  73. package/dist/mcp-server/tools/gitCherryPick/registration.js +12 -3
  74. package/dist/mcp-server/tools/gitCherryPick/registration.js.map +1 -0
  75. package/dist/mcp-server/tools/gitClean/index.d.ts +6 -0
  76. package/dist/mcp-server/tools/gitClean/index.d.ts.map +1 -0
  77. package/dist/mcp-server/tools/gitClean/index.js +1 -0
  78. package/dist/mcp-server/tools/gitClean/index.js.map +1 -0
  79. package/dist/mcp-server/tools/gitClean/logic.d.ts +187 -0
  80. package/dist/mcp-server/tools/gitClean/logic.d.ts.map +1 -0
  81. package/dist/mcp-server/tools/gitClean/logic.js +48 -11
  82. package/dist/mcp-server/tools/gitClean/logic.js.map +1 -0
  83. package/dist/mcp-server/tools/gitClean/registration.d.ts +16 -0
  84. package/dist/mcp-server/tools/gitClean/registration.d.ts.map +1 -0
  85. package/dist/mcp-server/tools/gitClean/registration.js +12 -3
  86. package/dist/mcp-server/tools/gitClean/registration.js.map +1 -0
  87. package/dist/mcp-server/tools/gitClearWorkingDir/index.d.ts +6 -0
  88. package/dist/mcp-server/tools/gitClearWorkingDir/index.d.ts.map +1 -0
  89. package/dist/mcp-server/tools/gitClearWorkingDir/index.js +1 -0
  90. package/dist/mcp-server/tools/gitClearWorkingDir/index.js.map +1 -0
  91. package/dist/mcp-server/tools/gitClearWorkingDir/logic.d.ts +33 -0
  92. package/dist/mcp-server/tools/gitClearWorkingDir/logic.d.ts.map +1 -0
  93. package/dist/mcp-server/tools/gitClearWorkingDir/logic.js +21 -5
  94. package/dist/mcp-server/tools/gitClearWorkingDir/logic.js.map +1 -0
  95. package/dist/mcp-server/tools/gitClearWorkingDir/registration.d.ts +16 -0
  96. package/dist/mcp-server/tools/gitClearWorkingDir/registration.d.ts.map +1 -0
  97. package/dist/mcp-server/tools/gitClearWorkingDir/registration.js +12 -3
  98. package/dist/mcp-server/tools/gitClearWorkingDir/registration.js.map +1 -0
  99. package/dist/mcp-server/tools/gitClone/index.d.ts +6 -0
  100. package/dist/mcp-server/tools/gitClone/index.d.ts.map +1 -0
  101. package/dist/mcp-server/tools/gitClone/index.js +1 -0
  102. package/dist/mcp-server/tools/gitClone/index.js.map +1 -0
  103. package/dist/mcp-server/tools/gitClone/logic.d.ts +46 -0
  104. package/dist/mcp-server/tools/gitClone/logic.d.ts.map +1 -0
  105. package/dist/mcp-server/tools/gitClone/logic.js +33 -10
  106. package/dist/mcp-server/tools/gitClone/logic.js.map +1 -0
  107. package/dist/mcp-server/tools/gitClone/registration.d.ts +12 -0
  108. package/dist/mcp-server/tools/gitClone/registration.d.ts.map +1 -0
  109. package/dist/mcp-server/tools/gitClone/registration.js +13 -5
  110. package/dist/mcp-server/tools/gitClone/registration.js.map +1 -0
  111. package/dist/mcp-server/tools/gitCommit/index.d.ts +6 -0
  112. package/dist/mcp-server/tools/gitCommit/index.d.ts.map +1 -0
  113. package/dist/mcp-server/tools/gitCommit/index.js +1 -0
  114. package/dist/mcp-server/tools/gitCommit/index.js.map +1 -0
  115. package/dist/mcp-server/tools/gitCommit/logic.d.ts +211 -0
  116. package/dist/mcp-server/tools/gitCommit/logic.d.ts.map +1 -0
  117. package/dist/mcp-server/tools/gitCommit/logic.js +67 -14
  118. package/dist/mcp-server/tools/gitCommit/logic.js.map +1 -0
  119. package/dist/mcp-server/tools/gitCommit/registration.d.ts +16 -0
  120. package/dist/mcp-server/tools/gitCommit/registration.d.ts.map +1 -0
  121. package/dist/mcp-server/tools/gitCommit/registration.js +12 -3
  122. package/dist/mcp-server/tools/gitCommit/registration.js.map +1 -0
  123. package/dist/mcp-server/tools/gitDiff/index.d.ts +6 -0
  124. package/dist/mcp-server/tools/gitDiff/index.d.ts.map +1 -0
  125. package/dist/mcp-server/tools/gitDiff/index.js +1 -0
  126. package/dist/mcp-server/tools/gitDiff/index.js.map +1 -0
  127. package/dist/mcp-server/tools/gitDiff/logic.d.ts +87 -0
  128. package/dist/mcp-server/tools/gitDiff/logic.d.ts.map +1 -0
  129. package/dist/mcp-server/tools/gitDiff/logic.js +59 -15
  130. package/dist/mcp-server/tools/gitDiff/logic.js.map +1 -0
  131. package/dist/mcp-server/tools/gitDiff/registration.d.ts +16 -0
  132. package/dist/mcp-server/tools/gitDiff/registration.d.ts.map +1 -0
  133. package/dist/mcp-server/tools/gitDiff/registration.js +13 -3
  134. package/dist/mcp-server/tools/gitDiff/registration.js.map +1 -0
  135. package/dist/mcp-server/tools/gitFetch/index.d.ts +6 -0
  136. package/dist/mcp-server/tools/gitFetch/index.d.ts.map +1 -0
  137. package/dist/mcp-server/tools/gitFetch/index.js +1 -0
  138. package/dist/mcp-server/tools/gitFetch/index.js.map +1 -0
  139. package/dist/mcp-server/tools/gitFetch/logic.d.ts +45 -0
  140. package/dist/mcp-server/tools/gitFetch/logic.d.ts.map +1 -0
  141. package/dist/mcp-server/tools/gitFetch/logic.js +18 -5
  142. package/dist/mcp-server/tools/gitFetch/logic.js.map +1 -0
  143. package/dist/mcp-server/tools/gitFetch/registration.d.ts +16 -0
  144. package/dist/mcp-server/tools/gitFetch/registration.d.ts.map +1 -0
  145. package/dist/mcp-server/tools/gitFetch/registration.js +12 -3
  146. package/dist/mcp-server/tools/gitFetch/registration.js.map +1 -0
  147. package/dist/mcp-server/tools/gitInit/index.d.ts +6 -0
  148. package/dist/mcp-server/tools/gitInit/index.d.ts.map +1 -0
  149. package/dist/mcp-server/tools/gitInit/index.js +1 -0
  150. package/dist/mcp-server/tools/gitInit/index.js.map +1 -0
  151. package/dist/mcp-server/tools/gitInit/logic.d.ts +46 -0
  152. package/dist/mcp-server/tools/gitInit/logic.d.ts.map +1 -0
  153. package/dist/mcp-server/tools/gitInit/logic.js +73 -21
  154. package/dist/mcp-server/tools/gitInit/logic.js.map +1 -0
  155. package/dist/mcp-server/tools/gitInit/registration.d.ts +12 -0
  156. package/dist/mcp-server/tools/gitInit/registration.d.ts.map +1 -0
  157. package/dist/mcp-server/tools/gitInit/registration.js +13 -5
  158. package/dist/mcp-server/tools/gitInit/registration.js.map +1 -0
  159. package/dist/mcp-server/tools/gitLog/index.d.ts +6 -0
  160. package/dist/mcp-server/tools/gitLog/index.d.ts.map +1 -0
  161. package/dist/mcp-server/tools/gitLog/index.js +1 -0
  162. package/dist/mcp-server/tools/gitLog/index.js.map +1 -0
  163. package/dist/mcp-server/tools/gitLog/logic.d.ts +92 -0
  164. package/dist/mcp-server/tools/gitLog/logic.d.ts.map +1 -0
  165. package/dist/mcp-server/tools/gitLog/logic.js +84 -26
  166. package/dist/mcp-server/tools/gitLog/logic.js.map +1 -0
  167. package/dist/mcp-server/tools/gitLog/registration.d.ts +16 -0
  168. package/dist/mcp-server/tools/gitLog/registration.d.ts.map +1 -0
  169. package/dist/mcp-server/tools/gitLog/registration.js +12 -3
  170. package/dist/mcp-server/tools/gitLog/registration.js.map +1 -0
  171. package/dist/mcp-server/tools/gitMerge/index.d.ts +6 -0
  172. package/dist/mcp-server/tools/gitMerge/index.d.ts.map +1 -0
  173. package/dist/mcp-server/tools/gitMerge/index.js +1 -0
  174. package/dist/mcp-server/tools/gitMerge/index.js.map +1 -0
  175. package/dist/mcp-server/tools/gitMerge/logic.d.ts +196 -0
  176. package/dist/mcp-server/tools/gitMerge/logic.d.ts.map +1 -0
  177. package/dist/mcp-server/tools/gitMerge/logic.js +44 -11
  178. package/dist/mcp-server/tools/gitMerge/logic.js.map +1 -0
  179. package/dist/mcp-server/tools/gitMerge/registration.d.ts +16 -0
  180. package/dist/mcp-server/tools/gitMerge/registration.d.ts.map +1 -0
  181. package/dist/mcp-server/tools/gitMerge/registration.js +12 -3
  182. package/dist/mcp-server/tools/gitMerge/registration.js.map +1 -0
  183. package/dist/mcp-server/tools/gitPull/index.d.ts +6 -0
  184. package/dist/mcp-server/tools/gitPull/index.d.ts.map +1 -0
  185. package/dist/mcp-server/tools/gitPull/index.js +1 -0
  186. package/dist/mcp-server/tools/gitPull/index.js.map +1 -0
  187. package/dist/mcp-server/tools/gitPull/logic.d.ts +184 -0
  188. package/dist/mcp-server/tools/gitPull/logic.d.ts.map +1 -0
  189. package/dist/mcp-server/tools/gitPull/logic.js +31 -7
  190. package/dist/mcp-server/tools/gitPull/logic.js.map +1 -0
  191. package/dist/mcp-server/tools/gitPull/registration.d.ts +16 -0
  192. package/dist/mcp-server/tools/gitPull/registration.d.ts.map +1 -0
  193. package/dist/mcp-server/tools/gitPull/registration.js +12 -3
  194. package/dist/mcp-server/tools/gitPull/registration.js.map +1 -0
  195. package/dist/mcp-server/tools/gitPush/index.d.ts +6 -0
  196. package/dist/mcp-server/tools/gitPush/index.d.ts.map +1 -0
  197. package/dist/mcp-server/tools/gitPush/index.js +1 -0
  198. package/dist/mcp-server/tools/gitPush/index.js.map +1 -0
  199. package/dist/mcp-server/tools/gitPush/logic.d.ts +134 -0
  200. package/dist/mcp-server/tools/gitPush/logic.d.ts.map +1 -0
  201. package/dist/mcp-server/tools/gitPush/logic.js +28 -9
  202. package/dist/mcp-server/tools/gitPush/logic.js.map +1 -0
  203. package/dist/mcp-server/tools/gitPush/registration.d.ts +16 -0
  204. package/dist/mcp-server/tools/gitPush/registration.d.ts.map +1 -0
  205. package/dist/mcp-server/tools/gitPush/registration.js +12 -3
  206. package/dist/mcp-server/tools/gitPush/registration.js.map +1 -0
  207. package/dist/mcp-server/tools/gitRebase/index.d.ts +6 -0
  208. package/dist/mcp-server/tools/gitRebase/index.d.ts.map +1 -0
  209. package/dist/mcp-server/tools/gitRebase/index.js +1 -0
  210. package/dist/mcp-server/tools/gitRebase/index.js.map +1 -0
  211. package/dist/mcp-server/tools/gitRebase/logic.d.ts +242 -0
  212. package/dist/mcp-server/tools/gitRebase/logic.d.ts.map +1 -0
  213. package/dist/mcp-server/tools/gitRebase/logic.js +44 -10
  214. package/dist/mcp-server/tools/gitRebase/logic.js.map +1 -0
  215. package/dist/mcp-server/tools/gitRebase/registration.d.ts +16 -0
  216. package/dist/mcp-server/tools/gitRebase/registration.d.ts.map +1 -0
  217. package/dist/mcp-server/tools/gitRebase/registration.js +12 -3
  218. package/dist/mcp-server/tools/gitRebase/registration.js.map +1 -0
  219. package/dist/mcp-server/tools/gitRemote/index.d.ts +6 -0
  220. package/dist/mcp-server/tools/gitRemote/index.d.ts.map +1 -0
  221. package/dist/mcp-server/tools/gitRemote/index.js +1 -0
  222. package/dist/mcp-server/tools/gitRemote/index.js.map +1 -0
  223. package/dist/mcp-server/tools/gitRemote/logic.d.ts +107 -0
  224. package/dist/mcp-server/tools/gitRemote/logic.d.ts.map +1 -0
  225. package/dist/mcp-server/tools/gitRemote/logic.js +45 -19
  226. package/dist/mcp-server/tools/gitRemote/logic.js.map +1 -0
  227. package/dist/mcp-server/tools/gitRemote/registration.d.ts +16 -0
  228. package/dist/mcp-server/tools/gitRemote/registration.d.ts.map +1 -0
  229. package/dist/mcp-server/tools/gitRemote/registration.js +12 -3
  230. package/dist/mcp-server/tools/gitRemote/registration.js.map +1 -0
  231. package/dist/mcp-server/tools/gitReset/index.d.ts +6 -0
  232. package/dist/mcp-server/tools/gitReset/index.d.ts.map +1 -0
  233. package/dist/mcp-server/tools/gitReset/index.js +1 -0
  234. package/dist/mcp-server/tools/gitReset/index.js.map +1 -0
  235. package/dist/mcp-server/tools/gitReset/logic.d.ts +178 -0
  236. package/dist/mcp-server/tools/gitReset/logic.d.ts.map +1 -0
  237. package/dist/mcp-server/tools/gitReset/logic.js +24 -7
  238. package/dist/mcp-server/tools/gitReset/logic.js.map +1 -0
  239. package/dist/mcp-server/tools/gitReset/registration.d.ts +16 -0
  240. package/dist/mcp-server/tools/gitReset/registration.d.ts.map +1 -0
  241. package/dist/mcp-server/tools/gitReset/registration.js +12 -3
  242. package/dist/mcp-server/tools/gitReset/registration.js.map +1 -0
  243. package/dist/mcp-server/tools/gitSetWorkingDir/index.d.ts +6 -0
  244. package/dist/mcp-server/tools/gitSetWorkingDir/index.d.ts.map +1 -0
  245. package/dist/mcp-server/tools/gitSetWorkingDir/index.js +1 -0
  246. package/dist/mcp-server/tools/gitSetWorkingDir/index.js.map +1 -0
  247. package/dist/mcp-server/tools/gitSetWorkingDir/logic.d.ts +45 -0
  248. package/dist/mcp-server/tools/gitSetWorkingDir/logic.d.ts.map +1 -0
  249. package/dist/mcp-server/tools/gitSetWorkingDir/logic.js +29 -8
  250. package/dist/mcp-server/tools/gitSetWorkingDir/logic.js.map +1 -0
  251. package/dist/mcp-server/tools/gitSetWorkingDir/registration.d.ts +16 -0
  252. package/dist/mcp-server/tools/gitSetWorkingDir/registration.d.ts.map +1 -0
  253. package/dist/mcp-server/tools/gitSetWorkingDir/registration.js +12 -3
  254. package/dist/mcp-server/tools/gitSetWorkingDir/registration.js.map +1 -0
  255. package/dist/mcp-server/tools/gitShow/index.d.ts +6 -0
  256. package/dist/mcp-server/tools/gitShow/index.d.ts.map +1 -0
  257. package/dist/mcp-server/tools/gitShow/index.js +1 -0
  258. package/dist/mcp-server/tools/gitShow/index.js.map +1 -0
  259. package/dist/mcp-server/tools/gitShow/logic.d.ts +39 -0
  260. package/dist/mcp-server/tools/gitShow/logic.d.ts.map +1 -0
  261. package/dist/mcp-server/tools/gitShow/logic.js +17 -5
  262. package/dist/mcp-server/tools/gitShow/logic.js.map +1 -0
  263. package/dist/mcp-server/tools/gitShow/registration.d.ts +16 -0
  264. package/dist/mcp-server/tools/gitShow/registration.d.ts.map +1 -0
  265. package/dist/mcp-server/tools/gitShow/registration.js +13 -3
  266. package/dist/mcp-server/tools/gitShow/registration.js.map +1 -0
  267. package/dist/mcp-server/tools/gitStash/index.d.ts +6 -0
  268. package/dist/mcp-server/tools/gitStash/index.d.ts.map +1 -0
  269. package/dist/mcp-server/tools/gitStash/index.js +1 -0
  270. package/dist/mcp-server/tools/gitStash/index.js.map +1 -0
  271. package/dist/mcp-server/tools/gitStash/logic.d.ts +236 -0
  272. package/dist/mcp-server/tools/gitStash/logic.d.ts.map +1 -0
  273. package/dist/mcp-server/tools/gitStash/logic.js +76 -18
  274. package/dist/mcp-server/tools/gitStash/logic.js.map +1 -0
  275. package/dist/mcp-server/tools/gitStash/registration.d.ts +16 -0
  276. package/dist/mcp-server/tools/gitStash/registration.d.ts.map +1 -0
  277. package/dist/mcp-server/tools/gitStash/registration.js +12 -3
  278. package/dist/mcp-server/tools/gitStash/registration.js.map +1 -0
  279. package/dist/mcp-server/tools/gitStatus/index.d.ts +6 -0
  280. package/dist/mcp-server/tools/gitStatus/index.d.ts.map +1 -0
  281. package/dist/mcp-server/tools/gitStatus/index.js +1 -0
  282. package/dist/mcp-server/tools/gitStatus/index.js.map +1 -0
  283. package/dist/mcp-server/tools/gitStatus/logic.d.ts +115 -0
  284. package/dist/mcp-server/tools/gitStatus/logic.d.ts.map +1 -0
  285. package/dist/mcp-server/tools/gitStatus/logic.js +38 -23
  286. package/dist/mcp-server/tools/gitStatus/logic.js.map +1 -0
  287. package/dist/mcp-server/tools/gitStatus/registration.d.ts +16 -0
  288. package/dist/mcp-server/tools/gitStatus/registration.d.ts.map +1 -0
  289. package/dist/mcp-server/tools/gitStatus/registration.js +12 -3
  290. package/dist/mcp-server/tools/gitStatus/registration.js.map +1 -0
  291. package/dist/mcp-server/tools/gitTag/index.d.ts +6 -0
  292. package/dist/mcp-server/tools/gitTag/index.d.ts.map +1 -0
  293. package/dist/mcp-server/tools/gitTag/index.js +1 -0
  294. package/dist/mcp-server/tools/gitTag/index.js.map +1 -0
  295. package/dist/mcp-server/tools/gitTag/logic.d.ts +121 -0
  296. package/dist/mcp-server/tools/gitTag/logic.d.ts.map +1 -0
  297. package/dist/mcp-server/tools/gitTag/logic.js +59 -17
  298. package/dist/mcp-server/tools/gitTag/logic.js.map +1 -0
  299. package/dist/mcp-server/tools/gitTag/registration.d.ts +16 -0
  300. package/dist/mcp-server/tools/gitTag/registration.d.ts.map +1 -0
  301. package/dist/mcp-server/tools/gitTag/registration.js +12 -3
  302. package/dist/mcp-server/tools/gitTag/registration.js.map +1 -0
  303. package/dist/mcp-server/tools/gitWorktree/index.d.ts +6 -0
  304. package/dist/mcp-server/tools/gitWorktree/index.d.ts.map +1 -0
  305. package/dist/mcp-server/tools/gitWorktree/index.js +1 -0
  306. package/dist/mcp-server/tools/gitWorktree/index.js.map +1 -0
  307. package/dist/mcp-server/tools/gitWorktree/logic.d.ts +218 -0
  308. package/dist/mcp-server/tools/gitWorktree/logic.d.ts.map +1 -0
  309. package/dist/mcp-server/tools/gitWorktree/logic.js +61 -17
  310. package/dist/mcp-server/tools/gitWorktree/logic.js.map +1 -0
  311. package/dist/mcp-server/tools/gitWorktree/registration.d.ts +16 -0
  312. package/dist/mcp-server/tools/gitWorktree/registration.d.ts.map +1 -0
  313. package/dist/mcp-server/tools/gitWorktree/registration.js +12 -3
  314. package/dist/mcp-server/tools/gitWorktree/registration.js.map +1 -0
  315. package/dist/mcp-server/tools/gitWrapupInstructions/index.d.ts +6 -0
  316. package/dist/mcp-server/tools/gitWrapupInstructions/index.d.ts.map +1 -0
  317. package/dist/mcp-server/tools/gitWrapupInstructions/index.js +1 -0
  318. package/dist/mcp-server/tools/gitWrapupInstructions/index.js.map +1 -0
  319. package/dist/mcp-server/tools/gitWrapupInstructions/logic.d.ts +175 -0
  320. package/dist/mcp-server/tools/gitWrapupInstructions/logic.d.ts.map +1 -0
  321. package/dist/mcp-server/tools/gitWrapupInstructions/logic.js +20 -6
  322. package/dist/mcp-server/tools/gitWrapupInstructions/logic.js.map +1 -0
  323. package/dist/mcp-server/tools/gitWrapupInstructions/registration.d.ts +16 -0
  324. package/dist/mcp-server/tools/gitWrapupInstructions/registration.d.ts.map +1 -0
  325. package/dist/mcp-server/tools/gitWrapupInstructions/registration.js +12 -3
  326. package/dist/mcp-server/tools/gitWrapupInstructions/registration.js.map +1 -0
  327. package/dist/mcp-server/transports/auth/authFactory.d.ts +11 -0
  328. package/dist/mcp-server/transports/auth/authFactory.d.ts.map +1 -0
  329. package/dist/mcp-server/transports/auth/authFactory.js +1 -0
  330. package/dist/mcp-server/transports/auth/authFactory.js.map +1 -0
  331. package/dist/mcp-server/transports/auth/authMiddleware.d.ts +20 -0
  332. package/dist/mcp-server/transports/auth/authMiddleware.d.ts.map +1 -0
  333. package/dist/mcp-server/transports/auth/authMiddleware.js +1 -0
  334. package/dist/mcp-server/transports/auth/authMiddleware.js.map +1 -0
  335. package/dist/mcp-server/transports/auth/index.d.ts +14 -0
  336. package/dist/mcp-server/transports/auth/index.d.ts.map +1 -0
  337. package/dist/mcp-server/transports/auth/index.js +1 -0
  338. package/dist/mcp-server/transports/auth/index.js.map +1 -0
  339. package/dist/mcp-server/transports/auth/lib/authContext.d.ts +34 -0
  340. package/dist/mcp-server/transports/auth/lib/authContext.d.ts.map +1 -0
  341. package/dist/mcp-server/transports/auth/lib/authContext.js +1 -0
  342. package/dist/mcp-server/transports/auth/lib/authContext.js.map +1 -0
  343. package/dist/mcp-server/transports/auth/lib/authTypes.d.ts +13 -0
  344. package/dist/mcp-server/transports/auth/lib/authTypes.d.ts.map +1 -0
  345. package/dist/mcp-server/transports/auth/lib/authTypes.js +1 -0
  346. package/dist/mcp-server/transports/auth/lib/authTypes.js.map +1 -0
  347. package/dist/mcp-server/transports/auth/lib/authUtils.d.ts +19 -0
  348. package/dist/mcp-server/transports/auth/lib/authUtils.d.ts.map +1 -0
  349. package/dist/mcp-server/transports/auth/lib/authUtils.js +1 -0
  350. package/dist/mcp-server/transports/auth/lib/authUtils.js.map +1 -0
  351. package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts +18 -0
  352. package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts.map +1 -0
  353. package/dist/mcp-server/transports/auth/strategies/authStrategy.js +1 -0
  354. package/dist/mcp-server/transports/auth/strategies/authStrategy.js.map +1 -0
  355. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts +8 -0
  356. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts.map +1 -0
  357. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js +5 -0
  358. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js.map +1 -0
  359. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts +8 -0
  360. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts.map +1 -0
  361. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js +6 -0
  362. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js.map +1 -0
  363. package/dist/mcp-server/transports/core/baseTransportManager.d.ts +18 -0
  364. package/dist/mcp-server/transports/core/baseTransportManager.d.ts.map +1 -0
  365. package/dist/mcp-server/transports/core/baseTransportManager.js +1 -0
  366. package/dist/mcp-server/transports/core/baseTransportManager.js.map +1 -0
  367. package/dist/mcp-server/transports/core/honoNodeBridge.d.ts +24 -0
  368. package/dist/mcp-server/transports/core/honoNodeBridge.d.ts.map +1 -0
  369. package/dist/mcp-server/transports/core/honoNodeBridge.js +11 -4
  370. package/dist/mcp-server/transports/core/honoNodeBridge.js.map +1 -0
  371. package/dist/mcp-server/transports/core/statefulTransportManager.d.ts +32 -0
  372. package/dist/mcp-server/transports/core/statefulTransportManager.d.ts.map +1 -0
  373. package/dist/mcp-server/transports/core/statefulTransportManager.js +1 -0
  374. package/dist/mcp-server/transports/core/statefulTransportManager.js.map +1 -0
  375. package/dist/mcp-server/transports/core/statelessTransportManager.d.ts +21 -0
  376. package/dist/mcp-server/transports/core/statelessTransportManager.d.ts.map +1 -0
  377. package/dist/mcp-server/transports/core/statelessTransportManager.js +1 -0
  378. package/dist/mcp-server/transports/core/statelessTransportManager.js.map +1 -0
  379. package/dist/mcp-server/transports/core/transportTypes.d.ts +69 -0
  380. package/dist/mcp-server/transports/core/transportTypes.d.ts.map +1 -0
  381. package/dist/mcp-server/transports/core/transportTypes.js +1 -0
  382. package/dist/mcp-server/transports/core/transportTypes.js.map +1 -0
  383. package/dist/mcp-server/transports/http/httpErrorHandler.d.ts +22 -0
  384. package/dist/mcp-server/transports/http/httpErrorHandler.d.ts.map +1 -0
  385. package/dist/mcp-server/transports/http/httpErrorHandler.js +1 -0
  386. package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -0
  387. package/dist/mcp-server/transports/http/httpTransport.d.ts +23 -0
  388. package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -0
  389. package/dist/mcp-server/transports/http/httpTransport.js +29 -10
  390. package/dist/mcp-server/transports/http/httpTransport.js.map +1 -0
  391. package/dist/mcp-server/transports/http/httpTypes.d.ts +17 -0
  392. package/dist/mcp-server/transports/http/httpTypes.d.ts.map +1 -0
  393. package/dist/mcp-server/transports/http/httpTypes.js +1 -0
  394. package/dist/mcp-server/transports/http/httpTypes.js.map +1 -0
  395. package/dist/mcp-server/transports/http/index.d.ts +8 -0
  396. package/dist/mcp-server/transports/http/index.d.ts.map +1 -0
  397. package/dist/mcp-server/transports/http/index.js +1 -0
  398. package/dist/mcp-server/transports/http/index.js.map +1 -0
  399. package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts +27 -0
  400. package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts.map +1 -0
  401. package/dist/mcp-server/transports/http/mcpTransportMiddleware.js +27 -24
  402. package/dist/mcp-server/transports/http/mcpTransportMiddleware.js.map +1 -0
  403. package/dist/mcp-server/transports/stdio/index.d.ts +6 -0
  404. package/dist/mcp-server/transports/stdio/index.d.ts.map +1 -0
  405. package/dist/mcp-server/transports/stdio/index.js +1 -0
  406. package/dist/mcp-server/transports/stdio/index.js.map +1 -0
  407. package/dist/mcp-server/transports/stdio/stdioTransport.d.ts +43 -0
  408. package/dist/mcp-server/transports/stdio/stdioTransport.d.ts.map +1 -0
  409. package/dist/mcp-server/transports/stdio/stdioTransport.js +1 -0
  410. package/dist/mcp-server/transports/stdio/stdioTransport.js.map +1 -0
  411. package/dist/types-global/errors.d.ts +122 -0
  412. package/dist/types-global/errors.d.ts.map +1 -0
  413. package/dist/types-global/errors.js +1 -0
  414. package/dist/types-global/errors.js.map +1 -0
  415. package/dist/utils/index.d.ts +5 -0
  416. package/dist/utils/index.d.ts.map +1 -0
  417. package/dist/utils/index.js +1 -0
  418. package/dist/utils/index.js.map +1 -0
  419. package/dist/utils/internal/errorHandler.d.ts +91 -0
  420. package/dist/utils/internal/errorHandler.d.ts.map +1 -0
  421. package/dist/utils/internal/errorHandler.js +8 -6
  422. package/dist/utils/internal/errorHandler.js.map +1 -0
  423. package/dist/utils/internal/index.d.ts +4 -0
  424. package/dist/utils/internal/index.d.ts.map +1 -0
  425. package/dist/utils/internal/index.js +1 -0
  426. package/dist/utils/internal/index.js.map +1 -0
  427. package/dist/utils/internal/logger.d.ts +55 -0
  428. package/dist/utils/internal/logger.d.ts.map +1 -0
  429. package/dist/utils/internal/logger.js +19 -5
  430. package/dist/utils/internal/logger.js.map +1 -0
  431. package/dist/utils/internal/requestContext.d.ts +48 -0
  432. package/dist/utils/internal/requestContext.d.ts.map +1 -0
  433. package/dist/utils/internal/requestContext.js +1 -0
  434. package/dist/utils/internal/requestContext.js.map +1 -0
  435. package/dist/utils/metrics/index.d.ts +2 -0
  436. package/dist/utils/metrics/index.d.ts.map +1 -0
  437. package/dist/utils/metrics/index.js +1 -0
  438. package/dist/utils/metrics/index.js.map +1 -0
  439. package/dist/utils/metrics/tokenCounter.d.ts +28 -0
  440. package/dist/utils/metrics/tokenCounter.d.ts.map +1 -0
  441. package/dist/utils/metrics/tokenCounter.js +1 -0
  442. package/dist/utils/metrics/tokenCounter.js.map +1 -0
  443. package/dist/utils/parsing/dateParser.d.ts +25 -0
  444. package/dist/utils/parsing/dateParser.d.ts.map +1 -0
  445. package/dist/utils/parsing/dateParser.js +57 -56
  446. package/dist/utils/parsing/dateParser.js.map +1 -0
  447. package/dist/utils/parsing/index.d.ts +3 -0
  448. package/dist/utils/parsing/index.d.ts.map +1 -0
  449. package/dist/utils/parsing/index.js +1 -0
  450. package/dist/utils/parsing/index.js.map +1 -0
  451. package/dist/utils/parsing/jsonParser.d.ts +83 -0
  452. package/dist/utils/parsing/jsonParser.d.ts.map +1 -0
  453. package/dist/utils/parsing/jsonParser.js +85 -45
  454. package/dist/utils/parsing/jsonParser.js.map +1 -0
  455. package/dist/utils/security/idGenerator.d.ts +94 -0
  456. package/dist/utils/security/idGenerator.d.ts.map +1 -0
  457. package/dist/utils/security/idGenerator.js +9 -2
  458. package/dist/utils/security/idGenerator.js.map +1 -0
  459. package/dist/utils/security/index.d.ts +4 -0
  460. package/dist/utils/security/index.d.ts.map +1 -0
  461. package/dist/utils/security/index.js +1 -0
  462. package/dist/utils/security/index.js.map +1 -0
  463. package/dist/utils/security/rateLimiter.d.ts +93 -0
  464. package/dist/utils/security/rateLimiter.d.ts.map +1 -0
  465. package/dist/utils/security/rateLimiter.js +1 -0
  466. package/dist/utils/security/rateLimiter.js.map +1 -0
  467. package/dist/utils/security/sanitization.d.ts +181 -0
  468. package/dist/utils/security/sanitization.d.ts.map +1 -0
  469. package/dist/utils/security/sanitization.js +6 -5
  470. package/dist/utils/security/sanitization.js.map +1 -0
  471. package/package.json +52 -34
@@ -3,3 +3,4 @@
3
3
  * @module src/mcp-server/tools/gitStatus/index
4
4
  */
5
5
  export { registerGitStatusTool } from "./registration.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/gitStatus/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * @fileoverview Defines the core logic, schemas, and types for the git_status tool.
3
+ * @module src/mcp-server/tools/gitStatus/logic
4
+ */
5
+ import { z } from "zod";
6
+ import { type RequestContext } from "../../../utils/index.js";
7
+ export declare const GitStatusInputSchema: z.ZodObject<{
8
+ path: z.ZodDefault<z.ZodString>;
9
+ }, "strip", z.ZodTypeAny, {
10
+ path: string;
11
+ }, {
12
+ path?: string | undefined;
13
+ }>;
14
+ export declare const GitStatusOutputSchema: z.ZodObject<{
15
+ current_branch: z.ZodNullable<z.ZodString>;
16
+ staged_changes: z.ZodObject<{
17
+ Added: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
18
+ Modified: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
19
+ Deleted: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
20
+ Renamed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
21
+ Copied: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
22
+ TypeChanged: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
23
+ }, "strip", z.ZodTypeAny, {
24
+ Added?: string[] | undefined;
25
+ Modified?: string[] | undefined;
26
+ Deleted?: string[] | undefined;
27
+ Renamed?: string[] | undefined;
28
+ Copied?: string[] | undefined;
29
+ TypeChanged?: string[] | undefined;
30
+ }, {
31
+ Added?: string[] | undefined;
32
+ Modified?: string[] | undefined;
33
+ Deleted?: string[] | undefined;
34
+ Renamed?: string[] | undefined;
35
+ Copied?: string[] | undefined;
36
+ TypeChanged?: string[] | undefined;
37
+ }>;
38
+ unstaged_changes: z.ZodObject<{
39
+ Added: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
40
+ Modified: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
41
+ Deleted: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
42
+ Renamed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
43
+ Copied: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
44
+ TypeChanged: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
45
+ }, "strip", z.ZodTypeAny, {
46
+ Added?: string[] | undefined;
47
+ Modified?: string[] | undefined;
48
+ Deleted?: string[] | undefined;
49
+ Renamed?: string[] | undefined;
50
+ Copied?: string[] | undefined;
51
+ TypeChanged?: string[] | undefined;
52
+ }, {
53
+ Added?: string[] | undefined;
54
+ Modified?: string[] | undefined;
55
+ Deleted?: string[] | undefined;
56
+ Renamed?: string[] | undefined;
57
+ Copied?: string[] | undefined;
58
+ TypeChanged?: string[] | undefined;
59
+ }>;
60
+ untracked_files: z.ZodArray<z.ZodString, "many">;
61
+ conflicted_files: z.ZodArray<z.ZodString, "many">;
62
+ is_clean: z.ZodBoolean;
63
+ }, "strip", z.ZodTypeAny, {
64
+ current_branch: string | null;
65
+ staged_changes: {
66
+ Added?: string[] | undefined;
67
+ Modified?: string[] | undefined;
68
+ Deleted?: string[] | undefined;
69
+ Renamed?: string[] | undefined;
70
+ Copied?: string[] | undefined;
71
+ TypeChanged?: string[] | undefined;
72
+ };
73
+ unstaged_changes: {
74
+ Added?: string[] | undefined;
75
+ Modified?: string[] | undefined;
76
+ Deleted?: string[] | undefined;
77
+ Renamed?: string[] | undefined;
78
+ Copied?: string[] | undefined;
79
+ TypeChanged?: string[] | undefined;
80
+ };
81
+ untracked_files: string[];
82
+ conflicted_files: string[];
83
+ is_clean: boolean;
84
+ }, {
85
+ current_branch: string | null;
86
+ staged_changes: {
87
+ Added?: string[] | undefined;
88
+ Modified?: string[] | undefined;
89
+ Deleted?: string[] | undefined;
90
+ Renamed?: string[] | undefined;
91
+ Copied?: string[] | undefined;
92
+ TypeChanged?: string[] | undefined;
93
+ };
94
+ unstaged_changes: {
95
+ Added?: string[] | undefined;
96
+ Modified?: string[] | undefined;
97
+ Deleted?: string[] | undefined;
98
+ Renamed?: string[] | undefined;
99
+ Copied?: string[] | undefined;
100
+ TypeChanged?: string[] | undefined;
101
+ };
102
+ untracked_files: string[];
103
+ conflicted_files: string[];
104
+ is_clean: boolean;
105
+ }>;
106
+ export type GitStatusInput = z.infer<typeof GitStatusInputSchema>;
107
+ export type GitStatusOutput = z.infer<typeof GitStatusOutputSchema>;
108
+ /**
109
+ * 4. IMPLEMENT the core logic function.
110
+ * @throws {McpError} If the logic encounters an unrecoverable issue.
111
+ */
112
+ export declare function getGitStatus(params: GitStatusInput, context: RequestContext & {
113
+ getWorkingDirectory: () => string | undefined;
114
+ }): Promise<GitStatusOutput>;
115
+ //# sourceMappingURL=logic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/gitStatus/logic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,yBAAyB,CAAC;AAMjC,eAAO,MAAM,oBAAoB;;;;;;EAE/B,CAAC;AAYH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUhC,CAAC;AAGH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAgFpE;;;GAGG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,cAAc,GAAG;IAAE,mBAAmB,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;CAAE,GAC1E,OAAO,CAAC,eAAe,CAAC,CAwB1B"}
@@ -5,7 +5,7 @@
5
5
  import { execFile } from "child_process";
6
6
  import { promisify } from "util";
7
7
  import { z } from "zod";
8
- import { logger, sanitization } from "../../../utils/index.js";
8
+ import { logger, sanitization, } from "../../../utils/index.js";
9
9
  import { McpError, BaseErrorCode } from "../../../types-global/errors.js";
10
10
  const execFileAsync = promisify(execFile);
11
11
  // 1. DEFINE the Zod input schema.
@@ -22,7 +22,10 @@ const ChangesSchema = z.object({
22
22
  TypeChanged: z.array(z.string()).optional(),
23
23
  });
24
24
  export const GitStatusOutputSchema = z.object({
25
- current_branch: z.string().nullable().describe("The current branch, or null for detached HEAD."),
25
+ current_branch: z
26
+ .string()
27
+ .nullable()
28
+ .describe("The current branch, or null for detached HEAD."),
26
29
  staged_changes: ChangesSchema.describe("Changes staged for the next commit."),
27
30
  unstaged_changes: ChangesSchema.describe("Changes not staged for commit."),
28
31
  untracked_files: z.array(z.string()).describe("Files not tracked by Git."),
@@ -39,54 +42,62 @@ function parseGitStatus(porcelainOutput) {
39
42
  conflicted_files: [],
40
43
  is_clean: true,
41
44
  };
42
- if (lines.length > 0 && lines[0].startsWith("## ")) {
45
+ if (lines.length > 0 && lines[0]?.startsWith("## ")) {
43
46
  const branchLine = lines.shift();
44
47
  const branchMatch = branchLine.match(/^## (.*?)(?:\.\.\..*)?$/);
45
- result.current_branch = branchMatch ? branchMatch[1] : "HEAD (detached)";
48
+ result.current_branch = branchMatch?.[1] || "HEAD (detached)";
46
49
  }
47
- lines.forEach(line => {
50
+ lines.forEach((line) => {
48
51
  result.is_clean = false;
49
52
  const xy = line.substring(0, 2);
50
53
  const file = line.substring(3);
51
54
  const staged = xy[0];
52
55
  const unstaged = xy[1];
53
- if (xy === '??') {
56
+ if (xy === "??") {
54
57
  result.untracked_files.push(file);
55
58
  }
56
- else if (staged === 'U' || unstaged === 'U' || (staged === 'A' && unstaged === 'A') || (staged === 'D' && unstaged === 'D')) {
59
+ else if (staged === "U" ||
60
+ unstaged === "U" ||
61
+ (staged === "A" && unstaged === "A") ||
62
+ (staged === "D" && unstaged === "D")) {
57
63
  result.conflicted_files.push(file);
58
64
  }
59
65
  else {
60
66
  const mapStatus = (char, changeSet) => {
61
67
  let statusKey;
62
68
  switch (char) {
63
- case 'M':
64
- statusKey = 'Modified';
69
+ case "M":
70
+ statusKey = "Modified";
65
71
  break;
66
- case 'A':
67
- statusKey = 'Added';
72
+ case "A":
73
+ statusKey = "Added";
68
74
  break;
69
- case 'D':
70
- statusKey = 'Deleted';
75
+ case "D":
76
+ statusKey = "Deleted";
71
77
  break;
72
- case 'R':
73
- statusKey = 'Renamed';
78
+ case "R":
79
+ statusKey = "Renamed";
74
80
  break;
75
- case 'C':
76
- statusKey = 'Copied';
81
+ case "C":
82
+ statusKey = "Copied";
77
83
  break;
78
- case 'T':
79
- statusKey = 'TypeChanged';
84
+ case "T":
85
+ statusKey = "TypeChanged";
80
86
  break;
81
- default: return;
87
+ default:
88
+ return;
82
89
  }
83
90
  if (!changeSet[statusKey]) {
84
91
  changeSet[statusKey] = [];
85
92
  }
86
93
  changeSet[statusKey].push(file);
87
94
  };
88
- mapStatus(staged, result.staged_changes);
89
- mapStatus(unstaged, result.unstaged_changes);
95
+ if (staged) {
96
+ mapStatus(staged, result.staged_changes);
97
+ }
98
+ if (unstaged) {
99
+ mapStatus(unstaged, result.unstaged_changes);
100
+ }
90
101
  }
91
102
  });
92
103
  return result;
@@ -104,7 +115,11 @@ export async function getGitStatus(params, context) {
104
115
  }
105
116
  const targetPath = sanitization.sanitizePath(params.path === "." ? workingDir : params.path, { allowAbsolute: true }).sanitizedPath;
106
117
  const args = ["-C", targetPath, "status", "--porcelain=v1", "-b"];
107
- logger.debug(`Executing command: git ${args.join(" ")}`, { ...context, operation });
118
+ logger.debug(`Executing command: git ${args.join(" ")}`, {
119
+ ...context,
120
+ operation,
121
+ });
108
122
  const { stdout } = await execFileAsync("git", args);
109
123
  return parseGitStatus(stdout);
110
124
  }
125
+ //# sourceMappingURL=logic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logic.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/gitStatus/logic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,MAAM,EAEN,YAAY,GACb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAE1E,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,kCAAkC;AAClC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;CACtE,CAAC,CAAC;AAEH,qCAAqC;AACrC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gDAAgD,CAAC;IAC7D,cAAc,EAAE,aAAa,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAC7E,gBAAgB,EAAE,aAAa,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC1E,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC1E,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC7E,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;CACxE,CAAC,CAAC;AAMH,SAAS,cAAc,CAAC,eAAuB;IAC7C,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjE,MAAM,MAAM,GAAoB;QAC9B,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,EAAE;QAClB,gBAAgB,EAAE,EAAE;QACpB,eAAe,EAAE,EAAE;QACnB,gBAAgB,EAAE,EAAE;QACpB,QAAQ,EAAE,IAAI;KACf,CAAC;IAEF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;QAClC,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAChE,MAAM,CAAC,cAAc,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAEvB,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;aAAM,IACL,MAAM,KAAK,GAAG;YACd,QAAQ,KAAK,GAAG;YAChB,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG,CAAC;YACpC,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG,CAAC,EACpC,CAAC;YACD,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,CAChB,IAAY,EACZ,SAAwC,EACxC,EAAE;gBACF,IAAI,SAAiC,CAAC;gBACtC,QAAQ,IAAI,EAAE,CAAC;oBACb,KAAK,GAAG;wBACN,SAAS,GAAG,UAAU,CAAC;wBACvB,MAAM;oBACR,KAAK,GAAG;wBACN,SAAS,GAAG,OAAO,CAAC;wBACpB,MAAM;oBACR,KAAK,GAAG;wBACN,SAAS,GAAG,SAAS,CAAC;wBACtB,MAAM;oBACR,KAAK,GAAG;wBACN,SAAS,GAAG,SAAS,CAAC;wBACtB,MAAM;oBACR,KAAK,GAAG;wBACN,SAAS,GAAG,QAAQ,CAAC;wBACrB,MAAM;oBACR,KAAK,GAAG;wBACN,SAAS,GAAG,aAAa,CAAC;wBAC1B,MAAM;oBACR;wBACE,OAAO;gBACX,CAAC;gBACD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC1B,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;gBAC5B,CAAC;gBACA,SAAS,CAAC,SAAS,CAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,CAAC,CAAC;YACF,IAAI,MAAM,EAAE,CAAC;gBACX,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,QAAQ,EAAE,CAAC;gBACb,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAsB,EACtB,OAA2E;IAE3E,MAAM,SAAS,GAAG,cAAc,CAAC;IACjC,MAAM,CAAC,KAAK,CAAC,aAAa,SAAS,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAE/D,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IACjD,IAAI,MAAM,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,IAAI,QAAQ,CAChB,aAAa,CAAC,gBAAgB,EAC9B,+FAA+F,CAChG,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,YAAY,CAAC,YAAY,CAC1C,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,UAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAC/C,EAAE,aAAa,EAAE,IAAI,EAAE,CACxB,CAAC,aAAa,CAAC;IAEhB,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAElE,MAAM,CAAC,KAAK,CAAC,0BAA0B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;QACvD,GAAG,OAAO;QACV,SAAS;KACV,CAAC,CAAC;IACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @fileoverview Handles registration and error handling for the git_status tool.
3
+ * @module src/mcp-server/tools/gitStatus/registration
4
+ */
5
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ import { RequestContext } from "../../../utils/index.js";
7
+ export type GetWorkingDirectoryFn = (sessionId: string | undefined) => string | undefined;
8
+ export type GetSessionIdFn = (context: RequestContext) => string | undefined;
9
+ /**
10
+ * Registers the git_status tool with the MCP server instance.
11
+ * @param server The MCP server instance.
12
+ * @param getWorkingDirectory Function to get the session's working directory.
13
+ * @param getSessionId Function to get the session ID from context.
14
+ */
15
+ export declare const registerGitStatusTool: (server: McpServer, getWorkingDirectory: GetWorkingDirectoryFn, getSessionId: GetSessionIdFn) => Promise<void>;
16
+ //# sourceMappingURL=registration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/gitStatus/registration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAGL,cAAc,EAEf,MAAM,yBAAyB,CAAC;AASjC,MAAM,MAAM,qBAAqB,GAAG,CAClC,SAAS,EAAE,MAAM,GAAG,SAAS,KAC1B,MAAM,GAAG,SAAS,CAAC;AACxB,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,cAAc,KAAK,MAAM,GAAG,SAAS,CAAC;AAM7E;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,QAAQ,SAAS,EACjB,qBAAqB,qBAAqB,EAC1C,cAAc,cAAc,KAC3B,OAAO,CAAC,IAAI,CAgEd,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * @fileoverview Handles registration and error handling for the git_status tool.
3
3
  * @module src/mcp-server/tools/gitStatus/registration
4
4
  */
5
- import { ErrorHandler, logger, requestContextService } from "../../../utils/index.js";
5
+ import { ErrorHandler, logger, requestContextService, } from "../../../utils/index.js";
6
6
  import { getGitStatus, GitStatusInputSchema, GitStatusOutputSchema, } from "./logic.js";
7
7
  const TOOL_NAME = "git_status";
8
8
  const TOOL_DESCRIPTION = "Retrieves the status of a Git repository. Returns a JSON object detailing the current branch, cleanliness, and changes. Staged and unstaged changes are grouped by status (e.g., Added, Modified), alongside lists of untracked and conflicted files.";
@@ -39,11 +39,19 @@ export const registerGitStatusTool = async (server, getWorkingDirectory, getSess
39
39
  });
40
40
  return {
41
41
  structuredContent: result,
42
- content: [{ type: "text", text: `Success: ${JSON.stringify(result, null, 2)}` }],
42
+ content: [
43
+ {
44
+ type: "text",
45
+ text: `Success: ${JSON.stringify(result, null, 2)}`,
46
+ },
47
+ ],
43
48
  };
44
49
  }
45
50
  catch (error) {
46
- logger.error(`Error in ${TOOL_NAME} handler`, { error, ...handlerContext });
51
+ logger.error(`Error in ${TOOL_NAME} handler`, {
52
+ error,
53
+ ...handlerContext,
54
+ });
47
55
  const mcpError = ErrorHandler.handleError(error, {
48
56
  operation: `tool:${TOOL_NAME}`,
49
57
  context: handlerContext,
@@ -62,3 +70,4 @@ export const registerGitStatusTool = async (server, getWorkingDirectory, getSess
62
70
  });
63
71
  logger.info(`Tool '${TOOL_NAME}' registered successfully.`, context);
64
72
  };
73
+ //# sourceMappingURL=registration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registration.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/gitStatus/registration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,YAAY,EACZ,MAAM,EAEN,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,YAAY,EAEZ,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAOpB,MAAM,SAAS,GAAG,YAAY,CAAC;AAC/B,MAAM,gBAAgB,GACpB,uPAAuP,CAAC;AAE1P;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACxC,MAAiB,EACjB,mBAA0C,EAC1C,YAA4B,EACb,EAAE;IACjB,MAAM,SAAS,GAAG,uBAAuB,CAAC;IAC1C,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAE1E,MAAM,CAAC,YAAY,CACjB,SAAS,EACT;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EAAE,oBAAoB,CAAC,KAAK;QACvC,YAAY,EAAE,qBAAqB,CAAC,KAAK;QACzC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAsB,EAAE,WAAoC,EAAE,EAAE;QACrE,MAAM,cAAc,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;YAChE,QAAQ,EAAE,SAAS;YACnB,aAAa,EAAE,WAAW;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE;gBACxC,GAAG,cAAc;gBACjB,mBAAmB,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC;aAC1D,CAAC,CAAC;YAEH,OAAO;gBACL,iBAAiB,EAAE,MAAM;gBACzB,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;qBACpD;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,YAAY,SAAS,UAAU,EAAE;gBAC5C,KAAK;gBACL,GAAG,cAAc;aAClB,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE;gBAC/C,SAAS,EAAE,QAAQ,SAAS,EAAE;gBAC9B,OAAO,EAAE,cAAc;gBACvB,KAAK,EAAE,MAAM;aACd,CAAa,CAAC;YAEf,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC/D,iBAAiB,EAAE;oBACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;iBAC1B;aACF,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,SAAS,SAAS,4BAA4B,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @fileoverview Barrel file for the gitTag tool.
3
+ * @module src/mcp-server/tools/gitTag/index
4
+ */
5
+ export { registerGitTagTool } from "./registration.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/gitTag/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -3,3 +3,4 @@
3
3
  * @module src/mcp-server/tools/gitTag/index
4
4
  */
5
5
  export { registerGitTagTool } from "./registration.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/gitTag/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * @fileoverview Defines the core logic, schemas, and types for the git_tag tool.
3
+ * @module src/mcp-server/tools/gitTag/logic
4
+ */
5
+ import { z } from "zod";
6
+ import { type RequestContext } from "../../../utils/index.js";
7
+ export declare const GitTagBaseSchema: z.ZodObject<{
8
+ path: z.ZodDefault<z.ZodString>;
9
+ mode: z.ZodEnum<["list", "create", "delete"]>;
10
+ tagName: z.ZodOptional<z.ZodString>;
11
+ message: z.ZodOptional<z.ZodString>;
12
+ commitRef: z.ZodOptional<z.ZodString>;
13
+ annotate: z.ZodDefault<z.ZodBoolean>;
14
+ }, "strip", z.ZodTypeAny, {
15
+ path: string;
16
+ mode: "create" | "list" | "delete";
17
+ annotate: boolean;
18
+ message?: string | undefined;
19
+ commitRef?: string | undefined;
20
+ tagName?: string | undefined;
21
+ }, {
22
+ mode: "create" | "list" | "delete";
23
+ path?: string | undefined;
24
+ message?: string | undefined;
25
+ commitRef?: string | undefined;
26
+ tagName?: string | undefined;
27
+ annotate?: boolean | undefined;
28
+ }>;
29
+ export declare const GitTagInputSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodObject<{
30
+ path: z.ZodDefault<z.ZodString>;
31
+ mode: z.ZodEnum<["list", "create", "delete"]>;
32
+ tagName: z.ZodOptional<z.ZodString>;
33
+ message: z.ZodOptional<z.ZodString>;
34
+ commitRef: z.ZodOptional<z.ZodString>;
35
+ annotate: z.ZodDefault<z.ZodBoolean>;
36
+ }, "strip", z.ZodTypeAny, {
37
+ path: string;
38
+ mode: "create" | "list" | "delete";
39
+ annotate: boolean;
40
+ message?: string | undefined;
41
+ commitRef?: string | undefined;
42
+ tagName?: string | undefined;
43
+ }, {
44
+ mode: "create" | "list" | "delete";
45
+ path?: string | undefined;
46
+ message?: string | undefined;
47
+ commitRef?: string | undefined;
48
+ tagName?: string | undefined;
49
+ annotate?: boolean | undefined;
50
+ }>, {
51
+ path: string;
52
+ mode: "create" | "list" | "delete";
53
+ annotate: boolean;
54
+ message?: string | undefined;
55
+ commitRef?: string | undefined;
56
+ tagName?: string | undefined;
57
+ }, {
58
+ mode: "create" | "list" | "delete";
59
+ path?: string | undefined;
60
+ message?: string | undefined;
61
+ commitRef?: string | undefined;
62
+ tagName?: string | undefined;
63
+ annotate?: boolean | undefined;
64
+ }>, {
65
+ path: string;
66
+ mode: "create" | "list" | "delete";
67
+ annotate: boolean;
68
+ message?: string | undefined;
69
+ commitRef?: string | undefined;
70
+ tagName?: string | undefined;
71
+ }, {
72
+ mode: "create" | "list" | "delete";
73
+ path?: string | undefined;
74
+ message?: string | undefined;
75
+ commitRef?: string | undefined;
76
+ tagName?: string | undefined;
77
+ annotate?: boolean | undefined;
78
+ }>, {
79
+ path: string;
80
+ mode: "create" | "list" | "delete";
81
+ annotate: boolean;
82
+ message?: string | undefined;
83
+ commitRef?: string | undefined;
84
+ tagName?: string | undefined;
85
+ }, {
86
+ mode: "create" | "list" | "delete";
87
+ path?: string | undefined;
88
+ message?: string | undefined;
89
+ commitRef?: string | undefined;
90
+ tagName?: string | undefined;
91
+ annotate?: boolean | undefined;
92
+ }>;
93
+ export declare const GitTagOutputSchema: z.ZodObject<{
94
+ success: z.ZodBoolean;
95
+ mode: z.ZodString;
96
+ message: z.ZodOptional<z.ZodString>;
97
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
98
+ tagName: z.ZodOptional<z.ZodString>;
99
+ }, "strip", z.ZodTypeAny, {
100
+ success: boolean;
101
+ mode: string;
102
+ message?: string | undefined;
103
+ tags?: string[] | undefined;
104
+ tagName?: string | undefined;
105
+ }, {
106
+ success: boolean;
107
+ mode: string;
108
+ message?: string | undefined;
109
+ tags?: string[] | undefined;
110
+ tagName?: string | undefined;
111
+ }>;
112
+ export type GitTagInput = z.infer<typeof GitTagInputSchema>;
113
+ export type GitTagOutput = z.infer<typeof GitTagOutputSchema>;
114
+ /**
115
+ * 4. IMPLEMENT the core logic function.
116
+ * @throws {McpError} If the logic encounters an unrecoverable issue.
117
+ */
118
+ export declare function gitTagLogic(params: GitTagInput, context: RequestContext & {
119
+ getWorkingDirectory: () => string | undefined;
120
+ }): Promise<GitTagOutput>;
121
+ //# sourceMappingURL=logic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/gitTag/logic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,yBAAyB,CAAC;AAMjC,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;EAe3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe1B,CAAC;AAGL,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;EAY7B,CAAC;AAGH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,cAAc,GAAG;IAAE,mBAAmB,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;CAAE,GAC1E,OAAO,CAAC,YAAY,CAAC,CAuFvB"}
@@ -6,25 +6,35 @@ import { execFile } from "child_process";
6
6
  import { promisify } from "util";
7
7
  import { z } from "zod";
8
8
  import { BaseErrorCode, McpError } from "../../../types-global/errors.js";
9
- import { logger, sanitization } from "../../../utils/index.js";
9
+ import { logger, sanitization, } from "../../../utils/index.js";
10
10
  import { config } from "../../../config/index.js";
11
11
  const execFileAsync = promisify(execFile);
12
12
  // 1. DEFINE the Zod input schema.
13
13
  export const GitTagBaseSchema = z.object({
14
14
  path: z.string().default(".").describe("Path to the local Git repository."),
15
- mode: z.enum(["list", "create", "delete"]).describe("The tag operation to perform."),
15
+ mode: z
16
+ .enum(["list", "create", "delete"])
17
+ .describe("The tag operation to perform."),
16
18
  tagName: z.string().min(1).optional().describe("The name for the tag."),
17
- message: z.string().optional().describe("The annotation message for the tag."),
18
- commitRef: z.string().optional().describe("The commit hash, branch, or other reference to tag."),
19
+ message: z
20
+ .string()
21
+ .optional()
22
+ .describe("The annotation message for the tag."),
23
+ commitRef: z
24
+ .string()
25
+ .optional()
26
+ .describe("The commit hash, branch, or other reference to tag."),
19
27
  annotate: z.boolean().default(false).describe("Create an annotated tag."),
20
28
  });
21
29
  export const GitTagInputSchema = GitTagBaseSchema.refine((data) => !(data.mode === "create" && data.annotate && !data.message), {
22
30
  message: "An annotation 'message' is required when creating an annotated tag.",
23
31
  path: ["message"],
24
- }).refine((data) => !(data.mode === "create" && !data.tagName), {
32
+ })
33
+ .refine((data) => !(data.mode === "create" && !data.tagName), {
25
34
  message: "A 'tagName' is required for 'create' mode.",
26
35
  path: ["tagName"],
27
- }).refine((data) => !(data.mode === "delete" && !data.tagName), {
36
+ })
37
+ .refine((data) => !(data.mode === "delete" && !data.tagName), {
28
38
  message: "A 'tagName' is required for 'delete' mode.",
29
39
  path: ["tagName"],
30
40
  });
@@ -33,8 +43,14 @@ export const GitTagOutputSchema = z.object({
33
43
  success: z.boolean().describe("Indicates if the command was successful."),
34
44
  mode: z.string().describe("The mode of operation that was performed."),
35
45
  message: z.string().optional().describe("A summary message of the result."),
36
- tags: z.array(z.string()).optional().describe("A list of tags for the 'list' mode."),
37
- tagName: z.string().optional().describe("The name of the tag that was created or deleted."),
46
+ tags: z
47
+ .array(z.string())
48
+ .optional()
49
+ .describe("A list of tags for the 'list' mode."),
50
+ tagName: z
51
+ .string()
52
+ .optional()
53
+ .describe("The name of the tag that was created or deleted."),
38
54
  });
39
55
  /**
40
56
  * 4. IMPLEMENT the core logic function.
@@ -48,17 +64,33 @@ export async function gitTagLogic(params, context) {
48
64
  throw new McpError(BaseErrorCode.VALIDATION_ERROR, "No session working directory set. Please specify a 'path' or use 'git_set_working_dir' first.");
49
65
  }
50
66
  const targetPath = sanitization.sanitizePath(params.path === "." ? workingDir : params.path, { allowAbsolute: true }).sanitizedPath;
51
- if (params.mode === 'list') {
52
- const { stdout } = await execFileAsync("git", ["-C", targetPath, "tag", "--list"]);
67
+ if (params.mode === "list") {
68
+ const { stdout } = await execFileAsync("git", [
69
+ "-C",
70
+ targetPath,
71
+ "tag",
72
+ "--list",
73
+ ]);
53
74
  const tags = stdout.trim().split("\n").filter(Boolean);
54
75
  return { success: true, mode: params.mode, tags };
55
76
  }
56
- if (params.mode === 'delete') {
57
- await execFileAsync("git", ["-C", targetPath, "tag", "-d", params.tagName]);
58
- return { success: true, mode: params.mode, message: `Tag '${params.tagName}' deleted successfully.`, tagName: params.tagName };
77
+ if (params.mode === "delete") {
78
+ await execFileAsync("git", [
79
+ "-C",
80
+ targetPath,
81
+ "tag",
82
+ "-d",
83
+ params.tagName,
84
+ ]);
85
+ return {
86
+ success: true,
87
+ mode: params.mode,
88
+ message: `Tag '${params.tagName}' deleted successfully.`,
89
+ tagName: params.tagName,
90
+ };
59
91
  }
60
92
  // Handle create mode with signing logic
61
- if (params.mode === 'create') {
93
+ if (params.mode === "create") {
62
94
  const attemptTag = async (withSigning) => {
63
95
  const args = ["-C", targetPath, "tag"];
64
96
  if (params.annotate) {
@@ -70,7 +102,10 @@ export async function gitTagLogic(params, context) {
70
102
  if (params.commitRef) {
71
103
  args.push(params.commitRef);
72
104
  }
73
- logger.debug(`Executing command: git ${args.join(" ")}`, { ...context, operation });
105
+ logger.debug(`Executing command: git ${args.join(" ")}`, {
106
+ ...context,
107
+ operation,
108
+ });
74
109
  return await execFileAsync("git", args);
75
110
  };
76
111
  const shouldSign = !!config.gitSignCommits && params.annotate;
@@ -78,7 +113,8 @@ export async function gitTagLogic(params, context) {
78
113
  await attemptTag(shouldSign);
79
114
  }
80
115
  catch (error) {
81
- const isSigningError = (error.stderr || "").includes("gpg failed to sign");
116
+ const err = error; // Cast to a type that might have stderr
117
+ const isSigningError = (err.stderr || "").includes("gpg failed to sign");
82
118
  if (shouldSign && isSigningError) {
83
119
  logger.warning("Tag with signing failed. Retrying automatically without signature.", { ...context, operation });
84
120
  await attemptTag(false); // Fallback to unsigned annotated tag
@@ -88,5 +124,11 @@ export async function gitTagLogic(params, context) {
88
124
  }
89
125
  }
90
126
  }
91
- return { success: true, mode: params.mode, message: `Tag '${params.tagName}' ${params.mode}d successfully.`, tagName: params.tagName };
127
+ return {
128
+ success: true,
129
+ mode: params.mode,
130
+ message: `Tag '${params.tagName}' ${params.mode}d successfully.`,
131
+ tagName: params.tagName,
132
+ };
92
133
  }
134
+ //# sourceMappingURL=logic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logic.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/gitTag/logic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @fileoverview Handles registration and error handling for the git_tag tool.
3
+ * @module src/mcp-server/tools/gitTag/registration
4
+ */
5
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ import { RequestContext } from "../../../utils/index.js";
7
+ export type GetWorkingDirectoryFn = (sessionId: string | undefined) => string | undefined;
8
+ export type GetSessionIdFn = (context: RequestContext) => string | undefined;
9
+ /**
10
+ * Registers the git_tag tool with the MCP server instance.
11
+ * @param server The MCP server instance.
12
+ * @param getWorkingDirectory Function to get the session's working directory.
13
+ * @param getSessionId Function to get the session ID from context.
14
+ */
15
+ export declare const registerGitTagTool: (server: McpServer, getWorkingDirectory: GetWorkingDirectoryFn, getSessionId: GetSessionIdFn) => Promise<void>;
16
+ //# sourceMappingURL=registration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/gitTag/registration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAGL,cAAc,EAEf,MAAM,yBAAyB,CAAC;AAUjC,MAAM,MAAM,qBAAqB,GAAG,CAClC,SAAS,EAAE,MAAM,GAAG,SAAS,KAC1B,MAAM,GAAG,SAAS,CAAC;AACxB,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,cAAc,KAAK,MAAM,GAAG,SAAS,CAAC;AAM7E;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,SAAS,EACjB,qBAAqB,qBAAqB,EAC1C,cAAc,cAAc,KAC3B,OAAO,CAAC,IAAI,CAkEd,CAAC"}