@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.
- package/LICENSE +1 -1
- package/README.md +69 -25
- package/dist/config/index.d.ts +87 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +7 -3
- package/dist/config/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-server/resources/gitWorkingDir/index.d.ts +6 -0
- package/dist/mcp-server/resources/gitWorkingDir/index.d.ts.map +1 -0
- package/dist/mcp-server/resources/gitWorkingDir/index.js +1 -0
- package/dist/mcp-server/resources/gitWorkingDir/index.js.map +1 -0
- package/dist/mcp-server/resources/gitWorkingDir/logic.d.ts +15 -0
- package/dist/mcp-server/resources/gitWorkingDir/logic.d.ts.map +1 -0
- package/dist/mcp-server/resources/gitWorkingDir/logic.js +1 -0
- package/dist/mcp-server/resources/gitWorkingDir/logic.js.map +1 -0
- package/dist/mcp-server/resources/gitWorkingDir/registration.d.ts +15 -0
- package/dist/mcp-server/resources/gitWorkingDir/registration.d.ts.map +1 -0
- package/dist/mcp-server/resources/gitWorkingDir/registration.js +9 -7
- package/dist/mcp-server/resources/gitWorkingDir/registration.js.map +1 -0
- package/dist/mcp-server/server.d.ts +13 -0
- package/dist/mcp-server/server.d.ts.map +1 -0
- package/dist/mcp-server/server.js +17 -6
- package/dist/mcp-server/server.js.map +1 -0
- package/dist/mcp-server/tools/gitAdd/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitAdd/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitAdd/index.js +1 -0
- package/dist/mcp-server/tools/gitAdd/index.js.map +1 -0
- package/dist/mcp-server/tools/gitAdd/logic.d.ts +167 -0
- package/dist/mcp-server/tools/gitAdd/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitAdd/logic.js +24 -5
- package/dist/mcp-server/tools/gitAdd/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitAdd/registration.d.ts +6 -0
- package/dist/mcp-server/tools/gitAdd/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitAdd/registration.js +5 -2
- package/dist/mcp-server/tools/gitAdd/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitBranch/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitBranch/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitBranch/index.js +1 -0
- package/dist/mcp-server/tools/gitBranch/index.js.map +1 -0
- package/dist/mcp-server/tools/gitBranch/logic.d.ts +175 -0
- package/dist/mcp-server/tools/gitBranch/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitBranch/logic.js +75 -27
- package/dist/mcp-server/tools/gitBranch/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitBranch/registration.d.ts +16 -0
- package/dist/mcp-server/tools/gitBranch/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitBranch/registration.js +13 -4
- package/dist/mcp-server/tools/gitBranch/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitCheckout/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitCheckout/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitCheckout/index.js +1 -0
- package/dist/mcp-server/tools/gitCheckout/index.js.map +1 -0
- package/dist/mcp-server/tools/gitCheckout/logic.d.ts +184 -0
- package/dist/mcp-server/tools/gitCheckout/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitCheckout/logic.js +45 -10
- package/dist/mcp-server/tools/gitCheckout/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitCheckout/registration.d.ts +16 -0
- package/dist/mcp-server/tools/gitCheckout/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitCheckout/registration.js +12 -3
- package/dist/mcp-server/tools/gitCheckout/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitCherryPick/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitCherryPick/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitCherryPick/index.js +1 -0
- package/dist/mcp-server/tools/gitCherryPick/index.js.map +1 -0
- package/dist/mcp-server/tools/gitCherryPick/logic.d.ts +190 -0
- package/dist/mcp-server/tools/gitCherryPick/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitCherryPick/logic.js +38 -10
- package/dist/mcp-server/tools/gitCherryPick/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitCherryPick/registration.d.ts +16 -0
- package/dist/mcp-server/tools/gitCherryPick/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitCherryPick/registration.js +12 -3
- package/dist/mcp-server/tools/gitCherryPick/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitClean/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitClean/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitClean/index.js +1 -0
- package/dist/mcp-server/tools/gitClean/index.js.map +1 -0
- package/dist/mcp-server/tools/gitClean/logic.d.ts +187 -0
- package/dist/mcp-server/tools/gitClean/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitClean/logic.js +48 -11
- package/dist/mcp-server/tools/gitClean/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitClean/registration.d.ts +16 -0
- package/dist/mcp-server/tools/gitClean/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitClean/registration.js +12 -3
- package/dist/mcp-server/tools/gitClean/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitClearWorkingDir/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitClearWorkingDir/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitClearWorkingDir/index.js +1 -0
- package/dist/mcp-server/tools/gitClearWorkingDir/index.js.map +1 -0
- package/dist/mcp-server/tools/gitClearWorkingDir/logic.d.ts +33 -0
- package/dist/mcp-server/tools/gitClearWorkingDir/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitClearWorkingDir/logic.js +21 -5
- package/dist/mcp-server/tools/gitClearWorkingDir/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitClearWorkingDir/registration.d.ts +16 -0
- package/dist/mcp-server/tools/gitClearWorkingDir/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitClearWorkingDir/registration.js +12 -3
- package/dist/mcp-server/tools/gitClearWorkingDir/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitClone/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitClone/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitClone/index.js +1 -0
- package/dist/mcp-server/tools/gitClone/index.js.map +1 -0
- package/dist/mcp-server/tools/gitClone/logic.d.ts +46 -0
- package/dist/mcp-server/tools/gitClone/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitClone/logic.js +33 -10
- package/dist/mcp-server/tools/gitClone/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitClone/registration.d.ts +12 -0
- package/dist/mcp-server/tools/gitClone/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitClone/registration.js +13 -5
- package/dist/mcp-server/tools/gitClone/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitCommit/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitCommit/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitCommit/index.js +1 -0
- package/dist/mcp-server/tools/gitCommit/index.js.map +1 -0
- package/dist/mcp-server/tools/gitCommit/logic.d.ts +211 -0
- package/dist/mcp-server/tools/gitCommit/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitCommit/logic.js +67 -14
- package/dist/mcp-server/tools/gitCommit/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitCommit/registration.d.ts +16 -0
- package/dist/mcp-server/tools/gitCommit/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitCommit/registration.js +12 -3
- package/dist/mcp-server/tools/gitCommit/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitDiff/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitDiff/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitDiff/index.js +1 -0
- package/dist/mcp-server/tools/gitDiff/index.js.map +1 -0
- package/dist/mcp-server/tools/gitDiff/logic.d.ts +87 -0
- package/dist/mcp-server/tools/gitDiff/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitDiff/logic.js +59 -15
- package/dist/mcp-server/tools/gitDiff/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitDiff/registration.d.ts +16 -0
- package/dist/mcp-server/tools/gitDiff/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitDiff/registration.js +13 -3
- package/dist/mcp-server/tools/gitDiff/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitFetch/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitFetch/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitFetch/index.js +1 -0
- package/dist/mcp-server/tools/gitFetch/index.js.map +1 -0
- package/dist/mcp-server/tools/gitFetch/logic.d.ts +45 -0
- package/dist/mcp-server/tools/gitFetch/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitFetch/logic.js +18 -5
- package/dist/mcp-server/tools/gitFetch/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitFetch/registration.d.ts +16 -0
- package/dist/mcp-server/tools/gitFetch/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitFetch/registration.js +12 -3
- package/dist/mcp-server/tools/gitFetch/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitInit/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitInit/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitInit/index.js +1 -0
- package/dist/mcp-server/tools/gitInit/index.js.map +1 -0
- package/dist/mcp-server/tools/gitInit/logic.d.ts +46 -0
- package/dist/mcp-server/tools/gitInit/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitInit/logic.js +73 -21
- package/dist/mcp-server/tools/gitInit/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitInit/registration.d.ts +12 -0
- package/dist/mcp-server/tools/gitInit/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitInit/registration.js +13 -5
- package/dist/mcp-server/tools/gitInit/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitLog/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitLog/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitLog/index.js +1 -0
- package/dist/mcp-server/tools/gitLog/index.js.map +1 -0
- package/dist/mcp-server/tools/gitLog/logic.d.ts +92 -0
- package/dist/mcp-server/tools/gitLog/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitLog/logic.js +84 -26
- package/dist/mcp-server/tools/gitLog/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitLog/registration.d.ts +16 -0
- package/dist/mcp-server/tools/gitLog/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitLog/registration.js +12 -3
- package/dist/mcp-server/tools/gitLog/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitMerge/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitMerge/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitMerge/index.js +1 -0
- package/dist/mcp-server/tools/gitMerge/index.js.map +1 -0
- package/dist/mcp-server/tools/gitMerge/logic.d.ts +196 -0
- package/dist/mcp-server/tools/gitMerge/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitMerge/logic.js +44 -11
- package/dist/mcp-server/tools/gitMerge/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitMerge/registration.d.ts +16 -0
- package/dist/mcp-server/tools/gitMerge/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitMerge/registration.js +12 -3
- package/dist/mcp-server/tools/gitMerge/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitPull/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitPull/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitPull/index.js +1 -0
- package/dist/mcp-server/tools/gitPull/index.js.map +1 -0
- package/dist/mcp-server/tools/gitPull/logic.d.ts +184 -0
- package/dist/mcp-server/tools/gitPull/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitPull/logic.js +31 -7
- package/dist/mcp-server/tools/gitPull/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitPull/registration.d.ts +16 -0
- package/dist/mcp-server/tools/gitPull/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitPull/registration.js +12 -3
- package/dist/mcp-server/tools/gitPull/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitPush/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitPush/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitPush/index.js +1 -0
- package/dist/mcp-server/tools/gitPush/index.js.map +1 -0
- package/dist/mcp-server/tools/gitPush/logic.d.ts +134 -0
- package/dist/mcp-server/tools/gitPush/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitPush/logic.js +28 -9
- package/dist/mcp-server/tools/gitPush/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitPush/registration.d.ts +16 -0
- package/dist/mcp-server/tools/gitPush/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitPush/registration.js +12 -3
- package/dist/mcp-server/tools/gitPush/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitRebase/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitRebase/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitRebase/index.js +1 -0
- package/dist/mcp-server/tools/gitRebase/index.js.map +1 -0
- package/dist/mcp-server/tools/gitRebase/logic.d.ts +242 -0
- package/dist/mcp-server/tools/gitRebase/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitRebase/logic.js +44 -10
- package/dist/mcp-server/tools/gitRebase/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitRebase/registration.d.ts +16 -0
- package/dist/mcp-server/tools/gitRebase/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitRebase/registration.js +12 -3
- package/dist/mcp-server/tools/gitRebase/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitRemote/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitRemote/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitRemote/index.js +1 -0
- package/dist/mcp-server/tools/gitRemote/index.js.map +1 -0
- package/dist/mcp-server/tools/gitRemote/logic.d.ts +107 -0
- package/dist/mcp-server/tools/gitRemote/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitRemote/logic.js +45 -19
- package/dist/mcp-server/tools/gitRemote/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitRemote/registration.d.ts +16 -0
- package/dist/mcp-server/tools/gitRemote/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitRemote/registration.js +12 -3
- package/dist/mcp-server/tools/gitRemote/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitReset/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitReset/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitReset/index.js +1 -0
- package/dist/mcp-server/tools/gitReset/index.js.map +1 -0
- package/dist/mcp-server/tools/gitReset/logic.d.ts +178 -0
- package/dist/mcp-server/tools/gitReset/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitReset/logic.js +24 -7
- package/dist/mcp-server/tools/gitReset/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitReset/registration.d.ts +16 -0
- package/dist/mcp-server/tools/gitReset/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitReset/registration.js +12 -3
- package/dist/mcp-server/tools/gitReset/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitSetWorkingDir/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitSetWorkingDir/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitSetWorkingDir/index.js +1 -0
- package/dist/mcp-server/tools/gitSetWorkingDir/index.js.map +1 -0
- package/dist/mcp-server/tools/gitSetWorkingDir/logic.d.ts +45 -0
- package/dist/mcp-server/tools/gitSetWorkingDir/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitSetWorkingDir/logic.js +29 -8
- package/dist/mcp-server/tools/gitSetWorkingDir/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitSetWorkingDir/registration.d.ts +16 -0
- package/dist/mcp-server/tools/gitSetWorkingDir/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitSetWorkingDir/registration.js +12 -3
- package/dist/mcp-server/tools/gitSetWorkingDir/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitShow/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitShow/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitShow/index.js +1 -0
- package/dist/mcp-server/tools/gitShow/index.js.map +1 -0
- package/dist/mcp-server/tools/gitShow/logic.d.ts +39 -0
- package/dist/mcp-server/tools/gitShow/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitShow/logic.js +17 -5
- package/dist/mcp-server/tools/gitShow/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitShow/registration.d.ts +16 -0
- package/dist/mcp-server/tools/gitShow/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitShow/registration.js +13 -3
- package/dist/mcp-server/tools/gitShow/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitStash/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitStash/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitStash/index.js +1 -0
- package/dist/mcp-server/tools/gitStash/index.js.map +1 -0
- package/dist/mcp-server/tools/gitStash/logic.d.ts +236 -0
- package/dist/mcp-server/tools/gitStash/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitStash/logic.js +76 -18
- package/dist/mcp-server/tools/gitStash/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitStash/registration.d.ts +16 -0
- package/dist/mcp-server/tools/gitStash/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitStash/registration.js +12 -3
- package/dist/mcp-server/tools/gitStash/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitStatus/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitStatus/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitStatus/index.js +1 -0
- package/dist/mcp-server/tools/gitStatus/index.js.map +1 -0
- package/dist/mcp-server/tools/gitStatus/logic.d.ts +115 -0
- package/dist/mcp-server/tools/gitStatus/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitStatus/logic.js +38 -23
- package/dist/mcp-server/tools/gitStatus/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitStatus/registration.d.ts +16 -0
- package/dist/mcp-server/tools/gitStatus/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitStatus/registration.js +12 -3
- package/dist/mcp-server/tools/gitStatus/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitTag/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitTag/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitTag/index.js +1 -0
- package/dist/mcp-server/tools/gitTag/index.js.map +1 -0
- package/dist/mcp-server/tools/gitTag/logic.d.ts +121 -0
- package/dist/mcp-server/tools/gitTag/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitTag/logic.js +59 -17
- package/dist/mcp-server/tools/gitTag/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitTag/registration.d.ts +16 -0
- package/dist/mcp-server/tools/gitTag/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitTag/registration.js +12 -3
- package/dist/mcp-server/tools/gitTag/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitWorktree/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitWorktree/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitWorktree/index.js +1 -0
- package/dist/mcp-server/tools/gitWorktree/index.js.map +1 -0
- package/dist/mcp-server/tools/gitWorktree/logic.d.ts +218 -0
- package/dist/mcp-server/tools/gitWorktree/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitWorktree/logic.js +61 -17
- package/dist/mcp-server/tools/gitWorktree/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitWorktree/registration.d.ts +16 -0
- package/dist/mcp-server/tools/gitWorktree/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitWorktree/registration.js +12 -3
- package/dist/mcp-server/tools/gitWorktree/registration.js.map +1 -0
- package/dist/mcp-server/tools/gitWrapupInstructions/index.d.ts +6 -0
- package/dist/mcp-server/tools/gitWrapupInstructions/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitWrapupInstructions/index.js +1 -0
- package/dist/mcp-server/tools/gitWrapupInstructions/index.js.map +1 -0
- package/dist/mcp-server/tools/gitWrapupInstructions/logic.d.ts +175 -0
- package/dist/mcp-server/tools/gitWrapupInstructions/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitWrapupInstructions/logic.js +20 -6
- package/dist/mcp-server/tools/gitWrapupInstructions/logic.js.map +1 -0
- package/dist/mcp-server/tools/gitWrapupInstructions/registration.d.ts +16 -0
- package/dist/mcp-server/tools/gitWrapupInstructions/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/gitWrapupInstructions/registration.js +12 -3
- package/dist/mcp-server/tools/gitWrapupInstructions/registration.js.map +1 -0
- package/dist/mcp-server/transports/auth/authFactory.d.ts +11 -0
- package/dist/mcp-server/transports/auth/authFactory.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/authFactory.js +1 -0
- package/dist/mcp-server/transports/auth/authFactory.js.map +1 -0
- package/dist/mcp-server/transports/auth/authMiddleware.d.ts +20 -0
- package/dist/mcp-server/transports/auth/authMiddleware.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/authMiddleware.js +1 -0
- package/dist/mcp-server/transports/auth/authMiddleware.js.map +1 -0
- package/dist/mcp-server/transports/auth/index.d.ts +14 -0
- package/dist/mcp-server/transports/auth/index.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/index.js +1 -0
- package/dist/mcp-server/transports/auth/index.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authContext.d.ts +34 -0
- package/dist/mcp-server/transports/auth/lib/authContext.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authContext.js +1 -0
- package/dist/mcp-server/transports/auth/lib/authContext.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.d.ts +13 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.js +1 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.d.ts +19 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.js +1 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts +18 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.js +1 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts +8 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js +5 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts +8 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js +6 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js.map +1 -0
- package/dist/mcp-server/transports/core/baseTransportManager.d.ts +18 -0
- package/dist/mcp-server/transports/core/baseTransportManager.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/baseTransportManager.js +1 -0
- package/dist/mcp-server/transports/core/baseTransportManager.js.map +1 -0
- package/dist/mcp-server/transports/core/honoNodeBridge.d.ts +24 -0
- package/dist/mcp-server/transports/core/honoNodeBridge.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/honoNodeBridge.js +11 -4
- package/dist/mcp-server/transports/core/honoNodeBridge.js.map +1 -0
- package/dist/mcp-server/transports/core/statefulTransportManager.d.ts +32 -0
- package/dist/mcp-server/transports/core/statefulTransportManager.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/statefulTransportManager.js +1 -0
- package/dist/mcp-server/transports/core/statefulTransportManager.js.map +1 -0
- package/dist/mcp-server/transports/core/statelessTransportManager.d.ts +21 -0
- package/dist/mcp-server/transports/core/statelessTransportManager.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/statelessTransportManager.js +1 -0
- package/dist/mcp-server/transports/core/statelessTransportManager.js.map +1 -0
- package/dist/mcp-server/transports/core/transportTypes.d.ts +69 -0
- package/dist/mcp-server/transports/core/transportTypes.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/transportTypes.js +1 -0
- package/dist/mcp-server/transports/core/transportTypes.js.map +1 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.d.ts +22 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.js +1 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -0
- package/dist/mcp-server/transports/http/httpTransport.d.ts +23 -0
- package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/httpTransport.js +29 -10
- package/dist/mcp-server/transports/http/httpTransport.js.map +1 -0
- package/dist/mcp-server/transports/http/httpTypes.d.ts +17 -0
- package/dist/mcp-server/transports/http/httpTypes.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/httpTypes.js +1 -0
- package/dist/mcp-server/transports/http/httpTypes.js.map +1 -0
- package/dist/mcp-server/transports/http/index.d.ts +8 -0
- package/dist/mcp-server/transports/http/index.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/index.js +1 -0
- package/dist/mcp-server/transports/http/index.js.map +1 -0
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts +27 -0
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.js +27 -24
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.js.map +1 -0
- package/dist/mcp-server/transports/stdio/index.d.ts +6 -0
- package/dist/mcp-server/transports/stdio/index.d.ts.map +1 -0
- package/dist/mcp-server/transports/stdio/index.js +1 -0
- package/dist/mcp-server/transports/stdio/index.js.map +1 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.d.ts +43 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.d.ts.map +1 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.js +1 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.js.map +1 -0
- package/dist/types-global/errors.d.ts +122 -0
- package/dist/types-global/errors.d.ts.map +1 -0
- package/dist/types-global/errors.js +1 -0
- package/dist/types-global/errors.js.map +1 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/internal/errorHandler.d.ts +91 -0
- package/dist/utils/internal/errorHandler.d.ts.map +1 -0
- package/dist/utils/internal/errorHandler.js +8 -6
- package/dist/utils/internal/errorHandler.js.map +1 -0
- package/dist/utils/internal/index.d.ts +4 -0
- package/dist/utils/internal/index.d.ts.map +1 -0
- package/dist/utils/internal/index.js +1 -0
- package/dist/utils/internal/index.js.map +1 -0
- package/dist/utils/internal/logger.d.ts +55 -0
- package/dist/utils/internal/logger.d.ts.map +1 -0
- package/dist/utils/internal/logger.js +19 -5
- package/dist/utils/internal/logger.js.map +1 -0
- package/dist/utils/internal/requestContext.d.ts +48 -0
- package/dist/utils/internal/requestContext.d.ts.map +1 -0
- package/dist/utils/internal/requestContext.js +1 -0
- package/dist/utils/internal/requestContext.js.map +1 -0
- package/dist/utils/metrics/index.d.ts +2 -0
- package/dist/utils/metrics/index.d.ts.map +1 -0
- package/dist/utils/metrics/index.js +1 -0
- package/dist/utils/metrics/index.js.map +1 -0
- package/dist/utils/metrics/tokenCounter.d.ts +28 -0
- package/dist/utils/metrics/tokenCounter.d.ts.map +1 -0
- package/dist/utils/metrics/tokenCounter.js +1 -0
- package/dist/utils/metrics/tokenCounter.js.map +1 -0
- package/dist/utils/parsing/dateParser.d.ts +25 -0
- package/dist/utils/parsing/dateParser.d.ts.map +1 -0
- package/dist/utils/parsing/dateParser.js +57 -56
- package/dist/utils/parsing/dateParser.js.map +1 -0
- package/dist/utils/parsing/index.d.ts +3 -0
- package/dist/utils/parsing/index.d.ts.map +1 -0
- package/dist/utils/parsing/index.js +1 -0
- package/dist/utils/parsing/index.js.map +1 -0
- package/dist/utils/parsing/jsonParser.d.ts +83 -0
- package/dist/utils/parsing/jsonParser.d.ts.map +1 -0
- package/dist/utils/parsing/jsonParser.js +85 -45
- package/dist/utils/parsing/jsonParser.js.map +1 -0
- package/dist/utils/security/idGenerator.d.ts +94 -0
- package/dist/utils/security/idGenerator.d.ts.map +1 -0
- package/dist/utils/security/idGenerator.js +9 -2
- package/dist/utils/security/idGenerator.js.map +1 -0
- package/dist/utils/security/index.d.ts +4 -0
- package/dist/utils/security/index.d.ts.map +1 -0
- package/dist/utils/security/index.js +1 -0
- package/dist/utils/security/index.js.map +1 -0
- package/dist/utils/security/rateLimiter.d.ts +93 -0
- package/dist/utils/security/rateLimiter.d.ts.map +1 -0
- package/dist/utils/security/rateLimiter.js +1 -0
- package/dist/utils/security/rateLimiter.js.map +1 -0
- package/dist/utils/security/sanitization.d.ts +181 -0
- package/dist/utils/security/sanitization.d.ts.map +1 -0
- package/dist/utils/security/sanitization.js +6 -5
- package/dist/utils/security/sanitization.js.map +1 -0
- package/package.json +52 -34
|
@@ -5,36 +5,78 @@
|
|
|
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
|
import { config } from "../../../config/index.js";
|
|
11
|
+
import { getGitStatus, GitStatusOutputSchema } from "../gitStatus/logic.js";
|
|
11
12
|
const execFileAsync = promisify(execFile);
|
|
12
13
|
// 1. DEFINE the Zod input schema.
|
|
13
14
|
export const GitCommitInputSchema = z.object({
|
|
14
15
|
path: z.string().default(".").describe("Path to the Git repository."),
|
|
15
|
-
message: z
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
message: z
|
|
17
|
+
.string()
|
|
18
|
+
.min(1)
|
|
19
|
+
.describe("Commit message, preferably following Conventional Commits format."),
|
|
20
|
+
author: z
|
|
21
|
+
.object({ name: z.string(), email: z.string().email() })
|
|
22
|
+
.optional()
|
|
23
|
+
.describe("Override the commit author."),
|
|
24
|
+
allowEmpty: z
|
|
25
|
+
.boolean()
|
|
26
|
+
.default(false)
|
|
27
|
+
.describe("Allow creating a commit with no changes."),
|
|
18
28
|
amend: z.boolean().default(false).describe("Amend the previous commit."),
|
|
19
|
-
forceUnsignedOnFailure: z
|
|
20
|
-
|
|
29
|
+
forceUnsignedOnFailure: z
|
|
30
|
+
.boolean()
|
|
31
|
+
.default(false)
|
|
32
|
+
.describe("If signing fails, attempt the commit without a signature."),
|
|
33
|
+
filesToStage: z
|
|
34
|
+
.array(z.string().min(1))
|
|
35
|
+
.optional()
|
|
36
|
+
.describe("An array of file paths to stage before committing."),
|
|
21
37
|
});
|
|
22
38
|
// 2. DEFINE the Zod response schema.
|
|
23
39
|
export const GitCommitOutputSchema = z.object({
|
|
24
40
|
success: z.boolean().describe("Indicates if the command was successful."),
|
|
25
41
|
message: z.string().describe("A summary message of the result."),
|
|
26
42
|
commitHash: z.string().optional().describe("The hash of the new commit."),
|
|
27
|
-
committedFiles: z
|
|
28
|
-
|
|
43
|
+
committedFiles: z
|
|
44
|
+
.array(z.string())
|
|
45
|
+
.optional()
|
|
46
|
+
.describe("A list of files included in the commit."),
|
|
47
|
+
nothingToCommit: z
|
|
48
|
+
.boolean()
|
|
49
|
+
.optional()
|
|
50
|
+
.describe("True if there were no changes to commit."),
|
|
51
|
+
status: GitStatusOutputSchema.optional().describe("The status of the repository after the commit."),
|
|
29
52
|
});
|
|
30
53
|
async function stageFiles(targetPath, files, context) {
|
|
31
54
|
const operation = "stageFilesForCommit";
|
|
32
55
|
logger.debug(`Staging files: ${files.join(", ")}`, { ...context, operation });
|
|
33
|
-
const sanitizedFiles = files.map(file => sanitization.sanitizePath(file, { rootDir: targetPath }).sanitizedPath);
|
|
34
|
-
await execFileAsync("git", [
|
|
56
|
+
const sanitizedFiles = files.map((file) => sanitization.sanitizePath(file, { rootDir: targetPath }).sanitizedPath);
|
|
57
|
+
await execFileAsync("git", [
|
|
58
|
+
"-C",
|
|
59
|
+
targetPath,
|
|
60
|
+
"add",
|
|
61
|
+
"--",
|
|
62
|
+
...sanitizedFiles,
|
|
63
|
+
]);
|
|
35
64
|
}
|
|
36
65
|
async function getCommittedFiles(targetPath, commitHash, context) {
|
|
37
|
-
const
|
|
66
|
+
const operation = "getCommittedFiles";
|
|
67
|
+
const args = [
|
|
68
|
+
"-C",
|
|
69
|
+
targetPath,
|
|
70
|
+
"show",
|
|
71
|
+
"--pretty=",
|
|
72
|
+
"--name-only",
|
|
73
|
+
commitHash,
|
|
74
|
+
];
|
|
75
|
+
logger.debug(`Executing command: git ${args.join(" ")}`, {
|
|
76
|
+
...context,
|
|
77
|
+
operation,
|
|
78
|
+
});
|
|
79
|
+
const { stdout } = await execFileAsync("git", args);
|
|
38
80
|
return stdout.trim().split("\n").filter(Boolean);
|
|
39
81
|
}
|
|
40
82
|
/**
|
|
@@ -64,7 +106,10 @@ export async function commitGitChanges(params, context) {
|
|
|
64
106
|
const finalArgs = [...args];
|
|
65
107
|
if (withSigning)
|
|
66
108
|
finalArgs.push("-S");
|
|
67
|
-
logger.debug(`Executing command: git ${finalArgs.join(" ")}`, {
|
|
109
|
+
logger.debug(`Executing command: git ${finalArgs.join(" ")}`, {
|
|
110
|
+
...context,
|
|
111
|
+
operation,
|
|
112
|
+
});
|
|
68
113
|
return await execFileAsync("git", finalArgs);
|
|
69
114
|
};
|
|
70
115
|
let result;
|
|
@@ -73,7 +118,10 @@ export async function commitGitChanges(params, context) {
|
|
|
73
118
|
result = await attemptCommit(shouldSign || false);
|
|
74
119
|
}
|
|
75
120
|
catch (error) {
|
|
76
|
-
const
|
|
121
|
+
const stderr = error && typeof error === "object" && "stderr" in error
|
|
122
|
+
? String(error.stderr)
|
|
123
|
+
: "";
|
|
124
|
+
const isSigningError = stderr.includes("gpg failed to sign");
|
|
77
125
|
if (shouldSign && isSigningError && params.forceUnsignedOnFailure) {
|
|
78
126
|
logger.warning("Commit with signing failed. Retrying without signature.", { ...context, operation });
|
|
79
127
|
result = await attemptCommit(false);
|
|
@@ -84,11 +132,16 @@ export async function commitGitChanges(params, context) {
|
|
|
84
132
|
}
|
|
85
133
|
const commitHashMatch = result.stdout.match(/([a-f0-9]{7,40})/);
|
|
86
134
|
const commitHash = commitHashMatch ? commitHashMatch[1] : undefined;
|
|
87
|
-
const committedFiles = commitHash
|
|
135
|
+
const committedFiles = commitHash
|
|
136
|
+
? await getCommittedFiles(targetPath, commitHash, context)
|
|
137
|
+
: [];
|
|
138
|
+
const status = await getGitStatus({ path: targetPath }, context);
|
|
88
139
|
return {
|
|
89
140
|
success: true,
|
|
90
141
|
message: `Commit successful: ${commitHash}`,
|
|
91
142
|
commitHash,
|
|
92
143
|
committedFiles,
|
|
144
|
+
status,
|
|
93
145
|
};
|
|
94
146
|
}
|
|
147
|
+
//# sourceMappingURL=logic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logic.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/gitCommit/logic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Handles registration and error handling for the git_commit tool.
|
|
3
|
+
* @module src/mcp-server/tools/gitCommit/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_commit 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 registerGitCommitTool: (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/gitCommit/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;AA2B7E;;;;;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_commit tool.
|
|
3
3
|
* @module src/mcp-server/tools/gitCommit/registration
|
|
4
4
|
*/
|
|
5
|
-
import { ErrorHandler, logger, requestContextService } from "../../../utils/index.js";
|
|
5
|
+
import { ErrorHandler, logger, requestContextService, } from "../../../utils/index.js";
|
|
6
6
|
import { commitGitChanges, GitCommitInputSchema, GitCommitOutputSchema, } from "./logic.js";
|
|
7
7
|
const TOOL_NAME = "git_commit";
|
|
8
8
|
const TOOL_DESCRIPTION = `Commits staged changes to the Git repository index with a descriptive message. Supports author override, amending, and empty commits. Returns a JSON result.
|
|
@@ -61,11 +61,19 @@ export const registerGitCommitTool = async (server, getWorkingDirectory, getSess
|
|
|
61
61
|
});
|
|
62
62
|
return {
|
|
63
63
|
structuredContent: result,
|
|
64
|
-
content: [
|
|
64
|
+
content: [
|
|
65
|
+
{
|
|
66
|
+
type: "text",
|
|
67
|
+
text: `Success: ${JSON.stringify(result, null, 2)}`,
|
|
68
|
+
},
|
|
69
|
+
],
|
|
65
70
|
};
|
|
66
71
|
}
|
|
67
72
|
catch (error) {
|
|
68
|
-
logger.error(`Error in ${TOOL_NAME} handler`, {
|
|
73
|
+
logger.error(`Error in ${TOOL_NAME} handler`, {
|
|
74
|
+
error,
|
|
75
|
+
...handlerContext,
|
|
76
|
+
});
|
|
69
77
|
const mcpError = ErrorHandler.handleError(error, {
|
|
70
78
|
operation: `tool:${TOOL_NAME}`,
|
|
71
79
|
context: handlerContext,
|
|
@@ -84,3 +92,4 @@ export const registerGitCommitTool = async (server, getWorkingDirectory, getSess
|
|
|
84
92
|
});
|
|
85
93
|
logger.info(`Tool '${TOOL_NAME}' registered successfully.`, context);
|
|
86
94
|
};
|
|
95
|
+
//# sourceMappingURL=registration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registration.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/gitCommit/registration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,YAAY,EACZ,MAAM,EAEN,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,gBAAgB,EAEhB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAOpB,MAAM,SAAS,GAAG,YAAY,CAAC;AAC/B,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;sMAsB6K,CAAC;AAEvM;;;;;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,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK,EAAE,+BAA+B;YACtD,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,gBAAgB,CAAC,MAAM,EAAE;gBAC5C,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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/gitDiff/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/gitDiff/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Defines the core logic, schemas, and types for the git_diff tool.
|
|
3
|
+
* @module src/mcp-server/tools/gitDiff/logic
|
|
4
|
+
*/
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
import { type RequestContext } from "../../../utils/index.js";
|
|
7
|
+
export declare const GitDiffBaseSchema: z.ZodObject<{
|
|
8
|
+
path: z.ZodDefault<z.ZodString>;
|
|
9
|
+
commit1: z.ZodOptional<z.ZodString>;
|
|
10
|
+
commit2: z.ZodOptional<z.ZodString>;
|
|
11
|
+
staged: z.ZodDefault<z.ZodBoolean>;
|
|
12
|
+
file: z.ZodOptional<z.ZodString>;
|
|
13
|
+
includeUntracked: z.ZodDefault<z.ZodBoolean>;
|
|
14
|
+
}, "strip", z.ZodTypeAny, {
|
|
15
|
+
path: string;
|
|
16
|
+
staged: boolean;
|
|
17
|
+
includeUntracked: boolean;
|
|
18
|
+
file?: string | undefined;
|
|
19
|
+
commit1?: string | undefined;
|
|
20
|
+
commit2?: string | undefined;
|
|
21
|
+
}, {
|
|
22
|
+
path?: string | undefined;
|
|
23
|
+
file?: string | undefined;
|
|
24
|
+
commit1?: string | undefined;
|
|
25
|
+
commit2?: string | undefined;
|
|
26
|
+
staged?: boolean | undefined;
|
|
27
|
+
includeUntracked?: boolean | undefined;
|
|
28
|
+
}>;
|
|
29
|
+
export declare const GitDiffInputSchema: z.ZodEffects<z.ZodObject<{
|
|
30
|
+
path: z.ZodDefault<z.ZodString>;
|
|
31
|
+
commit1: z.ZodOptional<z.ZodString>;
|
|
32
|
+
commit2: z.ZodOptional<z.ZodString>;
|
|
33
|
+
staged: z.ZodDefault<z.ZodBoolean>;
|
|
34
|
+
file: z.ZodOptional<z.ZodString>;
|
|
35
|
+
includeUntracked: z.ZodDefault<z.ZodBoolean>;
|
|
36
|
+
}, "strip", z.ZodTypeAny, {
|
|
37
|
+
path: string;
|
|
38
|
+
staged: boolean;
|
|
39
|
+
includeUntracked: boolean;
|
|
40
|
+
file?: string | undefined;
|
|
41
|
+
commit1?: string | undefined;
|
|
42
|
+
commit2?: string | undefined;
|
|
43
|
+
}, {
|
|
44
|
+
path?: string | undefined;
|
|
45
|
+
file?: string | undefined;
|
|
46
|
+
commit1?: string | undefined;
|
|
47
|
+
commit2?: string | undefined;
|
|
48
|
+
staged?: boolean | undefined;
|
|
49
|
+
includeUntracked?: boolean | undefined;
|
|
50
|
+
}>, {
|
|
51
|
+
path: string;
|
|
52
|
+
staged: boolean;
|
|
53
|
+
includeUntracked: boolean;
|
|
54
|
+
file?: string | undefined;
|
|
55
|
+
commit1?: string | undefined;
|
|
56
|
+
commit2?: string | undefined;
|
|
57
|
+
}, {
|
|
58
|
+
path?: string | undefined;
|
|
59
|
+
file?: string | undefined;
|
|
60
|
+
commit1?: string | undefined;
|
|
61
|
+
commit2?: string | undefined;
|
|
62
|
+
staged?: boolean | undefined;
|
|
63
|
+
includeUntracked?: boolean | undefined;
|
|
64
|
+
}>;
|
|
65
|
+
export declare const GitDiffOutputSchema: z.ZodObject<{
|
|
66
|
+
success: z.ZodBoolean;
|
|
67
|
+
diff: z.ZodString;
|
|
68
|
+
message: z.ZodString;
|
|
69
|
+
}, "strip", z.ZodTypeAny, {
|
|
70
|
+
message: string;
|
|
71
|
+
success: boolean;
|
|
72
|
+
diff: string;
|
|
73
|
+
}, {
|
|
74
|
+
message: string;
|
|
75
|
+
success: boolean;
|
|
76
|
+
diff: string;
|
|
77
|
+
}>;
|
|
78
|
+
export type GitDiffInput = z.infer<typeof GitDiffInputSchema>;
|
|
79
|
+
export type GitDiffOutput = z.infer<typeof GitDiffOutputSchema>;
|
|
80
|
+
/**
|
|
81
|
+
* 4. IMPLEMENT the core logic function.
|
|
82
|
+
* @throws {McpError} If the logic encounters an unrecoverable issue.
|
|
83
|
+
*/
|
|
84
|
+
export declare function diffGitChanges(params: GitDiffInput, context: RequestContext & {
|
|
85
|
+
getWorkingDirectory: () => string | undefined;
|
|
86
|
+
}): Promise<GitDiffOutput>;
|
|
87
|
+
//# sourceMappingURL=logic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/gitDiff/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,iBAAiB;;;;;;;;;;;;;;;;;;;;;EA2B5B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM9B,CAAC;AAGF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;EAQ9B,CAAC;AAGH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAsChE;;;GAGG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,cAAc,GAAG;IAAE,mBAAmB,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;CAAE,GAC1E,OAAO,CAAC,aAAa,CAAC,CAmDxB"}
|
|
@@ -5,39 +5,75 @@
|
|
|
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.
|
|
12
12
|
export const GitDiffBaseSchema = z.object({
|
|
13
|
-
path: z
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
path: z
|
|
14
|
+
.string()
|
|
15
|
+
.default(".")
|
|
16
|
+
.describe("Path to the Git repository. Defaults to the directory set via `git_set_working_dir` for the session; set 'git_set_working_dir' if not set."),
|
|
17
|
+
commit1: z
|
|
18
|
+
.string()
|
|
19
|
+
.optional()
|
|
20
|
+
.describe("First commit, branch, or ref for comparison."),
|
|
21
|
+
commit2: z
|
|
22
|
+
.string()
|
|
23
|
+
.optional()
|
|
24
|
+
.describe("Second commit, branch, or ref for comparison."),
|
|
25
|
+
staged: z
|
|
26
|
+
.boolean()
|
|
27
|
+
.default(false)
|
|
28
|
+
.describe("Show diff of changes staged for the next commit."),
|
|
29
|
+
file: z
|
|
30
|
+
.string()
|
|
31
|
+
.optional()
|
|
32
|
+
.describe("Limit the diff output to a specific file path."),
|
|
33
|
+
includeUntracked: z
|
|
34
|
+
.boolean()
|
|
35
|
+
.default(false)
|
|
36
|
+
.describe("Include untracked files in the diff output."),
|
|
19
37
|
});
|
|
20
|
-
export const GitDiffInputSchema = GitDiffBaseSchema.refine(data => !(data.staged && (data.commit1 || data.commit2)), {
|
|
38
|
+
export const GitDiffInputSchema = GitDiffBaseSchema.refine((data) => !(data.staged && (data.commit1 || data.commit2)), {
|
|
21
39
|
message: "Cannot use 'staged' option with specific commit references.",
|
|
22
40
|
path: ["staged"],
|
|
23
41
|
});
|
|
24
42
|
// 2. DEFINE the Zod response schema.
|
|
25
43
|
export const GitDiffOutputSchema = z.object({
|
|
26
44
|
success: z.boolean().describe("Indicates if the command was successful."),
|
|
27
|
-
diff: z
|
|
45
|
+
diff: z
|
|
46
|
+
.string()
|
|
47
|
+
.describe("The diff output. Will be 'No changes found.' if there are no differences."),
|
|
28
48
|
message: z.string().describe("A summary message of the result."),
|
|
29
49
|
});
|
|
30
50
|
async function getUntrackedFilesDiff(targetPath, context) {
|
|
31
|
-
const { stdout } = await execFileAsync("git", [
|
|
51
|
+
const { stdout } = await execFileAsync("git", [
|
|
52
|
+
"-C",
|
|
53
|
+
targetPath,
|
|
54
|
+
"ls-files",
|
|
55
|
+
"--others",
|
|
56
|
+
"--exclude-standard",
|
|
57
|
+
]);
|
|
32
58
|
const untrackedFiles = stdout.trim().split("\n").filter(Boolean);
|
|
33
59
|
if (untrackedFiles.length === 0)
|
|
34
60
|
return "";
|
|
35
61
|
let diffs = "";
|
|
36
62
|
for (const file of untrackedFiles) {
|
|
37
|
-
const { stdout: diffOut } = await execFileAsync("git", [
|
|
63
|
+
const { stdout: diffOut } = await execFileAsync("git", [
|
|
64
|
+
"-C",
|
|
65
|
+
targetPath,
|
|
66
|
+
"diff",
|
|
67
|
+
"--no-index",
|
|
68
|
+
"/dev/null",
|
|
69
|
+
file,
|
|
70
|
+
]).catch((err) => {
|
|
38
71
|
if (err.stdout)
|
|
39
72
|
return { stdout: err.stdout };
|
|
40
|
-
logger.warning(`Failed to diff untracked file: ${file}`, {
|
|
73
|
+
logger.warning(`Failed to diff untracked file: ${file}`, {
|
|
74
|
+
...context,
|
|
75
|
+
error: err.message,
|
|
76
|
+
});
|
|
41
77
|
return { stdout: "" };
|
|
42
78
|
});
|
|
43
79
|
diffs += diffOut;
|
|
@@ -68,8 +104,13 @@ export async function diffGitChanges(params, context) {
|
|
|
68
104
|
}
|
|
69
105
|
if (params.file)
|
|
70
106
|
args.push("--", params.file);
|
|
71
|
-
logger.debug(`Executing command: git ${args.join(" ")}`, {
|
|
72
|
-
|
|
107
|
+
logger.debug(`Executing command: git ${args.join(" ")}`, {
|
|
108
|
+
...context,
|
|
109
|
+
operation,
|
|
110
|
+
});
|
|
111
|
+
const { stdout } = await execFileAsync("git", args, {
|
|
112
|
+
maxBuffer: 1024 * 1024 * 20,
|
|
113
|
+
});
|
|
73
114
|
let combinedDiff = stdout;
|
|
74
115
|
if (params.includeUntracked) {
|
|
75
116
|
const untrackedDiff = await getUntrackedFilesDiff(targetPath, context);
|
|
@@ -78,10 +119,13 @@ export async function diffGitChanges(params, context) {
|
|
|
78
119
|
}
|
|
79
120
|
}
|
|
80
121
|
const noChanges = combinedDiff.trim() === "";
|
|
81
|
-
const message = noChanges
|
|
122
|
+
const message = noChanges
|
|
123
|
+
? "No changes found."
|
|
124
|
+
: `Diff generated successfully.${params.includeUntracked ? " Untracked files included." : ""}`;
|
|
82
125
|
return {
|
|
83
126
|
success: true,
|
|
84
127
|
diff: noChanges ? "No changes found." : combinedDiff,
|
|
85
128
|
message,
|
|
86
129
|
};
|
|
87
130
|
}
|
|
131
|
+
//# sourceMappingURL=logic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logic.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/gitDiff/logic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Handles registration and error handling for the git_diff tool.
|
|
3
|
+
* @module src/mcp-server/tools/gitDiff/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_diff 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 registerGitDiffTool: (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/gitDiff/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,mBAAmB,GAC9B,QAAQ,SAAS,EACjB,qBAAqB,qBAAqB,EAC1C,cAAc,cAAc,KAC3B,OAAO,CAAC,IAAI,CAiEd,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @fileoverview Handles registration and error handling for the git_diff tool.
|
|
3
3
|
* @module src/mcp-server/tools/gitDiff/registration
|
|
4
4
|
*/
|
|
5
|
-
import { ErrorHandler, logger, requestContextService } from "../../../utils/index.js";
|
|
5
|
+
import { ErrorHandler, logger, requestContextService, } from "../../../utils/index.js";
|
|
6
6
|
import { diffGitChanges, GitDiffOutputSchema, GitDiffBaseSchema, } from "./logic.js";
|
|
7
7
|
const TOOL_NAME = "git_diff";
|
|
8
8
|
const TOOL_DESCRIPTION = "Shows changes between commits, commit and working tree, etc. Can show staged changes or diff specific files. An optional 'includeUntracked' parameter (boolean) can be used to also show the content of untracked files. Returns the diff output as plain text.";
|
|
@@ -39,11 +39,20 @@ export const registerGitDiffTool = async (server, getWorkingDirectory, getSessio
|
|
|
39
39
|
});
|
|
40
40
|
return {
|
|
41
41
|
structuredContent: result,
|
|
42
|
-
content: [
|
|
42
|
+
content: [
|
|
43
|
+
{
|
|
44
|
+
type: "text",
|
|
45
|
+
text: result.diff,
|
|
46
|
+
contentType: "text/plain; charset=utf-8",
|
|
47
|
+
},
|
|
48
|
+
],
|
|
43
49
|
};
|
|
44
50
|
}
|
|
45
51
|
catch (error) {
|
|
46
|
-
logger.error(`Error in ${TOOL_NAME} handler`, {
|
|
52
|
+
logger.error(`Error in ${TOOL_NAME} handler`, {
|
|
53
|
+
error,
|
|
54
|
+
...handlerContext,
|
|
55
|
+
});
|
|
47
56
|
const mcpError = ErrorHandler.handleError(error, {
|
|
48
57
|
operation: `tool:${TOOL_NAME}`,
|
|
49
58
|
context: handlerContext,
|
|
@@ -62,3 +71,4 @@ export const registerGitDiffTool = async (server, getWorkingDirectory, getSessio
|
|
|
62
71
|
});
|
|
63
72
|
logger.info(`Tool '${TOOL_NAME}' registered successfully.`, context);
|
|
64
73
|
};
|
|
74
|
+
//# sourceMappingURL=registration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registration.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/gitDiff/registration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,YAAY,EACZ,MAAM,EAEN,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,cAAc,EAEd,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAOpB,MAAM,SAAS,GAAG,UAAU,CAAC;AAC7B,MAAM,gBAAgB,GACpB,iQAAiQ,CAAC;AAEpQ;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,MAAiB,EACjB,mBAA0C,EAC1C,YAA4B,EACb,EAAE;IACjB,MAAM,SAAS,GAAG,qBAAqB,CAAC;IACxC,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAE1E,MAAM,CAAC,YAAY,CACjB,SAAS,EACT;QACE,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EAAE,iBAAiB,CAAC,KAAK;QACpC,YAAY,EAAE,mBAAmB,CAAC,KAAK;QACvC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAoB,EAAE,WAAoC,EAAE,EAAE;QACnE,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,cAAc,CAAC,MAAM,EAAE;gBAC1C,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,MAAM,CAAC,IAAI;wBACjB,WAAW,EAAE,2BAA2B;qBACzC;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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/gitFetch/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/gitFetch/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Defines the core logic, schemas, and types for the git_fetch tool.
|
|
3
|
+
* @module src/mcp-server/tools/gitFetch/logic
|
|
4
|
+
*/
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
import { type RequestContext } from "../../../utils/index.js";
|
|
7
|
+
export declare const GitFetchInputSchema: z.ZodObject<{
|
|
8
|
+
path: z.ZodDefault<z.ZodString>;
|
|
9
|
+
remote: z.ZodOptional<z.ZodString>;
|
|
10
|
+
prune: z.ZodDefault<z.ZodBoolean>;
|
|
11
|
+
tags: z.ZodDefault<z.ZodBoolean>;
|
|
12
|
+
all: z.ZodDefault<z.ZodBoolean>;
|
|
13
|
+
}, "strip", z.ZodTypeAny, {
|
|
14
|
+
path: string;
|
|
15
|
+
all: boolean;
|
|
16
|
+
prune: boolean;
|
|
17
|
+
tags: boolean;
|
|
18
|
+
remote?: string | undefined;
|
|
19
|
+
}, {
|
|
20
|
+
path?: string | undefined;
|
|
21
|
+
all?: boolean | undefined;
|
|
22
|
+
remote?: string | undefined;
|
|
23
|
+
prune?: boolean | undefined;
|
|
24
|
+
tags?: boolean | undefined;
|
|
25
|
+
}>;
|
|
26
|
+
export declare const GitFetchOutputSchema: z.ZodObject<{
|
|
27
|
+
success: z.ZodBoolean;
|
|
28
|
+
message: z.ZodString;
|
|
29
|
+
}, "strip", z.ZodTypeAny, {
|
|
30
|
+
message: string;
|
|
31
|
+
success: boolean;
|
|
32
|
+
}, {
|
|
33
|
+
message: string;
|
|
34
|
+
success: boolean;
|
|
35
|
+
}>;
|
|
36
|
+
export type GitFetchInput = z.infer<typeof GitFetchInputSchema>;
|
|
37
|
+
export type GitFetchOutput = z.infer<typeof GitFetchOutputSchema>;
|
|
38
|
+
/**
|
|
39
|
+
* 4. IMPLEMENT the core logic function.
|
|
40
|
+
* @throws {McpError} If the logic encounters an unrecoverable issue.
|
|
41
|
+
*/
|
|
42
|
+
export declare function fetchGitRemote(params: GitFetchInput, context: RequestContext & {
|
|
43
|
+
getWorkingDirectory: () => string | undefined;
|
|
44
|
+
}): Promise<GitFetchOutput>;
|
|
45
|
+
//# sourceMappingURL=logic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/gitFetch/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,mBAAmB;;;;;;;;;;;;;;;;;;EAmB9B,CAAC;AAGH,eAAO,MAAM,oBAAoB;;;;;;;;;EAG/B,CAAC;AAGH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;;GAGG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,cAAc,GAAG;IAAE,mBAAmB,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;CAAE,GAC1E,OAAO,CAAC,cAAc,CAAC,CAkCzB"}
|
|
@@ -5,14 +5,23 @@
|
|
|
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.
|
|
12
12
|
export const GitFetchInputSchema = z.object({
|
|
13
|
-
path: z
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
path: z
|
|
14
|
+
.string()
|
|
15
|
+
.default(".")
|
|
16
|
+
.describe("Path to the Git repository. Defaults to the directory set via `git_set_working_dir` for the session; set 'git_set_working_dir' if not set."),
|
|
17
|
+
remote: z
|
|
18
|
+
.string()
|
|
19
|
+
.optional()
|
|
20
|
+
.describe("The remote repository to fetch from (e.g., 'origin')."),
|
|
21
|
+
prune: z
|
|
22
|
+
.boolean()
|
|
23
|
+
.default(false)
|
|
24
|
+
.describe("Remove remote-tracking references that no longer exist on the remote."),
|
|
16
25
|
tags: z.boolean().default(false).describe("Fetch all tags from the remote."),
|
|
17
26
|
all: z.boolean().default(false).describe("Fetch all remotes."),
|
|
18
27
|
});
|
|
@@ -44,8 +53,12 @@ export async function fetchGitRemote(params, context) {
|
|
|
44
53
|
else if (params.remote) {
|
|
45
54
|
args.push(params.remote);
|
|
46
55
|
}
|
|
47
|
-
logger.debug(`Executing command: git ${args.join(" ")}`, {
|
|
56
|
+
logger.debug(`Executing command: git ${args.join(" ")}`, {
|
|
57
|
+
...context,
|
|
58
|
+
operation,
|
|
59
|
+
});
|
|
48
60
|
const { stderr } = await execFileAsync("git", args);
|
|
49
61
|
const message = stderr.trim() || "Fetch successful.";
|
|
50
62
|
return { success: true, message };
|
|
51
63
|
}
|
|
64
|
+
//# sourceMappingURL=logic.js.map
|