@gitkraken/core-gitlens 0.4.0 → 0.4.101

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 (1051) hide show
  1. package/CHANGELOG.md +74 -1
  2. package/README.md +9 -2
  3. package/dist/git/cache.d.ts +29 -2
  4. package/dist/git/cache.d.ts.map +1 -1
  5. package/dist/git/cache.js +67 -7
  6. package/dist/git/cache.js.map +1 -1
  7. package/dist/git/context.d.ts.map +1 -1
  8. package/dist/git/errors.d.ts +31 -1
  9. package/dist/git/errors.d.ts.map +1 -1
  10. package/dist/git/errors.js +29 -0
  11. package/dist/git/errors.js.map +1 -1
  12. package/dist/git/models/author.d.ts.map +1 -1
  13. package/dist/git/models/author.js.map +1 -1
  14. package/dist/git/models/autolink.d.ts.map +1 -1
  15. package/dist/git/models/autolink.js.map +1 -1
  16. package/dist/git/models/blame.d.ts.map +1 -1
  17. package/dist/git/models/blame.js.map +1 -1
  18. package/dist/git/models/branch.d.ts.map +1 -1
  19. package/dist/git/models/branch.js.map +1 -1
  20. package/dist/git/models/commit.d.ts.map +1 -1
  21. package/dist/git/models/commit.js +1 -1
  22. package/dist/git/models/commit.js.map +1 -1
  23. package/dist/git/models/contributor.d.ts.map +1 -1
  24. package/dist/git/models/contributor.js.map +1 -1
  25. package/dist/git/models/defaultBranch.d.ts.map +1 -1
  26. package/dist/git/models/defaultBranch.js.map +1 -1
  27. package/dist/git/models/diff.d.ts.map +1 -1
  28. package/dist/git/models/diff.js.map +1 -1
  29. package/dist/git/models/file.d.ts.map +1 -1
  30. package/dist/git/models/file.js.map +1 -1
  31. package/dist/git/models/fileChange.d.ts.map +1 -1
  32. package/dist/git/models/fileChange.js.map +1 -1
  33. package/dist/git/models/fileStatus.d.ts +22 -22
  34. package/dist/git/models/fileStatus.d.ts.map +1 -1
  35. package/dist/git/models/fileStatus.js.map +1 -1
  36. package/dist/git/models/graph.d.ts +122 -1
  37. package/dist/git/models/graph.d.ts.map +1 -1
  38. package/dist/git/models/graph.js +4 -0
  39. package/dist/git/models/graph.js.map +1 -1
  40. package/dist/git/models/graphSearch.d.ts.map +1 -1
  41. package/dist/git/models/graphSearch.js.map +1 -1
  42. package/dist/git/models/graphSession.d.ts +177 -0
  43. package/dist/git/models/graphSession.d.ts.map +1 -0
  44. package/dist/git/models/graphSession.js +7 -0
  45. package/dist/git/models/graphSession.js.map +1 -0
  46. package/dist/git/models/issue.d.ts +12 -2
  47. package/dist/git/models/issue.d.ts.map +1 -1
  48. package/dist/git/models/issue.js +3 -1
  49. package/dist/git/models/issue.js.map +1 -1
  50. package/dist/git/models/issueOrPullRequest.d.ts.map +1 -1
  51. package/dist/git/models/issueOrPullRequest.js.map +1 -1
  52. package/dist/git/models/lineRange.d.ts.map +1 -1
  53. package/dist/git/models/lineRange.js.map +1 -1
  54. package/dist/git/models/log.d.ts.map +1 -1
  55. package/dist/git/models/log.js.map +1 -1
  56. package/dist/git/models/mergeConflicts.d.ts.map +1 -1
  57. package/dist/git/models/mergeConflicts.js.map +1 -1
  58. package/dist/git/models/patch.d.ts.map +1 -1
  59. package/dist/git/models/patch.js.map +1 -1
  60. package/dist/git/models/pausedOperationStatus.d.ts.map +1 -1
  61. package/dist/git/models/pausedOperationStatus.js.map +1 -1
  62. package/dist/git/models/pullRequest.d.ts +27 -2
  63. package/dist/git/models/pullRequest.d.ts.map +1 -1
  64. package/dist/git/models/pullRequest.js +7 -1
  65. package/dist/git/models/pullRequest.js.map +1 -1
  66. package/dist/git/models/rebase.d.ts.map +1 -1
  67. package/dist/git/models/rebase.js.map +1 -1
  68. package/dist/git/models/reference.d.ts.map +1 -1
  69. package/dist/git/models/reference.js.map +1 -1
  70. package/dist/git/models/reflog.d.ts.map +1 -1
  71. package/dist/git/models/reflog.js.map +1 -1
  72. package/dist/git/models/remote.d.ts.map +1 -1
  73. package/dist/git/models/remote.js.map +1 -1
  74. package/dist/git/models/remoteProvider.d.ts.map +1 -1
  75. package/dist/git/models/remoteProvider.js.map +1 -1
  76. package/dist/git/models/remoteResource.d.ts.map +1 -1
  77. package/dist/git/models/remoteResource.js.map +1 -1
  78. package/dist/git/models/repository.d.ts +20 -2
  79. package/dist/git/models/repository.d.ts.map +1 -1
  80. package/dist/git/models/repository.js +19 -0
  81. package/dist/git/models/repository.js.map +1 -1
  82. package/dist/git/models/repositoryChangeEvent.d.ts.map +1 -1
  83. package/dist/git/models/repositoryChangeEvent.js.map +1 -1
  84. package/dist/git/models/repositoryIdentities.d.ts.map +1 -1
  85. package/dist/git/models/repositoryIdentities.js.map +1 -1
  86. package/dist/git/models/repositoryMetadata.d.ts.map +1 -1
  87. package/dist/git/models/repositoryMetadata.js.map +1 -1
  88. package/dist/git/models/resourceDescriptor.d.ts +16 -0
  89. package/dist/git/models/resourceDescriptor.d.ts.map +1 -1
  90. package/dist/git/models/resourceDescriptor.js.map +1 -1
  91. package/dist/git/models/revision.d.ts.map +1 -1
  92. package/dist/git/models/revision.js.map +1 -1
  93. package/dist/git/models/search.d.ts.map +1 -1
  94. package/dist/git/models/search.js.map +1 -1
  95. package/dist/git/models/shortlog.d.ts.map +1 -1
  96. package/dist/git/models/shortlog.js.map +1 -1
  97. package/dist/git/models/signature.d.ts +14 -0
  98. package/dist/git/models/signature.d.ts.map +1 -1
  99. package/dist/git/models/signature.js.map +1 -1
  100. package/dist/git/models/staging.d.ts.map +1 -1
  101. package/dist/git/models/staging.js.map +1 -1
  102. package/dist/git/models/stash.d.ts.map +1 -1
  103. package/dist/git/models/stash.js.map +1 -1
  104. package/dist/git/models/status.d.ts.map +1 -1
  105. package/dist/git/models/status.js.map +1 -1
  106. package/dist/git/models/statusFile.d.ts.map +1 -1
  107. package/dist/git/models/statusFile.js.map +1 -1
  108. package/dist/git/models/tag.d.ts +11 -1
  109. package/dist/git/models/tag.d.ts.map +1 -1
  110. package/dist/git/models/tag.js +9 -2
  111. package/dist/git/models/tag.js.map +1 -1
  112. package/dist/git/models/tree.d.ts.map +1 -1
  113. package/dist/git/models/tree.js.map +1 -1
  114. package/dist/git/models/user.d.ts.map +1 -1
  115. package/dist/git/models/user.js.map +1 -1
  116. package/dist/git/models/worktree.d.ts.map +1 -1
  117. package/dist/git/models/worktree.js.map +1 -1
  118. package/dist/git/parsers/diffParser.d.ts.map +1 -1
  119. package/dist/git/parsers/diffParser.js +1 -1
  120. package/dist/git/parsers/diffParser.js.map +1 -1
  121. package/dist/git/parsers/rebaseTodoParser.d.ts.map +1 -1
  122. package/dist/git/parsers/rebaseTodoParser.js.map +1 -1
  123. package/dist/git/providers/blame.d.ts.map +1 -1
  124. package/dist/git/providers/blame.js.map +1 -1
  125. package/dist/git/providers/branches.d.ts +8 -1
  126. package/dist/git/providers/branches.d.ts.map +1 -1
  127. package/dist/git/providers/branches.js.map +1 -1
  128. package/dist/git/providers/commits.d.ts +6 -1
  129. package/dist/git/providers/commits.d.ts.map +1 -1
  130. package/dist/git/providers/commits.js.map +1 -1
  131. package/dist/git/providers/config.d.ts +6 -2
  132. package/dist/git/providers/config.d.ts.map +1 -1
  133. package/dist/git/providers/config.js.map +1 -1
  134. package/dist/git/providers/contributors.d.ts.map +1 -1
  135. package/dist/git/providers/contributors.js.map +1 -1
  136. package/dist/git/providers/diff.d.ts.map +1 -1
  137. package/dist/git/providers/diff.js.map +1 -1
  138. package/dist/git/providers/graph.d.ts +55 -1
  139. package/dist/git/providers/graph.d.ts.map +1 -1
  140. package/dist/git/providers/graph.js.map +1 -1
  141. package/dist/git/providers/operations.d.ts.map +1 -1
  142. package/dist/git/providers/operations.js.map +1 -1
  143. package/dist/git/providers/patch.d.ts.map +1 -1
  144. package/dist/git/providers/patch.js.map +1 -1
  145. package/dist/git/providers/pausedOperations.d.ts.map +1 -1
  146. package/dist/git/providers/pausedOperations.js.map +1 -1
  147. package/dist/git/providers/provider.d.ts.map +1 -1
  148. package/dist/git/providers/provider.js.map +1 -1
  149. package/dist/git/providers/refs.d.ts.map +1 -1
  150. package/dist/git/providers/refs.js.map +1 -1
  151. package/dist/git/providers/remotes.d.ts.map +1 -1
  152. package/dist/git/providers/remotes.js.map +1 -1
  153. package/dist/git/providers/revision.d.ts.map +1 -1
  154. package/dist/git/providers/revision.js.map +1 -1
  155. package/dist/git/providers/shared/remotes.d.ts.map +1 -1
  156. package/dist/git/providers/shared/remotes.js.map +1 -1
  157. package/dist/git/providers/staging.d.ts.map +1 -1
  158. package/dist/git/providers/staging.js.map +1 -1
  159. package/dist/git/providers/stash.d.ts.map +1 -1
  160. package/dist/git/providers/stash.js.map +1 -1
  161. package/dist/git/providers/status.d.ts +1 -0
  162. package/dist/git/providers/status.d.ts.map +1 -1
  163. package/dist/git/providers/status.js.map +1 -1
  164. package/dist/git/providers/tags.d.ts.map +1 -1
  165. package/dist/git/providers/tags.js.map +1 -1
  166. package/dist/git/providers/types.d.ts.map +1 -1
  167. package/dist/git/providers/types.js.map +1 -1
  168. package/dist/git/providers/worktrees.d.ts +3 -1
  169. package/dist/git/providers/worktrees.d.ts.map +1 -1
  170. package/dist/git/providers/worktrees.js.map +1 -1
  171. package/dist/git/remotes/azure-devops.d.ts.map +1 -1
  172. package/dist/git/remotes/azure-devops.js +27 -31
  173. package/dist/git/remotes/azure-devops.js.map +1 -1
  174. package/dist/git/remotes/bitbucket-server.d.ts.map +1 -1
  175. package/dist/git/remotes/bitbucket-server.js +21 -23
  176. package/dist/git/remotes/bitbucket-server.js.map +1 -1
  177. package/dist/git/remotes/bitbucket.d.ts.map +1 -1
  178. package/dist/git/remotes/bitbucket.js +21 -23
  179. package/dist/git/remotes/bitbucket.js.map +1 -1
  180. package/dist/git/remotes/custom.d.ts.map +1 -1
  181. package/dist/git/remotes/custom.js.map +1 -1
  182. package/dist/git/remotes/gerrit.d.ts.map +1 -1
  183. package/dist/git/remotes/gerrit.js +11 -13
  184. package/dist/git/remotes/gerrit.js.map +1 -1
  185. package/dist/git/remotes/gitea.d.ts.map +1 -1
  186. package/dist/git/remotes/gitea.js +12 -14
  187. package/dist/git/remotes/gitea.js.map +1 -1
  188. package/dist/git/remotes/github.d.ts.map +1 -1
  189. package/dist/git/remotes/github.js +54 -56
  190. package/dist/git/remotes/github.js.map +1 -1
  191. package/dist/git/remotes/gitlab.d.ts.map +1 -1
  192. package/dist/git/remotes/gitlab.js +93 -95
  193. package/dist/git/remotes/gitlab.js.map +1 -1
  194. package/dist/git/remotes/google-source.d.ts.map +1 -1
  195. package/dist/git/remotes/google-source.js.map +1 -1
  196. package/dist/git/remotes/matcher.d.ts.map +1 -1
  197. package/dist/git/remotes/matcher.js.map +1 -1
  198. package/dist/git/run.types.d.ts +62 -3
  199. package/dist/git/run.types.d.ts.map +1 -1
  200. package/dist/git/service.d.ts.map +1 -1
  201. package/dist/git/utils/autolink.utils.d.ts.map +1 -1
  202. package/dist/git/utils/autolink.utils.js.map +1 -1
  203. package/dist/git/utils/blame.utils.d.ts.map +1 -1
  204. package/dist/git/utils/blame.utils.js.map +1 -1
  205. package/dist/git/utils/branch.utils.d.ts.map +1 -1
  206. package/dist/git/utils/branch.utils.js +12 -1
  207. package/dist/git/utils/branch.utils.js.map +1 -1
  208. package/dist/git/utils/commit.utils.d.ts.map +1 -1
  209. package/dist/git/utils/commit.utils.js.map +1 -1
  210. package/dist/git/utils/conflictResolution.utils.d.ts.map +1 -1
  211. package/dist/git/utils/conflictResolution.utils.js.map +1 -1
  212. package/dist/git/utils/contributor.utils.d.ts +1 -1
  213. package/dist/git/utils/contributor.utils.d.ts.map +1 -1
  214. package/dist/git/utils/contributor.utils.js +1 -2
  215. package/dist/git/utils/contributor.utils.js.map +1 -1
  216. package/dist/git/utils/fetch.utils.d.ts.map +1 -1
  217. package/dist/git/utils/fetch.utils.js.map +1 -1
  218. package/dist/git/utils/fileStatus.utils.d.ts +7 -0
  219. package/dist/git/utils/fileStatus.utils.d.ts.map +1 -1
  220. package/dist/git/utils/fileStatus.utils.js +6 -0
  221. package/dist/git/utils/fileStatus.utils.js.map +1 -1
  222. package/dist/git/utils/graph.utils.d.ts +20 -0
  223. package/dist/git/utils/graph.utils.d.ts.map +1 -0
  224. package/dist/git/utils/graph.utils.js +40 -0
  225. package/dist/git/utils/graph.utils.js.map +1 -0
  226. package/dist/git/utils/issue.utils.d.ts.map +1 -1
  227. package/dist/git/utils/issue.utils.js +1 -0
  228. package/dist/git/utils/issue.utils.js.map +1 -1
  229. package/dist/git/utils/issueOrPullRequest.utils.d.ts.map +1 -1
  230. package/dist/git/utils/issueOrPullRequest.utils.js.map +1 -1
  231. package/dist/git/utils/mergeConflicts.utils.d.ts.map +1 -1
  232. package/dist/git/utils/mergeConflicts.utils.js.map +1 -1
  233. package/dist/git/utils/pausedOperationStatus.utils.d.ts +13 -13
  234. package/dist/git/utils/pausedOperationStatus.utils.d.ts.map +1 -1
  235. package/dist/git/utils/pausedOperationStatus.utils.js.map +1 -1
  236. package/dist/git/utils/pullRequest.utils.d.ts.map +1 -1
  237. package/dist/git/utils/pullRequest.utils.js +9 -0
  238. package/dist/git/utils/pullRequest.utils.js.map +1 -1
  239. package/dist/git/utils/reachability.utils.d.ts +20 -2
  240. package/dist/git/utils/reachability.utils.d.ts.map +1 -1
  241. package/dist/git/utils/reachability.utils.js +68 -7
  242. package/dist/git/utils/reachability.utils.js.map +1 -1
  243. package/dist/git/utils/rebase.utils.d.ts.map +1 -1
  244. package/dist/git/utils/rebase.utils.js.map +1 -1
  245. package/dist/git/utils/reference.utils.d.ts.map +1 -1
  246. package/dist/git/utils/reference.utils.js.map +1 -1
  247. package/dist/git/utils/remote.utils.d.ts.map +1 -1
  248. package/dist/git/utils/remote.utils.js.map +1 -1
  249. package/dist/git/utils/repository.utils.d.ts.map +1 -1
  250. package/dist/git/utils/repository.utils.js.map +1 -1
  251. package/dist/git/utils/resourceDescriptor.utils.d.ts.map +1 -1
  252. package/dist/git/utils/resourceDescriptor.utils.js.map +1 -1
  253. package/dist/git/utils/revision.utils.d.ts.map +1 -1
  254. package/dist/git/utils/revision.utils.js.map +1 -1
  255. package/dist/git/utils/search.utils.d.ts.map +1 -1
  256. package/dist/git/utils/search.utils.js.map +1 -1
  257. package/dist/git/utils/sorting.d.ts.map +1 -1
  258. package/dist/git/utils/sorting.js.map +1 -1
  259. package/dist/git/utils/sshKey.utils.d.ts +7 -0
  260. package/dist/git/utils/sshKey.utils.d.ts.map +1 -0
  261. package/dist/git/utils/sshKey.utils.js +25 -0
  262. package/dist/git/utils/sshKey.utils.js.map +1 -0
  263. package/dist/git/utils/status.utils.d.ts.map +1 -1
  264. package/dist/git/utils/status.utils.js.map +1 -1
  265. package/dist/git/utils/statusFile.utils.d.ts.map +1 -1
  266. package/dist/git/utils/statusFile.utils.js.map +1 -1
  267. package/dist/git/utils/tag.utils.d.ts.map +1 -1
  268. package/dist/git/utils/tag.utils.js.map +1 -1
  269. package/dist/git/utils/tooltip.utils.d.ts.map +1 -1
  270. package/dist/git/utils/tooltip.utils.js.map +1 -1
  271. package/dist/git/utils/uriAuthority.d.ts.map +1 -1
  272. package/dist/git/utils/uriAuthority.js.map +1 -1
  273. package/dist/git/utils/user.utils.d.ts.map +1 -1
  274. package/dist/git/utils/user.utils.js.map +1 -1
  275. package/dist/git/utils/worktree.utils.d.ts.map +1 -1
  276. package/dist/git/utils/worktree.utils.js.map +1 -1
  277. package/dist/git/watching/changeEvent.d.ts.map +1 -1
  278. package/dist/git/watching/changeEvent.js.map +1 -1
  279. package/dist/git/watching/classifyChange.d.ts.map +1 -1
  280. package/dist/git/watching/classifyChange.js.map +1 -1
  281. package/dist/git/watching/gitIgnoreFilter.d.ts.map +1 -1
  282. package/dist/git/watching/gitIgnoreFilter.js.map +1 -1
  283. package/dist/git/watching/initWatcher.d.ts.map +1 -1
  284. package/dist/git/watching/initWatcher.js.map +1 -1
  285. package/dist/git/watching/provider.d.ts.map +1 -1
  286. package/dist/git/watching/provider.js.map +1 -1
  287. package/dist/git/watching/watchGroup.d.ts.map +1 -1
  288. package/dist/git/watching/watchGroup.js.map +1 -1
  289. package/dist/git/watching/watchService.d.ts +4 -0
  290. package/dist/git/watching/watchService.d.ts.map +1 -1
  291. package/dist/git/watching/watchService.js +15 -1
  292. package/dist/git/watching/watchService.js.map +1 -1
  293. package/dist/git/watching/watchSession.d.ts +7 -0
  294. package/dist/git/watching/watchSession.d.ts.map +1 -1
  295. package/dist/git/watching/watchSession.js +14 -2
  296. package/dist/git/watching/watchSession.js.map +1 -1
  297. package/dist/git/watching/watcherPatterns.d.ts.map +1 -1
  298. package/dist/git/watching/watcherPatterns.js.map +1 -1
  299. package/dist/git-cli/cliGitProvider.d.ts.map +1 -1
  300. package/dist/git-cli/exec/exec.d.ts.map +1 -1
  301. package/dist/git-cli/exec/exec.errors.d.ts.map +1 -1
  302. package/dist/git-cli/exec/exec.errors.js.map +1 -1
  303. package/dist/git-cli/exec/exec.js.map +1 -1
  304. package/dist/git-cli/exec/exec.types.d.ts.map +1 -1
  305. package/dist/git-cli/exec/exec.types.js.map +1 -1
  306. package/dist/git-cli/exec/features.d.ts.map +1 -1
  307. package/dist/git-cli/exec/features.js.map +1 -1
  308. package/dist/git-cli/exec/git.d.ts +19 -27
  309. package/dist/git-cli/exec/git.d.ts.map +1 -1
  310. package/dist/git-cli/exec/git.js +126 -34
  311. package/dist/git-cli/exec/git.js.map +1 -1
  312. package/dist/git-cli/exec/gitQueue.d.ts.map +1 -1
  313. package/dist/git-cli/exec/gitQueue.js.map +1 -1
  314. package/dist/git-cli/exec/locator.d.ts.map +1 -1
  315. package/dist/git-cli/exec/locator.js.map +1 -1
  316. package/dist/git-cli/parsers/blameParser.d.ts.map +1 -1
  317. package/dist/git-cli/parsers/blameParser.js.map +1 -1
  318. package/dist/git-cli/parsers/indexParser.d.ts.map +1 -1
  319. package/dist/git-cli/parsers/indexParser.js.map +1 -1
  320. package/dist/git-cli/parsers/logParser.d.ts +9 -1
  321. package/dist/git-cli/parsers/logParser.d.ts.map +1 -1
  322. package/dist/git-cli/parsers/logParser.js +141 -60
  323. package/dist/git-cli/parsers/logParser.js.map +1 -1
  324. package/dist/git-cli/parsers/mergeTreeParser.d.ts.map +1 -1
  325. package/dist/git-cli/parsers/mergeTreeParser.js.map +1 -1
  326. package/dist/git-cli/parsers/refParser.d.ts.map +1 -1
  327. package/dist/git-cli/parsers/refParser.js.map +1 -1
  328. package/dist/git-cli/parsers/reflogParser.d.ts.map +1 -1
  329. package/dist/git-cli/parsers/reflogParser.js.map +1 -1
  330. package/dist/git-cli/parsers/remoteParser.d.ts.map +1 -1
  331. package/dist/git-cli/parsers/remoteParser.js.map +1 -1
  332. package/dist/git-cli/parsers/shortlogParser.d.ts.map +1 -1
  333. package/dist/git-cli/parsers/shortlogParser.js.map +1 -1
  334. package/dist/git-cli/parsers/signatureParser.d.ts.map +1 -1
  335. package/dist/git-cli/parsers/signatureParser.js.map +1 -1
  336. package/dist/git-cli/parsers/sshSignatureParser.d.ts +21 -0
  337. package/dist/git-cli/parsers/sshSignatureParser.d.ts.map +1 -0
  338. package/dist/git-cli/parsers/sshSignatureParser.js +78 -0
  339. package/dist/git-cli/parsers/sshSignatureParser.js.map +1 -0
  340. package/dist/git-cli/parsers/statusParser.d.ts.map +1 -1
  341. package/dist/git-cli/parsers/statusParser.js.map +1 -1
  342. package/dist/git-cli/parsers/treeParser.d.ts.map +1 -1
  343. package/dist/git-cli/parsers/treeParser.js.map +1 -1
  344. package/dist/git-cli/parsers/worktreeParser.d.ts.map +1 -1
  345. package/dist/git-cli/parsers/worktreeParser.js +5 -7
  346. package/dist/git-cli/parsers/worktreeParser.js.map +1 -1
  347. package/dist/git-cli/providers/blame.d.ts.map +1 -1
  348. package/dist/git-cli/providers/blame.js.map +1 -1
  349. package/dist/git-cli/providers/branches.d.ts +1 -0
  350. package/dist/git-cli/providers/branches.d.ts.map +1 -1
  351. package/dist/git-cli/providers/branches.js +51 -32
  352. package/dist/git-cli/providers/branches.js.map +1 -1
  353. package/dist/git-cli/providers/commitFilesetUtils.d.ts.map +1 -1
  354. package/dist/git-cli/providers/commitFilesetUtils.js.map +1 -1
  355. package/dist/git-cli/providers/commits.d.ts +12 -1
  356. package/dist/git-cli/providers/commits.d.ts.map +1 -1
  357. package/dist/git-cli/providers/commits.js +89 -8
  358. package/dist/git-cli/providers/commits.js.map +1 -1
  359. package/dist/git-cli/providers/config.d.ts.map +1 -1
  360. package/dist/git-cli/providers/config.js.map +1 -1
  361. package/dist/git-cli/providers/contributors.d.ts.map +1 -1
  362. package/dist/git-cli/providers/contributors.js.map +1 -1
  363. package/dist/git-cli/providers/diff.d.ts.map +1 -1
  364. package/dist/git-cli/providers/diff.js.map +1 -1
  365. package/dist/git-cli/providers/graph.d.ts +35 -1
  366. package/dist/git-cli/providers/graph.d.ts.map +1 -1
  367. package/dist/git-cli/providers/graph.js +1434 -330
  368. package/dist/git-cli/providers/graph.js.map +1 -1
  369. package/dist/git-cli/providers/operations.d.ts.map +1 -1
  370. package/dist/git-cli/providers/operations.js.map +1 -1
  371. package/dist/git-cli/providers/patch.d.ts.map +1 -1
  372. package/dist/git-cli/providers/patch.js.map +1 -1
  373. package/dist/git-cli/providers/pausedOperations.d.ts.map +1 -1
  374. package/dist/git-cli/providers/pausedOperations.js +3 -3
  375. package/dist/git-cli/providers/pausedOperations.js.map +1 -1
  376. package/dist/git-cli/providers/refs.d.ts.map +1 -1
  377. package/dist/git-cli/providers/refs.js.map +1 -1
  378. package/dist/git-cli/providers/remotes.d.ts.map +1 -1
  379. package/dist/git-cli/providers/remotes.js.map +1 -1
  380. package/dist/git-cli/providers/revision.d.ts +1 -0
  381. package/dist/git-cli/providers/revision.d.ts.map +1 -1
  382. package/dist/git-cli/providers/revision.js +33 -0
  383. package/dist/git-cli/providers/revision.js.map +1 -1
  384. package/dist/git-cli/providers/staging.d.ts.map +1 -1
  385. package/dist/git-cli/providers/staging.js.map +1 -1
  386. package/dist/git-cli/providers/stash.d.ts.map +1 -1
  387. package/dist/git-cli/providers/stash.js.map +1 -1
  388. package/dist/git-cli/providers/status.d.ts +28 -0
  389. package/dist/git-cli/providers/status.d.ts.map +1 -1
  390. package/dist/git-cli/providers/status.js +240 -154
  391. package/dist/git-cli/providers/status.js.map +1 -1
  392. package/dist/git-cli/providers/tags.d.ts.map +1 -1
  393. package/dist/git-cli/providers/tags.js +2 -1
  394. package/dist/git-cli/providers/tags.js.map +1 -1
  395. package/dist/git-cli/providers/worktrees.d.ts +2 -1
  396. package/dist/git-cli/providers/worktrees.d.ts.map +1 -1
  397. package/dist/git-cli/providers/worktrees.js +28 -3
  398. package/dist/git-cli/providers/worktrees.js.map +1 -1
  399. package/dist/git-cli/service.d.ts.map +1 -1
  400. package/dist/git-cli/service.js +8 -0
  401. package/dist/git-cli/service.js.map +1 -1
  402. package/dist/ipc/ipcServer.d.ts.map +1 -1
  403. package/dist/ipc/ipcServer.js +1 -1
  404. package/dist/ipc/ipcServer.js.map +1 -1
  405. package/dist/plus/agents/providers/claudeCodeProvider.d.ts +6 -1
  406. package/dist/plus/agents/providers/claudeCodeProvider.d.ts.map +1 -1
  407. package/dist/plus/agents/providers/claudeCodeProvider.js +19 -0
  408. package/dist/plus/agents/providers/claudeCodeProvider.js.map +1 -1
  409. package/dist/plus/agents/providers/claudeCodeTranscript.d.ts +68 -0
  410. package/dist/plus/agents/providers/claudeCodeTranscript.d.ts.map +1 -1
  411. package/dist/plus/agents/providers/claudeCodeTranscript.js +262 -8
  412. package/dist/plus/agents/providers/claudeCodeTranscript.js.map +1 -1
  413. package/dist/plus/agents/types.d.ts +36 -2
  414. package/dist/plus/agents/types.d.ts.map +1 -1
  415. package/dist/plus/ai/constants.d.ts +1 -2
  416. package/dist/plus/ai/constants.d.ts.map +1 -1
  417. package/dist/plus/ai/constants.js +1 -8
  418. package/dist/plus/ai/constants.js.map +1 -1
  419. package/dist/plus/ai/errors.d.ts.map +1 -1
  420. package/dist/plus/ai/errors.js.map +1 -1
  421. package/dist/plus/ai/models/conversation.d.ts.map +1 -1
  422. package/dist/plus/ai/models/conversation.js.map +1 -1
  423. package/dist/plus/ai/models/model.d.ts +2 -1
  424. package/dist/plus/ai/models/model.d.ts.map +1 -1
  425. package/dist/plus/ai/models/model.js +50 -1
  426. package/dist/plus/ai/models/model.js.map +1 -1
  427. package/dist/plus/ai/models/promptTemplates.d.ts +5 -2
  428. package/dist/plus/ai/models/promptTemplates.d.ts.map +1 -1
  429. package/dist/plus/ai/models/promptTemplates.js.map +1 -1
  430. package/dist/plus/ai/models/provider.d.ts.map +1 -1
  431. package/dist/plus/ai/models/provider.js.map +1 -1
  432. package/dist/plus/ai/models/results.d.ts.map +1 -1
  433. package/dist/plus/ai/models/results.js.map +1 -1
  434. package/dist/plus/ai/prompts.d.ts +1 -1
  435. package/dist/plus/ai/prompts.d.ts.map +1 -1
  436. package/dist/plus/ai/prompts.js +15 -47
  437. package/dist/plus/ai/prompts.js.map +1 -1
  438. package/dist/plus/ai/providers/anthropicProvider.d.ts +5 -0
  439. package/dist/plus/ai/providers/anthropicProvider.d.ts.map +1 -1
  440. package/dist/plus/ai/providers/anthropicProvider.js +40 -3
  441. package/dist/plus/ai/providers/anthropicProvider.js.map +1 -1
  442. package/dist/plus/ai/providers/azureProvider.d.ts.map +1 -1
  443. package/dist/plus/ai/providers/azureProvider.js.map +1 -1
  444. package/dist/plus/ai/providers/context.d.ts.map +1 -1
  445. package/dist/plus/ai/providers/context.js.map +1 -1
  446. package/dist/plus/ai/providers/deepSeekProvider.d.ts.map +1 -1
  447. package/dist/plus/ai/providers/deepSeekProvider.js +17 -1
  448. package/dist/plus/ai/providers/deepSeekProvider.js.map +1 -1
  449. package/dist/plus/ai/providers/geminiProvider.d.ts.map +1 -1
  450. package/dist/plus/ai/providers/geminiProvider.js +25 -6
  451. package/dist/plus/ai/providers/geminiProvider.js.map +1 -1
  452. package/dist/plus/ai/providers/gitkrakenProvider.d.ts.map +1 -1
  453. package/dist/plus/ai/providers/gitkrakenProvider.js +1 -0
  454. package/dist/plus/ai/providers/gitkrakenProvider.js.map +1 -1
  455. package/dist/plus/ai/providers/huggingFaceProvider.d.ts +1 -1
  456. package/dist/plus/ai/providers/huggingFaceProvider.d.ts.map +1 -1
  457. package/dist/plus/ai/providers/huggingFaceProvider.js +21 -18
  458. package/dist/plus/ai/providers/huggingFaceProvider.js.map +1 -1
  459. package/dist/plus/ai/providers/mistralProvider.d.ts.map +1 -1
  460. package/dist/plus/ai/providers/mistralProvider.js.map +1 -1
  461. package/dist/plus/ai/providers/ollamaProvider.d.ts.map +1 -1
  462. package/dist/plus/ai/providers/ollamaProvider.js.map +1 -1
  463. package/dist/plus/ai/providers/openAICompatibleProvider.d.ts.map +1 -1
  464. package/dist/plus/ai/providers/openAICompatibleProvider.js.map +1 -1
  465. package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts +10 -1
  466. package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts.map +1 -1
  467. package/dist/plus/ai/providers/openAICompatibleProviderBase.js +9 -1
  468. package/dist/plus/ai/providers/openAICompatibleProviderBase.js.map +1 -1
  469. package/dist/plus/ai/providers/openRouterProvider.d.ts.map +1 -1
  470. package/dist/plus/ai/providers/openRouterProvider.js.map +1 -1
  471. package/dist/plus/ai/providers/openaiProvider.d.ts.map +1 -1
  472. package/dist/plus/ai/providers/openaiProvider.js.map +1 -1
  473. package/dist/plus/ai/providers/xaiProvider.d.ts.map +1 -1
  474. package/dist/plus/ai/providers/xaiProvider.js +14 -1
  475. package/dist/plus/ai/providers/xaiProvider.js.map +1 -1
  476. package/dist/plus/ai/utils/ai.utils.d.ts.map +1 -1
  477. package/dist/plus/ai/utils/ai.utils.js +0 -2
  478. package/dist/plus/ai/utils/ai.utils.js.map +1 -1
  479. package/dist/plus/ai/utils/results.utils.d.ts +3 -0
  480. package/dist/plus/ai/utils/results.utils.d.ts.map +1 -1
  481. package/dist/plus/ai/utils/results.utils.js +26 -0
  482. package/dist/plus/ai/utils/results.utils.js.map +1 -1
  483. package/dist/plus/ai/utils/truncation.utils.d.ts +1 -1
  484. package/dist/plus/ai/utils/truncation.utils.d.ts.map +1 -1
  485. package/dist/plus/ai/utils/truncation.utils.js.map +1 -1
  486. package/dist/plus/git-github/api/config.d.ts.map +1 -1
  487. package/dist/plus/git-github/api/config.js.map +1 -1
  488. package/dist/plus/git-github/api/github.d.ts +66 -3
  489. package/dist/plus/git-github/api/github.d.ts.map +1 -1
  490. package/dist/plus/git-github/api/github.js +345 -74
  491. package/dist/plus/git-github/api/github.js.map +1 -1
  492. package/dist/plus/git-github/api/github.utils.d.ts.map +1 -1
  493. package/dist/plus/git-github/api/github.utils.js.map +1 -1
  494. package/dist/plus/git-github/api/token.d.ts.map +1 -1
  495. package/dist/plus/git-github/api/token.js.map +1 -1
  496. package/dist/plus/git-github/api/tokenUtils.d.ts.map +1 -1
  497. package/dist/plus/git-github/api/tokenUtils.js.map +1 -1
  498. package/dist/plus/git-github/api/types.d.ts.map +1 -1
  499. package/dist/plus/git-github/api/types.js.map +1 -1
  500. package/dist/plus/git-github/context.d.ts.map +1 -1
  501. package/dist/plus/git-github/models.d.ts +5 -0
  502. package/dist/plus/git-github/models.d.ts.map +1 -1
  503. package/dist/plus/git-github/models.js +27 -2
  504. package/dist/plus/git-github/models.js.map +1 -1
  505. package/dist/plus/git-github/providers/github/blame.d.ts.map +1 -1
  506. package/dist/plus/git-github/providers/github/blame.js.map +1 -1
  507. package/dist/plus/git-github/providers/github/branches.d.ts +2 -1
  508. package/dist/plus/git-github/providers/github/branches.d.ts.map +1 -1
  509. package/dist/plus/git-github/providers/github/branches.js +7 -3
  510. package/dist/plus/git-github/providers/github/branches.js.map +1 -1
  511. package/dist/plus/git-github/providers/github/commits.d.ts.map +1 -1
  512. package/dist/plus/git-github/providers/github/commits.js.map +1 -1
  513. package/dist/plus/git-github/providers/github/config.d.ts.map +1 -1
  514. package/dist/plus/git-github/providers/github/config.js.map +1 -1
  515. package/dist/plus/git-github/providers/github/contributors.d.ts.map +1 -1
  516. package/dist/plus/git-github/providers/github/contributors.js.map +1 -1
  517. package/dist/plus/git-github/providers/github/diff.d.ts.map +1 -1
  518. package/dist/plus/git-github/providers/github/diff.js +2 -2
  519. package/dist/plus/git-github/providers/github/diff.js.map +1 -1
  520. package/dist/plus/git-github/providers/github/graph.d.ts +12 -1
  521. package/dist/plus/git-github/providers/github/graph.d.ts.map +1 -1
  522. package/dist/plus/git-github/providers/github/graph.js +85 -0
  523. package/dist/plus/git-github/providers/github/graph.js.map +1 -1
  524. package/dist/plus/git-github/providers/github/refs.d.ts.map +1 -1
  525. package/dist/plus/git-github/providers/github/refs.js.map +1 -1
  526. package/dist/plus/git-github/providers/github/remotes.d.ts.map +1 -1
  527. package/dist/plus/git-github/providers/github/remotes.js.map +1 -1
  528. package/dist/plus/git-github/providers/github/revision.d.ts.map +1 -1
  529. package/dist/plus/git-github/providers/github/revision.js.map +1 -1
  530. package/dist/plus/git-github/providers/github/status.d.ts.map +1 -1
  531. package/dist/plus/git-github/providers/github/status.js.map +1 -1
  532. package/dist/plus/git-github/providers/github/tags.d.ts.map +1 -1
  533. package/dist/plus/git-github/providers/github/tags.js +3 -1
  534. package/dist/plus/git-github/providers/github/tags.js.map +1 -1
  535. package/dist/plus/git-github/providers/githubGitProvider.d.ts.map +1 -1
  536. package/dist/plus/git-github/providers/githubGitProvider.js.map +1 -1
  537. package/dist/plus/git-github/providers/githubProvider.d.ts.map +1 -1
  538. package/dist/plus/git-github/providers/githubProvider.js.map +1 -1
  539. package/dist/plus/integrations/authentication/cloudIntegrationService.d.ts +20 -1
  540. package/dist/plus/integrations/authentication/cloudIntegrationService.d.ts.map +1 -1
  541. package/dist/plus/integrations/authentication/cloudIntegrationService.js +134 -10
  542. package/dist/plus/integrations/authentication/cloudIntegrationService.js.map +1 -1
  543. package/dist/plus/integrations/authentication/configuredIntegrationService.d.ts +52 -5
  544. package/dist/plus/integrations/authentication/configuredIntegrationService.d.ts.map +1 -1
  545. package/dist/plus/integrations/authentication/configuredIntegrationService.js +248 -46
  546. package/dist/plus/integrations/authentication/configuredIntegrationService.js.map +1 -1
  547. package/dist/plus/integrations/authentication/integrationAuthenticationProvider.d.ts +24 -4
  548. package/dist/plus/integrations/authentication/integrationAuthenticationProvider.d.ts.map +1 -1
  549. package/dist/plus/integrations/authentication/integrationAuthenticationProvider.js +58 -26
  550. package/dist/plus/integrations/authentication/integrationAuthenticationProvider.js.map +1 -1
  551. package/dist/plus/integrations/authentication/integrationAuthenticationService.d.ts.map +1 -1
  552. package/dist/plus/integrations/authentication/integrationAuthenticationService.js +7 -3
  553. package/dist/plus/integrations/authentication/integrationAuthenticationService.js.map +1 -1
  554. package/dist/plus/integrations/authentication/manualTokenProvider.d.ts +1 -0
  555. package/dist/plus/integrations/authentication/manualTokenProvider.d.ts.map +1 -1
  556. package/dist/plus/integrations/authentication/manualTokenProvider.js +9 -5
  557. package/dist/plus/integrations/authentication/manualTokenProvider.js.map +1 -1
  558. package/dist/plus/integrations/authentication/models.d.ts +33 -0
  559. package/dist/plus/integrations/authentication/models.d.ts.map +1 -1
  560. package/dist/plus/integrations/authentication/models.js.map +1 -1
  561. package/dist/plus/integrations/collectionMetadata.d.ts +21 -0
  562. package/dist/plus/integrations/collectionMetadata.d.ts.map +1 -0
  563. package/dist/plus/integrations/collectionMetadata.js +121 -0
  564. package/dist/plus/integrations/collectionMetadata.js.map +1 -0
  565. package/dist/plus/integrations/constants.d.ts +12 -2
  566. package/dist/plus/integrations/constants.d.ts.map +1 -1
  567. package/dist/plus/integrations/constants.js +10 -0
  568. package/dist/plus/integrations/constants.js.map +1 -1
  569. package/dist/plus/integrations/context.d.ts +10 -6
  570. package/dist/plus/integrations/context.d.ts.map +1 -1
  571. package/dist/plus/integrations/errors.d.ts +65 -0
  572. package/dist/plus/integrations/errors.d.ts.map +1 -1
  573. package/dist/plus/integrations/errors.js +135 -0
  574. package/dist/plus/integrations/errors.js.map +1 -1
  575. package/dist/plus/integrations/index.d.ts +57 -12
  576. package/dist/plus/integrations/index.d.ts.map +1 -1
  577. package/dist/plus/integrations/index.js +39 -37
  578. package/dist/plus/integrations/index.js.map +1 -1
  579. package/dist/plus/integrations/integrationService.d.ts +297 -13
  580. package/dist/plus/integrations/integrationService.d.ts.map +1 -1
  581. package/dist/plus/integrations/integrationService.js +672 -36
  582. package/dist/plus/integrations/integrationService.js.map +1 -1
  583. package/dist/plus/integrations/lite.d.ts +47 -0
  584. package/dist/plus/integrations/lite.d.ts.map +1 -0
  585. package/dist/plus/integrations/lite.js +141 -0
  586. package/dist/plus/integrations/lite.js.map +1 -0
  587. package/dist/plus/integrations/manager.d.ts +332 -0
  588. package/dist/plus/integrations/manager.d.ts.map +1 -0
  589. package/dist/plus/integrations/manager.js +2 -0
  590. package/dist/plus/integrations/manager.js.map +1 -0
  591. package/dist/plus/integrations/models/gitHostIntegration.d.ts +262 -10
  592. package/dist/plus/integrations/models/gitHostIntegration.d.ts.map +1 -1
  593. package/dist/plus/integrations/models/gitHostIntegration.js +675 -101
  594. package/dist/plus/integrations/models/gitHostIntegration.js.map +1 -1
  595. package/dist/plus/integrations/models/integration.d.ts +88 -3
  596. package/dist/plus/integrations/models/integration.d.ts.map +1 -1
  597. package/dist/plus/integrations/models/integration.js +192 -21
  598. package/dist/plus/integrations/models/integration.js.map +1 -1
  599. package/dist/plus/integrations/models/issuesIntegration.d.ts +70 -7
  600. package/dist/plus/integrations/models/issuesIntegration.d.ts.map +1 -1
  601. package/dist/plus/integrations/models/issuesIntegration.js +108 -35
  602. package/dist/plus/integrations/models/issuesIntegration.js.map +1 -1
  603. package/dist/plus/integrations/providerFilters.d.ts +12 -0
  604. package/dist/plus/integrations/providerFilters.d.ts.map +1 -0
  605. package/dist/plus/integrations/providerFilters.js +14 -0
  606. package/dist/plus/integrations/providerFilters.js.map +1 -0
  607. package/dist/plus/integrations/providers/apiClients.d.ts.map +1 -1
  608. package/dist/plus/integrations/providers/apiClients.js +3 -3
  609. package/dist/plus/integrations/providers/apiClients.js.map +1 -1
  610. package/dist/plus/integrations/providers/apiConfig.d.ts +52 -0
  611. package/dist/plus/integrations/providers/apiConfig.d.ts.map +1 -0
  612. package/dist/plus/integrations/providers/apiConfig.js +19 -0
  613. package/dist/plus/integrations/providers/apiConfig.js.map +1 -0
  614. package/dist/plus/integrations/providers/azure/azure.d.ts +14 -2
  615. package/dist/plus/integrations/providers/azure/azure.d.ts.map +1 -1
  616. package/dist/plus/integrations/providers/azure/azure.js +107 -32
  617. package/dist/plus/integrations/providers/azure/azure.js.map +1 -1
  618. package/dist/plus/integrations/providers/azure/models.d.ts +16 -0
  619. package/dist/plus/integrations/providers/azure/models.d.ts.map +1 -1
  620. package/dist/plus/integrations/providers/azure/models.js +6 -6
  621. package/dist/plus/integrations/providers/azure/models.js.map +1 -1
  622. package/dist/plus/integrations/providers/azureDevOps.d.ts +55 -9
  623. package/dist/plus/integrations/providers/azureDevOps.d.ts.map +1 -1
  624. package/dist/plus/integrations/providers/azureDevOps.js +572 -79
  625. package/dist/plus/integrations/providers/azureDevOps.js.map +1 -1
  626. package/dist/plus/integrations/providers/bitbucket/bitbucket.d.ts +13 -2
  627. package/dist/plus/integrations/providers/bitbucket/bitbucket.d.ts.map +1 -1
  628. package/dist/plus/integrations/providers/bitbucket/bitbucket.js +108 -32
  629. package/dist/plus/integrations/providers/bitbucket/bitbucket.js.map +1 -1
  630. package/dist/plus/integrations/providers/bitbucket/models.d.ts.map +1 -1
  631. package/dist/plus/integrations/providers/bitbucket/models.js.map +1 -1
  632. package/dist/plus/integrations/providers/bitbucket-server/models.d.ts +19 -1
  633. package/dist/plus/integrations/providers/bitbucket-server/models.d.ts.map +1 -1
  634. package/dist/plus/integrations/providers/bitbucket-server/models.js +20 -1
  635. package/dist/plus/integrations/providers/bitbucket-server/models.js.map +1 -1
  636. package/dist/plus/integrations/providers/bitbucket-server.d.ts +28 -4
  637. package/dist/plus/integrations/providers/bitbucket-server.d.ts.map +1 -1
  638. package/dist/plus/integrations/providers/bitbucket-server.js +110 -6
  639. package/dist/plus/integrations/providers/bitbucket-server.js.map +1 -1
  640. package/dist/plus/integrations/providers/bitbucket.d.ts +38 -4
  641. package/dist/plus/integrations/providers/bitbucket.d.ts.map +1 -1
  642. package/dist/plus/integrations/providers/bitbucket.js +330 -34
  643. package/dist/plus/integrations/providers/bitbucket.js.map +1 -1
  644. package/dist/plus/integrations/providers/github/github.d.ts.map +1 -1
  645. package/dist/plus/integrations/providers/github/github.js +1 -1
  646. package/dist/plus/integrations/providers/github/github.js.map +1 -1
  647. package/dist/plus/integrations/providers/github/github.utils.d.ts.map +1 -1
  648. package/dist/plus/integrations/providers/github/github.utils.js.map +1 -1
  649. package/dist/plus/integrations/providers/github/models.d.ts.map +1 -1
  650. package/dist/plus/integrations/providers/github/models.js.map +1 -1
  651. package/dist/plus/integrations/providers/github.d.ts +49 -6
  652. package/dist/plus/integrations/providers/github.d.ts.map +1 -1
  653. package/dist/plus/integrations/providers/github.js +289 -4
  654. package/dist/plus/integrations/providers/github.js.map +1 -1
  655. package/dist/plus/integrations/providers/gitlab/gitlab.d.ts +11 -3
  656. package/dist/plus/integrations/providers/gitlab/gitlab.d.ts.map +1 -1
  657. package/dist/plus/integrations/providers/gitlab/gitlab.js +121 -47
  658. package/dist/plus/integrations/providers/gitlab/gitlab.js.map +1 -1
  659. package/dist/plus/integrations/providers/gitlab/gitlab.utils.d.ts +6 -0
  660. package/dist/plus/integrations/providers/gitlab/gitlab.utils.d.ts.map +1 -1
  661. package/dist/plus/integrations/providers/gitlab/gitlab.utils.js +8 -0
  662. package/dist/plus/integrations/providers/gitlab/gitlab.utils.js.map +1 -1
  663. package/dist/plus/integrations/providers/gitlab/models.d.ts +10 -0
  664. package/dist/plus/integrations/providers/gitlab/models.d.ts.map +1 -1
  665. package/dist/plus/integrations/providers/gitlab/models.js +8 -5
  666. package/dist/plus/integrations/providers/gitlab/models.js.map +1 -1
  667. package/dist/plus/integrations/providers/gitlab.d.ts +50 -5
  668. package/dist/plus/integrations/providers/gitlab.d.ts.map +1 -1
  669. package/dist/plus/integrations/providers/gitlab.js +274 -8
  670. package/dist/plus/integrations/providers/gitlab.js.map +1 -1
  671. package/dist/plus/integrations/providers/jira.d.ts +13 -2
  672. package/dist/plus/integrations/providers/jira.d.ts.map +1 -1
  673. package/dist/plus/integrations/providers/jira.js +200 -30
  674. package/dist/plus/integrations/providers/jira.js.map +1 -1
  675. package/dist/plus/integrations/providers/linear.d.ts +16 -5
  676. package/dist/plus/integrations/providers/linear.d.ts.map +1 -1
  677. package/dist/plus/integrations/providers/linear.js +127 -21
  678. package/dist/plus/integrations/providers/linear.js.map +1 -1
  679. package/dist/plus/integrations/providers/models.d.ts +339 -60
  680. package/dist/plus/integrations/providers/models.d.ts.map +1 -1
  681. package/dist/plus/integrations/providers/models.js +307 -59
  682. package/dist/plus/integrations/providers/models.js.map +1 -1
  683. package/dist/plus/integrations/providers/providersApi.d.ts +144 -11
  684. package/dist/plus/integrations/providers/providersApi.d.ts.map +1 -1
  685. package/dist/plus/integrations/providers/providersApi.js +486 -55
  686. package/dist/plus/integrations/providers/providersApi.js.map +1 -1
  687. package/dist/plus/integrations/providers/trello.d.ts +47 -0
  688. package/dist/plus/integrations/providers/trello.d.ts.map +1 -0
  689. package/dist/plus/integrations/providers/trello.js +141 -0
  690. package/dist/plus/integrations/providers/trello.js.map +1 -0
  691. package/dist/plus/integrations/providers/utils/providerPaging.d.ts +29 -0
  692. package/dist/plus/integrations/providers/utils/providerPaging.d.ts.map +1 -0
  693. package/dist/plus/integrations/providers/utils/providerPaging.js +154 -0
  694. package/dist/plus/integrations/providers/utils/providerPaging.js.map +1 -0
  695. package/dist/plus/integrations/providers/utils.d.ts +21 -0
  696. package/dist/plus/integrations/providers/utils.d.ts.map +1 -1
  697. package/dist/plus/integrations/providers/utils.js +57 -6
  698. package/dist/plus/integrations/providers/utils.js.map +1 -1
  699. package/dist/plus/integrations/reads/broaden.d.ts +20 -0
  700. package/dist/plus/integrations/reads/broaden.d.ts.map +1 -0
  701. package/dist/plus/integrations/reads/broaden.js +326 -0
  702. package/dist/plus/integrations/reads/broaden.js.map +1 -0
  703. package/dist/plus/integrations/reads/context.d.ts +74 -0
  704. package/dist/plus/integrations/reads/context.d.ts.map +1 -0
  705. package/dist/plus/integrations/reads/context.js +2 -0
  706. package/dist/plus/integrations/reads/context.js.map +1 -0
  707. package/dist/plus/integrations/reads/cursors.d.ts +66 -0
  708. package/dist/plus/integrations/reads/cursors.d.ts.map +1 -0
  709. package/dist/plus/integrations/reads/cursors.js +133 -0
  710. package/dist/plus/integrations/reads/cursors.js.map +1 -0
  711. package/dist/plus/integrations/reads/drains.d.ts +60 -0
  712. package/dist/plus/integrations/reads/drains.d.ts.map +1 -0
  713. package/dist/plus/integrations/reads/drains.js +255 -0
  714. package/dist/plus/integrations/reads/drains.js.map +1 -0
  715. package/dist/plus/integrations/reads/filters.d.ts +81 -0
  716. package/dist/plus/integrations/reads/filters.d.ts.map +1 -0
  717. package/dist/plus/integrations/reads/filters.js +87 -0
  718. package/dist/plus/integrations/reads/filters.js.map +1 -0
  719. package/dist/plus/integrations/reads/hierarchy.d.ts +17 -0
  720. package/dist/plus/integrations/reads/hierarchy.d.ts.map +1 -0
  721. package/dist/plus/integrations/reads/hierarchy.js +320 -0
  722. package/dist/plus/integrations/reads/hierarchy.js.map +1 -0
  723. package/dist/plus/integrations/reads/hierarchy.utils.d.ts +77 -0
  724. package/dist/plus/integrations/reads/hierarchy.utils.d.ts.map +1 -0
  725. package/dist/plus/integrations/reads/hierarchy.utils.js +128 -0
  726. package/dist/plus/integrations/reads/hierarchy.utils.js.map +1 -0
  727. package/dist/plus/integrations/reads/issueTracker.d.ts +19 -0
  728. package/dist/plus/integrations/reads/issueTracker.d.ts.map +1 -0
  729. package/dist/plus/integrations/reads/issueTracker.js +334 -0
  730. package/dist/plus/integrations/reads/issueTracker.js.map +1 -0
  731. package/dist/plus/integrations/reads/issues.d.ts +34 -0
  732. package/dist/plus/integrations/reads/issues.d.ts.map +1 -0
  733. package/dist/plus/integrations/reads/issues.js +244 -0
  734. package/dist/plus/integrations/reads/issues.js.map +1 -0
  735. package/dist/plus/integrations/reads/paging.d.ts +136 -0
  736. package/dist/plus/integrations/reads/paging.d.ts.map +1 -0
  737. package/dist/plus/integrations/reads/paging.js +221 -0
  738. package/dist/plus/integrations/reads/paging.js.map +1 -0
  739. package/dist/plus/integrations/reads/pullRequests.d.ts +32 -0
  740. package/dist/plus/integrations/reads/pullRequests.d.ts.map +1 -0
  741. package/dist/plus/integrations/reads/pullRequests.js +151 -0
  742. package/dist/plus/integrations/reads/pullRequests.js.map +1 -0
  743. package/dist/plus/integrations/reads/resolveRepository.d.ts +25 -0
  744. package/dist/plus/integrations/reads/resolveRepository.d.ts.map +1 -0
  745. package/dist/plus/integrations/reads/resolveRepository.js +235 -0
  746. package/dist/plus/integrations/reads/resolveRepository.js.map +1 -0
  747. package/dist/plus/integrations/reads/sweeps.d.ts +11 -0
  748. package/dist/plus/integrations/reads/sweeps.d.ts.map +1 -0
  749. package/dist/plus/integrations/reads/sweeps.js +125 -0
  750. package/dist/plus/integrations/reads/sweeps.js.map +1 -0
  751. package/dist/plus/integrations/reads/warnings.d.ts +47 -0
  752. package/dist/plus/integrations/reads/warnings.d.ts.map +1 -0
  753. package/dist/plus/integrations/reads/warnings.js +81 -0
  754. package/dist/plus/integrations/reads/warnings.js.map +1 -0
  755. package/dist/plus/integrations/results.d.ts +189 -0
  756. package/dist/plus/integrations/results.d.ts.map +1 -0
  757. package/dist/plus/integrations/results.js +62 -0
  758. package/dist/plus/integrations/results.js.map +1 -0
  759. package/dist/plus/integrations/utils/domain.utils.d.ts +5 -0
  760. package/dist/plus/integrations/utils/domain.utils.d.ts.map +1 -0
  761. package/dist/plus/integrations/utils/domain.utils.js +27 -0
  762. package/dist/plus/integrations/utils/domain.utils.js.map +1 -0
  763. package/dist/plus/integrations/utils/integration.utils.d.ts +27 -1
  764. package/dist/plus/integrations/utils/integration.utils.d.ts.map +1 -1
  765. package/dist/plus/integrations/utils/integration.utils.js +86 -15
  766. package/dist/plus/integrations/utils/integration.utils.js.map +1 -1
  767. package/dist/utils/array.d.ts.map +1 -1
  768. package/dist/utils/array.js.map +1 -1
  769. package/dist/utils/brand.d.ts.map +1 -1
  770. package/dist/utils/cancellation.d.ts +13 -0
  771. package/dist/utils/cancellation.d.ts.map +1 -1
  772. package/dist/utils/cancellation.js +52 -7
  773. package/dist/utils/cancellation.js.map +1 -1
  774. package/dist/utils/charCode.d.ts.map +1 -1
  775. package/dist/utils/coalescedRun.d.ts +16 -0
  776. package/dist/utils/coalescedRun.d.ts.map +1 -0
  777. package/dist/utils/coalescedRun.js +43 -0
  778. package/dist/utils/coalescedRun.js.map +1 -0
  779. package/dist/utils/color.d.ts.map +1 -1
  780. package/dist/utils/color.js +3 -3
  781. package/dist/utils/color.js.map +1 -1
  782. package/dist/utils/date.d.ts +24 -0
  783. package/dist/utils/date.d.ts.map +1 -1
  784. package/dist/utils/date.js +62 -0
  785. package/dist/utils/date.js.map +1 -1
  786. package/dist/utils/debounce.js +1 -1
  787. package/dist/utils/debounce.js.map +1 -1
  788. package/dist/utils/decorators/debounce.d.ts.map +1 -1
  789. package/dist/utils/decorators/debounce.js.map +1 -1
  790. package/dist/utils/decorators/gate.d.ts.map +1 -1
  791. package/dist/utils/decorators/gate.js +2 -2
  792. package/dist/utils/decorators/gate.js.map +1 -1
  793. package/dist/utils/decorators/log.d.ts.map +1 -1
  794. package/dist/utils/decorators/log.js +5 -5
  795. package/dist/utils/decorators/log.js.map +1 -1
  796. package/dist/utils/decorators/memoize.d.ts.map +1 -1
  797. package/dist/utils/decorators/memoize.js +2 -2
  798. package/dist/utils/decorators/memoize.js.map +1 -1
  799. package/dist/utils/decorators/resolver.d.ts.map +1 -1
  800. package/dist/utils/decorators/resolver.js.map +1 -1
  801. package/dist/utils/decorators/sequentialize.d.ts.map +1 -1
  802. package/dist/utils/decorators/sequentialize.js +2 -2
  803. package/dist/utils/decorators/sequentialize.js.map +1 -1
  804. package/dist/utils/decorators/serializable.d.ts.map +1 -1
  805. package/dist/utils/decorators/serializable.js +1 -1
  806. package/dist/utils/decorators/serializable.js.map +1 -1
  807. package/dist/utils/dedupedAsyncCache.d.ts.map +1 -1
  808. package/dist/utils/env/browser/base64.d.ts.map +1 -1
  809. package/dist/utils/env/browser/base64.js.map +1 -1
  810. package/dist/utils/env/browser/crypto.d.ts.map +1 -1
  811. package/dist/utils/env/browser/crypto.js.map +1 -1
  812. package/dist/utils/env/browser/fs.d.ts.map +1 -1
  813. package/dist/utils/env/browser/fs.js.map +1 -1
  814. package/dist/utils/env/browser/hex.d.ts.map +1 -1
  815. package/dist/utils/env/browser/hex.js.map +1 -1
  816. package/dist/utils/env/browser/hrtime.d.ts.map +1 -1
  817. package/dist/utils/env/browser/hrtime.js.map +1 -1
  818. package/dist/utils/env/browser/logScope.d.ts.map +1 -1
  819. package/dist/utils/env/browser/logScope.js.map +1 -1
  820. package/dist/utils/env/browser/md5.d.ts.map +1 -1
  821. package/dist/utils/env/browser/md5.js.map +1 -1
  822. package/dist/utils/env/browser/platform.d.ts.map +1 -1
  823. package/dist/utils/env/browser/platform.js.map +1 -1
  824. package/dist/utils/env/node/base64.d.ts.map +1 -1
  825. package/dist/utils/env/node/base64.js.map +1 -1
  826. package/dist/utils/env/node/crypto.d.ts.map +1 -1
  827. package/dist/utils/env/node/crypto.js.map +1 -1
  828. package/dist/utils/env/node/exec.d.ts +9 -1
  829. package/dist/utils/env/node/exec.d.ts.map +1 -1
  830. package/dist/utils/env/node/exec.js +11 -4
  831. package/dist/utils/env/node/exec.js.map +1 -1
  832. package/dist/utils/env/node/fs.d.ts.map +1 -1
  833. package/dist/utils/env/node/fs.js.map +1 -1
  834. package/dist/utils/env/node/hex.d.ts.map +1 -1
  835. package/dist/utils/env/node/hex.js.map +1 -1
  836. package/dist/utils/env/node/hrtime.d.ts.map +1 -1
  837. package/dist/utils/env/node/hrtime.js.map +1 -1
  838. package/dist/utils/env/node/logScope.d.ts.map +1 -1
  839. package/dist/utils/env/node/logScope.js.map +1 -1
  840. package/dist/utils/env/node/platform.d.ts.map +1 -1
  841. package/dist/utils/env/node/platform.js.map +1 -1
  842. package/dist/utils/event.d.ts.map +1 -1
  843. package/dist/utils/event.js +18 -22
  844. package/dist/utils/event.js.map +1 -1
  845. package/dist/utils/formatter.d.ts.map +1 -1
  846. package/dist/utils/formatter.js.map +1 -1
  847. package/dist/utils/function.d.ts.map +1 -1
  848. package/dist/utils/function.js +3 -3
  849. package/dist/utils/function.js.map +1 -1
  850. package/dist/utils/hash.js.map +1 -1
  851. package/dist/utils/iterable.d.ts.map +1 -1
  852. package/dist/utils/iterable.js +2 -6
  853. package/dist/utils/iterable.js.map +1 -1
  854. package/dist/utils/lazy.d.ts.map +1 -1
  855. package/dist/utils/lazy.js.map +1 -1
  856. package/dist/utils/logger.d.ts.map +1 -1
  857. package/dist/utils/logger.js +1 -1
  858. package/dist/utils/logger.js.map +1 -1
  859. package/dist/utils/logger.scoped.js +1 -1
  860. package/dist/utils/logger.scoped.js.map +1 -1
  861. package/dist/utils/lruMap.d.ts.map +1 -1
  862. package/dist/utils/lruMap.js.map +1 -1
  863. package/dist/utils/mru.d.ts.map +1 -1
  864. package/dist/utils/mru.js.map +1 -1
  865. package/dist/utils/object.js.map +1 -1
  866. package/dist/utils/paging.d.ts +29 -0
  867. package/dist/utils/paging.d.ts.map +1 -1
  868. package/dist/utils/paging.js +18 -0
  869. package/dist/utils/paging.js.map +1 -1
  870. package/dist/utils/path.js.map +1 -1
  871. package/dist/utils/promise.d.ts +10 -0
  872. package/dist/utils/promise.d.ts.map +1 -1
  873. package/dist/utils/promise.js +26 -3
  874. package/dist/utils/promise.js.map +1 -1
  875. package/dist/utils/promiseCache.d.ts +12 -2
  876. package/dist/utils/promiseCache.d.ts.map +1 -1
  877. package/dist/utils/promiseCache.js +80 -50
  878. package/dist/utils/promiseCache.js.map +1 -1
  879. package/dist/utils/searchTree.d.ts.map +1 -1
  880. package/dist/utils/searchTree.js +4 -1
  881. package/dist/utils/searchTree.js.map +1 -1
  882. package/dist/utils/stopwatch.d.ts.map +1 -1
  883. package/dist/utils/string.js +1 -1
  884. package/dist/utils/string.js.map +1 -1
  885. package/dist/utils/subscriptionManager.d.ts.map +1 -1
  886. package/dist/utils/subscriptionManager.js.map +1 -1
  887. package/dist/utils/trie.d.ts.map +1 -1
  888. package/dist/utils/trie.js +1 -0
  889. package/dist/utils/trie.js.map +1 -1
  890. package/docs/integrations.md +372 -0
  891. package/docs/kepler-read-api-parity.md +112 -0
  892. package/package.json +238 -213
  893. package/src/git/cache.ts +75 -8
  894. package/src/git/errors.ts +36 -1
  895. package/src/git/models/commit.ts +1 -1
  896. package/src/git/models/graph.ts +147 -0
  897. package/src/git/models/graphSession.ts +205 -0
  898. package/src/git/models/issue.ts +12 -1
  899. package/src/git/models/pullRequest.ts +27 -1
  900. package/src/git/models/repository.ts +24 -1
  901. package/src/git/models/resourceDescriptor.ts +17 -0
  902. package/src/git/models/signature.ts +16 -0
  903. package/src/git/models/tag.ts +6 -1
  904. package/src/git/parsers/diffParser.ts +1 -1
  905. package/src/git/providers/branches.ts +6 -1
  906. package/src/git/providers/commits.ts +6 -1
  907. package/src/git/providers/config.ts +5 -1
  908. package/src/git/providers/graph.ts +69 -2
  909. package/src/git/providers/status.ts +1 -1
  910. package/src/git/providers/worktrees.ts +3 -1
  911. package/src/git/remotes/azure-devops.ts +29 -33
  912. package/src/git/remotes/bitbucket-server.ts +23 -25
  913. package/src/git/remotes/bitbucket.ts +23 -25
  914. package/src/git/remotes/gerrit.ts +12 -14
  915. package/src/git/remotes/gitea.ts +13 -15
  916. package/src/git/remotes/github.ts +56 -58
  917. package/src/git/remotes/gitlab.ts +102 -104
  918. package/src/git/run.types.ts +54 -4
  919. package/src/git/utils/branch.utils.ts +12 -1
  920. package/src/git/utils/contributor.utils.ts +1 -1
  921. package/src/git/utils/fileStatus.utils.ts +7 -0
  922. package/src/git/utils/graph.utils.ts +46 -0
  923. package/src/git/utils/issue.utils.ts +1 -0
  924. package/src/git/utils/pullRequest.utils.ts +9 -0
  925. package/src/git/utils/reachability.utils.ts +79 -8
  926. package/src/git/utils/sshKey.utils.ts +30 -0
  927. package/src/git/watching/watchService.ts +16 -1
  928. package/src/git/watching/watchSession.ts +20 -2
  929. package/src/git-cli/exec/git.ts +144 -42
  930. package/src/git-cli/parsers/logParser.ts +83 -1
  931. package/src/git-cli/parsers/sshSignatureParser.ts +85 -0
  932. package/src/git-cli/parsers/worktreeParser.ts +5 -7
  933. package/src/git-cli/providers/branches.ts +60 -38
  934. package/src/git-cli/providers/commits.ts +102 -9
  935. package/src/git-cli/providers/graph.ts +1771 -393
  936. package/src/git-cli/providers/pausedOperations.ts +3 -3
  937. package/src/git-cli/providers/revision.ts +42 -0
  938. package/src/git-cli/providers/status.ts +333 -178
  939. package/src/git-cli/providers/tags.ts +2 -0
  940. package/src/git-cli/providers/worktrees.ts +40 -4
  941. package/src/git-cli/service.ts +9 -0
  942. package/src/ipc/ipcServer.ts +1 -1
  943. package/src/plus/agents/providers/claudeCodeProvider.ts +25 -0
  944. package/src/plus/agents/providers/claudeCodeTranscript.ts +320 -8
  945. package/src/plus/agents/types.ts +34 -0
  946. package/src/plus/ai/constants.ts +1 -9
  947. package/src/plus/ai/models/model.ts +53 -2
  948. package/src/plus/ai/models/promptTemplates.ts +9 -2
  949. package/src/plus/ai/prompts.ts +16 -48
  950. package/src/plus/ai/providers/anthropicProvider.ts +45 -3
  951. package/src/plus/ai/providers/deepSeekProvider.ts +17 -1
  952. package/src/plus/ai/providers/geminiProvider.ts +25 -6
  953. package/src/plus/ai/providers/gitkrakenProvider.ts +2 -0
  954. package/src/plus/ai/providers/huggingFaceProvider.ts +28 -21
  955. package/src/plus/ai/providers/openAICompatibleProviderBase.ts +16 -1
  956. package/src/plus/ai/providers/xaiProvider.ts +14 -1
  957. package/src/plus/ai/utils/ai.utils.ts +0 -2
  958. package/src/plus/ai/utils/results.utils.ts +32 -0
  959. package/src/plus/ai/utils/truncation.utils.ts +0 -1
  960. package/src/plus/git-github/api/github.ts +484 -104
  961. package/src/plus/git-github/models.ts +33 -0
  962. package/src/plus/git-github/providers/github/branches.ts +6 -3
  963. package/src/plus/git-github/providers/github/diff.ts +1 -1
  964. package/src/plus/git-github/providers/github/graph.ts +131 -0
  965. package/src/plus/git-github/providers/github/tags.ts +2 -0
  966. package/src/plus/integrations/authentication/cloudIntegrationService.ts +189 -17
  967. package/src/plus/integrations/authentication/configuredIntegrationService.ts +287 -50
  968. package/src/plus/integrations/authentication/integrationAuthenticationProvider.ts +105 -31
  969. package/src/plus/integrations/authentication/integrationAuthenticationService.ts +7 -3
  970. package/src/plus/integrations/authentication/manualTokenProvider.ts +12 -5
  971. package/src/plus/integrations/authentication/models.ts +35 -1
  972. package/src/plus/integrations/collectionMetadata.ts +143 -0
  973. package/src/plus/integrations/constants.ts +21 -0
  974. package/src/plus/integrations/context.ts +8 -9
  975. package/src/plus/integrations/errors.ts +153 -0
  976. package/src/plus/integrations/index.ts +148 -51
  977. package/src/plus/integrations/integrationService.ts +940 -49
  978. package/src/plus/integrations/lite.ts +233 -0
  979. package/src/plus/integrations/manager.ts +359 -0
  980. package/src/plus/integrations/models/gitHostIntegration.ts +1005 -134
  981. package/src/plus/integrations/models/integration.ts +293 -24
  982. package/src/plus/integrations/models/issuesIntegration.ts +132 -39
  983. package/src/plus/integrations/providerFilters.ts +12 -0
  984. package/src/plus/integrations/providers/apiClients.ts +8 -11
  985. package/src/plus/integrations/providers/apiConfig.ts +71 -0
  986. package/src/plus/integrations/providers/azure/azure.ts +164 -33
  987. package/src/plus/integrations/providers/azure/models.ts +19 -6
  988. package/src/plus/integrations/providers/azureDevOps.ts +766 -101
  989. package/src/plus/integrations/providers/bitbucket/bitbucket.ts +164 -34
  990. package/src/plus/integrations/providers/bitbucket-server/models.ts +32 -1
  991. package/src/plus/integrations/providers/bitbucket-server.ts +173 -8
  992. package/src/plus/integrations/providers/bitbucket.ts +489 -45
  993. package/src/plus/integrations/providers/github/github.ts +2 -2
  994. package/src/plus/integrations/providers/github/github.utils.ts +1 -1
  995. package/src/plus/integrations/providers/github.ts +390 -6
  996. package/src/plus/integrations/providers/gitlab/gitlab.ts +170 -60
  997. package/src/plus/integrations/providers/gitlab/gitlab.utils.ts +9 -0
  998. package/src/plus/integrations/providers/gitlab/models.ts +19 -5
  999. package/src/plus/integrations/providers/gitlab.ts +369 -10
  1000. package/src/plus/integrations/providers/jira.ts +247 -42
  1001. package/src/plus/integrations/providers/linear.ts +154 -27
  1002. package/src/plus/integrations/providers/models.ts +583 -75
  1003. package/src/plus/integrations/providers/providersApi.ts +849 -86
  1004. package/src/plus/integrations/providers/trello.ts +205 -0
  1005. package/src/plus/integrations/providers/utils/providerPaging.ts +177 -0
  1006. package/src/plus/integrations/providers/utils.ts +68 -8
  1007. package/src/plus/integrations/reads/broaden.ts +452 -0
  1008. package/src/plus/integrations/reads/context.ts +99 -0
  1009. package/src/plus/integrations/reads/cursors.ts +224 -0
  1010. package/src/plus/integrations/reads/drains.ts +343 -0
  1011. package/src/plus/integrations/reads/filters.ts +124 -0
  1012. package/src/plus/integrations/reads/hierarchy.ts +473 -0
  1013. package/src/plus/integrations/reads/hierarchy.utils.ts +155 -0
  1014. package/src/plus/integrations/reads/issueTracker.ts +468 -0
  1015. package/src/plus/integrations/reads/issues.ts +409 -0
  1016. package/src/plus/integrations/reads/paging.ts +277 -0
  1017. package/src/plus/integrations/reads/pullRequests.ts +260 -0
  1018. package/src/plus/integrations/reads/resolveRepository.ts +272 -0
  1019. package/src/plus/integrations/reads/sweeps.ts +185 -0
  1020. package/src/plus/integrations/reads/warnings.ts +170 -0
  1021. package/src/plus/integrations/results.ts +275 -0
  1022. package/src/plus/integrations/utils/domain.utils.ts +26 -0
  1023. package/src/plus/integrations/utils/integration.utils.ts +93 -16
  1024. package/src/utils/brand.ts +0 -2
  1025. package/src/utils/cancellation.ts +56 -7
  1026. package/src/utils/coalescedRun.ts +45 -0
  1027. package/src/utils/color.ts +3 -3
  1028. package/src/utils/date.ts +72 -0
  1029. package/src/utils/debounce.ts +1 -1
  1030. package/src/utils/decorators/gate.ts +2 -2
  1031. package/src/utils/decorators/log.ts +5 -5
  1032. package/src/utils/decorators/memoize.ts +2 -2
  1033. package/src/utils/decorators/sequentialize.ts +2 -2
  1034. package/src/utils/decorators/serializable.ts +1 -1
  1035. package/src/utils/env/node/exec.ts +20 -5
  1036. package/src/utils/event.ts +19 -25
  1037. package/src/utils/function.ts +3 -3
  1038. package/src/utils/iterable.ts +2 -6
  1039. package/src/utils/logger.scoped.ts +1 -1
  1040. package/src/utils/logger.ts +1 -1
  1041. package/src/utils/paging.ts +46 -0
  1042. package/src/utils/promise.ts +33 -3
  1043. package/src/utils/promiseCache.ts +81 -51
  1044. package/src/utils/searchTree.ts +4 -2
  1045. package/src/utils/string.ts +1 -1
  1046. package/src/utils/trie.ts +1 -0
  1047. package/dist/plus/ai/providers/githubModelsProvider.d.ts +0 -19
  1048. package/dist/plus/ai/providers/githubModelsProvider.d.ts.map +0 -1
  1049. package/dist/plus/ai/providers/githubModelsProvider.js +0 -51
  1050. package/dist/plus/ai/providers/githubModelsProvider.js.map +0 -1
  1051. package/src/plus/ai/providers/githubModelsProvider.ts +0 -92
@@ -1,16 +1,19 @@
1
+ import type { CollectionMetadata } from '@gitkraken/provider-apis';
1
2
  import type { Account } from '../../../git/models/author.js';
2
3
  import type { AutolinkReference, DynamicAutolinkReference } from '../../../git/models/autolink.js';
3
4
  import type { Issue, IssueShape } from '../../../git/models/issue.js';
4
5
  import type { IssueOrPullRequest } from '../../../git/models/issueOrPullRequest.js';
5
6
  import type { IssueResourceDescriptor } from '../../../git/models/resourceDescriptor.js';
6
- import { filterMap, flatten } from '../../../utils/iterable.js';
7
7
  import { Logger } from '../../../utils/logger.js';
8
8
  import type { IntegrationAuthenticationProviderDescriptor } from '../authentication/integrationAuthenticationProvider.js';
9
9
  import type { ProviderAuthenticationSession } from '../authentication/models.js';
10
10
  import { toTokenWithInfo } from '../authentication/models.js';
11
+ import { toCollectionScopeFailure } from '../collectionMetadata.js';
11
12
  import { IssuesCloudHostIntegrationId } from '../constants.js';
12
13
  import { IssuesIntegration } from '../models/issuesIntegration.js';
14
+ import type { ProviderApiCollectionResult, ProviderIssue } from './models.js';
13
15
  import { IssueFilter, providersMetadata, toAccount, toIssueShape } from './models.js';
16
+ import { collectProviderPagedResult, mergeCollectionMetadata } from './utils/providerPaging.js';
14
17
 
15
18
  const metadata = providersMetadata[IssuesCloudHostIntegrationId.Jira];
16
19
  const authProvider = Object.freeze({ id: metadata.id, scopes: metadata.scopes });
@@ -133,8 +136,16 @@ export class JiraIntegration extends IssuesIntegration<IssuesCloudHostIntegratio
133
136
  resources: JiraOrganizationDescriptor[],
134
137
  force: boolean = false,
135
138
  ): Promise<JiraProjectDescriptor[] | undefined> {
139
+ return (await this.getProviderProjectsForResourcesWithMetadata(session, resources, force)).values;
140
+ }
141
+
142
+ protected override async getProviderProjectsForResourcesWithMetadata(
143
+ session: ProviderAuthenticationSession,
144
+ resources: JiraOrganizationDescriptor[],
145
+ force: boolean = false,
146
+ ): Promise<ProviderApiCollectionResult<JiraProjectDescriptor>> {
136
147
  const { accessToken } = session;
137
- this._projects ??= new Map<string, JiraProjectDescriptor[] | undefined>();
148
+ const projectsCache = (this._projects ??= new Map<string, JiraProjectDescriptor[] | undefined>());
138
149
 
139
150
  let resourcesWithoutProjects = [];
140
151
  if (force) {
@@ -142,92 +153,286 @@ export class JiraIntegration extends IssuesIntegration<IssuesCloudHostIntegratio
142
153
  } else {
143
154
  for (const resource of resources) {
144
155
  const resourceKey = `${accessToken}:${resource.id}`;
145
- const cachedProjects = this._projects.get(resourceKey);
156
+ const cachedProjects = projectsCache.get(resourceKey);
146
157
  if (cachedProjects == null) {
147
158
  resourcesWithoutProjects.push(resource);
148
159
  }
149
160
  }
150
161
  }
151
162
 
163
+ let metadata: CollectionMetadata | undefined;
164
+ const partialProjects: JiraProjectDescriptor[] = [];
152
165
  if (resourcesWithoutProjects.length > 0) {
153
166
  const api = await this.getProvidersApi();
154
- const jiraProjectBaseDescriptors = await api.getJiraProjectsForResources(
155
- toTokenWithInfo(this.id, session),
156
- resourcesWithoutProjects.map(r => r.id),
167
+ const tokenWithInfo = toTokenWithInfo(this.id, session);
168
+ const drains = await Promise.allSettled(
169
+ resourcesWithoutProjects.map(async resource => ({
170
+ resource: resource,
171
+ result: await collectProviderPagedResult(
172
+ cursor => api.getJiraProjectsForResource(tokenWithInfo, resource.id, { cursor: cursor }),
173
+ maxPagesPerRequest,
174
+ { providerId: this.id, resourceId: resource.id },
175
+ ),
176
+ })),
157
177
  );
158
178
 
159
- for (const resource of resourcesWithoutProjects) {
160
- const projects = jiraProjectBaseDescriptors?.filter(p => p.resourceId === resource.id);
161
- if (projects != null) {
162
- this._projects.set(
163
- `${accessToken}:${resource.id}`,
164
- projects.map(p => ({ ...p })),
165
- );
179
+ drains.forEach((drain, index) => {
180
+ if (drain.status === 'rejected') {
181
+ const resource = resourcesWithoutProjects[index];
182
+ if (resource == null) return;
183
+
184
+ metadata = mergeCollectionMetadata(metadata, {
185
+ completeness: 'partial',
186
+ failures: [
187
+ toCollectionScopeFailure({ providerId: this.id, resourceId: resource.id }, drain.reason),
188
+ ],
189
+ });
190
+ return;
166
191
  }
167
- }
192
+
193
+ const { resource, result } = drain.value;
194
+ metadata = mergeCollectionMetadata(metadata, result.metadata);
195
+ const projects = result.values
196
+ .filter(project => project.resourceId === resource.id)
197
+ .map(project => ({ ...project }));
198
+ const incomplete =
199
+ result.truncated === true ||
200
+ (result.metadata != null && result.metadata.completeness !== 'complete');
201
+ if (incomplete) {
202
+ partialProjects.push(...projects);
203
+ if (
204
+ result.truncated === true &&
205
+ (result.metadata == null || result.metadata.completeness === 'complete')
206
+ ) {
207
+ metadata = mergeCollectionMetadata(metadata, { completeness: 'partial' });
208
+ }
209
+ return;
210
+ }
211
+
212
+ projectsCache.set(`${accessToken}:${resource.id}`, projects);
213
+ });
168
214
  }
169
215
 
170
- return resources.reduce<JiraProjectDescriptor[]>((projects, resource) => {
171
- const resourceProjects = this._projects!.get(`${accessToken}:${resource.id}`);
216
+ const values = resources.reduce<JiraProjectDescriptor[]>((projects, resource) => {
217
+ const resourceProjects = projectsCache.get(`${accessToken}:${resource.id}`);
172
218
  if (resourceProjects != null) {
173
219
  projects.push(...resourceProjects);
174
220
  }
175
221
  return projects;
176
- }, []);
222
+ }, partialProjects);
223
+
224
+ const projectsByIdentity = new Map<string, JiraProjectDescriptor>();
225
+ for (const project of values) {
226
+ const identity = `${project.resourceId}:${project.id}`;
227
+ if (!projectsByIdentity.has(identity)) {
228
+ projectsByIdentity.set(identity, project);
229
+ }
230
+ }
231
+ return { values: [...projectsByIdentity.values()], metadata: metadata };
177
232
  }
178
233
 
179
234
  protected override async getProviderIssuesForProject(
180
235
  session: ProviderAuthenticationSession,
181
236
  project: JiraProjectDescriptor,
182
- options?: { user: string; filters: IssueFilter[] },
237
+ options?: { user?: string; filters?: IssueFilter[] },
183
238
  ): Promise<IssueShape[] | undefined> {
184
- let results;
239
+ return (await this.getProviderIssuesForProjectWithTruncation(session, project, options))?.values;
240
+ }
241
+
242
+ protected override async getProviderIssuesForProjectWithTruncation(
243
+ session: ProviderAuthenticationSession,
244
+ project: JiraProjectDescriptor,
245
+ options?: { user?: string; filters?: IssueFilter[] },
246
+ ): Promise<{ values: IssueShape[]; truncated: boolean; metadata?: CollectionMetadata } | undefined> {
185
247
  const tokenWithInfo = toTokenWithInfo(this.id, session);
186
248
 
187
249
  const api = await this.getProvidersApi();
188
250
 
251
+ // Drain every page for a project read (bounded by a defensive backstop): the paged wrapper preserves the
252
+ // SDK's cursor, unlike the plain read which silently caps at the first page. `filter` undefined = the
253
+ // unscoped project read. Reports `truncated` when the drain stopped at the backstop with more pages
254
+ // still available, and records a structured failure if a page-level error discarded the rest of the drain,
255
+ // so the facade can warn + set fetchFailed while preserving the already-fetched prefix.
256
+ const projectScope = {
257
+ providerId: this.id,
258
+ resourceId: project.resourceId,
259
+ projectId: project.name,
260
+ };
261
+ const drainIssues = async (scope: {
262
+ authorLogin?: string;
263
+ assigneeLogins?: string[];
264
+ mentionLogin?: string;
265
+ }): Promise<{ issues: ProviderIssue[]; truncated: boolean; metadata?: CollectionMetadata }> => {
266
+ const collected: ProviderIssue[] = [];
267
+ let cursor: string | undefined;
268
+ let truncated = false;
269
+ let metadata: CollectionMetadata | undefined;
270
+ for (let i = 0; i < maxPagesPerRequest; i++) {
271
+ let result: Awaited<ReturnType<typeof api.getIssuesForProjectPaged>> | undefined;
272
+ try {
273
+ result = await api.getIssuesForProjectPaged(tokenWithInfo, project.name, project.resourceId, {
274
+ ...scope,
275
+ cursor: cursor,
276
+ });
277
+ } catch (ex) {
278
+ // A page failure after the first page leaves the already-drained prefix intact; record the
279
+ // failure at the project scope instead of re-throwing and discarding the prefix. If nothing was
280
+ // fetched yet, the original throw behavior is preserved so the caller sees a hard error rather
281
+ // than an empty partial success.
282
+ if (collected.length === 0) throw ex;
283
+
284
+ truncated = true;
285
+ metadata = mergeCollectionMetadata(metadata, {
286
+ completeness: 'partial',
287
+ failures: [toCollectionScopeFailure(projectScope, ex)],
288
+ });
289
+ break;
290
+ }
291
+ if (result == null) {
292
+ if (cursor == null) break;
293
+
294
+ truncated = true;
295
+ metadata = mergeCollectionMetadata(metadata, {
296
+ completeness: 'partial',
297
+ failures: [
298
+ toCollectionScopeFailure(
299
+ projectScope,
300
+ new Error('Jira returned no page after advertising a continuation'),
301
+ ),
302
+ ],
303
+ });
304
+ break;
305
+ }
306
+
307
+ collected.push(...result.data);
308
+ if (!result.hasMore) break;
309
+
310
+ // The provider claims more pages but gave no advancing cursor: we can't continue, so the drain
311
+ // is incomplete — flag it rather than silently stopping (matches drainPullRequests/Repositories).
312
+ if (result.nextCursor == null || result.nextCursor === cursor) {
313
+ truncated = true;
314
+ metadata = mergeCollectionMetadata(metadata, {
315
+ completeness: 'partial',
316
+ failures: [
317
+ toCollectionScopeFailure(
318
+ projectScope,
319
+ new Error('Jira returned no advancing issue continuation'),
320
+ ),
321
+ ],
322
+ });
323
+ break;
324
+ }
325
+
326
+ cursor = result.nextCursor;
327
+ // More pages remain but we're at the last allowed iteration: the drain is incomplete.
328
+ if (i === maxPagesPerRequest - 1) {
329
+ truncated = true;
330
+ }
331
+ }
332
+ return { issues: collected, truncated: truncated, metadata: metadata };
333
+ };
334
+
189
335
  const getSearchedUserIssuesForFilter = async (
190
336
  user: string,
191
337
  filter: IssueFilter,
192
- ): Promise<IssueShape[] | undefined> => {
193
- const results = await api.getIssuesForProject(tokenWithInfo, project.name, project.resourceId, {
338
+ ): Promise<{ issues: IssueShape[]; truncated: boolean; metadata?: CollectionMetadata }> => {
339
+ const result = await drainIssues({
194
340
  authorLogin: filter === IssueFilter.Author ? user : undefined,
195
341
  assigneeLogins: filter === IssueFilter.Assignee ? [user] : undefined,
196
342
  mentionLogin: filter === IssueFilter.Mention ? user : undefined,
197
343
  });
198
344
 
199
- return results
200
- ?.map(issue => toIssueShape(issue, this))
201
- .filter((result): result is IssueShape => result !== undefined);
345
+ return {
346
+ issues: result.issues
347
+ .map(issue => toIssueShape(issue, this))
348
+ .filter((r): r is IssueShape => r !== undefined),
349
+ truncated: result.truncated,
350
+ metadata: result.metadata,
351
+ };
202
352
  };
203
353
 
204
- if (options?.user != null && options.filters.length > 0) {
205
- const resultsPromise = Promise.allSettled(
206
- options.filters.map(filter => getSearchedUserIssuesForFilter(options.user, filter)),
354
+ if (options?.user != null) {
355
+ const user = options.user;
356
+ // A resolved user always scopes the read. Default to the assignee filter ("my issues") when no
357
+ // explicit filters are given — otherwise a caller that scopes by user but omits filters would fall
358
+ // through to the unscoped fetch below and get every issue in the project instead of the user's.
359
+ const filters = options.filters?.length ? options.filters : [IssueFilter.Assignee];
360
+ const settled = await Promise.allSettled(
361
+ filters.map(filter => getSearchedUserIssuesForFilter(user, filter)),
207
362
  );
208
363
 
209
- results = [
210
- ...flatten(
211
- filterMap(await resultsPromise, r =>
212
- r.status === 'fulfilled' && r.value != null ? r.value : undefined,
213
- ),
214
- ),
215
- ];
364
+ // If every filter branch rejected, the read failed outright — propagate the first rejection instead
365
+ // of returning an empty list, which the facade (getIssuesForProjectResult → runCaptured) would
366
+ // otherwise surface as a successful "no issues" rather than a warning + fetchFailed. The first
367
+ // reason is re-thrown as-is (not wrapped in an AggregateError) so the facade can still classify it
368
+ // by type (auth/rate-limit) — wrapping would collapse every failure to a generic 'other'. The
369
+ // remaining reasons would otherwise be discarded, so log them here to keep them diagnosable.
370
+ if (settled.every(r => r.status === 'rejected')) {
371
+ for (let i = 1; i < settled.length; i++) {
372
+ const outcome = settled[i];
373
+ if (outcome.status === 'rejected') {
374
+ Logger.error(
375
+ outcome.reason,
376
+ `getProviderIssuesForProjectWithTruncation: filter '${filters[i]}' failed`,
377
+ );
378
+ }
379
+ }
380
+ throw settled[0].status === 'rejected' ? settled[0].reason : new Error('Jira issue read failed');
381
+ }
216
382
 
383
+ let truncated = false;
384
+ let metadata: CollectionMetadata | undefined;
217
385
  const resultsById = new Map<string, IssueShape>();
218
- for (const resultIssue of results) {
219
- if (!resultsById.has(resultIssue.id)) {
220
- resultsById.set(resultIssue.id, resultIssue);
386
+ for (let i = 0; i < settled.length; i++) {
387
+ const outcome = settled[i];
388
+ const filter = filters[i];
389
+ // A rejected filter branch (with at least one sibling succeeding) means this project's issues are
390
+ // incomplete: keep the sibling results but record a structured failure so the facade can warn on
391
+ // the specific filter (auth/rate-limit) instead of just a generic truncation flag.
392
+ if (outcome.status !== 'fulfilled') {
393
+ truncated = true;
394
+ const failure = toCollectionScopeFailure(
395
+ { providerId: this.id, resourceId: project.resourceId, projectId: project.name },
396
+ outcome.reason,
397
+ );
398
+ metadata = mergeCollectionMetadata(metadata, {
399
+ completeness: 'partial',
400
+ failures: [
401
+ {
402
+ ...failure,
403
+ message: `Issue filter '${filter}' could not be read${
404
+ failure.message != null ? `: ${failure.message}` : ''
405
+ }`,
406
+ },
407
+ ],
408
+ });
409
+ continue;
410
+ }
411
+
412
+ if (outcome.value.truncated) {
413
+ truncated = true;
414
+ }
415
+ if (outcome.value.metadata != null) {
416
+ metadata = mergeCollectionMetadata(metadata, outcome.value.metadata);
417
+ }
418
+ for (const resultIssue of outcome.value.issues) {
419
+ if (!resultsById.has(resultIssue.id)) {
420
+ resultsById.set(resultIssue.id, resultIssue);
421
+ }
221
422
  }
222
423
  }
223
424
 
224
- return [...resultsById.values()];
425
+ return { values: [...resultsById.values()], truncated: truncated, metadata: metadata };
225
426
  }
226
427
 
227
- results = await api.getIssuesForProject(tokenWithInfo, project.name, project.resourceId);
228
- return results
229
- ?.map(issue => toIssueShape(issue, this))
230
- .filter((result): result is IssueShape => result !== undefined);
428
+ const unscoped = await drainIssues({});
429
+ return {
430
+ values: unscoped.issues
431
+ .map(issue => toIssueShape(issue, this))
432
+ .filter((result): result is IssueShape => result !== undefined),
433
+ truncated: unscoped.truncated,
434
+ metadata: unscoped.metadata,
435
+ };
231
436
  }
232
437
 
233
438
  protected override async searchProviderMyIssues(
@@ -1,3 +1,4 @@
1
+ import type { CollectionMetadata } from '@gitkraken/provider-apis';
1
2
  import type { Account } from '../../../git/models/author.js';
2
3
  import type { AutolinkReference, DynamicAutolinkReference } from '../../../git/models/autolink.js';
3
4
  import type { Issue, IssueShape } from '../../../git/models/issue.js';
@@ -8,14 +9,18 @@ import { Logger } from '../../../utils/logger.js';
8
9
  import type { IntegrationAuthenticationProviderDescriptor } from '../authentication/integrationAuthenticationProvider.js';
9
10
  import type { ProviderAuthenticationSession } from '../authentication/models.js';
10
11
  import { toTokenWithInfo } from '../authentication/models.js';
12
+ import { toCollectionScopeFailure } from '../collectionMetadata.js';
11
13
  import { IssuesCloudHostIntegrationId } from '../constants.js';
14
+ import { IntegrationReadUnavailableError } from '../errors.js';
12
15
  import { IssuesIntegration } from '../models/issuesIntegration.js';
13
- import type { IssueFilter, ProviderIssue } from './models.js';
16
+ import type { IssueFilter, ProviderApiCollectionResult, ProviderIssue } from './models.js';
14
17
  import { fromProviderIssue, providersMetadata, toIssueShape } from './models.js';
18
+ import { mergeCollectionMetadata } from './utils/providerPaging.js';
15
19
 
16
20
  const metadata = providersMetadata[IssuesCloudHostIntegrationId.Linear];
17
21
  const authProvider = Object.freeze({ id: metadata.id, scopes: metadata.scopes });
18
22
  const maxPagesPerRequest = 10;
23
+ const linearImplicitTeamsPageSize = 50;
19
24
 
20
25
  export interface LinearTeamDescriptor extends IssueResourceDescriptor {
21
26
  avatarUrl: string | undefined;
@@ -111,54 +116,176 @@ export class LinearIntegration extends IssuesIntegration<IssuesCloudHostIntegrat
111
116
  session: ProviderAuthenticationSession,
112
117
  force: boolean = false,
113
118
  ): Promise<LinearTeamDescriptor[] | undefined> {
119
+ return (await this.getTeamsWithMetadata(session, force))?.values;
120
+ }
121
+
122
+ private async getTeamsWithMetadata(
123
+ session: ProviderAuthenticationSession,
124
+ force: boolean = false,
125
+ ): Promise<ProviderApiCollectionResult<LinearTeamDescriptor> | undefined> {
114
126
  const { accessToken } = session;
115
127
  this._teams ??= new Map<string, LinearTeamDescriptor[] | undefined>();
116
128
 
117
129
  const cachedResources = this._teams.get(accessToken);
130
+ if (cachedResources != null && !force) return { values: cachedResources };
118
131
 
119
- if (cachedResources == null || force) {
120
- const api = await this.getProvidersApi();
121
- const teams = await api.getLinearTeamsForCurrentUser(toTokenWithInfo(this.id, session));
122
- const descriptors: LinearTeamDescriptor[] | undefined = teams?.map(t => ({
123
- id: t.id,
124
- key: t.key,
125
- name: t.name,
126
- avatarUrl: t.iconUrl,
127
- }));
128
- if (descriptors) {
129
- this._teams.set(accessToken, descriptors);
130
- }
132
+ const api = await this.getProvidersApi();
133
+ const teams = await api.getLinearTeamsForCurrentUser(toTokenWithInfo(this.id, session));
134
+ const descriptors: LinearTeamDescriptor[] | undefined = teams?.map(t => ({
135
+ id: t.id,
136
+ key: t.key,
137
+ name: t.name,
138
+ avatarUrl: t.iconUrl,
139
+ }));
140
+ if (descriptors == null) return undefined;
141
+
142
+ // provider-apis currently requests Linear's teams connection without pageInfo or a cursor. Linear's
143
+ // implicit page size is 50, so exactly a full page cannot prove there is no team 51. Preserve the useful
144
+ // prefix, but mark it unknown and leave it uncached so the next read retries instead of treating it as
145
+ // authoritative. Once provider-apis exposes a paged primitive, replace this fail-closed guard with a drain.
146
+ if (descriptors.length >= linearImplicitTeamsPageSize) {
147
+ return { values: descriptors, metadata: { completeness: 'unknown' } };
131
148
  }
132
149
 
133
- return this._teams.get(accessToken);
150
+ this._teams.set(accessToken, descriptors);
151
+ return { values: descriptors };
134
152
  }
135
153
 
136
- protected override getProviderResourcesForUser(
137
- _session: ProviderAuthenticationSession,
154
+ protected override async getProviderResourcesForUser(
155
+ session: ProviderAuthenticationSession,
138
156
  ): Promise<ResourceDescriptor[] | undefined> {
139
- throw new Error('Method not implemented.');
157
+ const organization = await this.getOrganization(session);
158
+ return organization != null ? [organization] : undefined;
140
159
  }
141
160
  protected override getProviderProjectsForResources(
142
- _session: ProviderAuthenticationSession,
161
+ session: ProviderAuthenticationSession,
143
162
  _resources: ResourceDescriptor[],
144
163
  ): Promise<ResourceDescriptor[] | undefined> {
145
- throw new Error('Method not implemented.');
164
+ return this.getTeams(session);
165
+ }
166
+ protected override async getProviderProjectsForResourcesWithMetadata(
167
+ session: ProviderAuthenticationSession,
168
+ _resources: ResourceDescriptor[],
169
+ ): Promise<ProviderApiCollectionResult<ResourceDescriptor>> {
170
+ return (await this.getTeamsWithMetadata(session)) ?? { values: [] };
146
171
  }
147
172
  readonly authProvider: IntegrationAuthenticationProviderDescriptor = authProvider;
148
173
 
149
- protected override getProviderAccountForResource(
150
- _session: ProviderAuthenticationSession,
174
+ protected override async getProviderAccountForResource(
175
+ session: ProviderAuthenticationSession,
151
176
  _resource: ResourceDescriptor,
152
177
  ): Promise<Account | undefined> {
153
- throw new Error('Method not implemented.');
178
+ const api = await this.getProvidersApi();
179
+ // Linear's viewer isn't a ProviderAccount (no username/avatar), so build the Account manually
180
+ // (Trello-style) from the fields the viewer query returns.
181
+ const user = await api.getLinearCurrentUser(toTokenWithInfo(this.id, session));
182
+ if (user == null) return undefined;
183
+
184
+ return {
185
+ provider: this,
186
+ id: user.id,
187
+ name: user.name ?? user.displayName ?? undefined,
188
+ username: user.displayName ?? undefined,
189
+ email: user.email ?? undefined,
190
+ avatarUrl: undefined,
191
+ };
154
192
  }
155
193
 
156
- protected override getProviderIssuesForProject(
157
- _session: ProviderAuthenticationSession,
158
- _project: ResourceDescriptor,
159
- _options?: { user?: string; filters?: IssueFilter[] },
194
+ protected override async getProviderIssuesForProject(
195
+ session: ProviderAuthenticationSession,
196
+ project: ResourceDescriptor,
197
+ options?: { user?: string; filters?: IssueFilter[] },
160
198
  ): Promise<IssueShape[] | undefined> {
161
- throw new Error('Method not implemented.');
199
+ return (await this.getProviderIssuesForProjectWithTruncation(session, project, options))?.values;
200
+ }
201
+
202
+ protected override async getProviderIssuesForProjectWithTruncation(
203
+ session: ProviderAuthenticationSession,
204
+ project: ResourceDescriptor,
205
+ options?: { user?: string; filters?: IssueFilter[] },
206
+ ): Promise<{ values: IssueShape[]; truncated: boolean; metadata?: CollectionMetadata } | undefined> {
207
+ if (!isIssueResourceDescriptor(project)) return undefined;
208
+
209
+ const api = await this.getProvidersApi();
210
+ // `getProviderProjectsForResources` returns Linear teams, so `project.id` is a team id here. Drain the
211
+ // team's issues (Linear pages by cursor); bounded by maxPagesPerRequest as a backstop. `truncated` is
212
+ // set when that backstop stopped the drain with more pages still available.
213
+ let cursor: string | undefined;
214
+ let hasMore: boolean;
215
+ let requestCount = 0;
216
+ let truncated = false;
217
+ let collectionMetadata: CollectionMetadata | undefined;
218
+ const issues: IssueShape[] = [];
219
+ do {
220
+ let result: Awaited<ReturnType<typeof api.getLinearIssues>>;
221
+ try {
222
+ result = await api.getLinearIssues(
223
+ toTokenWithInfo(this.id, session),
224
+ { teams: [project.id] },
225
+ { cursor: cursor },
226
+ );
227
+ } catch (ex) {
228
+ // A page failure after the first page leaves the already-drained prefix intact; record the
229
+ // failure at the project scope instead of re-throwing and discarding the prefix. If nothing was
230
+ // fetched yet, preserve the original throw behavior so the caller sees a hard error.
231
+ if (issues.length === 0) throw ex;
232
+
233
+ truncated = true;
234
+ collectionMetadata = mergeCollectionMetadata(collectionMetadata, {
235
+ completeness: 'partial',
236
+ failures: [toCollectionScopeFailure({ providerId: this.id, projectId: project.id }, ex)],
237
+ });
238
+ break;
239
+ }
240
+ requestCount += 1;
241
+ hasMore = result.paging?.more ?? false;
242
+ const nextCursor = result.paging?.cursor;
243
+ for (const issue of result.values) {
244
+ const shape = toIssueShape(issue, this);
245
+ if (shape != null) {
246
+ issues.push(shape);
247
+ }
248
+ }
249
+ // The provider claims more but returns no advancing cursor: we can't continue without re-reading the
250
+ // same page, so the drain is incomplete — flag it rather than silently stopping.
251
+ if (hasMore && (nextCursor == null || nextCursor === cursor)) {
252
+ truncated = true;
253
+ break;
254
+ }
255
+
256
+ cursor = nextCursor;
257
+ // More pages remain but we've hit the backstop: the drain is incomplete.
258
+ if (hasMore && requestCount >= maxPagesPerRequest) {
259
+ truncated = true;
260
+ }
261
+ } while (requestCount < maxPagesPerRequest && hasMore);
262
+
263
+ // Linear's issue list has no server-side author/assignee filter, so scope to the current user
264
+ // client-side when a user was requested (the assignee filter is what "my issues" means here).
265
+ // Match on the viewer's stable id, not the passed display name: Linear's `name` (full name) and
266
+ // `displayName` (nickname) are distinct fields, and assignees are normalized with `.name` = the full
267
+ // name while the caller's `user` is the displayName — so a name string can miss. The assignee `.id`
268
+ // is the Linear user id, which is unambiguous.
269
+ if (options?.user != null) {
270
+ const viewerId = (await api.getLinearCurrentUser(toTokenWithInfo(this.id, session)))?.id;
271
+ // If the viewer can't be resolved we can't scope to "my issues" — returning the unfiltered team
272
+ // issues would leak everyone else's, and returning [] is indistinguishable from "no issues assigned
273
+ // to me". Throw so the facade (getIssuesForProjectResult → runCaptured) surfaces a warning +
274
+ // fetchFailed the caller can act on, instead of a silent empty.
275
+ if (viewerId == null) {
276
+ throw new IntegrationReadUnavailableError(
277
+ metadata.name,
278
+ 'could not resolve the current user to scope issues to',
279
+ );
280
+ }
281
+ return {
282
+ values: issues.filter(issue => issue.assignees?.some(a => a.id === viewerId)),
283
+ truncated: truncated,
284
+ metadata: collectionMetadata,
285
+ };
286
+ }
287
+
288
+ return { values: issues, truncated: truncated, metadata: collectionMetadata };
162
289
  }
163
290
 
164
291
  override get id(): IssuesCloudHostIntegrationId.Linear {