@gitkraken/core-gitlens 0.3.1 → 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 (1070) hide show
  1. package/CHANGELOG.md +83 -1
  2. package/README.md +22 -12
  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 +4 -3
  8. package/dist/git/context.d.ts.map +1 -1
  9. package/dist/git/context.js.map +1 -1
  10. package/dist/git/errors.d.ts +31 -1
  11. package/dist/git/errors.d.ts.map +1 -1
  12. package/dist/git/errors.js +29 -0
  13. package/dist/git/errors.js.map +1 -1
  14. package/dist/git/models/author.d.ts.map +1 -1
  15. package/dist/git/models/author.js.map +1 -1
  16. package/dist/git/models/autolink.d.ts.map +1 -1
  17. package/dist/git/models/autolink.js.map +1 -1
  18. package/dist/git/models/blame.d.ts.map +1 -1
  19. package/dist/git/models/blame.js.map +1 -1
  20. package/dist/git/models/branch.d.ts.map +1 -1
  21. package/dist/git/models/branch.js.map +1 -1
  22. package/dist/git/models/commit.d.ts.map +1 -1
  23. package/dist/git/models/commit.js +1 -1
  24. package/dist/git/models/commit.js.map +1 -1
  25. package/dist/git/models/contributor.d.ts.map +1 -1
  26. package/dist/git/models/contributor.js.map +1 -1
  27. package/dist/git/models/defaultBranch.d.ts.map +1 -1
  28. package/dist/git/models/defaultBranch.js.map +1 -1
  29. package/dist/git/models/diff.d.ts.map +1 -1
  30. package/dist/git/models/diff.js.map +1 -1
  31. package/dist/git/models/file.d.ts.map +1 -1
  32. package/dist/git/models/file.js.map +1 -1
  33. package/dist/git/models/fileChange.d.ts.map +1 -1
  34. package/dist/git/models/fileChange.js.map +1 -1
  35. package/dist/git/models/fileStatus.d.ts +22 -22
  36. package/dist/git/models/fileStatus.d.ts.map +1 -1
  37. package/dist/git/models/fileStatus.js.map +1 -1
  38. package/dist/git/models/graph.d.ts +122 -1
  39. package/dist/git/models/graph.d.ts.map +1 -1
  40. package/dist/git/models/graph.js +4 -0
  41. package/dist/git/models/graph.js.map +1 -1
  42. package/dist/git/models/graphSearch.d.ts.map +1 -1
  43. package/dist/git/models/graphSearch.js.map +1 -1
  44. package/dist/git/models/graphSession.d.ts +177 -0
  45. package/dist/git/models/graphSession.d.ts.map +1 -0
  46. package/dist/git/models/graphSession.js +7 -0
  47. package/dist/git/models/graphSession.js.map +1 -0
  48. package/dist/git/models/issue.d.ts +12 -2
  49. package/dist/git/models/issue.d.ts.map +1 -1
  50. package/dist/git/models/issue.js +3 -1
  51. package/dist/git/models/issue.js.map +1 -1
  52. package/dist/git/models/issueOrPullRequest.d.ts.map +1 -1
  53. package/dist/git/models/issueOrPullRequest.js.map +1 -1
  54. package/dist/git/models/lineRange.d.ts.map +1 -1
  55. package/dist/git/models/lineRange.js.map +1 -1
  56. package/dist/git/models/log.d.ts.map +1 -1
  57. package/dist/git/models/log.js.map +1 -1
  58. package/dist/git/models/mergeConflicts.d.ts.map +1 -1
  59. package/dist/git/models/mergeConflicts.js.map +1 -1
  60. package/dist/git/models/patch.d.ts.map +1 -1
  61. package/dist/git/models/patch.js.map +1 -1
  62. package/dist/git/models/pausedOperationStatus.d.ts.map +1 -1
  63. package/dist/git/models/pausedOperationStatus.js.map +1 -1
  64. package/dist/git/models/pullRequest.d.ts +27 -2
  65. package/dist/git/models/pullRequest.d.ts.map +1 -1
  66. package/dist/git/models/pullRequest.js +7 -1
  67. package/dist/git/models/pullRequest.js.map +1 -1
  68. package/dist/git/models/rebase.d.ts.map +1 -1
  69. package/dist/git/models/rebase.js.map +1 -1
  70. package/dist/git/models/reference.d.ts.map +1 -1
  71. package/dist/git/models/reference.js.map +1 -1
  72. package/dist/git/models/reflog.d.ts.map +1 -1
  73. package/dist/git/models/reflog.js.map +1 -1
  74. package/dist/git/models/remote.d.ts.map +1 -1
  75. package/dist/git/models/remote.js.map +1 -1
  76. package/dist/git/models/remoteProvider.d.ts.map +1 -1
  77. package/dist/git/models/remoteProvider.js.map +1 -1
  78. package/dist/git/models/remoteResource.d.ts.map +1 -1
  79. package/dist/git/models/remoteResource.js.map +1 -1
  80. package/dist/git/models/repository.d.ts +20 -2
  81. package/dist/git/models/repository.d.ts.map +1 -1
  82. package/dist/git/models/repository.js +19 -0
  83. package/dist/git/models/repository.js.map +1 -1
  84. package/dist/git/models/repositoryChangeEvent.d.ts.map +1 -1
  85. package/dist/git/models/repositoryChangeEvent.js.map +1 -1
  86. package/dist/git/models/repositoryIdentities.d.ts.map +1 -1
  87. package/dist/git/models/repositoryIdentities.js.map +1 -1
  88. package/dist/git/models/repositoryMetadata.d.ts.map +1 -1
  89. package/dist/git/models/repositoryMetadata.js.map +1 -1
  90. package/dist/git/models/resourceDescriptor.d.ts +16 -0
  91. package/dist/git/models/resourceDescriptor.d.ts.map +1 -1
  92. package/dist/git/models/resourceDescriptor.js.map +1 -1
  93. package/dist/git/models/revision.d.ts.map +1 -1
  94. package/dist/git/models/revision.js.map +1 -1
  95. package/dist/git/models/search.d.ts.map +1 -1
  96. package/dist/git/models/search.js.map +1 -1
  97. package/dist/git/models/shortlog.d.ts.map +1 -1
  98. package/dist/git/models/shortlog.js.map +1 -1
  99. package/dist/git/models/signature.d.ts +14 -0
  100. package/dist/git/models/signature.d.ts.map +1 -1
  101. package/dist/git/models/signature.js.map +1 -1
  102. package/dist/git/models/staging.d.ts.map +1 -1
  103. package/dist/git/models/staging.js.map +1 -1
  104. package/dist/git/models/stash.d.ts.map +1 -1
  105. package/dist/git/models/stash.js.map +1 -1
  106. package/dist/git/models/status.d.ts.map +1 -1
  107. package/dist/git/models/status.js.map +1 -1
  108. package/dist/git/models/statusFile.d.ts.map +1 -1
  109. package/dist/git/models/statusFile.js.map +1 -1
  110. package/dist/git/models/tag.d.ts +11 -1
  111. package/dist/git/models/tag.d.ts.map +1 -1
  112. package/dist/git/models/tag.js +9 -2
  113. package/dist/git/models/tag.js.map +1 -1
  114. package/dist/git/models/tree.d.ts.map +1 -1
  115. package/dist/git/models/tree.js.map +1 -1
  116. package/dist/git/models/user.d.ts.map +1 -1
  117. package/dist/git/models/user.js.map +1 -1
  118. package/dist/git/models/worktree.d.ts.map +1 -1
  119. package/dist/git/models/worktree.js.map +1 -1
  120. package/dist/git/parsers/diffParser.d.ts.map +1 -1
  121. package/dist/git/parsers/diffParser.js +1 -1
  122. package/dist/git/parsers/diffParser.js.map +1 -1
  123. package/dist/git/parsers/rebaseTodoParser.d.ts.map +1 -1
  124. package/dist/git/parsers/rebaseTodoParser.js.map +1 -1
  125. package/dist/git/providers/blame.d.ts.map +1 -1
  126. package/dist/git/providers/blame.js.map +1 -1
  127. package/dist/git/providers/branches.d.ts +8 -1
  128. package/dist/git/providers/branches.d.ts.map +1 -1
  129. package/dist/git/providers/branches.js.map +1 -1
  130. package/dist/git/providers/commits.d.ts +6 -1
  131. package/dist/git/providers/commits.d.ts.map +1 -1
  132. package/dist/git/providers/commits.js.map +1 -1
  133. package/dist/git/providers/config.d.ts +6 -2
  134. package/dist/git/providers/config.d.ts.map +1 -1
  135. package/dist/git/providers/config.js.map +1 -1
  136. package/dist/git/providers/contributors.d.ts.map +1 -1
  137. package/dist/git/providers/contributors.js.map +1 -1
  138. package/dist/git/providers/diff.d.ts.map +1 -1
  139. package/dist/git/providers/diff.js.map +1 -1
  140. package/dist/git/providers/graph.d.ts +55 -1
  141. package/dist/git/providers/graph.d.ts.map +1 -1
  142. package/dist/git/providers/graph.js.map +1 -1
  143. package/dist/git/providers/operations.d.ts +1 -0
  144. package/dist/git/providers/operations.d.ts.map +1 -1
  145. package/dist/git/providers/operations.js.map +1 -1
  146. package/dist/git/providers/patch.d.ts.map +1 -1
  147. package/dist/git/providers/patch.js.map +1 -1
  148. package/dist/git/providers/pausedOperations.d.ts.map +1 -1
  149. package/dist/git/providers/pausedOperations.js.map +1 -1
  150. package/dist/git/providers/provider.d.ts.map +1 -1
  151. package/dist/git/providers/provider.js.map +1 -1
  152. package/dist/git/providers/refs.d.ts.map +1 -1
  153. package/dist/git/providers/refs.js.map +1 -1
  154. package/dist/git/providers/remotes.d.ts.map +1 -1
  155. package/dist/git/providers/remotes.js.map +1 -1
  156. package/dist/git/providers/revision.d.ts.map +1 -1
  157. package/dist/git/providers/revision.js.map +1 -1
  158. package/dist/git/providers/shared/remotes.d.ts.map +1 -1
  159. package/dist/git/providers/shared/remotes.js.map +1 -1
  160. package/dist/git/providers/staging.d.ts.map +1 -1
  161. package/dist/git/providers/staging.js.map +1 -1
  162. package/dist/git/providers/stash.d.ts.map +1 -1
  163. package/dist/git/providers/stash.js.map +1 -1
  164. package/dist/git/providers/status.d.ts +1 -0
  165. package/dist/git/providers/status.d.ts.map +1 -1
  166. package/dist/git/providers/status.js.map +1 -1
  167. package/dist/git/providers/tags.d.ts.map +1 -1
  168. package/dist/git/providers/tags.js.map +1 -1
  169. package/dist/git/providers/types.d.ts.map +1 -1
  170. package/dist/git/providers/types.js.map +1 -1
  171. package/dist/git/providers/worktrees.d.ts +5 -1
  172. package/dist/git/providers/worktrees.d.ts.map +1 -1
  173. package/dist/git/providers/worktrees.js.map +1 -1
  174. package/dist/git/remotes/azure-devops.d.ts.map +1 -1
  175. package/dist/git/remotes/azure-devops.js +27 -31
  176. package/dist/git/remotes/azure-devops.js.map +1 -1
  177. package/dist/git/remotes/bitbucket-server.d.ts.map +1 -1
  178. package/dist/git/remotes/bitbucket-server.js +21 -23
  179. package/dist/git/remotes/bitbucket-server.js.map +1 -1
  180. package/dist/git/remotes/bitbucket.d.ts.map +1 -1
  181. package/dist/git/remotes/bitbucket.js +21 -23
  182. package/dist/git/remotes/bitbucket.js.map +1 -1
  183. package/dist/git/remotes/custom.d.ts.map +1 -1
  184. package/dist/git/remotes/custom.js.map +1 -1
  185. package/dist/git/remotes/gerrit.d.ts.map +1 -1
  186. package/dist/git/remotes/gerrit.js +11 -13
  187. package/dist/git/remotes/gerrit.js.map +1 -1
  188. package/dist/git/remotes/gitea.d.ts.map +1 -1
  189. package/dist/git/remotes/gitea.js +12 -14
  190. package/dist/git/remotes/gitea.js.map +1 -1
  191. package/dist/git/remotes/github.d.ts.map +1 -1
  192. package/dist/git/remotes/github.js +54 -56
  193. package/dist/git/remotes/github.js.map +1 -1
  194. package/dist/git/remotes/gitlab.d.ts.map +1 -1
  195. package/dist/git/remotes/gitlab.js +93 -95
  196. package/dist/git/remotes/gitlab.js.map +1 -1
  197. package/dist/git/remotes/google-source.d.ts.map +1 -1
  198. package/dist/git/remotes/google-source.js.map +1 -1
  199. package/dist/git/remotes/matcher.d.ts.map +1 -1
  200. package/dist/git/remotes/matcher.js.map +1 -1
  201. package/dist/git/run.types.d.ts +62 -3
  202. package/dist/git/run.types.d.ts.map +1 -1
  203. package/dist/git/service.d.ts.map +1 -1
  204. package/dist/git/utils/autolink.utils.d.ts.map +1 -1
  205. package/dist/git/utils/autolink.utils.js.map +1 -1
  206. package/dist/git/utils/blame.utils.d.ts.map +1 -1
  207. package/dist/git/utils/blame.utils.js.map +1 -1
  208. package/dist/git/utils/branch.utils.d.ts.map +1 -1
  209. package/dist/git/utils/branch.utils.js +12 -1
  210. package/dist/git/utils/branch.utils.js.map +1 -1
  211. package/dist/git/utils/commit.utils.d.ts.map +1 -1
  212. package/dist/git/utils/commit.utils.js.map +1 -1
  213. package/dist/git/utils/conflictResolution.utils.d.ts +32 -0
  214. package/dist/git/utils/conflictResolution.utils.d.ts.map +1 -1
  215. package/dist/git/utils/conflictResolution.utils.js +95 -0
  216. package/dist/git/utils/conflictResolution.utils.js.map +1 -1
  217. package/dist/git/utils/contributor.utils.d.ts +1 -1
  218. package/dist/git/utils/contributor.utils.d.ts.map +1 -1
  219. package/dist/git/utils/contributor.utils.js +1 -2
  220. package/dist/git/utils/contributor.utils.js.map +1 -1
  221. package/dist/git/utils/fetch.utils.d.ts.map +1 -1
  222. package/dist/git/utils/fetch.utils.js.map +1 -1
  223. package/dist/git/utils/fileStatus.utils.d.ts +7 -0
  224. package/dist/git/utils/fileStatus.utils.d.ts.map +1 -1
  225. package/dist/git/utils/fileStatus.utils.js +6 -0
  226. package/dist/git/utils/fileStatus.utils.js.map +1 -1
  227. package/dist/git/utils/graph.utils.d.ts +20 -0
  228. package/dist/git/utils/graph.utils.d.ts.map +1 -0
  229. package/dist/git/utils/graph.utils.js +40 -0
  230. package/dist/git/utils/graph.utils.js.map +1 -0
  231. package/dist/git/utils/issue.utils.d.ts.map +1 -1
  232. package/dist/git/utils/issue.utils.js +1 -0
  233. package/dist/git/utils/issue.utils.js.map +1 -1
  234. package/dist/git/utils/issueOrPullRequest.utils.d.ts.map +1 -1
  235. package/dist/git/utils/issueOrPullRequest.utils.js.map +1 -1
  236. package/dist/git/utils/mergeConflicts.utils.d.ts.map +1 -1
  237. package/dist/git/utils/mergeConflicts.utils.js.map +1 -1
  238. package/dist/git/utils/pausedOperationStatus.utils.d.ts +13 -13
  239. package/dist/git/utils/pausedOperationStatus.utils.d.ts.map +1 -1
  240. package/dist/git/utils/pausedOperationStatus.utils.js.map +1 -1
  241. package/dist/git/utils/pullRequest.utils.d.ts.map +1 -1
  242. package/dist/git/utils/pullRequest.utils.js +9 -0
  243. package/dist/git/utils/pullRequest.utils.js.map +1 -1
  244. package/dist/git/utils/reachability.utils.d.ts +20 -2
  245. package/dist/git/utils/reachability.utils.d.ts.map +1 -1
  246. package/dist/git/utils/reachability.utils.js +68 -7
  247. package/dist/git/utils/reachability.utils.js.map +1 -1
  248. package/dist/git/utils/rebase.utils.d.ts.map +1 -1
  249. package/dist/git/utils/rebase.utils.js.map +1 -1
  250. package/dist/git/utils/reference.utils.d.ts.map +1 -1
  251. package/dist/git/utils/reference.utils.js.map +1 -1
  252. package/dist/git/utils/remote.utils.d.ts.map +1 -1
  253. package/dist/git/utils/remote.utils.js.map +1 -1
  254. package/dist/git/utils/repository.utils.d.ts.map +1 -1
  255. package/dist/git/utils/repository.utils.js.map +1 -1
  256. package/dist/git/utils/resourceDescriptor.utils.d.ts.map +1 -1
  257. package/dist/git/utils/resourceDescriptor.utils.js.map +1 -1
  258. package/dist/git/utils/revision.utils.d.ts.map +1 -1
  259. package/dist/git/utils/revision.utils.js.map +1 -1
  260. package/dist/git/utils/search.utils.d.ts.map +1 -1
  261. package/dist/git/utils/search.utils.js.map +1 -1
  262. package/dist/git/utils/sorting.d.ts.map +1 -1
  263. package/dist/git/utils/sorting.js.map +1 -1
  264. package/dist/git/utils/sshKey.utils.d.ts +7 -0
  265. package/dist/git/utils/sshKey.utils.d.ts.map +1 -0
  266. package/dist/git/utils/sshKey.utils.js +25 -0
  267. package/dist/git/utils/sshKey.utils.js.map +1 -0
  268. package/dist/git/utils/status.utils.d.ts.map +1 -1
  269. package/dist/git/utils/status.utils.js.map +1 -1
  270. package/dist/git/utils/statusFile.utils.d.ts.map +1 -1
  271. package/dist/git/utils/statusFile.utils.js.map +1 -1
  272. package/dist/git/utils/tag.utils.d.ts.map +1 -1
  273. package/dist/git/utils/tag.utils.js.map +1 -1
  274. package/dist/git/utils/tooltip.utils.d.ts.map +1 -1
  275. package/dist/git/utils/tooltip.utils.js.map +1 -1
  276. package/dist/git/utils/uriAuthority.d.ts.map +1 -1
  277. package/dist/git/utils/uriAuthority.js.map +1 -1
  278. package/dist/git/utils/user.utils.d.ts.map +1 -1
  279. package/dist/git/utils/user.utils.js.map +1 -1
  280. package/dist/git/utils/worktree.utils.d.ts.map +1 -1
  281. package/dist/git/utils/worktree.utils.js.map +1 -1
  282. package/dist/git/watching/changeEvent.d.ts.map +1 -1
  283. package/dist/git/watching/changeEvent.js.map +1 -1
  284. package/dist/git/watching/classifyChange.d.ts.map +1 -1
  285. package/dist/git/watching/classifyChange.js.map +1 -1
  286. package/dist/git/watching/gitIgnoreFilter.d.ts.map +1 -1
  287. package/dist/git/watching/gitIgnoreFilter.js.map +1 -1
  288. package/dist/git/watching/initWatcher.d.ts.map +1 -1
  289. package/dist/git/watching/initWatcher.js.map +1 -1
  290. package/dist/git/watching/provider.d.ts.map +1 -1
  291. package/dist/git/watching/provider.js.map +1 -1
  292. package/dist/git/watching/watchGroup.d.ts.map +1 -1
  293. package/dist/git/watching/watchGroup.js.map +1 -1
  294. package/dist/git/watching/watchService.d.ts +4 -0
  295. package/dist/git/watching/watchService.d.ts.map +1 -1
  296. package/dist/git/watching/watchService.js +15 -1
  297. package/dist/git/watching/watchService.js.map +1 -1
  298. package/dist/git/watching/watchSession.d.ts +7 -0
  299. package/dist/git/watching/watchSession.d.ts.map +1 -1
  300. package/dist/git/watching/watchSession.js +14 -2
  301. package/dist/git/watching/watchSession.js.map +1 -1
  302. package/dist/git/watching/watcherPatterns.d.ts.map +1 -1
  303. package/dist/git/watching/watcherPatterns.js.map +1 -1
  304. package/dist/git-cli/cliGitProvider.d.ts.map +1 -1
  305. package/dist/git-cli/exec/exec.d.ts.map +1 -1
  306. package/dist/git-cli/exec/exec.errors.d.ts.map +1 -1
  307. package/dist/git-cli/exec/exec.errors.js.map +1 -1
  308. package/dist/git-cli/exec/exec.js.map +1 -1
  309. package/dist/git-cli/exec/exec.types.d.ts.map +1 -1
  310. package/dist/git-cli/exec/exec.types.js.map +1 -1
  311. package/dist/git-cli/exec/features.d.ts.map +1 -1
  312. package/dist/git-cli/exec/features.js.map +1 -1
  313. package/dist/git-cli/exec/git.d.ts +19 -27
  314. package/dist/git-cli/exec/git.d.ts.map +1 -1
  315. package/dist/git-cli/exec/git.js +126 -34
  316. package/dist/git-cli/exec/git.js.map +1 -1
  317. package/dist/git-cli/exec/gitQueue.d.ts.map +1 -1
  318. package/dist/git-cli/exec/gitQueue.js.map +1 -1
  319. package/dist/git-cli/exec/locator.d.ts.map +1 -1
  320. package/dist/git-cli/exec/locator.js.map +1 -1
  321. package/dist/git-cli/parsers/blameParser.d.ts.map +1 -1
  322. package/dist/git-cli/parsers/blameParser.js.map +1 -1
  323. package/dist/git-cli/parsers/indexParser.d.ts.map +1 -1
  324. package/dist/git-cli/parsers/indexParser.js.map +1 -1
  325. package/dist/git-cli/parsers/logParser.d.ts +9 -1
  326. package/dist/git-cli/parsers/logParser.d.ts.map +1 -1
  327. package/dist/git-cli/parsers/logParser.js +141 -60
  328. package/dist/git-cli/parsers/logParser.js.map +1 -1
  329. package/dist/git-cli/parsers/mergeTreeParser.d.ts.map +1 -1
  330. package/dist/git-cli/parsers/mergeTreeParser.js.map +1 -1
  331. package/dist/git-cli/parsers/refParser.d.ts.map +1 -1
  332. package/dist/git-cli/parsers/refParser.js.map +1 -1
  333. package/dist/git-cli/parsers/reflogParser.d.ts.map +1 -1
  334. package/dist/git-cli/parsers/reflogParser.js.map +1 -1
  335. package/dist/git-cli/parsers/remoteParser.d.ts.map +1 -1
  336. package/dist/git-cli/parsers/remoteParser.js.map +1 -1
  337. package/dist/git-cli/parsers/shortlogParser.d.ts.map +1 -1
  338. package/dist/git-cli/parsers/shortlogParser.js.map +1 -1
  339. package/dist/git-cli/parsers/signatureParser.d.ts.map +1 -1
  340. package/dist/git-cli/parsers/signatureParser.js.map +1 -1
  341. package/dist/git-cli/parsers/sshSignatureParser.d.ts +21 -0
  342. package/dist/git-cli/parsers/sshSignatureParser.d.ts.map +1 -0
  343. package/dist/git-cli/parsers/sshSignatureParser.js +78 -0
  344. package/dist/git-cli/parsers/sshSignatureParser.js.map +1 -0
  345. package/dist/git-cli/parsers/statusParser.d.ts.map +1 -1
  346. package/dist/git-cli/parsers/statusParser.js.map +1 -1
  347. package/dist/git-cli/parsers/treeParser.d.ts.map +1 -1
  348. package/dist/git-cli/parsers/treeParser.js.map +1 -1
  349. package/dist/git-cli/parsers/worktreeParser.d.ts.map +1 -1
  350. package/dist/git-cli/parsers/worktreeParser.js +5 -7
  351. package/dist/git-cli/parsers/worktreeParser.js.map +1 -1
  352. package/dist/git-cli/providers/blame.d.ts.map +1 -1
  353. package/dist/git-cli/providers/blame.js.map +1 -1
  354. package/dist/git-cli/providers/branches.d.ts +1 -0
  355. package/dist/git-cli/providers/branches.d.ts.map +1 -1
  356. package/dist/git-cli/providers/branches.js +51 -32
  357. package/dist/git-cli/providers/branches.js.map +1 -1
  358. package/dist/git-cli/providers/commitFilesetUtils.d.ts.map +1 -1
  359. package/dist/git-cli/providers/commitFilesetUtils.js.map +1 -1
  360. package/dist/git-cli/providers/commits.d.ts +12 -1
  361. package/dist/git-cli/providers/commits.d.ts.map +1 -1
  362. package/dist/git-cli/providers/commits.js +89 -8
  363. package/dist/git-cli/providers/commits.js.map +1 -1
  364. package/dist/git-cli/providers/config.d.ts.map +1 -1
  365. package/dist/git-cli/providers/config.js.map +1 -1
  366. package/dist/git-cli/providers/contributors.d.ts.map +1 -1
  367. package/dist/git-cli/providers/contributors.js.map +1 -1
  368. package/dist/git-cli/providers/diff.d.ts.map +1 -1
  369. package/dist/git-cli/providers/diff.js.map +1 -1
  370. package/dist/git-cli/providers/graph.d.ts +35 -1
  371. package/dist/git-cli/providers/graph.d.ts.map +1 -1
  372. package/dist/git-cli/providers/graph.js +1434 -330
  373. package/dist/git-cli/providers/graph.js.map +1 -1
  374. package/dist/git-cli/providers/operations.d.ts +1 -0
  375. package/dist/git-cli/providers/operations.d.ts.map +1 -1
  376. package/dist/git-cli/providers/operations.js +22 -1
  377. package/dist/git-cli/providers/operations.js.map +1 -1
  378. package/dist/git-cli/providers/patch.d.ts.map +1 -1
  379. package/dist/git-cli/providers/patch.js.map +1 -1
  380. package/dist/git-cli/providers/pausedOperations.d.ts.map +1 -1
  381. package/dist/git-cli/providers/pausedOperations.js +3 -3
  382. package/dist/git-cli/providers/pausedOperations.js.map +1 -1
  383. package/dist/git-cli/providers/refs.d.ts.map +1 -1
  384. package/dist/git-cli/providers/refs.js.map +1 -1
  385. package/dist/git-cli/providers/remotes.d.ts.map +1 -1
  386. package/dist/git-cli/providers/remotes.js.map +1 -1
  387. package/dist/git-cli/providers/revision.d.ts +1 -0
  388. package/dist/git-cli/providers/revision.d.ts.map +1 -1
  389. package/dist/git-cli/providers/revision.js +33 -0
  390. package/dist/git-cli/providers/revision.js.map +1 -1
  391. package/dist/git-cli/providers/staging.d.ts.map +1 -1
  392. package/dist/git-cli/providers/staging.js.map +1 -1
  393. package/dist/git-cli/providers/stash.d.ts.map +1 -1
  394. package/dist/git-cli/providers/stash.js.map +1 -1
  395. package/dist/git-cli/providers/status.d.ts +28 -0
  396. package/dist/git-cli/providers/status.d.ts.map +1 -1
  397. package/dist/git-cli/providers/status.js +240 -154
  398. package/dist/git-cli/providers/status.js.map +1 -1
  399. package/dist/git-cli/providers/tags.d.ts.map +1 -1
  400. package/dist/git-cli/providers/tags.js +2 -1
  401. package/dist/git-cli/providers/tags.js.map +1 -1
  402. package/dist/git-cli/providers/worktrees.d.ts +4 -1
  403. package/dist/git-cli/providers/worktrees.d.ts.map +1 -1
  404. package/dist/git-cli/providers/worktrees.js +31 -3
  405. package/dist/git-cli/providers/worktrees.js.map +1 -1
  406. package/dist/git-cli/service.d.ts.map +1 -1
  407. package/dist/git-cli/service.js +8 -0
  408. package/dist/git-cli/service.js.map +1 -1
  409. package/dist/ipc/ipcServer.d.ts.map +1 -1
  410. package/dist/ipc/ipcServer.js +1 -1
  411. package/dist/ipc/ipcServer.js.map +1 -1
  412. package/dist/plus/agents/providers/claudeCodeProvider.d.ts +6 -1
  413. package/dist/plus/agents/providers/claudeCodeProvider.d.ts.map +1 -1
  414. package/dist/plus/agents/providers/claudeCodeProvider.js +19 -0
  415. package/dist/plus/agents/providers/claudeCodeProvider.js.map +1 -1
  416. package/dist/plus/agents/providers/claudeCodeTranscript.d.ts +68 -0
  417. package/dist/plus/agents/providers/claudeCodeTranscript.d.ts.map +1 -1
  418. package/dist/plus/agents/providers/claudeCodeTranscript.js +262 -8
  419. package/dist/plus/agents/providers/claudeCodeTranscript.js.map +1 -1
  420. package/dist/plus/agents/types.d.ts +36 -2
  421. package/dist/plus/agents/types.d.ts.map +1 -1
  422. package/dist/plus/ai/constants.d.ts +1 -2
  423. package/dist/plus/ai/constants.d.ts.map +1 -1
  424. package/dist/plus/ai/constants.js +1 -8
  425. package/dist/plus/ai/constants.js.map +1 -1
  426. package/dist/plus/ai/errors.d.ts.map +1 -1
  427. package/dist/plus/ai/errors.js.map +1 -1
  428. package/dist/plus/ai/models/conversation.d.ts.map +1 -1
  429. package/dist/plus/ai/models/conversation.js.map +1 -1
  430. package/dist/plus/ai/models/model.d.ts +2 -1
  431. package/dist/plus/ai/models/model.d.ts.map +1 -1
  432. package/dist/plus/ai/models/model.js +50 -1
  433. package/dist/plus/ai/models/model.js.map +1 -1
  434. package/dist/plus/ai/models/promptTemplates.d.ts +5 -2
  435. package/dist/plus/ai/models/promptTemplates.d.ts.map +1 -1
  436. package/dist/plus/ai/models/promptTemplates.js.map +1 -1
  437. package/dist/plus/ai/models/provider.d.ts.map +1 -1
  438. package/dist/plus/ai/models/provider.js.map +1 -1
  439. package/dist/plus/ai/models/results.d.ts.map +1 -1
  440. package/dist/plus/ai/models/results.js.map +1 -1
  441. package/dist/plus/ai/prompts.d.ts +1 -1
  442. package/dist/plus/ai/prompts.d.ts.map +1 -1
  443. package/dist/plus/ai/prompts.js +15 -47
  444. package/dist/plus/ai/prompts.js.map +1 -1
  445. package/dist/plus/ai/providers/anthropicProvider.d.ts +5 -0
  446. package/dist/plus/ai/providers/anthropicProvider.d.ts.map +1 -1
  447. package/dist/plus/ai/providers/anthropicProvider.js +40 -3
  448. package/dist/plus/ai/providers/anthropicProvider.js.map +1 -1
  449. package/dist/plus/ai/providers/azureProvider.d.ts.map +1 -1
  450. package/dist/plus/ai/providers/azureProvider.js.map +1 -1
  451. package/dist/plus/ai/providers/context.d.ts.map +1 -1
  452. package/dist/plus/ai/providers/context.js.map +1 -1
  453. package/dist/plus/ai/providers/deepSeekProvider.d.ts.map +1 -1
  454. package/dist/plus/ai/providers/deepSeekProvider.js +17 -1
  455. package/dist/plus/ai/providers/deepSeekProvider.js.map +1 -1
  456. package/dist/plus/ai/providers/geminiProvider.d.ts.map +1 -1
  457. package/dist/plus/ai/providers/geminiProvider.js +25 -6
  458. package/dist/plus/ai/providers/geminiProvider.js.map +1 -1
  459. package/dist/plus/ai/providers/gitkrakenProvider.d.ts.map +1 -1
  460. package/dist/plus/ai/providers/gitkrakenProvider.js +1 -0
  461. package/dist/plus/ai/providers/gitkrakenProvider.js.map +1 -1
  462. package/dist/plus/ai/providers/huggingFaceProvider.d.ts +1 -1
  463. package/dist/plus/ai/providers/huggingFaceProvider.d.ts.map +1 -1
  464. package/dist/plus/ai/providers/huggingFaceProvider.js +21 -18
  465. package/dist/plus/ai/providers/huggingFaceProvider.js.map +1 -1
  466. package/dist/plus/ai/providers/mistralProvider.d.ts.map +1 -1
  467. package/dist/plus/ai/providers/mistralProvider.js.map +1 -1
  468. package/dist/plus/ai/providers/ollamaProvider.d.ts.map +1 -1
  469. package/dist/plus/ai/providers/ollamaProvider.js.map +1 -1
  470. package/dist/plus/ai/providers/openAICompatibleProvider.d.ts.map +1 -1
  471. package/dist/plus/ai/providers/openAICompatibleProvider.js.map +1 -1
  472. package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts +10 -1
  473. package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts.map +1 -1
  474. package/dist/plus/ai/providers/openAICompatibleProviderBase.js +9 -1
  475. package/dist/plus/ai/providers/openAICompatibleProviderBase.js.map +1 -1
  476. package/dist/plus/ai/providers/openRouterProvider.d.ts.map +1 -1
  477. package/dist/plus/ai/providers/openRouterProvider.js.map +1 -1
  478. package/dist/plus/ai/providers/openaiProvider.d.ts.map +1 -1
  479. package/dist/plus/ai/providers/openaiProvider.js.map +1 -1
  480. package/dist/plus/ai/providers/xaiProvider.d.ts.map +1 -1
  481. package/dist/plus/ai/providers/xaiProvider.js +14 -1
  482. package/dist/plus/ai/providers/xaiProvider.js.map +1 -1
  483. package/dist/plus/ai/utils/ai.utils.d.ts.map +1 -1
  484. package/dist/plus/ai/utils/ai.utils.js +5 -7
  485. package/dist/plus/ai/utils/ai.utils.js.map +1 -1
  486. package/dist/plus/ai/utils/results.utils.d.ts +3 -0
  487. package/dist/plus/ai/utils/results.utils.d.ts.map +1 -1
  488. package/dist/plus/ai/utils/results.utils.js +26 -0
  489. package/dist/plus/ai/utils/results.utils.js.map +1 -1
  490. package/dist/plus/ai/utils/truncation.utils.d.ts +1 -1
  491. package/dist/plus/ai/utils/truncation.utils.d.ts.map +1 -1
  492. package/dist/plus/ai/utils/truncation.utils.js.map +1 -1
  493. package/dist/plus/git-github/api/config.d.ts.map +1 -1
  494. package/dist/plus/git-github/api/config.js.map +1 -1
  495. package/dist/plus/git-github/api/github.d.ts +71 -15
  496. package/dist/plus/git-github/api/github.d.ts.map +1 -1
  497. package/dist/plus/git-github/api/github.js +350 -84
  498. package/dist/plus/git-github/api/github.js.map +1 -1
  499. package/dist/plus/git-github/api/github.utils.d.ts.map +1 -1
  500. package/dist/plus/git-github/api/github.utils.js.map +1 -1
  501. package/dist/plus/git-github/api/token.d.ts.map +1 -1
  502. package/dist/plus/git-github/api/token.js.map +1 -1
  503. package/dist/plus/git-github/api/tokenUtils.d.ts.map +1 -1
  504. package/dist/plus/git-github/api/tokenUtils.js.map +1 -1
  505. package/dist/plus/git-github/api/types.d.ts.map +1 -1
  506. package/dist/plus/git-github/api/types.js.map +1 -1
  507. package/dist/plus/git-github/context.d.ts.map +1 -1
  508. package/dist/plus/git-github/models.d.ts +5 -0
  509. package/dist/plus/git-github/models.d.ts.map +1 -1
  510. package/dist/plus/git-github/models.js +27 -2
  511. package/dist/plus/git-github/models.js.map +1 -1
  512. package/dist/plus/git-github/providers/github/blame.d.ts.map +1 -1
  513. package/dist/plus/git-github/providers/github/blame.js.map +1 -1
  514. package/dist/plus/git-github/providers/github/branches.d.ts +2 -1
  515. package/dist/plus/git-github/providers/github/branches.d.ts.map +1 -1
  516. package/dist/plus/git-github/providers/github/branches.js +7 -3
  517. package/dist/plus/git-github/providers/github/branches.js.map +1 -1
  518. package/dist/plus/git-github/providers/github/commits.d.ts.map +1 -1
  519. package/dist/plus/git-github/providers/github/commits.js.map +1 -1
  520. package/dist/plus/git-github/providers/github/config.d.ts.map +1 -1
  521. package/dist/plus/git-github/providers/github/config.js.map +1 -1
  522. package/dist/plus/git-github/providers/github/contributors.d.ts.map +1 -1
  523. package/dist/plus/git-github/providers/github/contributors.js.map +1 -1
  524. package/dist/plus/git-github/providers/github/diff.d.ts.map +1 -1
  525. package/dist/plus/git-github/providers/github/diff.js +2 -2
  526. package/dist/plus/git-github/providers/github/diff.js.map +1 -1
  527. package/dist/plus/git-github/providers/github/graph.d.ts +12 -1
  528. package/dist/plus/git-github/providers/github/graph.d.ts.map +1 -1
  529. package/dist/plus/git-github/providers/github/graph.js +85 -0
  530. package/dist/plus/git-github/providers/github/graph.js.map +1 -1
  531. package/dist/plus/git-github/providers/github/refs.d.ts.map +1 -1
  532. package/dist/plus/git-github/providers/github/refs.js.map +1 -1
  533. package/dist/plus/git-github/providers/github/remotes.d.ts.map +1 -1
  534. package/dist/plus/git-github/providers/github/remotes.js.map +1 -1
  535. package/dist/plus/git-github/providers/github/revision.d.ts.map +1 -1
  536. package/dist/plus/git-github/providers/github/revision.js.map +1 -1
  537. package/dist/plus/git-github/providers/github/status.d.ts.map +1 -1
  538. package/dist/plus/git-github/providers/github/status.js.map +1 -1
  539. package/dist/plus/git-github/providers/github/tags.d.ts.map +1 -1
  540. package/dist/plus/git-github/providers/github/tags.js +3 -1
  541. package/dist/plus/git-github/providers/github/tags.js.map +1 -1
  542. package/dist/plus/git-github/providers/githubGitProvider.d.ts.map +1 -1
  543. package/dist/plus/git-github/providers/githubGitProvider.js.map +1 -1
  544. package/dist/plus/git-github/providers/githubProvider.d.ts.map +1 -1
  545. package/dist/plus/git-github/providers/githubProvider.js.map +1 -1
  546. package/dist/plus/integrations/authentication/cloudIntegrationService.d.ts +30 -0
  547. package/dist/plus/integrations/authentication/cloudIntegrationService.d.ts.map +1 -0
  548. package/dist/plus/integrations/authentication/cloudIntegrationService.js +214 -0
  549. package/dist/plus/integrations/authentication/cloudIntegrationService.js.map +1 -0
  550. package/dist/plus/integrations/authentication/configuredIntegrationService.d.ts +114 -0
  551. package/dist/plus/integrations/authentication/configuredIntegrationService.d.ts.map +1 -0
  552. package/dist/plus/integrations/authentication/configuredIntegrationService.js +497 -0
  553. package/dist/plus/integrations/authentication/configuredIntegrationService.js.map +1 -0
  554. package/dist/plus/integrations/authentication/integrationAuthenticationProvider.d.ts +112 -0
  555. package/dist/plus/integrations/authentication/integrationAuthenticationProvider.d.ts.map +1 -0
  556. package/dist/plus/integrations/authentication/integrationAuthenticationProvider.js +217 -0
  557. package/dist/plus/integrations/authentication/integrationAuthenticationProvider.js.map +1 -0
  558. package/dist/plus/integrations/authentication/integrationAuthenticationService.d.ts +62 -0
  559. package/dist/plus/integrations/authentication/integrationAuthenticationService.d.ts.map +1 -0
  560. package/dist/plus/integrations/authentication/integrationAuthenticationService.js +126 -0
  561. package/dist/plus/integrations/authentication/integrationAuthenticationService.js.map +1 -0
  562. package/dist/plus/integrations/authentication/manualTokenProvider.d.ts +16 -0
  563. package/dist/plus/integrations/authentication/manualTokenProvider.d.ts.map +1 -0
  564. package/dist/plus/integrations/authentication/manualTokenProvider.js +53 -0
  565. package/dist/plus/integrations/authentication/manualTokenProvider.js.map +1 -0
  566. package/dist/plus/integrations/authentication/models.d.ts +120 -0
  567. package/dist/plus/integrations/authentication/models.d.ts.map +1 -0
  568. package/dist/plus/integrations/authentication/models.js +64 -0
  569. package/dist/plus/integrations/authentication/models.js.map +1 -0
  570. package/dist/plus/integrations/collectionMetadata.d.ts +21 -0
  571. package/dist/plus/integrations/collectionMetadata.d.ts.map +1 -0
  572. package/dist/plus/integrations/collectionMetadata.js +121 -0
  573. package/dist/plus/integrations/collectionMetadata.js.map +1 -0
  574. package/dist/plus/integrations/constants.d.ts +57 -0
  575. package/dist/plus/integrations/constants.d.ts.map +1 -0
  576. package/dist/plus/integrations/constants.js +138 -0
  577. package/dist/plus/integrations/constants.js.map +1 -0
  578. package/dist/plus/integrations/context.d.ts +358 -0
  579. package/dist/plus/integrations/context.d.ts.map +1 -0
  580. package/dist/plus/integrations/context.js +2 -0
  581. package/dist/plus/integrations/context.js.map +1 -0
  582. package/dist/plus/integrations/errors.d.ts +79 -0
  583. package/dist/plus/integrations/errors.d.ts.map +1 -0
  584. package/dist/plus/integrations/errors.js +150 -0
  585. package/dist/plus/integrations/errors.js.map +1 -0
  586. package/dist/plus/integrations/index.d.ts +77 -0
  587. package/dist/plus/integrations/index.d.ts.map +1 -0
  588. package/dist/plus/integrations/index.js +64 -0
  589. package/dist/plus/integrations/index.js.map +1 -0
  590. package/dist/plus/integrations/integrationService.d.ts +379 -0
  591. package/dist/plus/integrations/integrationService.d.ts.map +1 -0
  592. package/dist/plus/integrations/integrationService.js +1895 -0
  593. package/dist/plus/integrations/integrationService.js.map +1 -0
  594. package/dist/plus/integrations/lite.d.ts +47 -0
  595. package/dist/plus/integrations/lite.d.ts.map +1 -0
  596. package/dist/plus/integrations/lite.js +141 -0
  597. package/dist/plus/integrations/lite.js.map +1 -0
  598. package/dist/plus/integrations/manager.d.ts +332 -0
  599. package/dist/plus/integrations/manager.d.ts.map +1 -0
  600. package/dist/plus/integrations/manager.js +2 -0
  601. package/dist/plus/integrations/manager.js.map +1 -0
  602. package/dist/plus/integrations/models/gitHostIntegration.d.ts +341 -0
  603. package/dist/plus/integrations/models/gitHostIntegration.d.ts.map +1 -0
  604. package/dist/plus/integrations/models/gitHostIntegration.js +1146 -0
  605. package/dist/plus/integrations/models/gitHostIntegration.js.map +1 -0
  606. package/dist/plus/integrations/models/integration.d.ts +212 -0
  607. package/dist/plus/integrations/models/integration.d.ts.map +1 -0
  608. package/dist/plus/integrations/models/integration.js +627 -0
  609. package/dist/plus/integrations/models/integration.js.map +1 -0
  610. package/dist/plus/integrations/models/issuesIntegration.d.ts +108 -0
  611. package/dist/plus/integrations/models/issuesIntegration.d.ts.map +1 -0
  612. package/dist/plus/integrations/models/issuesIntegration.js +216 -0
  613. package/dist/plus/integrations/models/issuesIntegration.js.map +1 -0
  614. package/dist/plus/integrations/providerFilters.d.ts +12 -0
  615. package/dist/plus/integrations/providerFilters.d.ts.map +1 -0
  616. package/dist/plus/integrations/providerFilters.js +14 -0
  617. package/dist/plus/integrations/providerFilters.js.map +1 -0
  618. package/dist/plus/integrations/providers/apiClients.d.ts +25 -0
  619. package/dist/plus/integrations/providers/apiClients.d.ts.map +1 -0
  620. package/dist/plus/integrations/providers/apiClients.js +39 -0
  621. package/dist/plus/integrations/providers/apiClients.js.map +1 -0
  622. package/dist/plus/integrations/providers/apiConfig.d.ts +52 -0
  623. package/dist/plus/integrations/providers/apiConfig.d.ts.map +1 -0
  624. package/dist/plus/integrations/providers/apiConfig.js +19 -0
  625. package/dist/plus/integrations/providers/apiConfig.js.map +1 -0
  626. package/dist/plus/integrations/providers/azure/azure.d.ts +59 -0
  627. package/dist/plus/integrations/providers/azure/azure.d.ts.map +1 -0
  628. package/dist/plus/integrations/providers/azure/azure.js +519 -0
  629. package/dist/plus/integrations/providers/azure/azure.js.map +1 -0
  630. package/dist/plus/integrations/providers/azure/models.d.ts +302 -0
  631. package/dist/plus/integrations/providers/azure/models.d.ts.map +1 -0
  632. package/dist/plus/integrations/providers/azure/models.js +203 -0
  633. package/dist/plus/integrations/providers/azure/models.js.map +1 -0
  634. package/dist/plus/integrations/providers/azureDevOps.d.ts +141 -0
  635. package/dist/plus/integrations/providers/azureDevOps.d.ts.map +1 -0
  636. package/dist/plus/integrations/providers/azureDevOps.js +925 -0
  637. package/dist/plus/integrations/providers/azureDevOps.js.map +1 -0
  638. package/dist/plus/integrations/providers/bitbucket/bitbucket.d.ts +53 -0
  639. package/dist/plus/integrations/providers/bitbucket/bitbucket.d.ts.map +1 -0
  640. package/dist/plus/integrations/providers/bitbucket/bitbucket.js +589 -0
  641. package/dist/plus/integrations/providers/bitbucket/bitbucket.js.map +1 -0
  642. package/dist/plus/integrations/providers/bitbucket/models.d.ts +222 -0
  643. package/dist/plus/integrations/providers/bitbucket/models.d.ts.map +1 -0
  644. package/dist/plus/integrations/providers/bitbucket/models.js +158 -0
  645. package/dist/plus/integrations/providers/bitbucket/models.js.map +1 -0
  646. package/dist/plus/integrations/providers/bitbucket-server/models.d.ts +138 -0
  647. package/dist/plus/integrations/providers/bitbucket-server/models.d.ts.map +1 -0
  648. package/dist/plus/integrations/providers/bitbucket-server/models.js +130 -0
  649. package/dist/plus/integrations/providers/bitbucket-server/models.js.map +1 -0
  650. package/dist/plus/integrations/providers/bitbucket-server.d.ts +84 -0
  651. package/dist/plus/integrations/providers/bitbucket-server.d.ts.map +1 -0
  652. package/dist/plus/integrations/providers/bitbucket-server.js +242 -0
  653. package/dist/plus/integrations/providers/bitbucket-server.js.map +1 -0
  654. package/dist/plus/integrations/providers/bitbucket.d.ts +84 -0
  655. package/dist/plus/integrations/providers/bitbucket.d.ts.map +1 -0
  656. package/dist/plus/integrations/providers/bitbucket.js +477 -0
  657. package/dist/plus/integrations/providers/bitbucket.js.map +1 -0
  658. package/dist/plus/integrations/providers/github/github.d.ts +5 -0
  659. package/dist/plus/integrations/providers/github/github.d.ts.map +1 -0
  660. package/dist/plus/integrations/providers/github/github.js +47 -0
  661. package/dist/plus/integrations/providers/github/github.js.map +1 -0
  662. package/dist/plus/integrations/providers/github/github.utils.d.ts +11 -0
  663. package/dist/plus/integrations/providers/github/github.utils.d.ts.map +1 -0
  664. package/dist/plus/integrations/providers/github/github.utils.js +6 -0
  665. package/dist/plus/integrations/providers/github/github.utils.js.map +1 -0
  666. package/dist/plus/integrations/providers/github/models.d.ts +3 -0
  667. package/dist/plus/integrations/providers/github/models.d.ts.map +1 -0
  668. package/dist/plus/integrations/providers/github/models.js +2 -0
  669. package/dist/plus/integrations/providers/github/models.js.map +1 -0
  670. package/dist/plus/integrations/providers/github.d.ts +116 -0
  671. package/dist/plus/integrations/providers/github.d.ts.map +1 -0
  672. package/dist/plus/integrations/providers/github.js +445 -0
  673. package/dist/plus/integrations/providers/github.js.map +1 -0
  674. package/dist/plus/integrations/providers/gitlab/gitlab.d.ts +71 -0
  675. package/dist/plus/integrations/providers/gitlab/gitlab.d.ts.map +1 -0
  676. package/dist/plus/integrations/providers/gitlab/gitlab.js +902 -0
  677. package/dist/plus/integrations/providers/gitlab/gitlab.js.map +1 -0
  678. package/dist/plus/integrations/providers/gitlab/gitlab.utils.d.ts +27 -0
  679. package/dist/plus/integrations/providers/gitlab/gitlab.utils.d.ts.map +1 -0
  680. package/dist/plus/integrations/providers/gitlab/gitlab.utils.js +53 -0
  681. package/dist/plus/integrations/providers/gitlab/gitlab.utils.js.map +1 -0
  682. package/dist/plus/integrations/providers/gitlab/models.d.ts +138 -0
  683. package/dist/plus/integrations/providers/gitlab/models.d.ts.map +1 -0
  684. package/dist/plus/integrations/providers/gitlab/models.js +99 -0
  685. package/dist/plus/integrations/providers/gitlab/models.js.map +1 -0
  686. package/dist/plus/integrations/providers/gitlab.d.ts +124 -0
  687. package/dist/plus/integrations/providers/gitlab.d.ts.map +1 -0
  688. package/dist/plus/integrations/providers/gitlab.js +519 -0
  689. package/dist/plus/integrations/providers/gitlab.js.map +1 -0
  690. package/dist/plus/integrations/providers/jira.d.ts +57 -0
  691. package/dist/plus/integrations/providers/jira.d.ts.map +1 -0
  692. package/dist/plus/integrations/providers/jira.js +425 -0
  693. package/dist/plus/integrations/providers/jira.js.map +1 -0
  694. package/dist/plus/integrations/providers/linear.d.ts +58 -0
  695. package/dist/plus/integrations/providers/linear.d.ts.map +1 -0
  696. package/dist/plus/integrations/providers/linear.js +304 -0
  697. package/dist/plus/integrations/providers/linear.js.map +1 -0
  698. package/dist/plus/integrations/providers/models.d.ts +712 -0
  699. package/dist/plus/integrations/providers/models.d.ts.map +1 -0
  700. package/dist/plus/integrations/providers/models.js +850 -0
  701. package/dist/plus/integrations/providers/models.js.map +1 -0
  702. package/dist/plus/integrations/providers/providersApi.d.ts +262 -0
  703. package/dist/plus/integrations/providers/providersApi.d.ts.map +1 -0
  704. package/dist/plus/integrations/providers/providersApi.js +1033 -0
  705. package/dist/plus/integrations/providers/providersApi.js.map +1 -0
  706. package/dist/plus/integrations/providers/trello.d.ts +47 -0
  707. package/dist/plus/integrations/providers/trello.d.ts.map +1 -0
  708. package/dist/plus/integrations/providers/trello.js +141 -0
  709. package/dist/plus/integrations/providers/trello.js.map +1 -0
  710. package/dist/plus/integrations/providers/utils/providerPaging.d.ts +29 -0
  711. package/dist/plus/integrations/providers/utils/providerPaging.d.ts.map +1 -0
  712. package/dist/plus/integrations/providers/utils/providerPaging.js +154 -0
  713. package/dist/plus/integrations/providers/utils/providerPaging.js.map +1 -0
  714. package/dist/plus/integrations/providers/utils.d.ts +75 -0
  715. package/dist/plus/integrations/providers/utils.d.ts.map +1 -0
  716. package/dist/plus/integrations/providers/utils.js +313 -0
  717. package/dist/plus/integrations/providers/utils.js.map +1 -0
  718. package/dist/plus/integrations/reads/context.d.ts +52 -0
  719. package/dist/plus/integrations/reads/context.d.ts.map +1 -0
  720. package/dist/plus/integrations/reads/context.js +2 -0
  721. package/dist/plus/integrations/reads/context.js.map +1 -0
  722. package/dist/plus/integrations/reads/cursors.d.ts +66 -0
  723. package/dist/plus/integrations/reads/cursors.d.ts.map +1 -0
  724. package/dist/plus/integrations/reads/cursors.js +133 -0
  725. package/dist/plus/integrations/reads/cursors.js.map +1 -0
  726. package/dist/plus/integrations/reads/drains.d.ts +60 -0
  727. package/dist/plus/integrations/reads/drains.d.ts.map +1 -0
  728. package/dist/plus/integrations/reads/drains.js +255 -0
  729. package/dist/plus/integrations/reads/drains.js.map +1 -0
  730. package/dist/plus/integrations/reads/filters.d.ts +81 -0
  731. package/dist/plus/integrations/reads/filters.d.ts.map +1 -0
  732. package/dist/plus/integrations/reads/filters.js +87 -0
  733. package/dist/plus/integrations/reads/filters.js.map +1 -0
  734. package/dist/plus/integrations/reads/hierarchy.d.ts +17 -0
  735. package/dist/plus/integrations/reads/hierarchy.d.ts.map +1 -0
  736. package/dist/plus/integrations/reads/hierarchy.js +348 -0
  737. package/dist/plus/integrations/reads/hierarchy.js.map +1 -0
  738. package/dist/plus/integrations/reads/hierarchy.utils.d.ts +53 -0
  739. package/dist/plus/integrations/reads/hierarchy.utils.d.ts.map +1 -0
  740. package/dist/plus/integrations/reads/hierarchy.utils.js +85 -0
  741. package/dist/plus/integrations/reads/hierarchy.utils.js.map +1 -0
  742. package/dist/plus/integrations/reads/issueTracker.d.ts +19 -0
  743. package/dist/plus/integrations/reads/issueTracker.d.ts.map +1 -0
  744. package/dist/plus/integrations/reads/issueTracker.js +346 -0
  745. package/dist/plus/integrations/reads/issueTracker.js.map +1 -0
  746. package/dist/plus/integrations/reads/issues.d.ts +34 -0
  747. package/dist/plus/integrations/reads/issues.d.ts.map +1 -0
  748. package/dist/plus/integrations/reads/issues.js +244 -0
  749. package/dist/plus/integrations/reads/issues.js.map +1 -0
  750. package/dist/plus/integrations/reads/paging.d.ts +136 -0
  751. package/dist/plus/integrations/reads/paging.d.ts.map +1 -0
  752. package/dist/plus/integrations/reads/paging.js +221 -0
  753. package/dist/plus/integrations/reads/paging.js.map +1 -0
  754. package/dist/plus/integrations/reads/pullRequests.d.ts +32 -0
  755. package/dist/plus/integrations/reads/pullRequests.d.ts.map +1 -0
  756. package/dist/plus/integrations/reads/pullRequests.js +151 -0
  757. package/dist/plus/integrations/reads/pullRequests.js.map +1 -0
  758. package/dist/plus/integrations/reads/warnings.d.ts +47 -0
  759. package/dist/plus/integrations/reads/warnings.d.ts.map +1 -0
  760. package/dist/plus/integrations/reads/warnings.js +81 -0
  761. package/dist/plus/integrations/reads/warnings.js.map +1 -0
  762. package/dist/plus/integrations/results.d.ts +189 -0
  763. package/dist/plus/integrations/results.d.ts.map +1 -0
  764. package/dist/plus/integrations/results.js +62 -0
  765. package/dist/plus/integrations/results.js.map +1 -0
  766. package/dist/plus/integrations/telemetry.d.ts +26 -0
  767. package/dist/plus/integrations/telemetry.d.ts.map +1 -0
  768. package/dist/plus/integrations/telemetry.js +11 -0
  769. package/dist/plus/integrations/telemetry.js.map +1 -0
  770. package/dist/plus/integrations/utils/domain.utils.d.ts +5 -0
  771. package/dist/plus/integrations/utils/domain.utils.d.ts.map +1 -0
  772. package/dist/plus/integrations/utils/domain.utils.js +27 -0
  773. package/dist/plus/integrations/utils/domain.utils.js.map +1 -0
  774. package/dist/plus/integrations/utils/integration.utils.d.ts +40 -0
  775. package/dist/plus/integrations/utils/integration.utils.d.ts.map +1 -0
  776. package/dist/plus/integrations/utils/integration.utils.js +182 -0
  777. package/dist/plus/integrations/utils/integration.utils.js.map +1 -0
  778. package/dist/utils/array.d.ts.map +1 -1
  779. package/dist/utils/array.js.map +1 -1
  780. package/dist/utils/brand.d.ts.map +1 -1
  781. package/dist/utils/cancellation.d.ts +13 -0
  782. package/dist/utils/cancellation.d.ts.map +1 -1
  783. package/dist/utils/cancellation.js +52 -7
  784. package/dist/utils/cancellation.js.map +1 -1
  785. package/dist/utils/charCode.d.ts.map +1 -1
  786. package/dist/utils/coalescedRun.d.ts +16 -0
  787. package/dist/utils/coalescedRun.d.ts.map +1 -0
  788. package/dist/utils/coalescedRun.js +43 -0
  789. package/dist/utils/coalescedRun.js.map +1 -0
  790. package/dist/utils/color.d.ts.map +1 -1
  791. package/dist/utils/color.js +3 -3
  792. package/dist/utils/color.js.map +1 -1
  793. package/dist/utils/date.d.ts +24 -0
  794. package/dist/utils/date.d.ts.map +1 -1
  795. package/dist/utils/date.js +62 -0
  796. package/dist/utils/date.js.map +1 -1
  797. package/dist/utils/debounce.js +1 -1
  798. package/dist/utils/debounce.js.map +1 -1
  799. package/dist/utils/decorators/debounce.d.ts.map +1 -1
  800. package/dist/utils/decorators/debounce.js.map +1 -1
  801. package/dist/utils/decorators/gate.d.ts.map +1 -1
  802. package/dist/utils/decorators/gate.js +2 -2
  803. package/dist/utils/decorators/gate.js.map +1 -1
  804. package/dist/utils/decorators/log.d.ts.map +1 -1
  805. package/dist/utils/decorators/log.js +5 -5
  806. package/dist/utils/decorators/log.js.map +1 -1
  807. package/dist/utils/decorators/memoize.d.ts.map +1 -1
  808. package/dist/utils/decorators/memoize.js +2 -2
  809. package/dist/utils/decorators/memoize.js.map +1 -1
  810. package/dist/utils/decorators/resolver.d.ts.map +1 -1
  811. package/dist/utils/decorators/resolver.js.map +1 -1
  812. package/dist/utils/decorators/sequentialize.d.ts.map +1 -1
  813. package/dist/utils/decorators/sequentialize.js +2 -2
  814. package/dist/utils/decorators/sequentialize.js.map +1 -1
  815. package/dist/utils/decorators/serializable.d.ts.map +1 -1
  816. package/dist/utils/decorators/serializable.js +1 -1
  817. package/dist/utils/decorators/serializable.js.map +1 -1
  818. package/dist/utils/dedupedAsyncCache.d.ts.map +1 -1
  819. package/dist/utils/disposable.d.ts +15 -2
  820. package/dist/utils/disposable.d.ts.map +1 -1
  821. package/dist/utils/disposable.js.map +1 -1
  822. package/dist/utils/env/browser/base64.d.ts.map +1 -1
  823. package/dist/utils/env/browser/base64.js.map +1 -1
  824. package/dist/utils/env/browser/crypto.d.ts.map +1 -1
  825. package/dist/utils/env/browser/crypto.js.map +1 -1
  826. package/dist/utils/env/browser/fs.d.ts.map +1 -1
  827. package/dist/utils/env/browser/fs.js.map +1 -1
  828. package/dist/utils/env/browser/hex.d.ts.map +1 -1
  829. package/dist/utils/env/browser/hex.js.map +1 -1
  830. package/dist/utils/env/browser/hrtime.d.ts.map +1 -1
  831. package/dist/utils/env/browser/hrtime.js.map +1 -1
  832. package/dist/utils/env/browser/logScope.d.ts.map +1 -1
  833. package/dist/utils/env/browser/logScope.js.map +1 -1
  834. package/dist/utils/env/browser/md5.d.ts.map +1 -1
  835. package/dist/utils/env/browser/md5.js.map +1 -1
  836. package/dist/utils/env/browser/platform.d.ts.map +1 -1
  837. package/dist/utils/env/browser/platform.js.map +1 -1
  838. package/dist/utils/env/node/base64.d.ts.map +1 -1
  839. package/dist/utils/env/node/base64.js.map +1 -1
  840. package/dist/utils/env/node/crypto.d.ts.map +1 -1
  841. package/dist/utils/env/node/crypto.js.map +1 -1
  842. package/dist/utils/env/node/exec.d.ts +9 -1
  843. package/dist/utils/env/node/exec.d.ts.map +1 -1
  844. package/dist/utils/env/node/exec.js +11 -4
  845. package/dist/utils/env/node/exec.js.map +1 -1
  846. package/dist/utils/env/node/fs.d.ts.map +1 -1
  847. package/dist/utils/env/node/fs.js.map +1 -1
  848. package/dist/utils/env/node/hex.d.ts.map +1 -1
  849. package/dist/utils/env/node/hex.js.map +1 -1
  850. package/dist/utils/env/node/hrtime.d.ts.map +1 -1
  851. package/dist/utils/env/node/hrtime.js.map +1 -1
  852. package/dist/utils/env/node/logScope.d.ts.map +1 -1
  853. package/dist/utils/env/node/logScope.js.map +1 -1
  854. package/dist/utils/env/node/platform.d.ts.map +1 -1
  855. package/dist/utils/env/node/platform.js.map +1 -1
  856. package/dist/utils/event.d.ts.map +1 -1
  857. package/dist/utils/event.js +18 -22
  858. package/dist/utils/event.js.map +1 -1
  859. package/dist/utils/formatter.d.ts.map +1 -1
  860. package/dist/utils/formatter.js.map +1 -1
  861. package/dist/utils/function.d.ts.map +1 -1
  862. package/dist/utils/function.js +3 -3
  863. package/dist/utils/function.js.map +1 -1
  864. package/dist/utils/hash.js.map +1 -1
  865. package/dist/utils/iterable.d.ts.map +1 -1
  866. package/dist/utils/iterable.js +2 -6
  867. package/dist/utils/iterable.js.map +1 -1
  868. package/dist/utils/lazy.d.ts.map +1 -1
  869. package/dist/utils/lazy.js.map +1 -1
  870. package/dist/utils/logger.d.ts.map +1 -1
  871. package/dist/utils/logger.js +1 -1
  872. package/dist/utils/logger.js.map +1 -1
  873. package/dist/utils/logger.scoped.js +1 -1
  874. package/dist/utils/logger.scoped.js.map +1 -1
  875. package/dist/utils/lruMap.d.ts.map +1 -1
  876. package/dist/utils/lruMap.js.map +1 -1
  877. package/dist/utils/mru.d.ts.map +1 -1
  878. package/dist/utils/mru.js.map +1 -1
  879. package/dist/utils/object.js.map +1 -1
  880. package/dist/utils/paging.d.ts +29 -0
  881. package/dist/utils/paging.d.ts.map +1 -1
  882. package/dist/utils/paging.js +18 -0
  883. package/dist/utils/paging.js.map +1 -1
  884. package/dist/utils/path.js.map +1 -1
  885. package/dist/utils/promise.d.ts +10 -0
  886. package/dist/utils/promise.d.ts.map +1 -1
  887. package/dist/utils/promise.js +26 -3
  888. package/dist/utils/promise.js.map +1 -1
  889. package/dist/utils/promiseCache.d.ts +12 -2
  890. package/dist/utils/promiseCache.d.ts.map +1 -1
  891. package/dist/utils/promiseCache.js +80 -50
  892. package/dist/utils/promiseCache.js.map +1 -1
  893. package/dist/utils/searchTree.d.ts.map +1 -1
  894. package/dist/utils/searchTree.js +4 -1
  895. package/dist/utils/searchTree.js.map +1 -1
  896. package/dist/utils/stopwatch.d.ts.map +1 -1
  897. package/dist/utils/string.js +1 -1
  898. package/dist/utils/string.js.map +1 -1
  899. package/dist/utils/subscriptionManager.d.ts.map +1 -1
  900. package/dist/utils/subscriptionManager.js.map +1 -1
  901. package/dist/utils/trie.d.ts.map +1 -1
  902. package/dist/utils/trie.js +1 -0
  903. package/dist/utils/trie.js.map +1 -1
  904. package/docs/integrations.md +372 -0
  905. package/docs/kepler-read-api-parity.md +112 -0
  906. package/package.json +238 -172
  907. package/src/git/cache.ts +75 -8
  908. package/src/git/context.ts +4 -3
  909. package/src/git/errors.ts +36 -1
  910. package/src/git/models/commit.ts +1 -1
  911. package/src/git/models/graph.ts +147 -0
  912. package/src/git/models/graphSession.ts +205 -0
  913. package/src/git/models/issue.ts +12 -1
  914. package/src/git/models/pullRequest.ts +27 -1
  915. package/src/git/models/repository.ts +24 -1
  916. package/src/git/models/resourceDescriptor.ts +17 -0
  917. package/src/git/models/signature.ts +16 -0
  918. package/src/git/models/tag.ts +6 -1
  919. package/src/git/parsers/diffParser.ts +1 -1
  920. package/src/git/providers/branches.ts +6 -1
  921. package/src/git/providers/commits.ts +6 -1
  922. package/src/git/providers/config.ts +5 -1
  923. package/src/git/providers/graph.ts +69 -2
  924. package/src/git/providers/operations.ts +1 -1
  925. package/src/git/providers/status.ts +1 -1
  926. package/src/git/providers/worktrees.ts +17 -3
  927. package/src/git/remotes/azure-devops.ts +29 -33
  928. package/src/git/remotes/bitbucket-server.ts +23 -25
  929. package/src/git/remotes/bitbucket.ts +23 -25
  930. package/src/git/remotes/gerrit.ts +12 -14
  931. package/src/git/remotes/gitea.ts +13 -15
  932. package/src/git/remotes/github.ts +56 -58
  933. package/src/git/remotes/gitlab.ts +102 -104
  934. package/src/git/run.types.ts +54 -4
  935. package/src/git/utils/branch.utils.ts +12 -1
  936. package/src/git/utils/conflictResolution.utils.ts +126 -0
  937. package/src/git/utils/contributor.utils.ts +1 -1
  938. package/src/git/utils/fileStatus.utils.ts +7 -0
  939. package/src/git/utils/graph.utils.ts +46 -0
  940. package/src/git/utils/issue.utils.ts +1 -0
  941. package/src/git/utils/pullRequest.utils.ts +9 -0
  942. package/src/git/utils/reachability.utils.ts +79 -8
  943. package/src/git/utils/sshKey.utils.ts +30 -0
  944. package/src/git/watching/watchService.ts +16 -1
  945. package/src/git/watching/watchSession.ts +20 -2
  946. package/src/git-cli/exec/git.ts +144 -42
  947. package/src/git-cli/parsers/logParser.ts +83 -1
  948. package/src/git-cli/parsers/sshSignatureParser.ts +85 -0
  949. package/src/git-cli/parsers/worktreeParser.ts +5 -7
  950. package/src/git-cli/providers/branches.ts +60 -38
  951. package/src/git-cli/providers/commits.ts +102 -9
  952. package/src/git-cli/providers/graph.ts +1771 -393
  953. package/src/git-cli/providers/operations.ts +22 -2
  954. package/src/git-cli/providers/pausedOperations.ts +3 -3
  955. package/src/git-cli/providers/revision.ts +42 -0
  956. package/src/git-cli/providers/status.ts +333 -178
  957. package/src/git-cli/providers/tags.ts +2 -0
  958. package/src/git-cli/providers/worktrees.ts +57 -6
  959. package/src/git-cli/service.ts +9 -0
  960. package/src/ipc/ipcServer.ts +1 -1
  961. package/src/plus/agents/providers/claudeCodeProvider.ts +25 -0
  962. package/src/plus/agents/providers/claudeCodeTranscript.ts +320 -8
  963. package/src/plus/agents/types.ts +34 -0
  964. package/src/plus/ai/constants.ts +1 -9
  965. package/src/plus/ai/models/model.ts +53 -2
  966. package/src/plus/ai/models/promptTemplates.ts +9 -2
  967. package/src/plus/ai/prompts.ts +16 -48
  968. package/src/plus/ai/providers/anthropicProvider.ts +45 -3
  969. package/src/plus/ai/providers/deepSeekProvider.ts +17 -1
  970. package/src/plus/ai/providers/geminiProvider.ts +25 -6
  971. package/src/plus/ai/providers/gitkrakenProvider.ts +2 -0
  972. package/src/plus/ai/providers/huggingFaceProvider.ts +28 -21
  973. package/src/plus/ai/providers/openAICompatibleProviderBase.ts +16 -1
  974. package/src/plus/ai/providers/xaiProvider.ts +14 -1
  975. package/src/plus/ai/utils/ai.utils.ts +5 -7
  976. package/src/plus/ai/utils/results.utils.ts +32 -0
  977. package/src/plus/ai/utils/truncation.utils.ts +0 -1
  978. package/src/plus/git-github/api/github.ts +497 -129
  979. package/src/plus/git-github/models.ts +33 -0
  980. package/src/plus/git-github/providers/github/branches.ts +6 -3
  981. package/src/plus/git-github/providers/github/diff.ts +1 -1
  982. package/src/plus/git-github/providers/github/graph.ts +131 -0
  983. package/src/plus/git-github/providers/github/tags.ts +2 -0
  984. package/src/plus/integrations/authentication/cloudIntegrationService.ts +292 -0
  985. package/src/plus/integrations/authentication/configuredIntegrationService.ts +651 -0
  986. package/src/plus/integrations/authentication/integrationAuthenticationProvider.ts +363 -0
  987. package/src/plus/integrations/authentication/integrationAuthenticationService.ts +148 -0
  988. package/src/plus/integrations/authentication/manualTokenProvider.ts +79 -0
  989. package/src/plus/integrations/authentication/models.ts +202 -0
  990. package/src/plus/integrations/collectionMetadata.ts +143 -0
  991. package/src/plus/integrations/constants.ts +190 -0
  992. package/src/plus/integrations/context.ts +382 -0
  993. package/src/plus/integrations/errors.ts +184 -0
  994. package/src/plus/integrations/index.ts +216 -0
  995. package/src/plus/integrations/integrationService.ts +2589 -0
  996. package/src/plus/integrations/lite.ts +233 -0
  997. package/src/plus/integrations/manager.ts +359 -0
  998. package/src/plus/integrations/models/gitHostIntegration.ts +1631 -0
  999. package/src/plus/integrations/models/integration.ts +926 -0
  1000. package/src/plus/integrations/models/issuesIntegration.ts +264 -0
  1001. package/src/plus/integrations/providerFilters.ts +12 -0
  1002. package/src/plus/integrations/providers/apiClients.ts +69 -0
  1003. package/src/plus/integrations/providers/apiConfig.ts +71 -0
  1004. package/src/plus/integrations/providers/azure/azure.ts +822 -0
  1005. package/src/plus/integrations/providers/azure/models.ts +618 -0
  1006. package/src/plus/integrations/providers/azureDevOps.ts +1342 -0
  1007. package/src/plus/integrations/providers/bitbucket/bitbucket.ts +904 -0
  1008. package/src/plus/integrations/providers/bitbucket/models.ts +445 -0
  1009. package/src/plus/integrations/providers/bitbucket-server/models.ts +283 -0
  1010. package/src/plus/integrations/providers/bitbucket-server.ts +447 -0
  1011. package/src/plus/integrations/providers/bitbucket.ts +794 -0
  1012. package/src/plus/integrations/providers/github/github.ts +64 -0
  1013. package/src/plus/integrations/providers/github/github.utils.ts +23 -0
  1014. package/src/plus/integrations/providers/github/models.ts +29 -0
  1015. package/src/plus/integrations/providers/github.ts +750 -0
  1016. package/src/plus/integrations/providers/gitlab/gitlab.ts +1320 -0
  1017. package/src/plus/integrations/providers/gitlab/gitlab.utils.ts +80 -0
  1018. package/src/plus/integrations/providers/gitlab/models.ts +271 -0
  1019. package/src/plus/integrations/providers/gitlab.ts +832 -0
  1020. package/src/plus/integrations/providers/jira.ts +564 -0
  1021. package/src/plus/integrations/providers/linear.ts +402 -0
  1022. package/src/plus/integrations/providers/models.ts +1622 -0
  1023. package/src/plus/integrations/providers/providersApi.ts +1889 -0
  1024. package/src/plus/integrations/providers/trello.ts +205 -0
  1025. package/src/plus/integrations/providers/utils/providerPaging.ts +177 -0
  1026. package/src/plus/integrations/providers/utils.ts +419 -0
  1027. package/src/plus/integrations/reads/context.ts +75 -0
  1028. package/src/plus/integrations/reads/cursors.ts +224 -0
  1029. package/src/plus/integrations/reads/drains.ts +343 -0
  1030. package/src/plus/integrations/reads/filters.ts +124 -0
  1031. package/src/plus/integrations/reads/hierarchy.ts +493 -0
  1032. package/src/plus/integrations/reads/hierarchy.utils.ts +106 -0
  1033. package/src/plus/integrations/reads/issueTracker.ts +480 -0
  1034. package/src/plus/integrations/reads/issues.ts +407 -0
  1035. package/src/plus/integrations/reads/paging.ts +277 -0
  1036. package/src/plus/integrations/reads/pullRequests.ts +267 -0
  1037. package/src/plus/integrations/reads/warnings.ts +170 -0
  1038. package/src/plus/integrations/results.ts +275 -0
  1039. package/src/plus/integrations/telemetry.ts +29 -0
  1040. package/src/plus/integrations/utils/domain.utils.ts +26 -0
  1041. package/src/plus/integrations/utils/integration.utils.ts +215 -0
  1042. package/src/utils/brand.ts +0 -2
  1043. package/src/utils/cancellation.ts +56 -7
  1044. package/src/utils/coalescedRun.ts +45 -0
  1045. package/src/utils/color.ts +3 -3
  1046. package/src/utils/date.ts +72 -0
  1047. package/src/utils/debounce.ts +1 -1
  1048. package/src/utils/decorators/gate.ts +2 -2
  1049. package/src/utils/decorators/log.ts +5 -5
  1050. package/src/utils/decorators/memoize.ts +2 -2
  1051. package/src/utils/decorators/sequentialize.ts +2 -2
  1052. package/src/utils/decorators/serializable.ts +1 -1
  1053. package/src/utils/disposable.ts +15 -2
  1054. package/src/utils/env/node/exec.ts +20 -5
  1055. package/src/utils/event.ts +19 -25
  1056. package/src/utils/function.ts +3 -3
  1057. package/src/utils/iterable.ts +2 -6
  1058. package/src/utils/logger.scoped.ts +1 -1
  1059. package/src/utils/logger.ts +1 -1
  1060. package/src/utils/paging.ts +46 -0
  1061. package/src/utils/promise.ts +33 -3
  1062. package/src/utils/promiseCache.ts +81 -51
  1063. package/src/utils/searchTree.ts +4 -2
  1064. package/src/utils/string.ts +1 -1
  1065. package/src/utils/trie.ts +1 -0
  1066. package/dist/plus/ai/providers/githubModelsProvider.d.ts +0 -19
  1067. package/dist/plus/ai/providers/githubModelsProvider.d.ts.map +0 -1
  1068. package/dist/plus/ai/providers/githubModelsProvider.js +0 -51
  1069. package/dist/plus/ai/providers/githubModelsProvider.js.map +0 -1
  1070. package/src/plus/ai/providers/githubModelsProvider.ts +0 -92
@@ -0,0 +1,112 @@
1
+ import type { Disposable } from '../../../utils/disposable.js';
2
+ import type { Event } from '../../../utils/event.js';
3
+ import type { IntegrationIds } from '../constants.js';
4
+ import type { Sources } from '../telemetry.js';
5
+ import type { ConfiguredIntegrationService } from './configuredIntegrationService.js';
6
+ import type { IntegrationAuthenticationService } from './integrationAuthenticationService.js';
7
+ import type { ProviderAuthenticationSession } from './models.js';
8
+ export interface IntegrationAuthenticationProviderDescriptor {
9
+ id: IntegrationIds;
10
+ scopes: string[];
11
+ }
12
+ export interface IntegrationAuthenticationSessionDescriptor {
13
+ domain: string;
14
+ scopes: string[];
15
+ /** When set, reads/deletes only the matching storage variant. */
16
+ cloud?: boolean;
17
+ /**
18
+ * Targets a specific connection when a provider has multiple accounts connected. When omitted,
19
+ * operations resolve to the provider's primary connection (see
20
+ * {@link ConfiguredIntegrationService.resolveConnectionId}).
21
+ */
22
+ connectionId?: string;
23
+ [key: string]: unknown;
24
+ }
25
+ export interface IntegrationAuthenticationProvider extends Disposable {
26
+ /**
27
+ * Clears the stored secret for one connection only (never the whole provider). Unlike
28
+ * {@link deleteAllSessions}, this by default leaves the descriptor in `integrations:configured` — its
29
+ * primary caller is a forced re-sync, which needs `getConfigured()` to keep reporting the connection
30
+ * while a fresh session is fetched to replace the deleted secret. Implementers should not treat this as
31
+ * a full disconnect. Pass `preserveConfigured: false` to also drop the descriptor (e.g. when the
32
+ * re-sync's replacement fetch failed and the connection should no longer be reported as connected).
33
+ */
34
+ deleteSession(descriptor: IntegrationAuthenticationSessionDescriptor, options?: {
35
+ preserveConfigured?: boolean;
36
+ }): Promise<void>;
37
+ deleteAllSessions(descriptor?: IntegrationAuthenticationSessionDescriptor): Promise<void>;
38
+ getSession(descriptor: IntegrationAuthenticationSessionDescriptor, options?: {
39
+ createIfNeeded?: boolean;
40
+ forceNewSession?: boolean;
41
+ sync?: never;
42
+ source?: Sources;
43
+ } | {
44
+ createIfNeeded?: never;
45
+ forceNewSession?: never;
46
+ sync: boolean;
47
+ source?: Sources;
48
+ }): Promise<ProviderAuthenticationSession | undefined>;
49
+ get onDidChange(): Event<void>;
50
+ }
51
+ declare abstract class IntegrationAuthenticationProviderBase<ID extends IntegrationIds = IntegrationIds> implements IntegrationAuthenticationProvider {
52
+ protected readonly authenticationService: IntegrationAuthenticationService;
53
+ protected readonly configuredIntegrationService: ConfiguredIntegrationService;
54
+ protected readonly disposables: Disposable[];
55
+ constructor(authenticationService: IntegrationAuthenticationService, configuredIntegrationService: ConfiguredIntegrationService);
56
+ dispose(): void;
57
+ private readonly _onDidChange;
58
+ get onDidChange(): Event<void>;
59
+ protected abstract get authProviderId(): ID;
60
+ deleteSession(descriptor: IntegrationAuthenticationSessionDescriptor, options?: {
61
+ preserveConfigured?: boolean;
62
+ }): Promise<void>;
63
+ deleteAllSessions(descriptor?: IntegrationAuthenticationSessionDescriptor): Promise<void>;
64
+ getSession(descriptor: IntegrationAuthenticationSessionDescriptor, options?: {
65
+ createIfNeeded?: boolean;
66
+ forceNewSession?: boolean;
67
+ sync?: never;
68
+ source?: Sources;
69
+ } | {
70
+ createIfNeeded?: never;
71
+ forceNewSession?: never;
72
+ sync: boolean;
73
+ source?: Sources;
74
+ }): Promise<ProviderAuthenticationSession | undefined>;
75
+ protected abstract getNewSession(descriptor: IntegrationAuthenticationSessionDescriptor, options?: {
76
+ createIfNeeded?: boolean;
77
+ forceNewSession?: boolean;
78
+ sync?: never;
79
+ refreshIfExpired?: boolean;
80
+ source?: Sources;
81
+ } | {
82
+ createIfNeeded?: never;
83
+ forceNewSession?: never;
84
+ sync: boolean;
85
+ refreshIfExpired?: boolean;
86
+ source?: Sources;
87
+ }): Promise<ProviderAuthenticationSession | undefined>;
88
+ protected fireChange(): void;
89
+ }
90
+ export declare class CloudIntegrationAuthenticationProvider<ID extends IntegrationIds = IntegrationIds> extends IntegrationAuthenticationProviderBase<ID> {
91
+ private readonly _authProviderId;
92
+ constructor(authenticationService: IntegrationAuthenticationService, configuredIntegrationService: ConfiguredIntegrationService, _authProviderId: ID);
93
+ protected get authProviderId(): ID;
94
+ protected getNewSession(descriptor: IntegrationAuthenticationSessionDescriptor, options?: {
95
+ createIfNeeded?: boolean;
96
+ forceNewSession?: boolean;
97
+ sync?: never;
98
+ refreshIfExpired?: boolean;
99
+ source?: Sources;
100
+ } | {
101
+ createIfNeeded?: never;
102
+ forceNewSession?: never;
103
+ sync: boolean;
104
+ refreshIfExpired?: boolean;
105
+ source?: Sources;
106
+ }): Promise<ProviderAuthenticationSession | undefined>;
107
+ private connectCloudSession;
108
+ private getCloudSession;
109
+ private disconnectCloudSession;
110
+ }
111
+ export {};
112
+ //# sourceMappingURL=integrationAuthenticationProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrationAuthenticationProvider.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/authentication/integrationAuthenticationProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,217 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { trace } from '../../../utils/decorators/log.js';
8
+ import { Emitter } from '../../../utils/event.js';
9
+ import { areDomainsOnSameHost } from '../utils/domain.utils.js';
10
+ import { isGitSelfManagedHostIntegrationId, isNonExpiringZeroTokenIntegrationId } from '../utils/integration.utils.js';
11
+ import { isSupportedCloudIntegrationId } from './models.js';
12
+ const maxSmallIntegerV8 = 2 ** 30 - 1; // Max number that can be stored in V8's smis (small integers)
13
+ class IntegrationAuthenticationProviderBase {
14
+ authenticationService;
15
+ configuredIntegrationService;
16
+ disposables = [];
17
+ constructor(authenticationService, configuredIntegrationService) {
18
+ this.authenticationService = authenticationService;
19
+ this.configuredIntegrationService = configuredIntegrationService;
20
+ }
21
+ dispose() {
22
+ this.disposables.forEach(d => d.dispose());
23
+ }
24
+ _onDidChange = new Emitter();
25
+ get onDidChange() {
26
+ return this._onDidChange.event;
27
+ }
28
+ async deleteSession(descriptor, options) {
29
+ const domain = isGitSelfManagedHostIntegrationId(this.authProviderId) ? descriptor?.domain : undefined;
30
+ const configured = this.configuredIntegrationService.getConfigured(this.authProviderId, {
31
+ domain: domain,
32
+ });
33
+ // Scope the descriptor to cloud so resolveConnectionId targets the cloud variant's id: this is a
34
+ // cloud-only delete, and a mixed local+cloud connection whose local descriptor is primary would
35
+ // otherwise resolve the local id and leave the cloud secret intact.
36
+ await this.configuredIntegrationService.deleteStoredSessions(this.authProviderId, { ...descriptor, cloud: true }, true, { preserveConfigured: options?.preserveConfigured ?? true });
37
+ if (configured?.length) {
38
+ this.fireChange();
39
+ }
40
+ }
41
+ async deleteAllSessions(descriptor) {
42
+ // Self-managed providers group every host under one provider id, so scope the clear to this
43
+ // descriptor's host when given; for cloud providers the domain stays undefined here, clearing every account.
44
+ const domain = isGitSelfManagedHostIntegrationId(this.authProviderId) ? descriptor?.domain : undefined;
45
+ const configured = this.configuredIntegrationService.getConfigured(this.authProviderId, {
46
+ domain: domain,
47
+ });
48
+ await this.configuredIntegrationService.deleteAllStoredSessions(this.authProviderId, undefined, domain);
49
+ if (configured?.length) {
50
+ this.fireChange();
51
+ }
52
+ }
53
+ async getSession(descriptor, options) {
54
+ let session;
55
+ let previousToken;
56
+ if (options?.forceNewSession) {
57
+ // Cloud-only delete (see deleteSession): scope to cloud so the cloud variant's id is cleared even
58
+ // when a mixed local+cloud connection's local descriptor is primary.
59
+ await this.configuredIntegrationService.deleteStoredSessions(this.authProviderId, { ...descriptor, cloud: true }, true);
60
+ }
61
+ else {
62
+ session = await this.configuredIntegrationService.getStoredSession(this.authProviderId, options?.sync ? { ...descriptor, cloud: true } : descriptor);
63
+ previousToken = session?.accessToken;
64
+ }
65
+ const isExpiredSession = session?.expiresAt != null && new Date(session.expiresAt).getTime() < Date.now();
66
+ if (session == null || isExpiredSession) {
67
+ session = await this.getNewSession(descriptor, {
68
+ ...options,
69
+ refreshIfExpired: isExpiredSession,
70
+ });
71
+ if (session != null) {
72
+ await this.configuredIntegrationService.storeSession(this.authProviderId, session);
73
+ }
74
+ }
75
+ if (previousToken !== session?.accessToken) {
76
+ this.fireChange();
77
+ }
78
+ return session;
79
+ }
80
+ fireChange() {
81
+ queueMicrotask(() => this._onDidChange.fire());
82
+ }
83
+ }
84
+ __decorate([
85
+ trace()
86
+ ], IntegrationAuthenticationProviderBase.prototype, "deleteSession", null);
87
+ __decorate([
88
+ trace()
89
+ ], IntegrationAuthenticationProviderBase.prototype, "deleteAllSessions", null);
90
+ __decorate([
91
+ trace()
92
+ ], IntegrationAuthenticationProviderBase.prototype, "getSession", null);
93
+ export class CloudIntegrationAuthenticationProvider extends IntegrationAuthenticationProviderBase {
94
+ _authProviderId;
95
+ constructor(authenticationService, configuredIntegrationService, _authProviderId) {
96
+ super(authenticationService, configuredIntegrationService);
97
+ this._authProviderId = _authProviderId;
98
+ }
99
+ get authProviderId() {
100
+ return this._authProviderId;
101
+ }
102
+ async getNewSession(descriptor, options) {
103
+ if (options?.forceNewSession) {
104
+ if ((await this.disconnectCloudSession()) === 'failure') {
105
+ return undefined;
106
+ }
107
+ void this.connectCloudSession(false, options?.source);
108
+ return undefined;
109
+ }
110
+ // TODO: This is a stopgap to make sure we're not hammering the api on automatic calls to get the session.
111
+ // Ultimately we want to timestamp calls to syncCloudIntegrations and use that to determine whether we should
112
+ // make the call or not.
113
+ let session = options?.refreshIfExpired || options?.createIfNeeded || options?.forceNewSession || options?.sync
114
+ ? await this.getCloudSession(descriptor)
115
+ : undefined;
116
+ const shouldCreateSession = options?.createIfNeeded && session == null;
117
+ if (shouldCreateSession) {
118
+ const connected = await this.connectCloudSession(true, options?.source);
119
+ if (!connected)
120
+ return undefined;
121
+ // This should get us the session we just created with connectCloudSession, because a syncCloudIntegrations run from
122
+ // integration service should have resulted in it being created and stored by this provider
123
+ session = await this.getSession(descriptor, { source: options?.source });
124
+ }
125
+ return session;
126
+ }
127
+ connectCloudSession(skipIfConnected, source) {
128
+ // Capture in a const so the type guard narrows it to `SupportedCloudIntegrationIds` (a getter
129
+ // access wouldn't narrow), letting us call the service directly without a cast.
130
+ const id = this.authProviderId;
131
+ if (isSupportedCloudIntegrationId(id)) {
132
+ return this.authenticationService.connectCloudIntegrations({ integrationIds: [id], skipIfConnected: skipIfConnected, skipPreSync: true }, {
133
+ source: source ?? 'integrations',
134
+ detail: {
135
+ action: 'connect',
136
+ integration: id,
137
+ },
138
+ });
139
+ }
140
+ return Promise.resolve(false);
141
+ }
142
+ async getCloudSession(descriptor) {
143
+ const loggedIn = (await this.authenticationService.ctx.account.getAccount()) != null;
144
+ if (!loggedIn)
145
+ return undefined;
146
+ const cloudIntegrations = this.authenticationService.cloudIntegrations;
147
+ // An unscoped descriptor (no explicit connectionId) would fetch the provider-global primary via
148
+ // `v1/provider-tokens/<provider>`. For a self-managed provider spanning multiple hosts that primary
149
+ // can belong to a different host, so a forced sync of host A would hydrate host B's token here (before
150
+ // reconcile corrects storage). Scope to this host's own configured connection when we have one; fall
151
+ // through to the provider-scoped path only when nothing is configured yet (legacy/first sync).
152
+ const connectionId = descriptor.connectionId ??
153
+ (isGitSelfManagedHostIntegrationId(this.authProviderId)
154
+ ? this.configuredIntegrationService.getConfiguredConnectionId(this.authProviderId, descriptor.domain, true)
155
+ : undefined);
156
+ let session = await cloudIntegrations.getConnectionSession(this.authProviderId, undefined, connectionId);
157
+ if (session != null &&
158
+ isGitSelfManagedHostIntegrationId(this.authProviderId) &&
159
+ !areDomainsOnSameHost(session.domain, descriptor.domain)) {
160
+ return undefined;
161
+ }
162
+ // GitHub, the cloud self-managed hosts, and Trello return `expiresIn: 0` for a token that never
163
+ // expires; left as 0 the session would be built with `expiresAt = now` and rejected as expired on the
164
+ // next resolution. Map it to the maximum expiry so it isn't refreshed frequently.
165
+ if (session?.expiresIn === 0 && isNonExpiringZeroTokenIntegrationId(this.authProviderId)) {
166
+ session.expiresIn = maxSmallIntegerV8; // maximum expiration length
167
+ }
168
+ if (session != null && session.expiresIn < 60) {
169
+ session = await cloudIntegrations.getConnectionSession(this.authProviderId, session.accessToken, connectionId);
170
+ if (session != null &&
171
+ isGitSelfManagedHostIntegrationId(this.authProviderId) &&
172
+ !areDomainsOnSameHost(session.domain, descriptor.domain)) {
173
+ return undefined;
174
+ }
175
+ }
176
+ if (!session)
177
+ return undefined;
178
+ let sessionProtocol;
179
+ // Only derive a protocol from a domain carrying an explicit scheme; a bare `host:port` (e.g. a
180
+ // self-managed `ghe.example.com:8443`) parses the host as the protocol, corrupting the value.
181
+ if (/^[a-z][a-z\d+\-.]*:\/\//i.test(session.domain)) {
182
+ try {
183
+ sessionProtocol = new URL(session.domain).protocol;
184
+ }
185
+ catch {
186
+ sessionProtocol = undefined;
187
+ }
188
+ }
189
+ return {
190
+ // Prefer the backend's per-connection token id (multi-account); fall back to the resolved
191
+ // primary/legacy connection id so existing single-connection storage keys are preserved.
192
+ id: session.id ?? this.configuredIntegrationService.resolveConnectionId(this.authProviderId, descriptor),
193
+ accessToken: session.accessToken,
194
+ scopes: descriptor.scopes,
195
+ account: {
196
+ id: '',
197
+ label: '',
198
+ },
199
+ cloud: true,
200
+ type: session.type,
201
+ expiresAt: new Date(session.expiresIn * 1000 + Date.now()),
202
+ // Note: do not use the session's domain, because the format is different than in our model
203
+ domain: descriptor.domain,
204
+ protocol: sessionProtocol ?? undefined,
205
+ // Carried for providers whose client needs an app key alongside the token (e.g. Trello).
206
+ appKey: session.appKey,
207
+ };
208
+ }
209
+ async disconnectCloudSession() {
210
+ const loggedIn = (await this.authenticationService.ctx.account.getAccount()) != null;
211
+ if (!loggedIn)
212
+ return 'skip';
213
+ const cloudIntegrations = this.authenticationService.cloudIntegrations;
214
+ return (await cloudIntegrations.disconnect(this.authProviderId)) ? 'success' : 'failure';
215
+ }
216
+ }
217
+ //# sourceMappingURL=integrationAuthenticationProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrationAuthenticationProvider.js","sourceRoot":"","sources":["../../../../src/plus/integrations/authentication/integrationAuthenticationProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import type { GitRemote } from '../../../git/models/remote.js';
2
+ import type { Disposable } from '../../../utils/disposable.js';
3
+ import type { IntegrationIds, SupportedCloudIntegrationIds } from '../constants.js';
4
+ import type { IntegrationServiceContext } from '../context.js';
5
+ import type { IntegrationService } from '../integrationService.js';
6
+ import type { GitHostIntegration } from '../models/gitHostIntegration.js';
7
+ import type { ApiClients } from '../providers/apiClients.js';
8
+ import type { Source } from '../telemetry.js';
9
+ import type { CloudIntegrationService } from './cloudIntegrationService.js';
10
+ import type { ConfiguredIntegrationService } from './configuredIntegrationService.js';
11
+ import type { IntegrationAuthenticationProvider } from './integrationAuthenticationProvider.js';
12
+ export declare class IntegrationAuthenticationService implements Disposable {
13
+ private readonly configuredIntegrationService;
14
+ readonly ctx: IntegrationServiceContext;
15
+ /**
16
+ * Lazy accessor for the owning {@link IntegrationService}. Injected by the composition root
17
+ * ({@link createIntegrationManager}) to break the auth↔service construction cycle without a
18
+ * mutable setter or a host round-trip; only resolved at runtime (long after construction).
19
+ */
20
+ private readonly getIntegrationService;
21
+ /** The package's cloud token-exchange client, constructed by the composition root. */
22
+ readonly cloudIntegrations: CloudIntegrationService;
23
+ private readonly providers;
24
+ constructor(configuredIntegrationService: ConfiguredIntegrationService, ctx: IntegrationServiceContext,
25
+ /**
26
+ * Lazy accessor for the owning {@link IntegrationService}. Injected by the composition root
27
+ * ({@link createIntegrationManager}) to break the auth↔service construction cycle without a
28
+ * mutable setter or a host round-trip; only resolved at runtime (long after construction).
29
+ */
30
+ getIntegrationService: () => IntegrationService,
31
+ /** The package's cloud token-exchange client, constructed by the composition root. */
32
+ cloudIntegrations: CloudIntegrationService);
33
+ dispose(): void;
34
+ /**
35
+ * Initiates the cloud-integration connect flow on the owning service. Cloud auth providers call
36
+ * this when they need a session that doesn't exist yet (see
37
+ * {@link CloudIntegrationAuthenticationProvider}).
38
+ */
39
+ connectCloudIntegrations(connect: {
40
+ integrationIds: SupportedCloudIntegrationIds[];
41
+ skipIfConnected?: boolean;
42
+ skipPreSync?: boolean;
43
+ }, source?: Source): Promise<boolean>;
44
+ /**
45
+ * Resolves the connected git-host integration for a `GitRemote`, via the owning service. Lets
46
+ * package-internal callers (e.g. the Bitbucket provider) resolve a remote's integration without a
47
+ * host round-trip.
48
+ */
49
+ getByRemote(remote: GitRemote): Promise<GitHostIntegration | undefined>;
50
+ /** Resolves the per-integration `ignoreSSLErrors` flag via the owning service (host-config-backed). */
51
+ ignoreSSLErrors(integration: GitHostIntegration | {
52
+ id: IntegrationIds;
53
+ domain?: string;
54
+ }): boolean | 'force';
55
+ /** The package-built per-provider API clients, via the owning service (built once + memoized there). */
56
+ get apis(): ApiClients;
57
+ get(providerId: IntegrationIds): Promise<IntegrationAuthenticationProvider>;
58
+ reset(): Promise<void>;
59
+ supports(providerId: string): boolean;
60
+ private ensureProvider;
61
+ }
62
+ //# sourceMappingURL=integrationAuthenticationService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrationAuthenticationService.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/authentication/integrationAuthenticationService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAG/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAMpF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACtF,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAGhG,qBAAa,gCAAiC,YAAW,UAAU;IAIjE,OAAO,CAAC,QAAQ,CAAC,4BAA4B;IAC7C,QAAQ,CAAC,GAAG,EAAE,yBAAyB;IACvC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,sFAAsF;IACtF,QAAQ,CAAC,iBAAiB,EAAE,uBAAuB;IAZpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgE;IAE1F,YACkB,4BAA4B,EAAE,4BAA4B,EAClE,GAAG,EAAE,yBAAyB;IACvC;;;;OAIG;IACc,qBAAqB,EAAE,MAAM,kBAAkB;IAChE,sFAAsF;IAC7E,iBAAiB,EAAE,uBAAuB,EAChD;IAEJ,OAAO,IAAI,IAAI,CAGd;IAED;;;;OAIG;IACH,wBAAwB,CACvB,OAAO,EAAE;QAAE,cAAc,EAAE,4BAA4B,EAAE,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,EAC7G,MAAM,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,CAElB;IAED;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAEtE;IAED,uGAAuG;IACvG,eAAe,CAAC,WAAW,EAAE,kBAAkB,GAAG;QAAE,EAAE,EAAE,cAAc,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,GAAG,OAAO,CAE5G;IAED,wGAAwG;IACxG,IAAI,IAAI,IAAI,UAAU,CAErB;IAEK,GAAG,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAEhF;IAGK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAO3B;IAED,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAiBpC;YAGa,cAAc;CAwC5B"}
@@ -0,0 +1,126 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { gate } from '../../../utils/decorators/gate.js';
8
+ import { debug } from '../../../utils/decorators/log.js';
9
+ import { GitCloudHostIntegrationId, GitSelfManagedHostIntegrationId, IssuesCloudHostIntegrationId, } from '../constants.js';
10
+ import { supportedIntegrationIds } from '../utils/integration.utils.js';
11
+ import { CloudIntegrationAuthenticationProvider } from './integrationAuthenticationProvider.js';
12
+ export class IntegrationAuthenticationService {
13
+ configuredIntegrationService;
14
+ ctx;
15
+ getIntegrationService;
16
+ cloudIntegrations;
17
+ providers = new Map();
18
+ constructor(configuredIntegrationService, ctx,
19
+ /**
20
+ * Lazy accessor for the owning {@link IntegrationService}. Injected by the composition root
21
+ * ({@link createIntegrationManager}) to break the auth↔service construction cycle without a
22
+ * mutable setter or a host round-trip; only resolved at runtime (long after construction).
23
+ */
24
+ getIntegrationService,
25
+ /** The package's cloud token-exchange client, constructed by the composition root. */
26
+ cloudIntegrations) {
27
+ this.configuredIntegrationService = configuredIntegrationService;
28
+ this.ctx = ctx;
29
+ this.getIntegrationService = getIntegrationService;
30
+ this.cloudIntegrations = cloudIntegrations;
31
+ }
32
+ dispose() {
33
+ this.providers.forEach(p => p.dispose());
34
+ this.providers.clear();
35
+ }
36
+ /**
37
+ * Initiates the cloud-integration connect flow on the owning service. Cloud auth providers call
38
+ * this when they need a session that doesn't exist yet (see
39
+ * {@link CloudIntegrationAuthenticationProvider}).
40
+ */
41
+ connectCloudIntegrations(connect, source) {
42
+ return this.getIntegrationService().connectCloudIntegrations(connect, source);
43
+ }
44
+ /**
45
+ * Resolves the connected git-host integration for a `GitRemote`, via the owning service. Lets
46
+ * package-internal callers (e.g. the Bitbucket provider) resolve a remote's integration without a
47
+ * host round-trip.
48
+ */
49
+ getByRemote(remote) {
50
+ return this.getIntegrationService().getByRemote(remote);
51
+ }
52
+ /** Resolves the per-integration `ignoreSSLErrors` flag via the owning service (host-config-backed). */
53
+ ignoreSSLErrors(integration) {
54
+ return this.getIntegrationService().ignoreSSLErrors(integration);
55
+ }
56
+ /** The package-built per-provider API clients, via the owning service (built once + memoized there). */
57
+ get apis() {
58
+ return this.getIntegrationService().apis;
59
+ }
60
+ async get(providerId) {
61
+ return this.ensureProvider(providerId);
62
+ }
63
+ async reset() {
64
+ // TODO: This really isn't ideal, since it will only work for "cloud" providers as we won't have any more specific descriptors
65
+ await Promise.allSettled(supportedIntegrationIds.map(async (providerId) => (await this.ensureProvider(providerId)).deleteAllSessions()));
66
+ }
67
+ supports(providerId) {
68
+ // Linear and Trello are cloud-backed issue integrations (same as Jira): `ensureProvider` registers a
69
+ // cloud auth provider for them, so a disconnect must offer to sign out of the cloud token too —
70
+ // otherwise the backend token and configured connection survive the disable.
71
+ switch (providerId) {
72
+ case GitCloudHostIntegrationId.AzureDevOps:
73
+ case GitSelfManagedHostIntegrationId.AzureDevOpsServer:
74
+ case GitCloudHostIntegrationId.Bitbucket:
75
+ case GitCloudHostIntegrationId.GitLab:
76
+ case IssuesCloudHostIntegrationId.Jira:
77
+ case IssuesCloudHostIntegrationId.Linear:
78
+ case IssuesCloudHostIntegrationId.Trello:
79
+ case GitCloudHostIntegrationId.GitHub:
80
+ return true;
81
+ default:
82
+ return false;
83
+ }
84
+ }
85
+ async ensureProvider(providerId) {
86
+ let provider = this.providers.get(providerId);
87
+ if (provider != null)
88
+ return provider;
89
+ // Optional consumer override for custom auth (e.g. a manual-token provider). GitLens omits it —
90
+ // the package constructs its own cloud providers below (so GitLens's cloud auth needs no host hook).
91
+ const hostProvider = await this.ctx.hooks?.createAuthenticationProvider?.({
92
+ id: providerId,
93
+ });
94
+ if (hostProvider != null) {
95
+ this.providers.set(providerId, hostProvider);
96
+ return hostProvider;
97
+ }
98
+ // Every cloud integration shares one provider, parameterized by id (cloud-only).
99
+ switch (providerId) {
100
+ case GitCloudHostIntegrationId.GitHub:
101
+ case GitSelfManagedHostIntegrationId.CloudGitHubEnterprise:
102
+ case GitCloudHostIntegrationId.GitLab:
103
+ case GitSelfManagedHostIntegrationId.CloudGitLabSelfHosted:
104
+ case GitCloudHostIntegrationId.AzureDevOps:
105
+ case GitSelfManagedHostIntegrationId.AzureDevOpsServer:
106
+ case GitCloudHostIntegrationId.Bitbucket:
107
+ case GitSelfManagedHostIntegrationId.BitbucketServer:
108
+ case IssuesCloudHostIntegrationId.Jira:
109
+ case IssuesCloudHostIntegrationId.Linear:
110
+ case IssuesCloudHostIntegrationId.Trello:
111
+ provider = new CloudIntegrationAuthenticationProvider(this, this.configuredIntegrationService, providerId);
112
+ break;
113
+ default:
114
+ throw new Error(`No authentication provider registered for integration '${String(providerId)}'`);
115
+ }
116
+ this.providers.set(providerId, provider);
117
+ return provider;
118
+ }
119
+ }
120
+ __decorate([
121
+ debug()
122
+ ], IntegrationAuthenticationService.prototype, "reset", null);
123
+ __decorate([
124
+ gate()
125
+ ], IntegrationAuthenticationService.prototype, "ensureProvider", null);
126
+ //# sourceMappingURL=integrationAuthenticationService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrationAuthenticationService.js","sourceRoot":"","sources":["../../../../src/plus/integrations/authentication/integrationAuthenticationService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { IntegrationIds } from '../constants.js';
2
+ import type { IntegrationAuthenticationProvider } from './integrationAuthenticationProvider.js';
3
+ export interface ManualTokenAuthProviderOptions {
4
+ readonly id: IntegrationIds;
5
+ readonly token: string;
6
+ readonly account: {
7
+ readonly id: string;
8
+ readonly label: string;
9
+ };
10
+ readonly scopes?: readonly string[];
11
+ readonly domain?: string;
12
+ readonly cloud?: boolean;
13
+ readonly appKey?: string;
14
+ }
15
+ export declare function createManualTokenAuthProvider(options: ManualTokenAuthProviderOptions): IntegrationAuthenticationProvider;
16
+ //# sourceMappingURL=manualTokenProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manualTokenProvider.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/authentication/manualTokenProvider.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EACX,iCAAiC,EAEjC,MAAM,wCAAwC,CAAC;AAGhD,MAAM,WAAW,8BAA8B;IAC9C,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,6BAA6B,CAC5C,OAAO,EAAE,8BAA8B,GACrC,iCAAiC,CAkCnC"}
@@ -0,0 +1,53 @@
1
+ // Convenience for "manual token" auth — when a consumer already has an access
2
+ // token (CLI flag, env var, secret manager) and just wants the package to use
3
+ // it without an OAuth dance. Wire it into the manager via the
4
+ // `createAuthenticationProvider` hook:
5
+ //
6
+ // const manager = createIntegrationManager({
7
+ // ...runtime,
8
+ // hooks: {
9
+ // createAuthenticationProvider: async ({ id }) =>
10
+ // id === GitCloudHostIntegrationId.GitHub
11
+ // ? createManualTokenAuthProvider({
12
+ // id: id,
13
+ // token: process.env.GITHUB_TOKEN!,
14
+ // account: { id: 'me', label: 'CLI Token' },
15
+ // })
16
+ // : undefined,
17
+ // },
18
+ // });
19
+ //
20
+ // The provider is intentionally minimal — sessions are non-cancellable, never
21
+ // expire, and persist for the lifetime of the manager. For OAuth flows or
22
+ // refreshable tokens, implement `IntegrationAuthenticationProvider` yourself.
23
+ import { Emitter } from '../../../utils/event.js';
24
+ export function createManualTokenAuthProvider(options) {
25
+ const onDidChange = new Emitter();
26
+ const session = {
27
+ id: `manual:${options.id}`,
28
+ accessToken: options.token,
29
+ account: options.account,
30
+ scopes: options.scopes ?? [],
31
+ cloud: options.cloud ?? true,
32
+ type: undefined,
33
+ domain: options.domain ?? '',
34
+ appKey: options.appKey,
35
+ };
36
+ return {
37
+ get onDidChange() {
38
+ return onDidChange.event;
39
+ },
40
+ getSession: (descriptor, options) =>
41
+ // A manual token represents only the implicit primary connection. It cannot prove that an
42
+ // arbitrary connection selector owns the token, so fail closed instead of leaking it across
43
+ // accounts. Empty legacy selectors still resolve as primary.
44
+ //
45
+ // It also can't be refreshed; on a forced new session, return undefined rather than handing
46
+ // back the same likely-rejected token and looping a reauthenticate-on-failure flow.
47
+ Promise.resolve(options?.forceNewSession || (descriptor.connectionId?.length ?? 0) > 0 ? undefined : session),
48
+ deleteSession: () => Promise.resolve(),
49
+ deleteAllSessions: () => Promise.resolve(),
50
+ dispose: () => onDidChange.dispose(),
51
+ };
52
+ }
53
+ //# sourceMappingURL=manualTokenProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manualTokenProvider.js","sourceRoot":"","sources":["../../../../src/plus/integrations/authentication/manualTokenProvider.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8EAA8E;AAC9E,8DAA8D;AAC9D,uCAAuC;AACvC,EAAE;AACF,+CAA+C;AAC/C,oBAAoB;AACpB,iBAAiB;AACjB,4DAA4D;AAC5D,wDAAwD;AACxD,sDAAsD;AACtD,kCAAkC;AAClC,4DAA4D;AAC5D,qEAAqE;AACrE,yBAAyB;AACzB,iCAAiC;AACjC,WAAW;AACX,QAAQ;AACR,EAAE;AACF,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAG9E,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAkBlD,MAAM,UAAU,6BAA6B,CAC5C,OAAuC;IAEvC,MAAM,WAAW,GAAG,IAAI,OAAO,EAAQ,CAAC;IACxC,MAAM,OAAO,GAAkC;QAC9C,EAAE,EAAE,UAAU,OAAO,CAAC,EAAE,EAAE;QAC1B,WAAW,EAAE,OAAO,CAAC,KAAK;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;QAC5B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;QAC5B,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;QAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;KACtB,CAAC;IAEF,OAAO;QACN,IAAI,WAAW;YACd,OAAO,WAAW,CAAC,KAAK,CAAC;QAC1B,CAAC;QACD,UAAU,EAAE,CACX,UAAsD,EACtD,OAAwE,EACvE,EAAE;QACH,0FAA0F;QAC1F,4FAA4F;QAC5F,6DAA6D;QAC7D,EAAE;QACF,4FAA4F;QAC5F,oFAAoF;QACpF,OAAO,CAAC,OAAO,CACd,OAAO,EAAE,eAAe,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAC5F;QACF,aAAa,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE;QACtC,iBAAiB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE;QAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE;KACpC,CAAC;AACH,CAAC"}