@gitkraken/core-gitlens 0.4.0 → 0.4.100

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 (1036) hide show
  1. package/CHANGELOG.md +71 -1
  2. package/README.md +9 -2
  3. package/dist/git/cache.d.ts +29 -2
  4. package/dist/git/cache.d.ts.map +1 -1
  5. package/dist/git/cache.js +67 -7
  6. package/dist/git/cache.js.map +1 -1
  7. package/dist/git/context.d.ts.map +1 -1
  8. package/dist/git/errors.d.ts +31 -1
  9. package/dist/git/errors.d.ts.map +1 -1
  10. package/dist/git/errors.js +29 -0
  11. package/dist/git/errors.js.map +1 -1
  12. package/dist/git/models/author.d.ts.map +1 -1
  13. package/dist/git/models/author.js.map +1 -1
  14. package/dist/git/models/autolink.d.ts.map +1 -1
  15. package/dist/git/models/autolink.js.map +1 -1
  16. package/dist/git/models/blame.d.ts.map +1 -1
  17. package/dist/git/models/blame.js.map +1 -1
  18. package/dist/git/models/branch.d.ts.map +1 -1
  19. package/dist/git/models/branch.js.map +1 -1
  20. package/dist/git/models/commit.d.ts.map +1 -1
  21. package/dist/git/models/commit.js +1 -1
  22. package/dist/git/models/commit.js.map +1 -1
  23. package/dist/git/models/contributor.d.ts.map +1 -1
  24. package/dist/git/models/contributor.js.map +1 -1
  25. package/dist/git/models/defaultBranch.d.ts.map +1 -1
  26. package/dist/git/models/defaultBranch.js.map +1 -1
  27. package/dist/git/models/diff.d.ts.map +1 -1
  28. package/dist/git/models/diff.js.map +1 -1
  29. package/dist/git/models/file.d.ts.map +1 -1
  30. package/dist/git/models/file.js.map +1 -1
  31. package/dist/git/models/fileChange.d.ts.map +1 -1
  32. package/dist/git/models/fileChange.js.map +1 -1
  33. package/dist/git/models/fileStatus.d.ts +22 -22
  34. package/dist/git/models/fileStatus.d.ts.map +1 -1
  35. package/dist/git/models/fileStatus.js.map +1 -1
  36. package/dist/git/models/graph.d.ts +122 -1
  37. package/dist/git/models/graph.d.ts.map +1 -1
  38. package/dist/git/models/graph.js +4 -0
  39. package/dist/git/models/graph.js.map +1 -1
  40. package/dist/git/models/graphSearch.d.ts.map +1 -1
  41. package/dist/git/models/graphSearch.js.map +1 -1
  42. package/dist/git/models/graphSession.d.ts +177 -0
  43. package/dist/git/models/graphSession.d.ts.map +1 -0
  44. package/dist/git/models/graphSession.js +7 -0
  45. package/dist/git/models/graphSession.js.map +1 -0
  46. package/dist/git/models/issue.d.ts +12 -2
  47. package/dist/git/models/issue.d.ts.map +1 -1
  48. package/dist/git/models/issue.js +3 -1
  49. package/dist/git/models/issue.js.map +1 -1
  50. package/dist/git/models/issueOrPullRequest.d.ts.map +1 -1
  51. package/dist/git/models/issueOrPullRequest.js.map +1 -1
  52. package/dist/git/models/lineRange.d.ts.map +1 -1
  53. package/dist/git/models/lineRange.js.map +1 -1
  54. package/dist/git/models/log.d.ts.map +1 -1
  55. package/dist/git/models/log.js.map +1 -1
  56. package/dist/git/models/mergeConflicts.d.ts.map +1 -1
  57. package/dist/git/models/mergeConflicts.js.map +1 -1
  58. package/dist/git/models/patch.d.ts.map +1 -1
  59. package/dist/git/models/patch.js.map +1 -1
  60. package/dist/git/models/pausedOperationStatus.d.ts.map +1 -1
  61. package/dist/git/models/pausedOperationStatus.js.map +1 -1
  62. package/dist/git/models/pullRequest.d.ts +27 -2
  63. package/dist/git/models/pullRequest.d.ts.map +1 -1
  64. package/dist/git/models/pullRequest.js +7 -1
  65. package/dist/git/models/pullRequest.js.map +1 -1
  66. package/dist/git/models/rebase.d.ts.map +1 -1
  67. package/dist/git/models/rebase.js.map +1 -1
  68. package/dist/git/models/reference.d.ts.map +1 -1
  69. package/dist/git/models/reference.js.map +1 -1
  70. package/dist/git/models/reflog.d.ts.map +1 -1
  71. package/dist/git/models/reflog.js.map +1 -1
  72. package/dist/git/models/remote.d.ts.map +1 -1
  73. package/dist/git/models/remote.js.map +1 -1
  74. package/dist/git/models/remoteProvider.d.ts.map +1 -1
  75. package/dist/git/models/remoteProvider.js.map +1 -1
  76. package/dist/git/models/remoteResource.d.ts.map +1 -1
  77. package/dist/git/models/remoteResource.js.map +1 -1
  78. package/dist/git/models/repository.d.ts +20 -2
  79. package/dist/git/models/repository.d.ts.map +1 -1
  80. package/dist/git/models/repository.js +19 -0
  81. package/dist/git/models/repository.js.map +1 -1
  82. package/dist/git/models/repositoryChangeEvent.d.ts.map +1 -1
  83. package/dist/git/models/repositoryChangeEvent.js.map +1 -1
  84. package/dist/git/models/repositoryIdentities.d.ts.map +1 -1
  85. package/dist/git/models/repositoryIdentities.js.map +1 -1
  86. package/dist/git/models/repositoryMetadata.d.ts.map +1 -1
  87. package/dist/git/models/repositoryMetadata.js.map +1 -1
  88. package/dist/git/models/resourceDescriptor.d.ts +16 -0
  89. package/dist/git/models/resourceDescriptor.d.ts.map +1 -1
  90. package/dist/git/models/resourceDescriptor.js.map +1 -1
  91. package/dist/git/models/revision.d.ts.map +1 -1
  92. package/dist/git/models/revision.js.map +1 -1
  93. package/dist/git/models/search.d.ts.map +1 -1
  94. package/dist/git/models/search.js.map +1 -1
  95. package/dist/git/models/shortlog.d.ts.map +1 -1
  96. package/dist/git/models/shortlog.js.map +1 -1
  97. package/dist/git/models/signature.d.ts +14 -0
  98. package/dist/git/models/signature.d.ts.map +1 -1
  99. package/dist/git/models/signature.js.map +1 -1
  100. package/dist/git/models/staging.d.ts.map +1 -1
  101. package/dist/git/models/staging.js.map +1 -1
  102. package/dist/git/models/stash.d.ts.map +1 -1
  103. package/dist/git/models/stash.js.map +1 -1
  104. package/dist/git/models/status.d.ts.map +1 -1
  105. package/dist/git/models/status.js.map +1 -1
  106. package/dist/git/models/statusFile.d.ts.map +1 -1
  107. package/dist/git/models/statusFile.js.map +1 -1
  108. package/dist/git/models/tag.d.ts +11 -1
  109. package/dist/git/models/tag.d.ts.map +1 -1
  110. package/dist/git/models/tag.js +9 -2
  111. package/dist/git/models/tag.js.map +1 -1
  112. package/dist/git/models/tree.d.ts.map +1 -1
  113. package/dist/git/models/tree.js.map +1 -1
  114. package/dist/git/models/user.d.ts.map +1 -1
  115. package/dist/git/models/user.js.map +1 -1
  116. package/dist/git/models/worktree.d.ts.map +1 -1
  117. package/dist/git/models/worktree.js.map +1 -1
  118. package/dist/git/parsers/diffParser.d.ts.map +1 -1
  119. package/dist/git/parsers/diffParser.js +1 -1
  120. package/dist/git/parsers/diffParser.js.map +1 -1
  121. package/dist/git/parsers/rebaseTodoParser.d.ts.map +1 -1
  122. package/dist/git/parsers/rebaseTodoParser.js.map +1 -1
  123. package/dist/git/providers/blame.d.ts.map +1 -1
  124. package/dist/git/providers/blame.js.map +1 -1
  125. package/dist/git/providers/branches.d.ts +8 -1
  126. package/dist/git/providers/branches.d.ts.map +1 -1
  127. package/dist/git/providers/branches.js.map +1 -1
  128. package/dist/git/providers/commits.d.ts +6 -1
  129. package/dist/git/providers/commits.d.ts.map +1 -1
  130. package/dist/git/providers/commits.js.map +1 -1
  131. package/dist/git/providers/config.d.ts +6 -2
  132. package/dist/git/providers/config.d.ts.map +1 -1
  133. package/dist/git/providers/config.js.map +1 -1
  134. package/dist/git/providers/contributors.d.ts.map +1 -1
  135. package/dist/git/providers/contributors.js.map +1 -1
  136. package/dist/git/providers/diff.d.ts.map +1 -1
  137. package/dist/git/providers/diff.js.map +1 -1
  138. package/dist/git/providers/graph.d.ts +55 -1
  139. package/dist/git/providers/graph.d.ts.map +1 -1
  140. package/dist/git/providers/graph.js.map +1 -1
  141. package/dist/git/providers/operations.d.ts.map +1 -1
  142. package/dist/git/providers/operations.js.map +1 -1
  143. package/dist/git/providers/patch.d.ts.map +1 -1
  144. package/dist/git/providers/patch.js.map +1 -1
  145. package/dist/git/providers/pausedOperations.d.ts.map +1 -1
  146. package/dist/git/providers/pausedOperations.js.map +1 -1
  147. package/dist/git/providers/provider.d.ts.map +1 -1
  148. package/dist/git/providers/provider.js.map +1 -1
  149. package/dist/git/providers/refs.d.ts.map +1 -1
  150. package/dist/git/providers/refs.js.map +1 -1
  151. package/dist/git/providers/remotes.d.ts.map +1 -1
  152. package/dist/git/providers/remotes.js.map +1 -1
  153. package/dist/git/providers/revision.d.ts.map +1 -1
  154. package/dist/git/providers/revision.js.map +1 -1
  155. package/dist/git/providers/shared/remotes.d.ts.map +1 -1
  156. package/dist/git/providers/shared/remotes.js.map +1 -1
  157. package/dist/git/providers/staging.d.ts.map +1 -1
  158. package/dist/git/providers/staging.js.map +1 -1
  159. package/dist/git/providers/stash.d.ts.map +1 -1
  160. package/dist/git/providers/stash.js.map +1 -1
  161. package/dist/git/providers/status.d.ts +1 -0
  162. package/dist/git/providers/status.d.ts.map +1 -1
  163. package/dist/git/providers/status.js.map +1 -1
  164. package/dist/git/providers/tags.d.ts.map +1 -1
  165. package/dist/git/providers/tags.js.map +1 -1
  166. package/dist/git/providers/types.d.ts.map +1 -1
  167. package/dist/git/providers/types.js.map +1 -1
  168. package/dist/git/providers/worktrees.d.ts +3 -1
  169. package/dist/git/providers/worktrees.d.ts.map +1 -1
  170. package/dist/git/providers/worktrees.js.map +1 -1
  171. package/dist/git/remotes/azure-devops.d.ts.map +1 -1
  172. package/dist/git/remotes/azure-devops.js +27 -31
  173. package/dist/git/remotes/azure-devops.js.map +1 -1
  174. package/dist/git/remotes/bitbucket-server.d.ts.map +1 -1
  175. package/dist/git/remotes/bitbucket-server.js +21 -23
  176. package/dist/git/remotes/bitbucket-server.js.map +1 -1
  177. package/dist/git/remotes/bitbucket.d.ts.map +1 -1
  178. package/dist/git/remotes/bitbucket.js +21 -23
  179. package/dist/git/remotes/bitbucket.js.map +1 -1
  180. package/dist/git/remotes/custom.d.ts.map +1 -1
  181. package/dist/git/remotes/custom.js.map +1 -1
  182. package/dist/git/remotes/gerrit.d.ts.map +1 -1
  183. package/dist/git/remotes/gerrit.js +11 -13
  184. package/dist/git/remotes/gerrit.js.map +1 -1
  185. package/dist/git/remotes/gitea.d.ts.map +1 -1
  186. package/dist/git/remotes/gitea.js +12 -14
  187. package/dist/git/remotes/gitea.js.map +1 -1
  188. package/dist/git/remotes/github.d.ts.map +1 -1
  189. package/dist/git/remotes/github.js +54 -56
  190. package/dist/git/remotes/github.js.map +1 -1
  191. package/dist/git/remotes/gitlab.d.ts.map +1 -1
  192. package/dist/git/remotes/gitlab.js +93 -95
  193. package/dist/git/remotes/gitlab.js.map +1 -1
  194. package/dist/git/remotes/google-source.d.ts.map +1 -1
  195. package/dist/git/remotes/google-source.js.map +1 -1
  196. package/dist/git/remotes/matcher.d.ts.map +1 -1
  197. package/dist/git/remotes/matcher.js.map +1 -1
  198. package/dist/git/run.types.d.ts +62 -3
  199. package/dist/git/run.types.d.ts.map +1 -1
  200. package/dist/git/service.d.ts.map +1 -1
  201. package/dist/git/utils/autolink.utils.d.ts.map +1 -1
  202. package/dist/git/utils/autolink.utils.js.map +1 -1
  203. package/dist/git/utils/blame.utils.d.ts.map +1 -1
  204. package/dist/git/utils/blame.utils.js.map +1 -1
  205. package/dist/git/utils/branch.utils.d.ts.map +1 -1
  206. package/dist/git/utils/branch.utils.js +12 -1
  207. package/dist/git/utils/branch.utils.js.map +1 -1
  208. package/dist/git/utils/commit.utils.d.ts.map +1 -1
  209. package/dist/git/utils/commit.utils.js.map +1 -1
  210. package/dist/git/utils/conflictResolution.utils.d.ts.map +1 -1
  211. package/dist/git/utils/conflictResolution.utils.js.map +1 -1
  212. package/dist/git/utils/contributor.utils.d.ts +1 -1
  213. package/dist/git/utils/contributor.utils.d.ts.map +1 -1
  214. package/dist/git/utils/contributor.utils.js +1 -2
  215. package/dist/git/utils/contributor.utils.js.map +1 -1
  216. package/dist/git/utils/fetch.utils.d.ts.map +1 -1
  217. package/dist/git/utils/fetch.utils.js.map +1 -1
  218. package/dist/git/utils/fileStatus.utils.d.ts +7 -0
  219. package/dist/git/utils/fileStatus.utils.d.ts.map +1 -1
  220. package/dist/git/utils/fileStatus.utils.js +6 -0
  221. package/dist/git/utils/fileStatus.utils.js.map +1 -1
  222. package/dist/git/utils/graph.utils.d.ts +20 -0
  223. package/dist/git/utils/graph.utils.d.ts.map +1 -0
  224. package/dist/git/utils/graph.utils.js +40 -0
  225. package/dist/git/utils/graph.utils.js.map +1 -0
  226. package/dist/git/utils/issue.utils.d.ts.map +1 -1
  227. package/dist/git/utils/issue.utils.js +1 -0
  228. package/dist/git/utils/issue.utils.js.map +1 -1
  229. package/dist/git/utils/issueOrPullRequest.utils.d.ts.map +1 -1
  230. package/dist/git/utils/issueOrPullRequest.utils.js.map +1 -1
  231. package/dist/git/utils/mergeConflicts.utils.d.ts.map +1 -1
  232. package/dist/git/utils/mergeConflicts.utils.js.map +1 -1
  233. package/dist/git/utils/pausedOperationStatus.utils.d.ts +13 -13
  234. package/dist/git/utils/pausedOperationStatus.utils.d.ts.map +1 -1
  235. package/dist/git/utils/pausedOperationStatus.utils.js.map +1 -1
  236. package/dist/git/utils/pullRequest.utils.d.ts.map +1 -1
  237. package/dist/git/utils/pullRequest.utils.js +9 -0
  238. package/dist/git/utils/pullRequest.utils.js.map +1 -1
  239. package/dist/git/utils/reachability.utils.d.ts +20 -2
  240. package/dist/git/utils/reachability.utils.d.ts.map +1 -1
  241. package/dist/git/utils/reachability.utils.js +68 -7
  242. package/dist/git/utils/reachability.utils.js.map +1 -1
  243. package/dist/git/utils/rebase.utils.d.ts.map +1 -1
  244. package/dist/git/utils/rebase.utils.js.map +1 -1
  245. package/dist/git/utils/reference.utils.d.ts.map +1 -1
  246. package/dist/git/utils/reference.utils.js.map +1 -1
  247. package/dist/git/utils/remote.utils.d.ts.map +1 -1
  248. package/dist/git/utils/remote.utils.js.map +1 -1
  249. package/dist/git/utils/repository.utils.d.ts.map +1 -1
  250. package/dist/git/utils/repository.utils.js.map +1 -1
  251. package/dist/git/utils/resourceDescriptor.utils.d.ts.map +1 -1
  252. package/dist/git/utils/resourceDescriptor.utils.js.map +1 -1
  253. package/dist/git/utils/revision.utils.d.ts.map +1 -1
  254. package/dist/git/utils/revision.utils.js.map +1 -1
  255. package/dist/git/utils/search.utils.d.ts.map +1 -1
  256. package/dist/git/utils/search.utils.js.map +1 -1
  257. package/dist/git/utils/sorting.d.ts.map +1 -1
  258. package/dist/git/utils/sorting.js.map +1 -1
  259. package/dist/git/utils/sshKey.utils.d.ts +7 -0
  260. package/dist/git/utils/sshKey.utils.d.ts.map +1 -0
  261. package/dist/git/utils/sshKey.utils.js +25 -0
  262. package/dist/git/utils/sshKey.utils.js.map +1 -0
  263. package/dist/git/utils/status.utils.d.ts.map +1 -1
  264. package/dist/git/utils/status.utils.js.map +1 -1
  265. package/dist/git/utils/statusFile.utils.d.ts.map +1 -1
  266. package/dist/git/utils/statusFile.utils.js.map +1 -1
  267. package/dist/git/utils/tag.utils.d.ts.map +1 -1
  268. package/dist/git/utils/tag.utils.js.map +1 -1
  269. package/dist/git/utils/tooltip.utils.d.ts.map +1 -1
  270. package/dist/git/utils/tooltip.utils.js.map +1 -1
  271. package/dist/git/utils/uriAuthority.d.ts.map +1 -1
  272. package/dist/git/utils/uriAuthority.js.map +1 -1
  273. package/dist/git/utils/user.utils.d.ts.map +1 -1
  274. package/dist/git/utils/user.utils.js.map +1 -1
  275. package/dist/git/utils/worktree.utils.d.ts.map +1 -1
  276. package/dist/git/utils/worktree.utils.js.map +1 -1
  277. package/dist/git/watching/changeEvent.d.ts.map +1 -1
  278. package/dist/git/watching/changeEvent.js.map +1 -1
  279. package/dist/git/watching/classifyChange.d.ts.map +1 -1
  280. package/dist/git/watching/classifyChange.js.map +1 -1
  281. package/dist/git/watching/gitIgnoreFilter.d.ts.map +1 -1
  282. package/dist/git/watching/gitIgnoreFilter.js.map +1 -1
  283. package/dist/git/watching/initWatcher.d.ts.map +1 -1
  284. package/dist/git/watching/initWatcher.js.map +1 -1
  285. package/dist/git/watching/provider.d.ts.map +1 -1
  286. package/dist/git/watching/provider.js.map +1 -1
  287. package/dist/git/watching/watchGroup.d.ts.map +1 -1
  288. package/dist/git/watching/watchGroup.js.map +1 -1
  289. package/dist/git/watching/watchService.d.ts +4 -0
  290. package/dist/git/watching/watchService.d.ts.map +1 -1
  291. package/dist/git/watching/watchService.js +15 -1
  292. package/dist/git/watching/watchService.js.map +1 -1
  293. package/dist/git/watching/watchSession.d.ts +7 -0
  294. package/dist/git/watching/watchSession.d.ts.map +1 -1
  295. package/dist/git/watching/watchSession.js +14 -2
  296. package/dist/git/watching/watchSession.js.map +1 -1
  297. package/dist/git/watching/watcherPatterns.d.ts.map +1 -1
  298. package/dist/git/watching/watcherPatterns.js.map +1 -1
  299. package/dist/git-cli/cliGitProvider.d.ts.map +1 -1
  300. package/dist/git-cli/exec/exec.d.ts.map +1 -1
  301. package/dist/git-cli/exec/exec.errors.d.ts.map +1 -1
  302. package/dist/git-cli/exec/exec.errors.js.map +1 -1
  303. package/dist/git-cli/exec/exec.js.map +1 -1
  304. package/dist/git-cli/exec/exec.types.d.ts.map +1 -1
  305. package/dist/git-cli/exec/exec.types.js.map +1 -1
  306. package/dist/git-cli/exec/features.d.ts.map +1 -1
  307. package/dist/git-cli/exec/features.js.map +1 -1
  308. package/dist/git-cli/exec/git.d.ts +19 -27
  309. package/dist/git-cli/exec/git.d.ts.map +1 -1
  310. package/dist/git-cli/exec/git.js +126 -34
  311. package/dist/git-cli/exec/git.js.map +1 -1
  312. package/dist/git-cli/exec/gitQueue.d.ts.map +1 -1
  313. package/dist/git-cli/exec/gitQueue.js.map +1 -1
  314. package/dist/git-cli/exec/locator.d.ts.map +1 -1
  315. package/dist/git-cli/exec/locator.js.map +1 -1
  316. package/dist/git-cli/parsers/blameParser.d.ts.map +1 -1
  317. package/dist/git-cli/parsers/blameParser.js.map +1 -1
  318. package/dist/git-cli/parsers/indexParser.d.ts.map +1 -1
  319. package/dist/git-cli/parsers/indexParser.js.map +1 -1
  320. package/dist/git-cli/parsers/logParser.d.ts +9 -1
  321. package/dist/git-cli/parsers/logParser.d.ts.map +1 -1
  322. package/dist/git-cli/parsers/logParser.js +141 -60
  323. package/dist/git-cli/parsers/logParser.js.map +1 -1
  324. package/dist/git-cli/parsers/mergeTreeParser.d.ts.map +1 -1
  325. package/dist/git-cli/parsers/mergeTreeParser.js.map +1 -1
  326. package/dist/git-cli/parsers/refParser.d.ts.map +1 -1
  327. package/dist/git-cli/parsers/refParser.js.map +1 -1
  328. package/dist/git-cli/parsers/reflogParser.d.ts.map +1 -1
  329. package/dist/git-cli/parsers/reflogParser.js.map +1 -1
  330. package/dist/git-cli/parsers/remoteParser.d.ts.map +1 -1
  331. package/dist/git-cli/parsers/remoteParser.js.map +1 -1
  332. package/dist/git-cli/parsers/shortlogParser.d.ts.map +1 -1
  333. package/dist/git-cli/parsers/shortlogParser.js.map +1 -1
  334. package/dist/git-cli/parsers/signatureParser.d.ts.map +1 -1
  335. package/dist/git-cli/parsers/signatureParser.js.map +1 -1
  336. package/dist/git-cli/parsers/sshSignatureParser.d.ts +21 -0
  337. package/dist/git-cli/parsers/sshSignatureParser.d.ts.map +1 -0
  338. package/dist/git-cli/parsers/sshSignatureParser.js +78 -0
  339. package/dist/git-cli/parsers/sshSignatureParser.js.map +1 -0
  340. package/dist/git-cli/parsers/statusParser.d.ts.map +1 -1
  341. package/dist/git-cli/parsers/statusParser.js.map +1 -1
  342. package/dist/git-cli/parsers/treeParser.d.ts.map +1 -1
  343. package/dist/git-cli/parsers/treeParser.js.map +1 -1
  344. package/dist/git-cli/parsers/worktreeParser.d.ts.map +1 -1
  345. package/dist/git-cli/parsers/worktreeParser.js +5 -7
  346. package/dist/git-cli/parsers/worktreeParser.js.map +1 -1
  347. package/dist/git-cli/providers/blame.d.ts.map +1 -1
  348. package/dist/git-cli/providers/blame.js.map +1 -1
  349. package/dist/git-cli/providers/branches.d.ts +1 -0
  350. package/dist/git-cli/providers/branches.d.ts.map +1 -1
  351. package/dist/git-cli/providers/branches.js +51 -32
  352. package/dist/git-cli/providers/branches.js.map +1 -1
  353. package/dist/git-cli/providers/commitFilesetUtils.d.ts.map +1 -1
  354. package/dist/git-cli/providers/commitFilesetUtils.js.map +1 -1
  355. package/dist/git-cli/providers/commits.d.ts +12 -1
  356. package/dist/git-cli/providers/commits.d.ts.map +1 -1
  357. package/dist/git-cli/providers/commits.js +89 -8
  358. package/dist/git-cli/providers/commits.js.map +1 -1
  359. package/dist/git-cli/providers/config.d.ts.map +1 -1
  360. package/dist/git-cli/providers/config.js.map +1 -1
  361. package/dist/git-cli/providers/contributors.d.ts.map +1 -1
  362. package/dist/git-cli/providers/contributors.js.map +1 -1
  363. package/dist/git-cli/providers/diff.d.ts.map +1 -1
  364. package/dist/git-cli/providers/diff.js.map +1 -1
  365. package/dist/git-cli/providers/graph.d.ts +35 -1
  366. package/dist/git-cli/providers/graph.d.ts.map +1 -1
  367. package/dist/git-cli/providers/graph.js +1434 -330
  368. package/dist/git-cli/providers/graph.js.map +1 -1
  369. package/dist/git-cli/providers/operations.d.ts.map +1 -1
  370. package/dist/git-cli/providers/operations.js.map +1 -1
  371. package/dist/git-cli/providers/patch.d.ts.map +1 -1
  372. package/dist/git-cli/providers/patch.js.map +1 -1
  373. package/dist/git-cli/providers/pausedOperations.d.ts.map +1 -1
  374. package/dist/git-cli/providers/pausedOperations.js +3 -3
  375. package/dist/git-cli/providers/pausedOperations.js.map +1 -1
  376. package/dist/git-cli/providers/refs.d.ts.map +1 -1
  377. package/dist/git-cli/providers/refs.js.map +1 -1
  378. package/dist/git-cli/providers/remotes.d.ts.map +1 -1
  379. package/dist/git-cli/providers/remotes.js.map +1 -1
  380. package/dist/git-cli/providers/revision.d.ts +1 -0
  381. package/dist/git-cli/providers/revision.d.ts.map +1 -1
  382. package/dist/git-cli/providers/revision.js +33 -0
  383. package/dist/git-cli/providers/revision.js.map +1 -1
  384. package/dist/git-cli/providers/staging.d.ts.map +1 -1
  385. package/dist/git-cli/providers/staging.js.map +1 -1
  386. package/dist/git-cli/providers/stash.d.ts.map +1 -1
  387. package/dist/git-cli/providers/stash.js.map +1 -1
  388. package/dist/git-cli/providers/status.d.ts +28 -0
  389. package/dist/git-cli/providers/status.d.ts.map +1 -1
  390. package/dist/git-cli/providers/status.js +240 -154
  391. package/dist/git-cli/providers/status.js.map +1 -1
  392. package/dist/git-cli/providers/tags.d.ts.map +1 -1
  393. package/dist/git-cli/providers/tags.js +2 -1
  394. package/dist/git-cli/providers/tags.js.map +1 -1
  395. package/dist/git-cli/providers/worktrees.d.ts +2 -1
  396. package/dist/git-cli/providers/worktrees.d.ts.map +1 -1
  397. package/dist/git-cli/providers/worktrees.js +28 -3
  398. package/dist/git-cli/providers/worktrees.js.map +1 -1
  399. package/dist/git-cli/service.d.ts.map +1 -1
  400. package/dist/git-cli/service.js +8 -0
  401. package/dist/git-cli/service.js.map +1 -1
  402. package/dist/ipc/ipcServer.d.ts.map +1 -1
  403. package/dist/ipc/ipcServer.js +1 -1
  404. package/dist/ipc/ipcServer.js.map +1 -1
  405. package/dist/plus/agents/providers/claudeCodeProvider.d.ts +6 -1
  406. package/dist/plus/agents/providers/claudeCodeProvider.d.ts.map +1 -1
  407. package/dist/plus/agents/providers/claudeCodeProvider.js +19 -0
  408. package/dist/plus/agents/providers/claudeCodeProvider.js.map +1 -1
  409. package/dist/plus/agents/providers/claudeCodeTranscript.d.ts +68 -0
  410. package/dist/plus/agents/providers/claudeCodeTranscript.d.ts.map +1 -1
  411. package/dist/plus/agents/providers/claudeCodeTranscript.js +262 -8
  412. package/dist/plus/agents/providers/claudeCodeTranscript.js.map +1 -1
  413. package/dist/plus/agents/types.d.ts +36 -2
  414. package/dist/plus/agents/types.d.ts.map +1 -1
  415. package/dist/plus/ai/constants.d.ts +1 -2
  416. package/dist/plus/ai/constants.d.ts.map +1 -1
  417. package/dist/plus/ai/constants.js +1 -8
  418. package/dist/plus/ai/constants.js.map +1 -1
  419. package/dist/plus/ai/errors.d.ts.map +1 -1
  420. package/dist/plus/ai/errors.js.map +1 -1
  421. package/dist/plus/ai/models/conversation.d.ts.map +1 -1
  422. package/dist/plus/ai/models/conversation.js.map +1 -1
  423. package/dist/plus/ai/models/model.d.ts +2 -1
  424. package/dist/plus/ai/models/model.d.ts.map +1 -1
  425. package/dist/plus/ai/models/model.js +50 -1
  426. package/dist/plus/ai/models/model.js.map +1 -1
  427. package/dist/plus/ai/models/promptTemplates.d.ts +5 -2
  428. package/dist/plus/ai/models/promptTemplates.d.ts.map +1 -1
  429. package/dist/plus/ai/models/promptTemplates.js.map +1 -1
  430. package/dist/plus/ai/models/provider.d.ts.map +1 -1
  431. package/dist/plus/ai/models/provider.js.map +1 -1
  432. package/dist/plus/ai/models/results.d.ts.map +1 -1
  433. package/dist/plus/ai/models/results.js.map +1 -1
  434. package/dist/plus/ai/prompts.d.ts +1 -1
  435. package/dist/plus/ai/prompts.d.ts.map +1 -1
  436. package/dist/plus/ai/prompts.js +15 -47
  437. package/dist/plus/ai/prompts.js.map +1 -1
  438. package/dist/plus/ai/providers/anthropicProvider.d.ts +5 -0
  439. package/dist/plus/ai/providers/anthropicProvider.d.ts.map +1 -1
  440. package/dist/plus/ai/providers/anthropicProvider.js +40 -3
  441. package/dist/plus/ai/providers/anthropicProvider.js.map +1 -1
  442. package/dist/plus/ai/providers/azureProvider.d.ts.map +1 -1
  443. package/dist/plus/ai/providers/azureProvider.js.map +1 -1
  444. package/dist/plus/ai/providers/context.d.ts.map +1 -1
  445. package/dist/plus/ai/providers/context.js.map +1 -1
  446. package/dist/plus/ai/providers/deepSeekProvider.d.ts.map +1 -1
  447. package/dist/plus/ai/providers/deepSeekProvider.js +17 -1
  448. package/dist/plus/ai/providers/deepSeekProvider.js.map +1 -1
  449. package/dist/plus/ai/providers/geminiProvider.d.ts.map +1 -1
  450. package/dist/plus/ai/providers/geminiProvider.js +25 -6
  451. package/dist/plus/ai/providers/geminiProvider.js.map +1 -1
  452. package/dist/plus/ai/providers/gitkrakenProvider.d.ts.map +1 -1
  453. package/dist/plus/ai/providers/gitkrakenProvider.js +1 -0
  454. package/dist/plus/ai/providers/gitkrakenProvider.js.map +1 -1
  455. package/dist/plus/ai/providers/huggingFaceProvider.d.ts +1 -1
  456. package/dist/plus/ai/providers/huggingFaceProvider.d.ts.map +1 -1
  457. package/dist/plus/ai/providers/huggingFaceProvider.js +21 -18
  458. package/dist/plus/ai/providers/huggingFaceProvider.js.map +1 -1
  459. package/dist/plus/ai/providers/mistralProvider.d.ts.map +1 -1
  460. package/dist/plus/ai/providers/mistralProvider.js.map +1 -1
  461. package/dist/plus/ai/providers/ollamaProvider.d.ts.map +1 -1
  462. package/dist/plus/ai/providers/ollamaProvider.js.map +1 -1
  463. package/dist/plus/ai/providers/openAICompatibleProvider.d.ts.map +1 -1
  464. package/dist/plus/ai/providers/openAICompatibleProvider.js.map +1 -1
  465. package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts +10 -1
  466. package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts.map +1 -1
  467. package/dist/plus/ai/providers/openAICompatibleProviderBase.js +9 -1
  468. package/dist/plus/ai/providers/openAICompatibleProviderBase.js.map +1 -1
  469. package/dist/plus/ai/providers/openRouterProvider.d.ts.map +1 -1
  470. package/dist/plus/ai/providers/openRouterProvider.js.map +1 -1
  471. package/dist/plus/ai/providers/openaiProvider.d.ts.map +1 -1
  472. package/dist/plus/ai/providers/openaiProvider.js.map +1 -1
  473. package/dist/plus/ai/providers/xaiProvider.d.ts.map +1 -1
  474. package/dist/plus/ai/providers/xaiProvider.js +14 -1
  475. package/dist/plus/ai/providers/xaiProvider.js.map +1 -1
  476. package/dist/plus/ai/utils/ai.utils.d.ts.map +1 -1
  477. package/dist/plus/ai/utils/ai.utils.js +0 -2
  478. package/dist/plus/ai/utils/ai.utils.js.map +1 -1
  479. package/dist/plus/ai/utils/results.utils.d.ts +3 -0
  480. package/dist/plus/ai/utils/results.utils.d.ts.map +1 -1
  481. package/dist/plus/ai/utils/results.utils.js +26 -0
  482. package/dist/plus/ai/utils/results.utils.js.map +1 -1
  483. package/dist/plus/ai/utils/truncation.utils.d.ts +1 -1
  484. package/dist/plus/ai/utils/truncation.utils.d.ts.map +1 -1
  485. package/dist/plus/ai/utils/truncation.utils.js.map +1 -1
  486. package/dist/plus/git-github/api/config.d.ts.map +1 -1
  487. package/dist/plus/git-github/api/config.js.map +1 -1
  488. package/dist/plus/git-github/api/github.d.ts +66 -3
  489. package/dist/plus/git-github/api/github.d.ts.map +1 -1
  490. package/dist/plus/git-github/api/github.js +345 -74
  491. package/dist/plus/git-github/api/github.js.map +1 -1
  492. package/dist/plus/git-github/api/github.utils.d.ts.map +1 -1
  493. package/dist/plus/git-github/api/github.utils.js.map +1 -1
  494. package/dist/plus/git-github/api/token.d.ts.map +1 -1
  495. package/dist/plus/git-github/api/token.js.map +1 -1
  496. package/dist/plus/git-github/api/tokenUtils.d.ts.map +1 -1
  497. package/dist/plus/git-github/api/tokenUtils.js.map +1 -1
  498. package/dist/plus/git-github/api/types.d.ts.map +1 -1
  499. package/dist/plus/git-github/api/types.js.map +1 -1
  500. package/dist/plus/git-github/context.d.ts.map +1 -1
  501. package/dist/plus/git-github/models.d.ts +5 -0
  502. package/dist/plus/git-github/models.d.ts.map +1 -1
  503. package/dist/plus/git-github/models.js +27 -2
  504. package/dist/plus/git-github/models.js.map +1 -1
  505. package/dist/plus/git-github/providers/github/blame.d.ts.map +1 -1
  506. package/dist/plus/git-github/providers/github/blame.js.map +1 -1
  507. package/dist/plus/git-github/providers/github/branches.d.ts +2 -1
  508. package/dist/plus/git-github/providers/github/branches.d.ts.map +1 -1
  509. package/dist/plus/git-github/providers/github/branches.js +7 -3
  510. package/dist/plus/git-github/providers/github/branches.js.map +1 -1
  511. package/dist/plus/git-github/providers/github/commits.d.ts.map +1 -1
  512. package/dist/plus/git-github/providers/github/commits.js.map +1 -1
  513. package/dist/plus/git-github/providers/github/config.d.ts.map +1 -1
  514. package/dist/plus/git-github/providers/github/config.js.map +1 -1
  515. package/dist/plus/git-github/providers/github/contributors.d.ts.map +1 -1
  516. package/dist/plus/git-github/providers/github/contributors.js.map +1 -1
  517. package/dist/plus/git-github/providers/github/diff.d.ts.map +1 -1
  518. package/dist/plus/git-github/providers/github/diff.js +2 -2
  519. package/dist/plus/git-github/providers/github/diff.js.map +1 -1
  520. package/dist/plus/git-github/providers/github/graph.d.ts +12 -1
  521. package/dist/plus/git-github/providers/github/graph.d.ts.map +1 -1
  522. package/dist/plus/git-github/providers/github/graph.js +85 -0
  523. package/dist/plus/git-github/providers/github/graph.js.map +1 -1
  524. package/dist/plus/git-github/providers/github/refs.d.ts.map +1 -1
  525. package/dist/plus/git-github/providers/github/refs.js.map +1 -1
  526. package/dist/plus/git-github/providers/github/remotes.d.ts.map +1 -1
  527. package/dist/plus/git-github/providers/github/remotes.js.map +1 -1
  528. package/dist/plus/git-github/providers/github/revision.d.ts.map +1 -1
  529. package/dist/plus/git-github/providers/github/revision.js.map +1 -1
  530. package/dist/plus/git-github/providers/github/status.d.ts.map +1 -1
  531. package/dist/plus/git-github/providers/github/status.js.map +1 -1
  532. package/dist/plus/git-github/providers/github/tags.d.ts.map +1 -1
  533. package/dist/plus/git-github/providers/github/tags.js +3 -1
  534. package/dist/plus/git-github/providers/github/tags.js.map +1 -1
  535. package/dist/plus/git-github/providers/githubGitProvider.d.ts.map +1 -1
  536. package/dist/plus/git-github/providers/githubGitProvider.js.map +1 -1
  537. package/dist/plus/git-github/providers/githubProvider.d.ts.map +1 -1
  538. package/dist/plus/git-github/providers/githubProvider.js.map +1 -1
  539. package/dist/plus/integrations/authentication/cloudIntegrationService.d.ts +20 -1
  540. package/dist/plus/integrations/authentication/cloudIntegrationService.d.ts.map +1 -1
  541. package/dist/plus/integrations/authentication/cloudIntegrationService.js +134 -10
  542. package/dist/plus/integrations/authentication/cloudIntegrationService.js.map +1 -1
  543. package/dist/plus/integrations/authentication/configuredIntegrationService.d.ts +52 -5
  544. package/dist/plus/integrations/authentication/configuredIntegrationService.d.ts.map +1 -1
  545. package/dist/plus/integrations/authentication/configuredIntegrationService.js +248 -46
  546. package/dist/plus/integrations/authentication/configuredIntegrationService.js.map +1 -1
  547. package/dist/plus/integrations/authentication/integrationAuthenticationProvider.d.ts +24 -4
  548. package/dist/plus/integrations/authentication/integrationAuthenticationProvider.d.ts.map +1 -1
  549. package/dist/plus/integrations/authentication/integrationAuthenticationProvider.js +58 -26
  550. package/dist/plus/integrations/authentication/integrationAuthenticationProvider.js.map +1 -1
  551. package/dist/plus/integrations/authentication/integrationAuthenticationService.d.ts.map +1 -1
  552. package/dist/plus/integrations/authentication/integrationAuthenticationService.js +7 -3
  553. package/dist/plus/integrations/authentication/integrationAuthenticationService.js.map +1 -1
  554. package/dist/plus/integrations/authentication/manualTokenProvider.d.ts +1 -0
  555. package/dist/plus/integrations/authentication/manualTokenProvider.d.ts.map +1 -1
  556. package/dist/plus/integrations/authentication/manualTokenProvider.js +9 -5
  557. package/dist/plus/integrations/authentication/manualTokenProvider.js.map +1 -1
  558. package/dist/plus/integrations/authentication/models.d.ts +33 -0
  559. package/dist/plus/integrations/authentication/models.d.ts.map +1 -1
  560. package/dist/plus/integrations/authentication/models.js.map +1 -1
  561. package/dist/plus/integrations/collectionMetadata.d.ts +21 -0
  562. package/dist/plus/integrations/collectionMetadata.d.ts.map +1 -0
  563. package/dist/plus/integrations/collectionMetadata.js +121 -0
  564. package/dist/plus/integrations/collectionMetadata.js.map +1 -0
  565. package/dist/plus/integrations/constants.d.ts +12 -2
  566. package/dist/plus/integrations/constants.d.ts.map +1 -1
  567. package/dist/plus/integrations/constants.js +10 -0
  568. package/dist/plus/integrations/constants.js.map +1 -1
  569. package/dist/plus/integrations/context.d.ts +10 -6
  570. package/dist/plus/integrations/context.d.ts.map +1 -1
  571. package/dist/plus/integrations/errors.d.ts +65 -0
  572. package/dist/plus/integrations/errors.d.ts.map +1 -1
  573. package/dist/plus/integrations/errors.js +131 -0
  574. package/dist/plus/integrations/errors.js.map +1 -1
  575. package/dist/plus/integrations/index.d.ts +57 -12
  576. package/dist/plus/integrations/index.d.ts.map +1 -1
  577. package/dist/plus/integrations/index.js +39 -37
  578. package/dist/plus/integrations/index.js.map +1 -1
  579. package/dist/plus/integrations/integrationService.d.ts +293 -12
  580. package/dist/plus/integrations/integrationService.d.ts.map +1 -1
  581. package/dist/plus/integrations/integrationService.js +1305 -37
  582. package/dist/plus/integrations/integrationService.js.map +1 -1
  583. package/dist/plus/integrations/lite.d.ts +47 -0
  584. package/dist/plus/integrations/lite.d.ts.map +1 -0
  585. package/dist/plus/integrations/lite.js +141 -0
  586. package/dist/plus/integrations/lite.js.map +1 -0
  587. package/dist/plus/integrations/manager.d.ts +332 -0
  588. package/dist/plus/integrations/manager.d.ts.map +1 -0
  589. package/dist/plus/integrations/manager.js +2 -0
  590. package/dist/plus/integrations/manager.js.map +1 -0
  591. package/dist/plus/integrations/models/gitHostIntegration.d.ts +269 -10
  592. package/dist/plus/integrations/models/gitHostIntegration.d.ts.map +1 -1
  593. package/dist/plus/integrations/models/gitHostIntegration.js +712 -88
  594. package/dist/plus/integrations/models/gitHostIntegration.js.map +1 -1
  595. package/dist/plus/integrations/models/integration.d.ts +88 -3
  596. package/dist/plus/integrations/models/integration.d.ts.map +1 -1
  597. package/dist/plus/integrations/models/integration.js +192 -21
  598. package/dist/plus/integrations/models/integration.js.map +1 -1
  599. package/dist/plus/integrations/models/issuesIntegration.d.ts +87 -7
  600. package/dist/plus/integrations/models/issuesIntegration.d.ts.map +1 -1
  601. package/dist/plus/integrations/models/issuesIntegration.js +148 -33
  602. package/dist/plus/integrations/models/issuesIntegration.js.map +1 -1
  603. package/dist/plus/integrations/providerFilters.d.ts +12 -0
  604. package/dist/plus/integrations/providerFilters.d.ts.map +1 -0
  605. package/dist/plus/integrations/providerFilters.js +14 -0
  606. package/dist/plus/integrations/providerFilters.js.map +1 -0
  607. package/dist/plus/integrations/providers/apiClients.d.ts.map +1 -1
  608. package/dist/plus/integrations/providers/apiClients.js +3 -3
  609. package/dist/plus/integrations/providers/apiClients.js.map +1 -1
  610. package/dist/plus/integrations/providers/apiConfig.d.ts +52 -0
  611. package/dist/plus/integrations/providers/apiConfig.d.ts.map +1 -0
  612. package/dist/plus/integrations/providers/apiConfig.js +19 -0
  613. package/dist/plus/integrations/providers/apiConfig.js.map +1 -0
  614. package/dist/plus/integrations/providers/azure/azure.d.ts +14 -2
  615. package/dist/plus/integrations/providers/azure/azure.d.ts.map +1 -1
  616. package/dist/plus/integrations/providers/azure/azure.js +107 -32
  617. package/dist/plus/integrations/providers/azure/azure.js.map +1 -1
  618. package/dist/plus/integrations/providers/azure/models.d.ts +16 -0
  619. package/dist/plus/integrations/providers/azure/models.d.ts.map +1 -1
  620. package/dist/plus/integrations/providers/azure/models.js +6 -6
  621. package/dist/plus/integrations/providers/azure/models.js.map +1 -1
  622. package/dist/plus/integrations/providers/azureDevOps.d.ts +55 -9
  623. package/dist/plus/integrations/providers/azureDevOps.d.ts.map +1 -1
  624. package/dist/plus/integrations/providers/azureDevOps.js +572 -79
  625. package/dist/plus/integrations/providers/azureDevOps.js.map +1 -1
  626. package/dist/plus/integrations/providers/bitbucket/bitbucket.d.ts +13 -2
  627. package/dist/plus/integrations/providers/bitbucket/bitbucket.d.ts.map +1 -1
  628. package/dist/plus/integrations/providers/bitbucket/bitbucket.js +108 -32
  629. package/dist/plus/integrations/providers/bitbucket/bitbucket.js.map +1 -1
  630. package/dist/plus/integrations/providers/bitbucket/models.d.ts.map +1 -1
  631. package/dist/plus/integrations/providers/bitbucket/models.js.map +1 -1
  632. package/dist/plus/integrations/providers/bitbucket-server/models.d.ts +19 -1
  633. package/dist/plus/integrations/providers/bitbucket-server/models.d.ts.map +1 -1
  634. package/dist/plus/integrations/providers/bitbucket-server/models.js +20 -1
  635. package/dist/plus/integrations/providers/bitbucket-server/models.js.map +1 -1
  636. package/dist/plus/integrations/providers/bitbucket-server.d.ts +28 -4
  637. package/dist/plus/integrations/providers/bitbucket-server.d.ts.map +1 -1
  638. package/dist/plus/integrations/providers/bitbucket-server.js +110 -6
  639. package/dist/plus/integrations/providers/bitbucket-server.js.map +1 -1
  640. package/dist/plus/integrations/providers/bitbucket.d.ts +38 -4
  641. package/dist/plus/integrations/providers/bitbucket.d.ts.map +1 -1
  642. package/dist/plus/integrations/providers/bitbucket.js +330 -34
  643. package/dist/plus/integrations/providers/bitbucket.js.map +1 -1
  644. package/dist/plus/integrations/providers/github/github.d.ts.map +1 -1
  645. package/dist/plus/integrations/providers/github/github.js +1 -1
  646. package/dist/plus/integrations/providers/github/github.js.map +1 -1
  647. package/dist/plus/integrations/providers/github/github.utils.d.ts.map +1 -1
  648. package/dist/plus/integrations/providers/github/github.utils.js.map +1 -1
  649. package/dist/plus/integrations/providers/github/models.d.ts.map +1 -1
  650. package/dist/plus/integrations/providers/github/models.js.map +1 -1
  651. package/dist/plus/integrations/providers/github.d.ts +49 -6
  652. package/dist/plus/integrations/providers/github.d.ts.map +1 -1
  653. package/dist/plus/integrations/providers/github.js +289 -4
  654. package/dist/plus/integrations/providers/github.js.map +1 -1
  655. package/dist/plus/integrations/providers/gitlab/gitlab.d.ts +11 -3
  656. package/dist/plus/integrations/providers/gitlab/gitlab.d.ts.map +1 -1
  657. package/dist/plus/integrations/providers/gitlab/gitlab.js +121 -47
  658. package/dist/plus/integrations/providers/gitlab/gitlab.js.map +1 -1
  659. package/dist/plus/integrations/providers/gitlab/gitlab.utils.d.ts +6 -0
  660. package/dist/plus/integrations/providers/gitlab/gitlab.utils.d.ts.map +1 -1
  661. package/dist/plus/integrations/providers/gitlab/gitlab.utils.js +8 -0
  662. package/dist/plus/integrations/providers/gitlab/gitlab.utils.js.map +1 -1
  663. package/dist/plus/integrations/providers/gitlab/models.d.ts +10 -0
  664. package/dist/plus/integrations/providers/gitlab/models.d.ts.map +1 -1
  665. package/dist/plus/integrations/providers/gitlab/models.js +8 -5
  666. package/dist/plus/integrations/providers/gitlab/models.js.map +1 -1
  667. package/dist/plus/integrations/providers/gitlab.d.ts +50 -5
  668. package/dist/plus/integrations/providers/gitlab.d.ts.map +1 -1
  669. package/dist/plus/integrations/providers/gitlab.js +274 -8
  670. package/dist/plus/integrations/providers/gitlab.js.map +1 -1
  671. package/dist/plus/integrations/providers/jira.d.ts +13 -2
  672. package/dist/plus/integrations/providers/jira.d.ts.map +1 -1
  673. package/dist/plus/integrations/providers/jira.js +200 -30
  674. package/dist/plus/integrations/providers/jira.js.map +1 -1
  675. package/dist/plus/integrations/providers/linear.d.ts +16 -5
  676. package/dist/plus/integrations/providers/linear.d.ts.map +1 -1
  677. package/dist/plus/integrations/providers/linear.js +127 -21
  678. package/dist/plus/integrations/providers/linear.js.map +1 -1
  679. package/dist/plus/integrations/providers/models.d.ts +339 -60
  680. package/dist/plus/integrations/providers/models.d.ts.map +1 -1
  681. package/dist/plus/integrations/providers/models.js +307 -59
  682. package/dist/plus/integrations/providers/models.js.map +1 -1
  683. package/dist/plus/integrations/providers/providersApi.d.ts +144 -11
  684. package/dist/plus/integrations/providers/providersApi.d.ts.map +1 -1
  685. package/dist/plus/integrations/providers/providersApi.js +486 -55
  686. package/dist/plus/integrations/providers/providersApi.js.map +1 -1
  687. package/dist/plus/integrations/providers/trello.d.ts +47 -0
  688. package/dist/plus/integrations/providers/trello.d.ts.map +1 -0
  689. package/dist/plus/integrations/providers/trello.js +141 -0
  690. package/dist/plus/integrations/providers/trello.js.map +1 -0
  691. package/dist/plus/integrations/providers/utils/providerPaging.d.ts +29 -0
  692. package/dist/plus/integrations/providers/utils/providerPaging.d.ts.map +1 -0
  693. package/dist/plus/integrations/providers/utils/providerPaging.js +154 -0
  694. package/dist/plus/integrations/providers/utils/providerPaging.js.map +1 -0
  695. package/dist/plus/integrations/providers/utils.d.ts +21 -0
  696. package/dist/plus/integrations/providers/utils.d.ts.map +1 -1
  697. package/dist/plus/integrations/providers/utils.js +57 -6
  698. package/dist/plus/integrations/providers/utils.js.map +1 -1
  699. package/dist/plus/integrations/reads/context.d.ts +52 -0
  700. package/dist/plus/integrations/reads/context.d.ts.map +1 -0
  701. package/dist/plus/integrations/reads/context.js +2 -0
  702. package/dist/plus/integrations/reads/context.js.map +1 -0
  703. package/dist/plus/integrations/reads/cursors.d.ts +66 -0
  704. package/dist/plus/integrations/reads/cursors.d.ts.map +1 -0
  705. package/dist/plus/integrations/reads/cursors.js +133 -0
  706. package/dist/plus/integrations/reads/cursors.js.map +1 -0
  707. package/dist/plus/integrations/reads/drains.d.ts +60 -0
  708. package/dist/plus/integrations/reads/drains.d.ts.map +1 -0
  709. package/dist/plus/integrations/reads/drains.js +255 -0
  710. package/dist/plus/integrations/reads/drains.js.map +1 -0
  711. package/dist/plus/integrations/reads/filters.d.ts +81 -0
  712. package/dist/plus/integrations/reads/filters.d.ts.map +1 -0
  713. package/dist/plus/integrations/reads/filters.js +87 -0
  714. package/dist/plus/integrations/reads/filters.js.map +1 -0
  715. package/dist/plus/integrations/reads/hierarchy.d.ts +17 -0
  716. package/dist/plus/integrations/reads/hierarchy.d.ts.map +1 -0
  717. package/dist/plus/integrations/reads/hierarchy.js +348 -0
  718. package/dist/plus/integrations/reads/hierarchy.js.map +1 -0
  719. package/dist/plus/integrations/reads/hierarchy.utils.d.ts +53 -0
  720. package/dist/plus/integrations/reads/hierarchy.utils.d.ts.map +1 -0
  721. package/dist/plus/integrations/reads/hierarchy.utils.js +85 -0
  722. package/dist/plus/integrations/reads/hierarchy.utils.js.map +1 -0
  723. package/dist/plus/integrations/reads/issueTracker.d.ts +19 -0
  724. package/dist/plus/integrations/reads/issueTracker.d.ts.map +1 -0
  725. package/dist/plus/integrations/reads/issueTracker.js +346 -0
  726. package/dist/plus/integrations/reads/issueTracker.js.map +1 -0
  727. package/dist/plus/integrations/reads/issues.d.ts +34 -0
  728. package/dist/plus/integrations/reads/issues.d.ts.map +1 -0
  729. package/dist/plus/integrations/reads/issues.js +244 -0
  730. package/dist/plus/integrations/reads/issues.js.map +1 -0
  731. package/dist/plus/integrations/reads/paging.d.ts +136 -0
  732. package/dist/plus/integrations/reads/paging.d.ts.map +1 -0
  733. package/dist/plus/integrations/reads/paging.js +221 -0
  734. package/dist/plus/integrations/reads/paging.js.map +1 -0
  735. package/dist/plus/integrations/reads/pullRequests.d.ts +32 -0
  736. package/dist/plus/integrations/reads/pullRequests.d.ts.map +1 -0
  737. package/dist/plus/integrations/reads/pullRequests.js +151 -0
  738. package/dist/plus/integrations/reads/pullRequests.js.map +1 -0
  739. package/dist/plus/integrations/reads/warnings.d.ts +47 -0
  740. package/dist/plus/integrations/reads/warnings.d.ts.map +1 -0
  741. package/dist/plus/integrations/reads/warnings.js +81 -0
  742. package/dist/plus/integrations/reads/warnings.js.map +1 -0
  743. package/dist/plus/integrations/results.d.ts +189 -0
  744. package/dist/plus/integrations/results.d.ts.map +1 -0
  745. package/dist/plus/integrations/results.js +62 -0
  746. package/dist/plus/integrations/results.js.map +1 -0
  747. package/dist/plus/integrations/utils/domain.utils.d.ts +5 -0
  748. package/dist/plus/integrations/utils/domain.utils.d.ts.map +1 -0
  749. package/dist/plus/integrations/utils/domain.utils.js +27 -0
  750. package/dist/plus/integrations/utils/domain.utils.js.map +1 -0
  751. package/dist/plus/integrations/utils/integration.utils.d.ts +27 -1
  752. package/dist/plus/integrations/utils/integration.utils.d.ts.map +1 -1
  753. package/dist/plus/integrations/utils/integration.utils.js +86 -15
  754. package/dist/plus/integrations/utils/integration.utils.js.map +1 -1
  755. package/dist/utils/array.d.ts.map +1 -1
  756. package/dist/utils/array.js.map +1 -1
  757. package/dist/utils/brand.d.ts.map +1 -1
  758. package/dist/utils/cancellation.d.ts +13 -0
  759. package/dist/utils/cancellation.d.ts.map +1 -1
  760. package/dist/utils/cancellation.js +52 -7
  761. package/dist/utils/cancellation.js.map +1 -1
  762. package/dist/utils/charCode.d.ts.map +1 -1
  763. package/dist/utils/coalescedRun.d.ts +16 -0
  764. package/dist/utils/coalescedRun.d.ts.map +1 -0
  765. package/dist/utils/coalescedRun.js +43 -0
  766. package/dist/utils/coalescedRun.js.map +1 -0
  767. package/dist/utils/color.d.ts.map +1 -1
  768. package/dist/utils/color.js +3 -3
  769. package/dist/utils/color.js.map +1 -1
  770. package/dist/utils/date.d.ts +24 -0
  771. package/dist/utils/date.d.ts.map +1 -1
  772. package/dist/utils/date.js +62 -0
  773. package/dist/utils/date.js.map +1 -1
  774. package/dist/utils/debounce.js +1 -1
  775. package/dist/utils/debounce.js.map +1 -1
  776. package/dist/utils/decorators/debounce.d.ts.map +1 -1
  777. package/dist/utils/decorators/debounce.js.map +1 -1
  778. package/dist/utils/decorators/gate.d.ts.map +1 -1
  779. package/dist/utils/decorators/gate.js +2 -2
  780. package/dist/utils/decorators/gate.js.map +1 -1
  781. package/dist/utils/decorators/log.d.ts.map +1 -1
  782. package/dist/utils/decorators/log.js +5 -5
  783. package/dist/utils/decorators/log.js.map +1 -1
  784. package/dist/utils/decorators/memoize.d.ts.map +1 -1
  785. package/dist/utils/decorators/memoize.js +2 -2
  786. package/dist/utils/decorators/memoize.js.map +1 -1
  787. package/dist/utils/decorators/resolver.d.ts.map +1 -1
  788. package/dist/utils/decorators/resolver.js.map +1 -1
  789. package/dist/utils/decorators/sequentialize.d.ts.map +1 -1
  790. package/dist/utils/decorators/sequentialize.js +2 -2
  791. package/dist/utils/decorators/sequentialize.js.map +1 -1
  792. package/dist/utils/decorators/serializable.d.ts.map +1 -1
  793. package/dist/utils/decorators/serializable.js +1 -1
  794. package/dist/utils/decorators/serializable.js.map +1 -1
  795. package/dist/utils/dedupedAsyncCache.d.ts.map +1 -1
  796. package/dist/utils/env/browser/base64.d.ts.map +1 -1
  797. package/dist/utils/env/browser/base64.js.map +1 -1
  798. package/dist/utils/env/browser/crypto.d.ts.map +1 -1
  799. package/dist/utils/env/browser/crypto.js.map +1 -1
  800. package/dist/utils/env/browser/fs.d.ts.map +1 -1
  801. package/dist/utils/env/browser/fs.js.map +1 -1
  802. package/dist/utils/env/browser/hex.d.ts.map +1 -1
  803. package/dist/utils/env/browser/hex.js.map +1 -1
  804. package/dist/utils/env/browser/hrtime.d.ts.map +1 -1
  805. package/dist/utils/env/browser/hrtime.js.map +1 -1
  806. package/dist/utils/env/browser/logScope.d.ts.map +1 -1
  807. package/dist/utils/env/browser/logScope.js.map +1 -1
  808. package/dist/utils/env/browser/md5.d.ts.map +1 -1
  809. package/dist/utils/env/browser/md5.js.map +1 -1
  810. package/dist/utils/env/browser/platform.d.ts.map +1 -1
  811. package/dist/utils/env/browser/platform.js.map +1 -1
  812. package/dist/utils/env/node/base64.d.ts.map +1 -1
  813. package/dist/utils/env/node/base64.js.map +1 -1
  814. package/dist/utils/env/node/crypto.d.ts.map +1 -1
  815. package/dist/utils/env/node/crypto.js.map +1 -1
  816. package/dist/utils/env/node/exec.d.ts +9 -1
  817. package/dist/utils/env/node/exec.d.ts.map +1 -1
  818. package/dist/utils/env/node/exec.js +11 -4
  819. package/dist/utils/env/node/exec.js.map +1 -1
  820. package/dist/utils/env/node/fs.d.ts.map +1 -1
  821. package/dist/utils/env/node/fs.js.map +1 -1
  822. package/dist/utils/env/node/hex.d.ts.map +1 -1
  823. package/dist/utils/env/node/hex.js.map +1 -1
  824. package/dist/utils/env/node/hrtime.d.ts.map +1 -1
  825. package/dist/utils/env/node/hrtime.js.map +1 -1
  826. package/dist/utils/env/node/logScope.d.ts.map +1 -1
  827. package/dist/utils/env/node/logScope.js.map +1 -1
  828. package/dist/utils/env/node/platform.d.ts.map +1 -1
  829. package/dist/utils/env/node/platform.js.map +1 -1
  830. package/dist/utils/event.d.ts.map +1 -1
  831. package/dist/utils/event.js +18 -22
  832. package/dist/utils/event.js.map +1 -1
  833. package/dist/utils/formatter.d.ts.map +1 -1
  834. package/dist/utils/formatter.js.map +1 -1
  835. package/dist/utils/function.d.ts.map +1 -1
  836. package/dist/utils/function.js +3 -3
  837. package/dist/utils/function.js.map +1 -1
  838. package/dist/utils/hash.js.map +1 -1
  839. package/dist/utils/iterable.d.ts.map +1 -1
  840. package/dist/utils/iterable.js +2 -6
  841. package/dist/utils/iterable.js.map +1 -1
  842. package/dist/utils/lazy.d.ts.map +1 -1
  843. package/dist/utils/lazy.js.map +1 -1
  844. package/dist/utils/logger.d.ts.map +1 -1
  845. package/dist/utils/logger.js +1 -1
  846. package/dist/utils/logger.js.map +1 -1
  847. package/dist/utils/logger.scoped.js +1 -1
  848. package/dist/utils/logger.scoped.js.map +1 -1
  849. package/dist/utils/lruMap.d.ts.map +1 -1
  850. package/dist/utils/lruMap.js.map +1 -1
  851. package/dist/utils/mru.d.ts.map +1 -1
  852. package/dist/utils/mru.js.map +1 -1
  853. package/dist/utils/object.js.map +1 -1
  854. package/dist/utils/paging.d.ts +29 -0
  855. package/dist/utils/paging.d.ts.map +1 -1
  856. package/dist/utils/paging.js +18 -0
  857. package/dist/utils/paging.js.map +1 -1
  858. package/dist/utils/path.js.map +1 -1
  859. package/dist/utils/promise.d.ts +10 -0
  860. package/dist/utils/promise.d.ts.map +1 -1
  861. package/dist/utils/promise.js +26 -3
  862. package/dist/utils/promise.js.map +1 -1
  863. package/dist/utils/promiseCache.d.ts +12 -2
  864. package/dist/utils/promiseCache.d.ts.map +1 -1
  865. package/dist/utils/promiseCache.js +80 -50
  866. package/dist/utils/promiseCache.js.map +1 -1
  867. package/dist/utils/searchTree.d.ts.map +1 -1
  868. package/dist/utils/searchTree.js +4 -1
  869. package/dist/utils/searchTree.js.map +1 -1
  870. package/dist/utils/stopwatch.d.ts.map +1 -1
  871. package/dist/utils/string.js +1 -1
  872. package/dist/utils/string.js.map +1 -1
  873. package/dist/utils/subscriptionManager.d.ts.map +1 -1
  874. package/dist/utils/subscriptionManager.js.map +1 -1
  875. package/dist/utils/trie.d.ts.map +1 -1
  876. package/dist/utils/trie.js +1 -0
  877. package/dist/utils/trie.js.map +1 -1
  878. package/docs/integrations.md +372 -0
  879. package/docs/kepler-read-api-parity.md +112 -0
  880. package/package.json +238 -213
  881. package/src/git/cache.ts +75 -8
  882. package/src/git/errors.ts +36 -1
  883. package/src/git/models/commit.ts +1 -1
  884. package/src/git/models/graph.ts +147 -0
  885. package/src/git/models/graphSession.ts +205 -0
  886. package/src/git/models/issue.ts +12 -1
  887. package/src/git/models/pullRequest.ts +27 -1
  888. package/src/git/models/repository.ts +24 -1
  889. package/src/git/models/resourceDescriptor.ts +17 -0
  890. package/src/git/models/signature.ts +16 -0
  891. package/src/git/models/tag.ts +6 -1
  892. package/src/git/parsers/diffParser.ts +1 -1
  893. package/src/git/providers/branches.ts +6 -1
  894. package/src/git/providers/commits.ts +6 -1
  895. package/src/git/providers/config.ts +5 -1
  896. package/src/git/providers/graph.ts +69 -2
  897. package/src/git/providers/status.ts +1 -1
  898. package/src/git/providers/worktrees.ts +3 -1
  899. package/src/git/remotes/azure-devops.ts +29 -33
  900. package/src/git/remotes/bitbucket-server.ts +23 -25
  901. package/src/git/remotes/bitbucket.ts +23 -25
  902. package/src/git/remotes/gerrit.ts +12 -14
  903. package/src/git/remotes/gitea.ts +13 -15
  904. package/src/git/remotes/github.ts +56 -58
  905. package/src/git/remotes/gitlab.ts +102 -104
  906. package/src/git/run.types.ts +54 -4
  907. package/src/git/utils/branch.utils.ts +12 -1
  908. package/src/git/utils/contributor.utils.ts +1 -1
  909. package/src/git/utils/fileStatus.utils.ts +7 -0
  910. package/src/git/utils/graph.utils.ts +46 -0
  911. package/src/git/utils/issue.utils.ts +1 -0
  912. package/src/git/utils/pullRequest.utils.ts +9 -0
  913. package/src/git/utils/reachability.utils.ts +79 -8
  914. package/src/git/utils/sshKey.utils.ts +30 -0
  915. package/src/git/watching/watchService.ts +16 -1
  916. package/src/git/watching/watchSession.ts +20 -2
  917. package/src/git-cli/exec/git.ts +144 -42
  918. package/src/git-cli/parsers/logParser.ts +83 -1
  919. package/src/git-cli/parsers/sshSignatureParser.ts +85 -0
  920. package/src/git-cli/parsers/worktreeParser.ts +5 -7
  921. package/src/git-cli/providers/branches.ts +60 -38
  922. package/src/git-cli/providers/commits.ts +102 -9
  923. package/src/git-cli/providers/graph.ts +1771 -393
  924. package/src/git-cli/providers/pausedOperations.ts +3 -3
  925. package/src/git-cli/providers/revision.ts +42 -0
  926. package/src/git-cli/providers/status.ts +333 -178
  927. package/src/git-cli/providers/tags.ts +2 -0
  928. package/src/git-cli/providers/worktrees.ts +40 -4
  929. package/src/git-cli/service.ts +9 -0
  930. package/src/ipc/ipcServer.ts +1 -1
  931. package/src/plus/agents/providers/claudeCodeProvider.ts +25 -0
  932. package/src/plus/agents/providers/claudeCodeTranscript.ts +320 -8
  933. package/src/plus/agents/types.ts +34 -0
  934. package/src/plus/ai/constants.ts +1 -9
  935. package/src/plus/ai/models/model.ts +53 -2
  936. package/src/plus/ai/models/promptTemplates.ts +9 -2
  937. package/src/plus/ai/prompts.ts +16 -48
  938. package/src/plus/ai/providers/anthropicProvider.ts +45 -3
  939. package/src/plus/ai/providers/deepSeekProvider.ts +17 -1
  940. package/src/plus/ai/providers/geminiProvider.ts +25 -6
  941. package/src/plus/ai/providers/gitkrakenProvider.ts +2 -0
  942. package/src/plus/ai/providers/huggingFaceProvider.ts +28 -21
  943. package/src/plus/ai/providers/openAICompatibleProviderBase.ts +16 -1
  944. package/src/plus/ai/providers/xaiProvider.ts +14 -1
  945. package/src/plus/ai/utils/ai.utils.ts +0 -2
  946. package/src/plus/ai/utils/results.utils.ts +32 -0
  947. package/src/plus/ai/utils/truncation.utils.ts +0 -1
  948. package/src/plus/git-github/api/github.ts +484 -104
  949. package/src/plus/git-github/models.ts +33 -0
  950. package/src/plus/git-github/providers/github/branches.ts +6 -3
  951. package/src/plus/git-github/providers/github/diff.ts +1 -1
  952. package/src/plus/git-github/providers/github/graph.ts +131 -0
  953. package/src/plus/git-github/providers/github/tags.ts +2 -0
  954. package/src/plus/integrations/authentication/cloudIntegrationService.ts +189 -17
  955. package/src/plus/integrations/authentication/configuredIntegrationService.ts +287 -50
  956. package/src/plus/integrations/authentication/integrationAuthenticationProvider.ts +105 -31
  957. package/src/plus/integrations/authentication/integrationAuthenticationService.ts +7 -3
  958. package/src/plus/integrations/authentication/manualTokenProvider.ts +12 -5
  959. package/src/plus/integrations/authentication/models.ts +35 -1
  960. package/src/plus/integrations/collectionMetadata.ts +143 -0
  961. package/src/plus/integrations/constants.ts +21 -0
  962. package/src/plus/integrations/context.ts +8 -9
  963. package/src/plus/integrations/errors.ts +149 -0
  964. package/src/plus/integrations/index.ts +148 -51
  965. package/src/plus/integrations/integrationService.ts +1714 -49
  966. package/src/plus/integrations/lite.ts +233 -0
  967. package/src/plus/integrations/manager.ts +359 -0
  968. package/src/plus/integrations/models/gitHostIntegration.ts +1014 -121
  969. package/src/plus/integrations/models/integration.ts +293 -24
  970. package/src/plus/integrations/models/issuesIntegration.ts +178 -38
  971. package/src/plus/integrations/providerFilters.ts +12 -0
  972. package/src/plus/integrations/providers/apiClients.ts +8 -11
  973. package/src/plus/integrations/providers/apiConfig.ts +71 -0
  974. package/src/plus/integrations/providers/azure/azure.ts +164 -33
  975. package/src/plus/integrations/providers/azure/models.ts +19 -6
  976. package/src/plus/integrations/providers/azureDevOps.ts +766 -101
  977. package/src/plus/integrations/providers/bitbucket/bitbucket.ts +164 -34
  978. package/src/plus/integrations/providers/bitbucket-server/models.ts +32 -1
  979. package/src/plus/integrations/providers/bitbucket-server.ts +173 -8
  980. package/src/plus/integrations/providers/bitbucket.ts +489 -45
  981. package/src/plus/integrations/providers/github/github.ts +2 -2
  982. package/src/plus/integrations/providers/github/github.utils.ts +1 -1
  983. package/src/plus/integrations/providers/github.ts +390 -6
  984. package/src/plus/integrations/providers/gitlab/gitlab.ts +170 -60
  985. package/src/plus/integrations/providers/gitlab/gitlab.utils.ts +9 -0
  986. package/src/plus/integrations/providers/gitlab/models.ts +19 -5
  987. package/src/plus/integrations/providers/gitlab.ts +369 -10
  988. package/src/plus/integrations/providers/jira.ts +247 -42
  989. package/src/plus/integrations/providers/linear.ts +154 -27
  990. package/src/plus/integrations/providers/models.ts +583 -75
  991. package/src/plus/integrations/providers/providersApi.ts +849 -86
  992. package/src/plus/integrations/providers/trello.ts +205 -0
  993. package/src/plus/integrations/providers/utils/providerPaging.ts +177 -0
  994. package/src/plus/integrations/providers/utils.ts +68 -8
  995. package/src/plus/integrations/reads/context.ts +75 -0
  996. package/src/plus/integrations/reads/cursors.ts +224 -0
  997. package/src/plus/integrations/reads/drains.ts +343 -0
  998. package/src/plus/integrations/reads/filters.ts +124 -0
  999. package/src/plus/integrations/reads/hierarchy.ts +493 -0
  1000. package/src/plus/integrations/reads/hierarchy.utils.ts +106 -0
  1001. package/src/plus/integrations/reads/issueTracker.ts +480 -0
  1002. package/src/plus/integrations/reads/issues.ts +407 -0
  1003. package/src/plus/integrations/reads/paging.ts +277 -0
  1004. package/src/plus/integrations/reads/pullRequests.ts +267 -0
  1005. package/src/plus/integrations/reads/warnings.ts +170 -0
  1006. package/src/plus/integrations/results.ts +275 -0
  1007. package/src/plus/integrations/utils/domain.utils.ts +26 -0
  1008. package/src/plus/integrations/utils/integration.utils.ts +93 -16
  1009. package/src/utils/brand.ts +0 -2
  1010. package/src/utils/cancellation.ts +56 -7
  1011. package/src/utils/coalescedRun.ts +45 -0
  1012. package/src/utils/color.ts +3 -3
  1013. package/src/utils/date.ts +72 -0
  1014. package/src/utils/debounce.ts +1 -1
  1015. package/src/utils/decorators/gate.ts +2 -2
  1016. package/src/utils/decorators/log.ts +5 -5
  1017. package/src/utils/decorators/memoize.ts +2 -2
  1018. package/src/utils/decorators/sequentialize.ts +2 -2
  1019. package/src/utils/decorators/serializable.ts +1 -1
  1020. package/src/utils/env/node/exec.ts +20 -5
  1021. package/src/utils/event.ts +19 -25
  1022. package/src/utils/function.ts +3 -3
  1023. package/src/utils/iterable.ts +2 -6
  1024. package/src/utils/logger.scoped.ts +1 -1
  1025. package/src/utils/logger.ts +1 -1
  1026. package/src/utils/paging.ts +46 -0
  1027. package/src/utils/promise.ts +33 -3
  1028. package/src/utils/promiseCache.ts +81 -51
  1029. package/src/utils/searchTree.ts +4 -2
  1030. package/src/utils/string.ts +1 -1
  1031. package/src/utils/trie.ts +1 -0
  1032. package/dist/plus/ai/providers/githubModelsProvider.d.ts +0 -19
  1033. package/dist/plus/ai/providers/githubModelsProvider.d.ts.map +0 -1
  1034. package/dist/plus/ai/providers/githubModelsProvider.js +0 -51
  1035. package/dist/plus/ai/providers/githubModelsProvider.js.map +0 -1
  1036. package/src/plus/ai/providers/githubModelsProvider.ts +0 -92
@@ -7,13 +7,13 @@ import { GitStatus } from '../../git/models/status.js';
7
7
  import type { GitStatusFile } from '../../git/models/statusFile.js';
8
8
  import type { GitStatusSubProvider, GitWorkingChangesState } from '../../git/providers/status.js';
9
9
  import type { GitCommandPriority } from '../../git/run.types.js';
10
- import { isCancellationError } from '../../utils/cancellation.js';
11
- import { gate } from '../../utils/decorators/gate.js';
10
+ import { isCancellationError, raceWithTimeout } from '../../utils/cancellation.js';
12
11
  import { debug } from '../../utils/decorators/log.js';
13
12
  import { createDisposable } from '../../utils/disposable.js';
14
13
  import { getScopedLogger } from '../../utils/logger.scoped.js';
15
14
  import { normalizePath, splitPath, stripFolderGlob } from '../../utils/path.js';
16
15
  import { getSettledValue } from '../../utils/promise.js';
16
+ import { PromiseMap } from '../../utils/promiseCache.js';
17
17
  import { iterateByDelimiter } from '../../utils/string.js';
18
18
  import type { Uri } from '../../utils/uri.js';
19
19
  import { fileUri, joinUriPath, toFsPath } from '../../utils/uri.js';
@@ -24,6 +24,22 @@ import { gitConfigsStatus } from '../exec/git.js';
24
24
  import { parseGitConflictFiles } from '../parsers/indexParser.js';
25
25
  import { parseGitStatus } from '../parsers/statusParser.js';
26
26
 
27
+ /** Backstop when `advanced.git.timeout` is disabled (0). Independent of the command timeout so disabling it can't
28
+ * also disable deadlock recovery — mirrors `@gate`'s always-on 5-min force-clear. */
29
+ const disabledTimeoutBackstopMs = 1000 * 60 * 5;
30
+
31
+ /**
32
+ * Deadlock-backstop duration for a status read (see `dedupeByStatusGeneration`), exported for testing.
33
+ * Always returns a value so a wedged read recovers even with `advanced.git.timeout` disabled (which bounds git
34
+ * *commands*, not deadlock recovery). With a timeout set, `gitTimeout * 2` sits above the per-command timeout so
35
+ * `git.run` reads reject at their own timeout first; the backstop's real job is bounding the timeout-less
36
+ * `git.stream` reads (`hasUntrackedFiles`/`hasConflictingFiles`).
37
+ */
38
+ export function computeDeadlockBackstopMs(gitTimeout: number | undefined): number {
39
+ const timeout = gitTimeout ?? 60000;
40
+ return timeout > 0 ? timeout * 2 : disabledTimeoutBackstopMs;
41
+ }
42
+
27
43
  export class StatusGitSubProvider implements GitStatusSubProvider {
28
44
  constructor(
29
45
  private readonly context: GitServiceContext,
@@ -32,15 +48,89 @@ export class StatusGitSubProvider implements GitStatusSubProvider {
32
48
  private readonly provider: CliGitProviderInternal,
33
49
  ) {}
34
50
 
35
- @gate(rp => rp ?? '')
51
+ /** In-flight reads, keyed by `<read>\0<repoPath>\0<generation>`. `PromiseMap` (not a bare Map) so joiners
52
+ * get per-caller cancellation: the shared run aborts only when ALL current callers do. */
53
+ private readonly _pendingReads = new PromiseMap<string, unknown>();
54
+
55
+ /**
56
+ * Single-flight for point-in-time reads of mutable working-tree state — replaces `@gate`, which dedups on
57
+ * repoPath with no notion of *when* a run started and so joins a pre-change read to a post-change caller
58
+ * (see {@link Cache.getStatusGeneration}). Same-generation callers share one run (via a `PromiseMap`, so a
59
+ * joiner cancelling can't reject the others); a caller in a newer generation gets a different key and a
60
+ * fresh run; a `force` read advances the clock first, so it fences every later reader too, not just itself.
61
+ * The exec-layer command dedup (`Git.pendingCommands`) is fenced automatically: each run carries this entry's
62
+ * aggregate signal, whose id is part of the exec cache key, so a newer-generation run never joins an older
63
+ * one's process; the generation-derived `correlationKey` is a readable second guard on that key. A `raceWithTimeout` backstop (scaled to `advanced.git.timeout`, see
64
+ * {@link computeDeadlockBackstopMs}) replaces `@gate`'s 5-min force-clear so a never-settling read (a hung
65
+ * `git.stream`, which has no per-command timeout) can't wedge same-generation callers — including blocking
66
+ * awaiters like the commit flow — indefinitely.
67
+ */
68
+ private dedupeByStatusGeneration<T>(
69
+ repoPath: string,
70
+ read: string,
71
+ run: (correlationKey: string, signal: AbortSignal | undefined) => Promise<T>,
72
+ cancellation?: AbortSignal,
73
+ force?: boolean,
74
+ ): Promise<T> {
75
+ // A `force` (user refresh) read is the user asserting the working tree may have changed without the watcher
76
+ // observing it — the same class of event as a watcher tick, so it ADVANCES the clock rather than carving out
77
+ // a private key for itself. A one-shot nonce would fence only this caller: the pre-assertion run stays
78
+ // joinable, so the very next ordinary reader still picks up pre-change content — and, stamped with a newer
79
+ // `Wip.revision` (assigned at producer start, not read start), applies it right back over the refreshed
80
+ // result. Advancing is also CHEAPER than a nonce: concurrent readers join the one fresh read instead of each
81
+ // spawning a private one.
82
+ if (force) {
83
+ this.cache.incrementStatusGeneration(repoPath);
84
+ }
85
+ const generation = this.cache.getStatusGeneration(repoPath);
86
+ // `\0` separators: `read`/`repoPath` are free-form (paths can contain `:`), so a printable delimiter could
87
+ // collide (`getStatusForPath:/a:x` vs `getStatusForPath:/a` + `:x`).
88
+ const key = `${read}\0${repoPath}\0${generation}`;
89
+ const correlationKey = `status:${generation}`;
90
+ const backstopMs = computeDeadlockBackstopMs(this.git.options.gitTimeout);
91
+
92
+ return this._pendingReads.getOrCreate(
93
+ key,
94
+ (cacheable, signal) => {
95
+ // Point-in-time read: never memoize a settled value. `invalidate()` at the start makes the entry
96
+ // self-evict on settle, so a later caller in this same generation re-reads (a newer generation
97
+ // already gets a different key). `signal` is the aggregate — the run aborts only if every caller
98
+ // cancels, so one caller's abort can't reject the others. The backstop rejects a wedged read so
99
+ // waiters unblock and the entry self-evicts; it ALSO aborts the underlying git op (via `backstop`
100
+ // linked into the run's signal) so a wedged read releases its GitQueue slot/process rather than
101
+ // running orphaned — best-effort, since a truly-stuck process may ignore the abort.
102
+ cacheable.invalidate();
103
+ const backstop = new AbortController();
104
+ const runSignal = signal != null ? AbortSignal.any([signal, backstop.signal]) : backstop.signal;
105
+ return raceWithTimeout(run(correlationKey, runSignal), backstopMs, backstop);
106
+ },
107
+ cancellation,
108
+ ) as Promise<T>;
109
+ }
110
+
36
111
  @debug()
37
- async getStatus(
112
+ getStatus(
38
113
  repoPath: string | undefined,
39
- options?: { priority?: GitCommandPriority },
114
+ options?: { priority?: GitCommandPriority; force?: boolean },
40
115
  cancellation?: AbortSignal,
41
116
  ): Promise<GitStatus | undefined> {
42
- if (repoPath == null) return undefined;
117
+ if (repoPath == null) return Promise.resolve(undefined);
43
118
 
119
+ return this.dedupeByStatusGeneration(
120
+ repoPath,
121
+ 'getStatus',
122
+ (correlationKey, signal) =>
123
+ this.getStatusCore(repoPath, { ...options, correlationKey: correlationKey }, signal),
124
+ cancellation,
125
+ options?.force,
126
+ );
127
+ }
128
+
129
+ private async getStatusCore(
130
+ repoPath: string,
131
+ options?: { priority?: GitCommandPriority; correlationKey?: string },
132
+ cancellation?: AbortSignal,
133
+ ): Promise<GitStatus | undefined> {
44
134
  const porcelainVersion = (await this.git.supports('git:status:porcelain-v2')) ? 2 : 1;
45
135
 
46
136
  const result = await this.statusCore(
@@ -49,6 +139,7 @@ export class StatusGitSubProvider implements GitStatusSubProvider {
49
139
  {
50
140
  similarityThreshold: this.context.config?.commits.similarityThreshold,
51
141
  priority: options?.priority,
142
+ correlationKey: options?.correlationKey,
52
143
  },
53
144
  cancellation,
54
145
  );
@@ -103,47 +194,65 @@ export class StatusGitSubProvider implements GitStatusSubProvider {
103
194
  return this.getStatusForPathCore(repoPath, toFsPath(pathOrUri), { ...options, exact: false }, cancellation);
104
195
  }
105
196
 
106
- @gate((rp, pathOrUri, options) => `${rp ?? ''}:${pathOrUri}:${options?.exact ?? ''}:${options?.renames ?? ''}`)
107
197
  private async getStatusForPathCore(
108
198
  repoPath: string,
109
199
  pathOrUri: string,
110
200
  options: { exact: boolean; renames?: boolean },
111
201
  cancellation?: AbortSignal,
112
202
  ): Promise<GitStatusFile[] | undefined> {
113
- let [relativePath] = splitPath(pathOrUri, repoPath);
114
- relativePath = stripFolderGlob(relativePath);
203
+ const relativePath = stripFolderGlob(splitPath(pathOrUri, repoPath)[0]);
204
+
205
+ // Rename-aware queries can't scope by pathspec (that disables Git's rename detection), so they run the
206
+ // SAME full `git status` as `getStatus`. Delegate to it — sharing one process/dedup entry — and filter,
207
+ // rather than spawning a second identical `git status`.
208
+ if (options.renames !== false) {
209
+ const status = await this.getStatus(repoPath, undefined, cancellation);
210
+ if (status == null) return undefined;
211
+
212
+ if (options.exact) {
213
+ const file = status.files.find(f => f.path === relativePath);
214
+ return file ? [file] : undefined;
215
+ }
216
+ return status.files.filter(f => f.path.startsWith(relativePath));
217
+ }
115
218
 
116
- const porcelainVersion = (await this.git.supports('git:status:porcelain-v2')) ? 2 : 1;
117
- const renames = options.renames !== false;
219
+ // Non-rename query: pathspec-scoped `git status` (a distinct command), deduped on its own key. `exact`
220
+ // is NOT in the key — the pathspec-scoped command is identical for exact/non-exact, so both share one run.
221
+ return this.dedupeByStatusGeneration(
222
+ repoPath,
223
+ // Free-form `relativePath` (may contain `:`) goes LAST so the prefix can't be shifted into it.
224
+ `getStatusForPath:${relativePath}`,
225
+ (correlationKey, signal) => this.getStatusForPathScoped(repoPath, relativePath, correlationKey, signal),
226
+ cancellation,
227
+ );
228
+ }
118
229
 
230
+ private async getStatusForPathScoped(
231
+ repoPath: string,
232
+ relativePath: string,
233
+ correlationKey: string,
234
+ cancellation?: AbortSignal,
235
+ ): Promise<GitStatusFile[] | undefined> {
236
+ const porcelainVersion = (await this.git.supports('git:status:porcelain-v2')) ? 2 : 1;
119
237
  const result = await this.statusCore(
120
238
  repoPath,
121
239
  porcelainVersion,
122
- { similarityThreshold: this.context.config?.commits.similarityThreshold },
240
+ { similarityThreshold: this.context.config?.commits.similarityThreshold, correlationKey: correlationKey },
123
241
  cancellation,
124
- // If we want renames, don't include the path as Git won't do rename detection
125
- ...(renames ? [] : [relativePath]),
242
+ relativePath,
126
243
  );
127
244
 
128
245
  const repoUri = fileUri(normalizePath(repoPath));
129
246
  const status = parseGitStatus(result.stdout, repoPath, porcelainVersion, p =>
130
247
  joinUriPath(repoUri, normalizePath(p)),
131
248
  );
132
- if (!renames) return status?.files;
133
-
134
- if (options.exact) {
135
- const file = status?.files.find(f => f.path === relativePath);
136
- return file ? [file] : undefined;
137
- }
138
-
139
- const files = status?.files.filter(f => f.path.startsWith(relativePath));
140
- return files;
249
+ return status?.files;
141
250
  }
142
251
 
143
252
  private async statusCore(
144
253
  repoPath: string,
145
254
  porcelainVersion: number = 1,
146
- options?: { similarityThreshold?: number | null; priority?: GitCommandPriority },
255
+ options?: { similarityThreshold?: number | null; priority?: GitCommandPriority; correlationKey?: string },
147
256
  cancellation?: AbortSignal,
148
257
  ...pathspecs: string[]
149
258
  ): Promise<GitResult> {
@@ -165,6 +274,7 @@ export class StatusGitSubProvider implements GitStatusSubProvider {
165
274
  cancellation: cancellation,
166
275
  configs: gitConfigsStatus,
167
276
  env: { GIT_OPTIONAL_LOCKS: '0' },
277
+ correlationKey: options?.correlationKey,
168
278
  ...(options?.priority != null ? { priority: options.priority } : undefined),
169
279
  },
170
280
  ...params,
@@ -173,155 +283,194 @@ export class StatusGitSubProvider implements GitStatusSubProvider {
173
283
  );
174
284
  }
175
285
 
176
- @gate((rp, o) => `${rp ?? ''}:${o?.staged ?? true}:${o?.unstaged ?? true}:${o?.untracked ?? true}`)
177
286
  @debug()
178
- async hasWorkingChanges(
287
+ hasWorkingChanges(
179
288
  repoPath: string,
180
289
  options?: { staged?: boolean; unstaged?: boolean; untracked?: boolean; throwOnError?: boolean },
181
290
  cancellation?: AbortSignal,
182
291
  ): Promise<boolean> {
183
292
  const scope = getScopedLogger();
184
293
 
185
- try {
186
- const staged = options?.staged ?? true;
187
- const unstaged = options?.unstaged ?? true;
188
- if (staged || unstaged) {
189
- const result = await this.git.run(
190
- { cwd: repoPath, cancellation: cancellation, errors: 'ignore' },
191
- 'diff',
192
- '--quiet',
193
- staged && unstaged ? 'HEAD' : staged ? '--staged' : undefined,
194
- );
195
- if (result.exitCode === 1) {
196
- if (staged && unstaged) {
197
- scope?.addExitInfo('has staged and unstaged changes');
198
- } else if (staged) {
199
- scope?.addExitInfo('has staged changes');
200
- } else {
201
- scope?.addExitInfo('has unstaged changes');
202
- }
203
- return true;
204
- }
205
- }
294
+ const staged = options?.staged ?? true;
295
+ const unstaged = options?.unstaged ?? true;
296
+ const untracked = options?.untracked ?? true;
297
+ // `throwOnError` is in the key because it changes the RESULT on git failure (throw vs `false`) — a
298
+ // throwing caller must not join, and be silently satisfied by, a non-throwing caller's graceful run.
299
+ const throwOnError = options?.throwOnError ?? false;
206
300
 
207
- // Check for untracked files
208
- const untracked = options?.untracked ?? true;
209
- if (untracked) {
210
- const hasUntracked = await this.hasUntrackedFiles(repoPath, cancellation);
211
- if (hasUntracked) {
212
- scope?.addExitInfo('has untracked files');
213
- return true;
214
- }
215
- }
301
+ return this.dedupeByStatusGeneration(
302
+ repoPath,
303
+ `hasWorkingChanges:${staged}:${unstaged}:${untracked}:${throwOnError}`,
304
+ async (correlationKey, signal) => {
305
+ try {
306
+ if (staged || unstaged) {
307
+ const result = await this.git.run(
308
+ { cwd: repoPath, cancellation: signal, errors: 'ignore', correlationKey: correlationKey },
309
+ 'diff',
310
+ '--quiet',
311
+ staged && unstaged ? 'HEAD' : staged ? '--staged' : undefined,
312
+ );
313
+ if (result.exitCode === 1) {
314
+ if (staged && unstaged) {
315
+ scope?.addExitInfo('has staged and unstaged changes');
316
+ } else if (staged) {
317
+ scope?.addExitInfo('has staged changes');
318
+ } else {
319
+ scope?.addExitInfo('has unstaged changes');
320
+ }
321
+ return true;
322
+ }
323
+ }
216
324
 
217
- scope?.addExitInfo('no working changes');
218
- return false;
219
- } catch (ex) {
220
- // Re-throw cancellation errors
221
- if (isCancellationError(ex)) throw ex;
325
+ // Check for untracked files
326
+ if (untracked) {
327
+ const hasUntracked = await this.hasUntrackedFiles(repoPath, signal);
328
+ if (hasUntracked) {
329
+ scope?.addExitInfo('has untracked files');
330
+ return true;
331
+ }
332
+ }
222
333
 
223
- // Log other errors and return false for graceful degradation
224
- scope?.error(ex);
225
- scope?.addExitInfo('error checking for changes');
226
- if (options?.throwOnError) throw ex;
227
- return false;
228
- }
334
+ scope?.addExitInfo('no working changes');
335
+ return false;
336
+ } catch (ex) {
337
+ // Re-throw cancellation errors
338
+ if (isCancellationError(ex)) throw ex;
339
+
340
+ // Log other errors and return false for graceful degradation
341
+ scope?.error(ex);
342
+ scope?.addExitInfo('error checking for changes');
343
+ if (throwOnError) throw ex;
344
+ return false;
345
+ }
346
+ },
347
+ cancellation,
348
+ );
229
349
  }
230
350
 
231
- @gate(rp => rp ?? '')
232
351
  @debug()
233
- async getWorkingChangesState(repoPath: string, cancellation?: AbortSignal): Promise<GitWorkingChangesState> {
352
+ getWorkingChangesState(repoPath: string, cancellation?: AbortSignal): Promise<GitWorkingChangesState> {
234
353
  const scope = getScopedLogger();
235
354
 
236
- try {
237
- const [stagedResult, unstagedResult, untrackedResult] = await Promise.allSettled([
238
- // Check for staged changes
239
- this.git.run(
240
- { cwd: repoPath, cancellation: cancellation, errors: 'ignore' },
241
- 'diff',
242
- '--quiet',
243
- '--staged',
244
- ),
245
- // Check for unstaged changes
246
- this.git.run({ cwd: repoPath, cancellation: cancellation, errors: 'ignore' }, 'diff', '--quiet'),
247
- // Check for untracked files
248
- this.hasUntrackedFiles(repoPath, cancellation),
249
- ]);
250
-
251
- const result = {
252
- staged: getSettledValue(stagedResult)?.exitCode === 1,
253
- unstaged: getSettledValue(unstagedResult)?.exitCode === 1,
254
- untracked: getSettledValue(untrackedResult) === true,
255
- };
256
-
257
- scope?.addExitInfo(
258
- result.staged || result.unstaged || result.untracked
259
- ? `has ${result.staged ? 'staged' : ''}${result.unstaged ? (result.staged ? ', unstaged' : 'unstaged ') : ''}${
260
- result.untracked ? (result.staged || result.unstaged ? ', untracked' : 'untracked') : ''
261
- } changes`
262
- : 'no working changes',
263
- );
264
-
265
- return result;
266
- } catch (ex) {
267
- if (isCancellationError(ex)) throw ex;
268
-
269
- scope?.error(ex);
270
- scope?.addExitInfo('error checking for changes');
271
- // Return all false on error for graceful degradation
272
- return { staged: false, unstaged: false, untracked: false };
273
- }
355
+ return this.dedupeByStatusGeneration(
356
+ repoPath,
357
+ 'getWorkingChangesState',
358
+ async (correlationKey, signal) => {
359
+ try {
360
+ const [stagedResult, unstagedResult, untrackedResult] = await Promise.allSettled([
361
+ // Check for staged changes
362
+ this.git.run(
363
+ { cwd: repoPath, cancellation: signal, errors: 'ignore', correlationKey: correlationKey },
364
+ 'diff',
365
+ '--quiet',
366
+ '--staged',
367
+ ),
368
+ // Check for unstaged changes
369
+ this.git.run(
370
+ { cwd: repoPath, cancellation: signal, errors: 'ignore', correlationKey: correlationKey },
371
+ 'diff',
372
+ '--quiet',
373
+ ),
374
+ // Check for untracked files
375
+ this.hasUntrackedFiles(repoPath, signal),
376
+ ]);
377
+
378
+ const result = {
379
+ staged: getSettledValue(stagedResult)?.exitCode === 1,
380
+ unstaged: getSettledValue(unstagedResult)?.exitCode === 1,
381
+ untracked: getSettledValue(untrackedResult) === true,
382
+ };
383
+
384
+ scope?.addExitInfo(
385
+ result.staged || result.unstaged || result.untracked
386
+ ? `has ${result.staged ? 'staged' : ''}${result.unstaged ? (result.staged ? ', unstaged' : 'unstaged ') : ''}${
387
+ result.untracked
388
+ ? result.staged || result.unstaged
389
+ ? ', untracked'
390
+ : 'untracked'
391
+ : ''
392
+ } changes`
393
+ : 'no working changes',
394
+ );
395
+
396
+ return result;
397
+ } catch (ex) {
398
+ if (isCancellationError(ex)) throw ex;
399
+
400
+ scope?.error(ex);
401
+ scope?.addExitInfo('error checking for changes');
402
+ // Return all false on error for graceful degradation
403
+ return { staged: false, unstaged: false, untracked: false };
404
+ }
405
+ },
406
+ cancellation,
407
+ );
274
408
  }
275
409
 
276
- async hasConflictingFiles(repoPath: string, cancellation?: AbortSignal): Promise<boolean> {
277
- try {
278
- const stream = this.git.stream({ cwd: repoPath, cancellation: cancellation }, 'ls-files', '--unmerged');
279
- using _streamDisposer = createDisposable(() => void stream.return?.(undefined));
410
+ hasConflictingFiles(repoPath: string, cancellation?: AbortSignal): Promise<boolean> {
411
+ // Route through `dedupeByStatusGeneration` (like every other point-in-time read here) for the join-fence
412
+ // and the `raceWithTimeout` backstop — a bare `git.stream` has no per-command timeout and could wedge.
413
+ return this.dedupeByStatusGeneration(
414
+ repoPath,
415
+ 'hasConflictingFiles',
416
+ async (_correlationKey, signal) => {
417
+ try {
418
+ const stream = this.git.stream({ cwd: repoPath, cancellation: signal }, 'ls-files', '--unmerged');
419
+ using _streamDisposer = createDisposable(() => void stream.return?.(undefined));
420
+
421
+ // Early exit on first chunk - breaking causes SIGPIPE, killing git process
422
+ for await (const _chunk of stream) {
423
+ return true;
424
+ }
280
425
 
281
- // Early exit on first chunk - breaking causes SIGPIPE, killing git process
282
- for await (const _chunk of stream) {
283
- return true;
284
- }
426
+ return false;
427
+ } catch (ex) {
428
+ // Re-throw cancellation errors
429
+ if (isCancellationError(ex)) throw ex;
285
430
 
286
- return false;
287
- } catch (ex) {
288
- // Re-throw cancellation errors
289
- if (isCancellationError(ex)) throw ex;
290
-
291
- return false;
292
- }
431
+ return false;
432
+ }
433
+ },
434
+ cancellation,
435
+ );
293
436
  }
294
437
 
295
- @gate(rp => rp ?? '')
296
438
  @debug()
297
- async getConflictingFiles(repoPath: string, cancellation?: AbortSignal): Promise<GitConflictFile[]> {
439
+ getConflictingFiles(repoPath: string, cancellation?: AbortSignal): Promise<GitConflictFile[]> {
298
440
  const scope = getScopedLogger();
299
441
 
300
- try {
301
- const result = await this.git.run(
302
- { cwd: repoPath, cancellation: cancellation, errors: 'ignore' },
303
- 'ls-files',
304
- '-z',
305
- '--unmerged',
306
- );
307
-
308
- if (!result.stdout) {
309
- scope?.addExitInfo('no conflicting files');
310
- return [];
311
- }
312
-
313
- const files = parseGitConflictFiles(result.stdout, repoPath);
314
- scope?.addExitInfo(`${String(files.length)} conflicting file(s)`);
315
- return files;
316
- } catch (ex) {
317
- // Re-throw cancellation errors
318
- if (isCancellationError(ex)) throw ex;
442
+ return this.dedupeByStatusGeneration(
443
+ repoPath,
444
+ 'getConflictingFiles',
445
+ async (correlationKey, signal) => {
446
+ try {
447
+ const result = await this.git.run(
448
+ { cwd: repoPath, cancellation: signal, errors: 'ignore', correlationKey: correlationKey },
449
+ 'ls-files',
450
+ '-z',
451
+ '--unmerged',
452
+ );
453
+
454
+ if (!result.stdout) {
455
+ scope?.addExitInfo('no conflicting files');
456
+ return [];
457
+ }
319
458
 
320
- // Log other errors and return empty array for graceful degradation
321
- scope?.error(ex);
322
- scope?.addExitInfo('error getting conflicting files');
323
- return [];
324
- }
459
+ const files = parseGitConflictFiles(result.stdout, repoPath);
460
+ scope?.addExitInfo(`${String(files.length)} conflicting file(s)`);
461
+ return files;
462
+ } catch (ex) {
463
+ // Re-throw cancellation errors
464
+ if (isCancellationError(ex)) throw ex;
465
+
466
+ // Log other errors and return empty array for graceful degradation
467
+ scope?.error(ex);
468
+ scope?.addExitInfo('error getting conflicting files');
469
+ return [];
470
+ }
471
+ },
472
+ cancellation,
473
+ );
325
474
  }
326
475
 
327
476
  private async hasUntrackedFiles(repoPath: string, cancellation?: AbortSignal): Promise<boolean> {
@@ -350,43 +499,49 @@ export class StatusGitSubProvider implements GitStatusSubProvider {
350
499
  }
351
500
  }
352
501
 
353
- @gate(rp => rp ?? '')
354
502
  @debug()
355
- async getUntrackedFiles(repoPath: string, cancellation?: AbortSignal): Promise<GitFile[]> {
503
+ getUntrackedFiles(repoPath: string, cancellation?: AbortSignal): Promise<GitFile[]> {
356
504
  const scope = getScopedLogger();
357
505
 
358
- try {
359
- const result = await this.git.run(
360
- { cwd: repoPath, cancellation: cancellation, errors: 'ignore' },
361
- 'ls-files',
362
- '-z',
363
- '--others',
364
- '--exclude-standard',
365
- );
366
-
367
- if (!result.stdout) {
368
- scope?.addExitInfo('no untracked files');
369
- return [];
370
- }
506
+ return this.dedupeByStatusGeneration(
507
+ repoPath,
508
+ 'getUntrackedFiles',
509
+ async (correlationKey, signal) => {
510
+ try {
511
+ const result = await this.git.run(
512
+ { cwd: repoPath, cancellation: signal, errors: 'ignore', correlationKey: correlationKey },
513
+ 'ls-files',
514
+ '-z',
515
+ '--others',
516
+ '--exclude-standard',
517
+ );
518
+
519
+ if (!result.stdout) {
520
+ scope?.addExitInfo('no untracked files');
521
+ return [];
522
+ }
371
523
 
372
- const files: GitFile[] = [];
524
+ const files: GitFile[] = [];
373
525
 
374
- for (const line of iterateByDelimiter(result.stdout, '\0')) {
375
- if (!line.length) continue;
526
+ for (const line of iterateByDelimiter(result.stdout, '\0')) {
527
+ if (!line.length) continue;
376
528
 
377
- files.push({ path: line, repoPath: repoPath, status: GitFileWorkingTreeStatus.Untracked });
378
- }
529
+ files.push({ path: line, repoPath: repoPath, status: GitFileWorkingTreeStatus.Untracked });
530
+ }
379
531
 
380
- scope?.addExitInfo(`${String(files.length)} untracked file(s)`);
381
- return files;
382
- } catch (ex) {
383
- // Re-throw cancellation errors
384
- if (isCancellationError(ex)) throw ex;
532
+ scope?.addExitInfo(`${String(files.length)} untracked file(s)`);
533
+ return files;
534
+ } catch (ex) {
535
+ // Re-throw cancellation errors
536
+ if (isCancellationError(ex)) throw ex;
385
537
 
386
- // Log other errors and return empty array for graceful degradation
387
- scope?.error(ex);
388
- scope?.addExitInfo('error getting untracked files');
389
- return [];
390
- }
538
+ // Log other errors and return empty array for graceful degradation
539
+ scope?.error(ex);
540
+ scope?.addExitInfo('error getting untracked files');
541
+ return [];
542
+ }
543
+ },
544
+ cancellation,
545
+ );
391
546
  }
392
547
  }
@@ -66,6 +66,7 @@ export class TagsGitSubProvider implements GitTagsSubProvider {
66
66
 
67
67
  // Annotated tags: peeledObjectname is the commit SHA; objectname is the tag-object SHA.
68
68
  // Lightweight tags: peeledObjectname is empty; objectname is already the commit SHA.
69
+ const annotated = Boolean(record.peeledObjectname);
69
70
  const sha = record.peeledObjectname || record.objectname;
70
71
 
71
72
  tags.push(
@@ -76,6 +77,7 @@ export class TagsGitSubProvider implements GitTagsSubProvider {
76
77
  record.subject,
77
78
  record.creatorDate ? new Date(record.creatorDate) : undefined,
78
79
  record.authorDate ? new Date(record.authorDate) : undefined,
80
+ annotated,
79
81
  ),
80
82
  );
81
83
  }