@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,114 @@
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 { IntegrationServiceContext } from '../context.js';
5
+ import type { IntegrationAuthenticationSessionDescriptor } from './integrationAuthenticationProvider.js';
6
+ import type { CloudIntegrationAuthType, ConfiguredIntegrationDescriptor, ProviderAuthenticationSession } from './models.js';
7
+ interface StoredSession {
8
+ id: string;
9
+ accessToken: string;
10
+ account?: {
11
+ label?: string;
12
+ displayName?: string;
13
+ id: string;
14
+ };
15
+ scopes: string[];
16
+ cloud?: boolean;
17
+ type: CloudIntegrationAuthType | undefined;
18
+ expiresAt?: string;
19
+ domain?: string;
20
+ protocol?: string;
21
+ /** The provider app key paired with the token for providers whose client needs one (e.g. Trello). */
22
+ appKey?: string;
23
+ }
24
+ export interface ConfiguredIntegrationsChangeEvent {
25
+ readonly added: readonly IntegrationIds[];
26
+ readonly removed: readonly IntegrationIds[];
27
+ }
28
+ export declare class ConfiguredIntegrationService implements Disposable {
29
+ private readonly ctx;
30
+ private readonly _onDidChange;
31
+ get onDidChange(): Event<ConfiguredIntegrationsChangeEvent>;
32
+ constructor(ctx: IntegrationServiceContext);
33
+ dispose(): void;
34
+ private _configured?;
35
+ private get configured();
36
+ getConfigured(id?: IntegrationIds, options?: {
37
+ cloud?: boolean;
38
+ domain?: string;
39
+ }): ConfiguredIntegrationDescriptor[];
40
+ private storeConfigured;
41
+ private addOrUpdateConfigured;
42
+ private removeConfigured;
43
+ storeSession(id: IntegrationIds, session: ProviderAuthenticationSession): Promise<void>;
44
+ getStoredSession(id: IntegrationIds, descriptor: IntegrationAuthenticationSessionDescriptor): Promise<ProviderAuthenticationSession | undefined>;
45
+ deleteStoredSessions(id: IntegrationIds, descriptor: IntegrationAuthenticationSessionDescriptor, cloud?: boolean, options?: {
46
+ preserveConfigured?: boolean;
47
+ }): Promise<void>;
48
+ deleteAllStoredSessions(id: IntegrationIds, cloud?: boolean, domain?: string): Promise<void>;
49
+ /**
50
+ * Reclaims all stored configuration + secrets for the given (typically retired) integration ids.
51
+ * Used to clean up state left behind when an id is removed from the model — e.g. the local
52
+ * self-managed `github-enterprise`/`gitlab-self-hosted` ids dropped when integrations went cloud-only.
53
+ * Domains are read from the stored config (secrets are keyed by domain); ids with no stored config
54
+ * are a no-op.
55
+ */
56
+ purgeStoredConfiguration(ids: readonly string[]): Promise<void>;
57
+ deleteSecrets(id: IntegrationIds, connectionId: string, cloud?: boolean, options?: {
58
+ preserveConfigured?: boolean;
59
+ }): Promise<void>;
60
+ deleteAllSecrets(id: IntegrationIds, cloud?: boolean, domain?: string): Promise<void>;
61
+ writeSecret(id: IntegrationIds, session: ProviderAuthenticationSession | StoredSession): Promise<void>;
62
+ readSecret(id: IntegrationIds, sessionId: string, cloud?: boolean): Promise<StoredSession | undefined>;
63
+ private getSecretKey;
64
+ private getLocalSecretKey;
65
+ private getCloudSecretKey;
66
+ private getPrimaryScope;
67
+ private isInPrimaryScope;
68
+ /**
69
+ * Resolves the connection id used as the secret-key session id for an auth descriptor.
70
+ * - If the descriptor targets a specific connection (`connectionId`), that wins.
71
+ * - Otherwise returns the primary connection's id for the provider (matching the descriptor's domain
72
+ * for self-managed hosts; any connection for cloud hosts, where the stored domain is undefined).
73
+ * - Falls back to the descriptor domain when nothing is configured yet, preserving legacy
74
+ * (pre-multi-account) reads with zero secret migration.
75
+ */
76
+ resolveConnectionId(id: IntegrationIds, descriptor: IntegrationAuthenticationSessionDescriptor): string;
77
+ /**
78
+ * Returns the id of the configured connection an unscoped descriptor resolves to (the primary for the
79
+ * descriptor's domain, matching {@link resolveConnectionId}'s selection), or `undefined` when nothing is
80
+ * configured for it. Unlike {@link resolveConnectionId} this only returns a genuine per-connection cloud
81
+ * token id (never a local/PAT or domain-derived legacy id), so callers can safely use it to scope a cloud
82
+ * token fetch to one host of a multi-host self-managed provider, or fall through to the provider-global
83
+ * primary endpoint on `undefined`.
84
+ */
85
+ getConfiguredConnectionId(id: IntegrationIds, domain: string | undefined, cloud?: boolean): string | undefined;
86
+ /**
87
+ * Selects configured descriptors for a provider matching `domain`, further narrowed to the `cloud`
88
+ * variant when specified. A connection id can have both a local (PAT) and cloud descriptor whose ids
89
+ * differ (e.g. a legacy local descriptor keyed by domain alongside a real cloud token id); scoping by
90
+ * `cloud` keeps a cloud-scoped read/delete from resolving the local id (and vice versa). Falls back to
91
+ * the domain-only set when no variant matches, so legacy single-variant resolution is unchanged.
92
+ */
93
+ private scopeConnectionCandidates;
94
+ /**
95
+ * Marks the given connection as the primary/default for the provider and clears the flag on its
96
+ * siblings. Persists immediately instead of relying on a session re-store to carry the primary flag.
97
+ */
98
+ setPrimaryConnection(id: IntegrationIds, connectionId: string): Promise<void>;
99
+ /**
100
+ * Removes a single connection (its secret + configured descriptor). If it was the primary and other
101
+ * connections remain, a secondary is promoted (see {@link removeConfigured}). Unlike
102
+ * {@link deleteAllStoredSessions}, this only affects the targeted connection. Pass `cloud` to scope
103
+ * the removal to the cloud/local variant when a local PAT and a cloud session share a connection id.
104
+ */
105
+ deleteConnection(id: IntegrationIds, connectionId: string, cloud?: boolean): Promise<void>;
106
+ private _addedIds;
107
+ private _removedIds;
108
+ private _fireChangeDebounced?;
109
+ private normalizeConfiguredDomain;
110
+ private domainsMatch;
111
+ private fireChange;
112
+ }
113
+ export {};
114
+ //# sourceMappingURL=configuredIntegrationService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configuredIntegrationService.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/authentication/configuredIntegrationService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,497 @@
1
+ import { debounce } from '../../../utils/debounce.js';
2
+ import { Emitter } from '../../../utils/event.js';
3
+ import { flatten } from '../../../utils/iterable.js';
4
+ import { providersMetadata } from '../providers/models.js';
5
+ import { areDomainsOnSameHost, hostFromDomain } from '../utils/domain.utils.js';
6
+ import { isGitSelfManagedHostIntegrationId } from '../utils/integration.utils.js';
7
+ export class ConfiguredIntegrationService {
8
+ ctx;
9
+ _onDidChange = new Emitter();
10
+ get onDidChange() {
11
+ return this._onDidChange.event;
12
+ }
13
+ constructor(ctx) {
14
+ this.ctx = ctx;
15
+ }
16
+ dispose() {
17
+ this._onDidChange.dispose();
18
+ }
19
+ _configured;
20
+ get configured() {
21
+ if (this._configured == null) {
22
+ this._configured = new Map();
23
+ const storedConfigured = this.ctx.storage.get('integrations:configured');
24
+ for (const [id, configured] of Object.entries(storedConfigured ?? {})) {
25
+ if (configured == null)
26
+ continue;
27
+ const descriptors = configured.map(d => ({
28
+ ...d,
29
+ domain: this.normalizeConfiguredDomain(id, d.domain),
30
+ // Backfill a stable connection id for pre-multi-account stored data: the domain for
31
+ // self-managed hosts, or the provider's canonical domain for cloud (which is the legacy
32
+ // secret-key session id), so existing secrets keep resolving with zero migration. Fall back
33
+ // to the integration id (never empty) when no domain is known — self-managed providers carry
34
+ // `domain: ''` in metadata, and an empty id would collide across connections and produce
35
+ // ambiguous secret keys (`...|`).
36
+ id: d.id || d.domain || providersMetadata[id]?.domain || id,
37
+ expiresAt: d.expiresAt ? new Date(d.expiresAt) : undefined,
38
+ }));
39
+ this._configured.set(id, descriptors);
40
+ }
41
+ }
42
+ return this._configured;
43
+ }
44
+ // Synchronous: reads the in-memory configured map (lazily hydrated from storage). No async work —
45
+ // the old async variant only existed to weave in the built-in VS Code GitHub session, which is gone.
46
+ getConfigured(id, options) {
47
+ const descriptors = [];
48
+ const configured = id != null
49
+ ? this.configured.get(id)
50
+ : [...flatten(this.configured.values())];
51
+ if (!configured?.length)
52
+ return descriptors;
53
+ if (options?.domain != null || options?.cloud != null) {
54
+ for (const descriptor of configured) {
55
+ if ((options?.domain != null &&
56
+ !this.domainsMatch(id ?? descriptor.integrationId, descriptor.domain, options.domain)) ||
57
+ (options?.cloud === true && !descriptor.cloud) ||
58
+ (options?.cloud === false && descriptor.cloud)) {
59
+ continue;
60
+ }
61
+ descriptors.push(descriptor);
62
+ }
63
+ }
64
+ else {
65
+ descriptors.push(...configured);
66
+ }
67
+ return descriptors;
68
+ }
69
+ async storeConfigured() {
70
+ // We need to convert the map to a record to store
71
+ const configured = {};
72
+ for (const [id, descriptors] of this.configured) {
73
+ configured[id] = descriptors.map(d => ({
74
+ ...d,
75
+ expiresAt: d.expiresAt
76
+ ? d.expiresAt instanceof Date
77
+ ? d.expiresAt.toISOString()
78
+ : d.expiresAt
79
+ : undefined,
80
+ }));
81
+ }
82
+ await this.ctx.storage.store('integrations:configured', configured);
83
+ }
84
+ async addOrUpdateConfigured(descriptor) {
85
+ descriptor = {
86
+ ...descriptor,
87
+ domain: this.normalizeConfiguredDomain(descriptor.integrationId, descriptor.domain),
88
+ };
89
+ const descriptors = this.configured.get(descriptor.integrationId) ?? [];
90
+ // Key connections by their stable id (+ cloud, to preserve legacy local/cloud coexistence) so
91
+ // multiple accounts on the same provider+domain no longer overwrite each other.
92
+ const existing = descriptors.find(d => d.id === descriptor.id && d.cloud === descriptor.cloud);
93
+ // The first connection for a provider/domain is primary by default; an explicit flag (or the
94
+ // existing value) always wins. Self-managed providers can span multiple hosts under the same
95
+ // integration id, so each host needs its own primary.
96
+ const primaryScope = this.getPrimaryScope(descriptor.integrationId, descriptors, descriptor.domain);
97
+ const primary = descriptor.primary ?? existing?.primary ?? !primaryScope.some(d => d.primary);
98
+ // Preserve a previously-resolved type/accountName when the incoming write doesn't carry them (e.g.
99
+ // the model re-stores the primary session with an empty account, after reconcile enriched it).
100
+ const type = descriptor.type ?? existing?.type;
101
+ const accountName = descriptor.accountName ?? existing?.accountName;
102
+ const normalized = {
103
+ ...descriptor,
104
+ primary: primary,
105
+ type: type,
106
+ accountName: accountName,
107
+ };
108
+ let changed;
109
+ if (existing != null) {
110
+ if (existing.domain === normalized.domain &&
111
+ existing.expiresAt === normalized.expiresAt &&
112
+ existing.scopes === normalized.scopes &&
113
+ (existing.primary ?? false) === (normalized.primary ?? false) &&
114
+ existing.type === normalized.type &&
115
+ existing.accountName === normalized.accountName) {
116
+ return;
117
+ }
118
+ // Only fire the change event on domain/scopes/primary/type/accountName changes (ignore expiresAt churn)
119
+ changed =
120
+ existing.domain !== normalized.domain ||
121
+ existing.scopes !== normalized.scopes ||
122
+ (existing.primary ?? false) !== (normalized.primary ?? false) ||
123
+ existing.type !== normalized.type ||
124
+ existing.accountName !== normalized.accountName;
125
+ // remove the existing descriptor from the array
126
+ descriptors.splice(descriptors.indexOf(existing), 1);
127
+ }
128
+ else {
129
+ changed = true;
130
+ }
131
+ descriptors.push(normalized);
132
+ this.configured.set(descriptor.integrationId, descriptors);
133
+ if (changed) {
134
+ this.fireChange(descriptor.integrationId);
135
+ }
136
+ await this.storeConfigured();
137
+ }
138
+ async removeConfigured(id, options) {
139
+ const existing = this.configured.get(id);
140
+ if (existing == null || existing.length === 0)
141
+ return;
142
+ const removedPrimaryDomains = new Set();
143
+ const descriptors = [];
144
+ for (const d of existing) {
145
+ if (d.id === options.connectionId &&
146
+ (options?.cloud == null ||
147
+ (options?.cloud === true && d.cloud === true) ||
148
+ (options?.cloud === false && d.cloud === false))) {
149
+ if (d.primary) {
150
+ removedPrimaryDomains.add(d.domain);
151
+ }
152
+ continue;
153
+ }
154
+ descriptors.push(d);
155
+ }
156
+ if (descriptors.length === existing.length)
157
+ return; // nothing matched
158
+ // Promote a secondary to primary when the removed connection was the primary and others remain
159
+ // in the same primary scope, so the provider/host stays in a well-defined connected state.
160
+ for (const domain of removedPrimaryDomains) {
161
+ if (descriptors.some(d => this.isInPrimaryScope(id, d, domain) && d.primary))
162
+ continue;
163
+ const index = descriptors.findIndex(d => this.isInPrimaryScope(id, d, domain));
164
+ if (index !== -1) {
165
+ descriptors[index] = { ...descriptors[index], primary: true };
166
+ }
167
+ }
168
+ this.configured.set(id, descriptors);
169
+ this.fireChange(undefined, id);
170
+ await this.storeConfigured();
171
+ }
172
+ async storeSession(id, session) {
173
+ await this.writeSecret(id, session);
174
+ }
175
+ async getStoredSession(id, descriptor) {
176
+ const sessionId = this.resolveConnectionId(id, descriptor);
177
+ let session = descriptor.cloud === true ? undefined : await this.readSecret(id, sessionId, false);
178
+ let cloudIfMissing = false;
179
+ if (session != null) {
180
+ // Check the `expiresAt` field
181
+ // If it has an expiresAt property and the key is the old type, then it's a cloud session,
182
+ // so delete it from the local key and
183
+ // store with the "cloud" type key, and then use that one.
184
+ // Otherwise it's a local session under the local key, so just return it.
185
+ if (session.expiresAt != null) {
186
+ cloudIfMissing = true;
187
+ await Promise.allSettled([this.deleteSecrets(id, session.id), this.writeSecret(id, session)]);
188
+ }
189
+ }
190
+ // If no local session we try to restore a session with the cloud key
191
+ if (session == null && descriptor.cloud !== false) {
192
+ cloudIfMissing = true;
193
+ session = await this.readSecret(id, sessionId, true);
194
+ }
195
+ return convertStoredSessionToSession(session, descriptor, cloudIfMissing);
196
+ }
197
+ async deleteStoredSessions(id, descriptor, cloud, options) {
198
+ await this.deleteSecrets(id, this.resolveConnectionId(id, descriptor), cloud, options);
199
+ }
200
+ async deleteAllStoredSessions(id, cloud, domain) {
201
+ await this.deleteAllSecrets(id, cloud, domain);
202
+ }
203
+ /**
204
+ * Reclaims all stored configuration + secrets for the given (typically retired) integration ids.
205
+ * Used to clean up state left behind when an id is removed from the model — e.g. the local
206
+ * self-managed `github-enterprise`/`gitlab-self-hosted` ids dropped when integrations went cloud-only.
207
+ * Domains are read from the stored config (secrets are keyed by domain); ids with no stored config
208
+ * are a no-op.
209
+ */
210
+ async purgeStoredConfiguration(ids) {
211
+ const stored = this.ctx.storage.get('integrations:configured');
212
+ if (stored == null)
213
+ return;
214
+ let changed = false;
215
+ for (const id of ids) {
216
+ if (!(id in stored))
217
+ continue;
218
+ for (const descriptor of stored[id] ?? []) {
219
+ // Mirror the hydration backfill so the secret keys we delete match what was written: fall back
220
+ // through domain, the provider's canonical domain, then the integration id (never empty). A
221
+ // legacy cloud descriptor stored neither id nor domain, so an empty connection id here would
222
+ // miss the canonical-domain secret (e.g. `integration.auth.cloud:github|github.com`) and orphan it.
223
+ const connectionId = descriptor.id || descriptor.domain || providersMetadata[id]?.domain || id;
224
+ await this.ctx.storage.deleteSecret(this.getLocalSecretKey(id, connectionId));
225
+ await this.ctx.storage.deleteSecret(this.getCloudSecretKey(id, connectionId));
226
+ if (descriptor.domain) {
227
+ await this.ctx.storage.deleteWorkspace(`connected:${id}:${descriptor.domain}`);
228
+ }
229
+ }
230
+ changed = true;
231
+ }
232
+ if (!changed)
233
+ return;
234
+ const remaining = Object.fromEntries(Object.entries(stored).filter(([key]) => !ids.includes(key)));
235
+ await this.ctx.storage.store('integrations:configured', remaining);
236
+ }
237
+ async deleteSecrets(id, connectionId, cloud, options) {
238
+ if (cloud == null || cloud === false) {
239
+ await this.ctx.storage.deleteSecret(this.getLocalSecretKey(id, connectionId));
240
+ }
241
+ if (cloud == null || cloud === true) {
242
+ await this.ctx.storage.deleteSecret(this.getCloudSecretKey(id, connectionId));
243
+ }
244
+ if (options?.preserveConfigured)
245
+ return;
246
+ await this.removeConfigured(id, { connectionId: connectionId, cloud: cloud });
247
+ }
248
+ async deleteAllSecrets(id, cloud, domain) {
249
+ // Delete every connection's secret (multi-account): secrets are keyed per connection id, so a
250
+ // single canonical-domain delete would orphan secondary tokens. When a domain is given (self-managed
251
+ // disconnect of one host), scope to that host so other hosts under the same provider id survive.
252
+ const descriptors = this.configured.get(id);
253
+ const connectionIds = [
254
+ ...new Set((domain != null ? descriptors?.filter(c => this.domainsMatch(id, c.domain, domain)) : descriptors)?.map(c => c.id) ?? []),
255
+ ];
256
+ if (connectionIds.length) {
257
+ for (const connectionId of connectionIds) {
258
+ await this.deleteSecrets(id, connectionId, cloud);
259
+ }
260
+ return;
261
+ }
262
+ // A domain-scoped clear that matched nothing means this host has no stored connections, so it must be
263
+ // a no-op. The canonical-domain fallback below would target a bogus key (self-managed canonical domain
264
+ // is empty), so skip it.
265
+ if (domain != null)
266
+ return;
267
+ // No configured connections (e.g. an orphaned secret with no descriptor): fall back to the
268
+ // provider's canonical domain, which is the legacy session id for cloud providers. Mirror the
269
+ // hydration backfill's `|| id` guard so a self-managed provider (empty canonical domain) doesn't
270
+ // target an ambiguous empty connection id.
271
+ await this.deleteSecrets(id, providersMetadata[id]?.domain || id, cloud);
272
+ }
273
+ async writeSecret(id, session) {
274
+ await this.ctx.storage.storeSecret(this.getSecretKey(id, session.id, session.cloud ?? false), JSON.stringify(session));
275
+ await this.addOrUpdateConfigured({
276
+ id: session.id,
277
+ integrationId: id,
278
+ domain: isGitSelfManagedHostIntegrationId(id) ? session.domain : undefined,
279
+ expiresAt: session.expiresAt,
280
+ scopes: session.scopes.join(','),
281
+ cloud: session.cloud ?? false,
282
+ type: session.type,
283
+ accountName: session.account?.label || undefined,
284
+ });
285
+ }
286
+ async readSecret(id, sessionId, cloud = false) {
287
+ let storedSession;
288
+ try {
289
+ const sessionJSON = await this.ctx.storage.getSecret(this.getSecretKey(id, sessionId, cloud));
290
+ if (sessionJSON) {
291
+ storedSession = JSON.parse(sessionJSON);
292
+ if (storedSession != null) {
293
+ const configured = this.configured.get(id);
294
+ const connectionId = storedSession.id ?? sessionId;
295
+ const sessionCloud = storedSession.cloud ?? cloud;
296
+ const domain = isGitSelfManagedHostIntegrationId(id)
297
+ ? (storedSession.domain ?? storedSession.id)
298
+ : undefined;
299
+ if (configured == null ||
300
+ configured.length === 0 ||
301
+ !configured.some(c => c.id === connectionId && c.integrationId === id && c.cloud === sessionCloud)) {
302
+ await this.addOrUpdateConfigured({
303
+ id: connectionId,
304
+ integrationId: id,
305
+ domain: domain,
306
+ expiresAt: storedSession.expiresAt,
307
+ scopes: storedSession.scopes.join(','),
308
+ cloud: sessionCloud,
309
+ type: storedSession.type,
310
+ accountName: storedSession.account?.label || undefined,
311
+ });
312
+ }
313
+ }
314
+ }
315
+ }
316
+ catch (_ex) {
317
+ try {
318
+ await this.deleteSecrets(id, sessionId, cloud);
319
+ }
320
+ catch { }
321
+ }
322
+ return storedSession;
323
+ }
324
+ getSecretKey(id, sessionId, cloud = false) {
325
+ return cloud ? this.getCloudSecretKey(id, sessionId) : this.getLocalSecretKey(id, sessionId);
326
+ }
327
+ getLocalSecretKey(id, sessionId) {
328
+ return `integration.auth:${id}|${sessionId}`;
329
+ }
330
+ getCloudSecretKey(id, sessionId) {
331
+ return `integration.auth.cloud:${id}|${sessionId}`;
332
+ }
333
+ getPrimaryScope(id, descriptors, domain) {
334
+ return isGitSelfManagedHostIntegrationId(id)
335
+ ? descriptors.filter(d => this.isInPrimaryScope(id, d, domain))
336
+ : descriptors;
337
+ }
338
+ isInPrimaryScope(id, descriptor, domain) {
339
+ return !isGitSelfManagedHostIntegrationId(id) || this.domainsMatch(id, descriptor.domain, domain);
340
+ }
341
+ /**
342
+ * Resolves the connection id used as the secret-key session id for an auth descriptor.
343
+ * - If the descriptor targets a specific connection (`connectionId`), that wins.
344
+ * - Otherwise returns the primary connection's id for the provider (matching the descriptor's domain
345
+ * for self-managed hosts; any connection for cloud hosts, where the stored domain is undefined).
346
+ * - Falls back to the descriptor domain when nothing is configured yet, preserving legacy
347
+ * (pre-multi-account) reads with zero secret migration.
348
+ */
349
+ resolveConnectionId(id, descriptor) {
350
+ // An empty connectionId is not a real target — treat it as "no target" so it resolves the primary
351
+ // rather than keying a secret under an empty id.
352
+ if (descriptor.connectionId)
353
+ return descriptor.connectionId;
354
+ const domain = isGitSelfManagedHostIntegrationId(id) ? descriptor.domain : undefined;
355
+ const candidates = this.scopeConnectionCandidates(id, domain, descriptor.cloud);
356
+ return (candidates?.find(c => c.primary) ?? candidates?.[0])?.id ?? descriptor.domain;
357
+ }
358
+ /**
359
+ * Returns the id of the configured connection an unscoped descriptor resolves to (the primary for the
360
+ * descriptor's domain, matching {@link resolveConnectionId}'s selection), or `undefined` when nothing is
361
+ * configured for it. Unlike {@link resolveConnectionId} this only returns a genuine per-connection cloud
362
+ * token id (never a local/PAT or domain-derived legacy id), so callers can safely use it to scope a cloud
363
+ * token fetch to one host of a multi-host self-managed provider, or fall through to the provider-global
364
+ * primary endpoint on `undefined`.
365
+ */
366
+ getConfiguredConnectionId(id, domain, cloud) {
367
+ const scoped = isGitSelfManagedHostIntegrationId(id) ? domain : undefined;
368
+ const candidates = this.scopeConnectionCandidates(id, scoped, cloud);
369
+ const connection = candidates?.find(c => c.primary) ?? candidates?.[0];
370
+ if (connection == null)
371
+ return undefined;
372
+ // Only return a real per-connection cloud token id. Reject a local (PAT) descriptor (surfaced by
373
+ // scopeConnectionCandidates' non-cloud fallback) and a domain-derived legacy id (the descriptor's own
374
+ // domain or the provider's canonical domain — see ConfiguredIntegrationDescriptor.id), either of which
375
+ // would target `v1/provider-tokens/tokens/{domain}` (rejected as a non-uuid). Callers then fall through
376
+ // to the provider-scoped primary endpoint.
377
+ if (!connection.cloud)
378
+ return undefined;
379
+ const canonicalDomain = providersMetadata[id]?.domain;
380
+ if (connection.id === connection.domain || (canonicalDomain && connection.id === canonicalDomain)) {
381
+ return undefined;
382
+ }
383
+ return connection.id;
384
+ }
385
+ /**
386
+ * Selects configured descriptors for a provider matching `domain`, further narrowed to the `cloud`
387
+ * variant when specified. A connection id can have both a local (PAT) and cloud descriptor whose ids
388
+ * differ (e.g. a legacy local descriptor keyed by domain alongside a real cloud token id); scoping by
389
+ * `cloud` keeps a cloud-scoped read/delete from resolving the local id (and vice versa). Falls back to
390
+ * the domain-only set when no variant matches, so legacy single-variant resolution is unchanged.
391
+ */
392
+ scopeConnectionCandidates(id, domain, cloud) {
393
+ const candidates = this.configured.get(id)?.filter(c => this.domainsMatch(id, c.domain, domain));
394
+ if (cloud == null || candidates == null)
395
+ return candidates;
396
+ const scoped = candidates.filter(c => c.cloud === cloud);
397
+ return scoped.length ? scoped : candidates;
398
+ }
399
+ /**
400
+ * Marks the given connection as the primary/default for the provider and clears the flag on its
401
+ * siblings. Persists immediately instead of relying on a session re-store to carry the primary flag.
402
+ */
403
+ async setPrimaryConnection(id, connectionId) {
404
+ const descriptors = this.configured.get(id);
405
+ if (descriptors == null || descriptors.length === 0)
406
+ return;
407
+ if (!descriptors.some(d => d.id === connectionId))
408
+ return;
409
+ const target = descriptors.find(d => d.id === connectionId && d.cloud) ?? descriptors.find(d => d.id === connectionId);
410
+ if (target == null)
411
+ return;
412
+ const domain = isGitSelfManagedHostIntegrationId(id) ? target.domain : undefined;
413
+ // A connection id can have both a local (PAT) and cloud descriptor. Mark the primary on a single
414
+ // canonical variant (prefer cloud, since multi-account primaries are cloud-driven) within the
415
+ // provider/host scope, so other self-managed hosts keep their own default connection.
416
+ const primaryIsCloud = descriptors.some(d => d.id === connectionId && d.cloud && this.isInPrimaryScope(id, d, domain));
417
+ let changed = false;
418
+ const updated = descriptors.map(d => {
419
+ if (!this.isInPrimaryScope(id, d, domain))
420
+ return d;
421
+ const primary = d.id === connectionId && (d.cloud ?? false) === primaryIsCloud;
422
+ if ((d.primary ?? false) === primary)
423
+ return d;
424
+ changed = true;
425
+ return { ...d, primary: primary };
426
+ });
427
+ if (!changed)
428
+ return;
429
+ this.configured.set(id, updated);
430
+ this.fireChange(id);
431
+ await this.storeConfigured();
432
+ }
433
+ /**
434
+ * Removes a single connection (its secret + configured descriptor). If it was the primary and other
435
+ * connections remain, a secondary is promoted (see {@link removeConfigured}). Unlike
436
+ * {@link deleteAllStoredSessions}, this only affects the targeted connection. Pass `cloud` to scope
437
+ * the removal to the cloud/local variant when a local PAT and a cloud session share a connection id.
438
+ */
439
+ async deleteConnection(id, connectionId, cloud) {
440
+ await this.deleteSecrets(id, connectionId, cloud);
441
+ }
442
+ _addedIds = new Set();
443
+ _removedIds = new Set();
444
+ _fireChangeDebounced;
445
+ normalizeConfiguredDomain(id, domain) {
446
+ if (!isGitSelfManagedHostIntegrationId(id))
447
+ return domain;
448
+ return hostFromDomain(domain) ?? domain;
449
+ }
450
+ domainsMatch(id, first, second) {
451
+ if (first === second)
452
+ return true;
453
+ if (!isGitSelfManagedHostIntegrationId(id))
454
+ return false;
455
+ if (first == null || second == null)
456
+ return false;
457
+ return areDomainsOnSameHost(first, second);
458
+ }
459
+ fireChange(added, removed) {
460
+ this._fireChangeDebounced ??= debounce(() => {
461
+ const added = [...this._addedIds];
462
+ this._addedIds.clear();
463
+ const removed = [...this._removedIds];
464
+ this._removedIds.clear();
465
+ this._onDidChange.fire({ added: added, removed: removed });
466
+ }, 250);
467
+ if (added != null) {
468
+ this._addedIds.add(added);
469
+ }
470
+ if (removed != null) {
471
+ this._removedIds.add(removed);
472
+ }
473
+ this._fireChangeDebounced();
474
+ }
475
+ }
476
+ function convertStoredSessionToSession(storedSession, descriptor, cloudIfMissing) {
477
+ if (storedSession == null)
478
+ return undefined;
479
+ return {
480
+ id: storedSession.id,
481
+ accessToken: storedSession.accessToken,
482
+ account: {
483
+ id: storedSession.account?.id ?? '',
484
+ label: storedSession.account?.label ?? '',
485
+ },
486
+ scopes: storedSession.scopes,
487
+ cloud: storedSession.cloud ?? cloudIfMissing,
488
+ expiresAt: storedSession.expiresAt ? new Date(storedSession.expiresAt) : undefined,
489
+ domain: storedSession.domain ?? descriptor.domain,
490
+ protocol: storedSession.protocol,
491
+ type: storedSession.type,
492
+ // Carried for providers whose client needs an app key alongside the token (e.g. Trello); without
493
+ // this a rehydrated session silently loses the key and every read no-ops.
494
+ appKey: storedSession.appKey,
495
+ };
496
+ }
497
+ //# sourceMappingURL=configuredIntegrationService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configuredIntegrationService.js","sourceRoot":"","sources":["../../../../src/plus/integrations/authentication/configuredIntegrationService.ts"],"names":[],"mappings":"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"}