@gitkraken/core-gitlens 0.5.109 → 0.5.111

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 (416) hide show
  1. package/CHANGELOG.md +48 -1
  2. package/dist/git/cache.d.ts +111 -6
  3. package/dist/git/cache.d.ts.map +1 -1
  4. package/dist/git/cache.js +312 -43
  5. package/dist/git/cache.js.map +1 -1
  6. package/dist/git/context.d.ts +11 -0
  7. package/dist/git/context.d.ts.map +1 -1
  8. package/dist/git/context.js.map +1 -1
  9. package/dist/git/models/fileStatus.d.ts +1 -0
  10. package/dist/git/models/fileStatus.d.ts.map +1 -1
  11. package/dist/git/models/fileStatus.js +1 -0
  12. package/dist/git/models/fileStatus.js.map +1 -1
  13. package/dist/git/models/issue.d.ts +4 -0
  14. package/dist/git/models/issue.d.ts.map +1 -1
  15. package/dist/git/models/mergeConflicts.d.ts +2 -0
  16. package/dist/git/models/mergeConflicts.d.ts.map +1 -1
  17. package/dist/git/models/pullRequest.d.ts +119 -2
  18. package/dist/git/models/pullRequest.d.ts.map +1 -1
  19. package/dist/git/models/pullRequest.js +27 -1
  20. package/dist/git/models/pullRequest.js.map +1 -1
  21. package/dist/git/models/repository.d.ts +32 -5
  22. package/dist/git/models/repository.d.ts.map +1 -1
  23. package/dist/git/models/repository.js +58 -12
  24. package/dist/git/models/repository.js.map +1 -1
  25. package/dist/git/models/statusFile.d.ts.map +1 -1
  26. package/dist/git/models/statusFile.js +3 -0
  27. package/dist/git/models/statusFile.js.map +1 -1
  28. package/dist/git/providers/branches.d.ts +2 -0
  29. package/dist/git/providers/branches.d.ts.map +1 -1
  30. package/dist/git/providers/commits.d.ts +8 -0
  31. package/dist/git/providers/commits.d.ts.map +1 -1
  32. package/dist/git/providers/config.d.ts +19 -1
  33. package/dist/git/providers/config.d.ts.map +1 -1
  34. package/dist/git/providers/operations.d.ts +1 -0
  35. package/dist/git/providers/operations.d.ts.map +1 -1
  36. package/dist/git/providers/pausedOperations.d.ts +2 -0
  37. package/dist/git/providers/pausedOperations.d.ts.map +1 -1
  38. package/dist/git/providers/status.d.ts +1 -0
  39. package/dist/git/providers/status.d.ts.map +1 -1
  40. package/dist/git/utils/config.utils.d.ts +3 -0
  41. package/dist/git/utils/config.utils.d.ts.map +1 -0
  42. package/dist/git/utils/config.utils.js +8 -0
  43. package/dist/git/utils/config.utils.js.map +1 -0
  44. package/dist/git/utils/issue.utils.d.ts.map +1 -1
  45. package/dist/git/utils/issue.utils.js +2 -0
  46. package/dist/git/utils/issue.utils.js.map +1 -1
  47. package/dist/git/utils/pausedOperationStatus.utils.d.ts +14 -0
  48. package/dist/git/utils/pausedOperationStatus.utils.d.ts.map +1 -1
  49. package/dist/git/utils/pausedOperationStatus.utils.js +23 -0
  50. package/dist/git/utils/pausedOperationStatus.utils.js.map +1 -1
  51. package/dist/git/utils/pullRequest.utils.d.ts +24 -1
  52. package/dist/git/utils/pullRequest.utils.d.ts.map +1 -1
  53. package/dist/git/utils/pullRequest.utils.js +71 -0
  54. package/dist/git/utils/pullRequest.utils.js.map +1 -1
  55. package/dist/git/watching/changeEvent.d.ts +6 -1
  56. package/dist/git/watching/changeEvent.d.ts.map +1 -1
  57. package/dist/git/watching/classifyChange.d.ts.map +1 -1
  58. package/dist/git/watching/classifyChange.js +14 -1
  59. package/dist/git/watching/classifyChange.js.map +1 -1
  60. package/dist/git/watching/watchService.d.ts.map +1 -1
  61. package/dist/git/watching/watchService.js +18 -3
  62. package/dist/git/watching/watchService.js.map +1 -1
  63. package/dist/git/watching/watchSession.d.ts +8 -1
  64. package/dist/git/watching/watchSession.d.ts.map +1 -1
  65. package/dist/git/watching/watchSession.js +38 -6
  66. package/dist/git/watching/watchSession.js.map +1 -1
  67. package/dist/git/watching/watcherPatterns.d.ts +2 -2
  68. package/dist/git/watching/watcherPatterns.d.ts.map +1 -1
  69. package/dist/git/watching/watcherPatterns.js +1 -1
  70. package/dist/git/watching/watcherPatterns.js.map +1 -1
  71. package/dist/git-cli/exec/git.d.ts +1 -1
  72. package/dist/git-cli/exec/git.d.ts.map +1 -1
  73. package/dist/git-cli/exec/git.js +13 -3
  74. package/dist/git-cli/exec/git.js.map +1 -1
  75. package/dist/git-cli/providers/branches.d.ts +19 -0
  76. package/dist/git-cli/providers/branches.d.ts.map +1 -1
  77. package/dist/git-cli/providers/branches.js +282 -78
  78. package/dist/git-cli/providers/branches.js.map +1 -1
  79. package/dist/git-cli/providers/commits.d.ts +4 -0
  80. package/dist/git-cli/providers/commits.d.ts.map +1 -1
  81. package/dist/git-cli/providers/commits.js +84 -11
  82. package/dist/git-cli/providers/commits.js.map +1 -1
  83. package/dist/git-cli/providers/config.d.ts +42 -0
  84. package/dist/git-cli/providers/config.d.ts.map +1 -1
  85. package/dist/git-cli/providers/config.js +186 -5
  86. package/dist/git-cli/providers/config.js.map +1 -1
  87. package/dist/git-cli/providers/contributors.d.ts.map +1 -1
  88. package/dist/git-cli/providers/contributors.js +1 -1
  89. package/dist/git-cli/providers/contributors.js.map +1 -1
  90. package/dist/git-cli/providers/graph.d.ts +2 -2
  91. package/dist/git-cli/providers/graph.d.ts.map +1 -1
  92. package/dist/git-cli/providers/graph.js +27 -9
  93. package/dist/git-cli/providers/graph.js.map +1 -1
  94. package/dist/git-cli/providers/operations.d.ts.map +1 -1
  95. package/dist/git-cli/providers/operations.js +40 -12
  96. package/dist/git-cli/providers/operations.js.map +1 -1
  97. package/dist/git-cli/providers/pausedOperations.d.ts +5 -0
  98. package/dist/git-cli/providers/pausedOperations.d.ts.map +1 -1
  99. package/dist/git-cli/providers/pausedOperations.js +87 -16
  100. package/dist/git-cli/providers/pausedOperations.js.map +1 -1
  101. package/dist/git-cli/providers/refs.d.ts +5 -3
  102. package/dist/git-cli/providers/refs.d.ts.map +1 -1
  103. package/dist/git-cli/providers/refs.js +33 -4
  104. package/dist/git-cli/providers/refs.js.map +1 -1
  105. package/dist/git-cli/providers/status.d.ts +1 -0
  106. package/dist/git-cli/providers/status.d.ts.map +1 -1
  107. package/dist/git-cli/providers/status.js +18 -3
  108. package/dist/git-cli/providers/status.js.map +1 -1
  109. package/dist/git-cli/providers/worktrees.d.ts.map +1 -1
  110. package/dist/git-cli/providers/worktrees.js +4 -0
  111. package/dist/git-cli/providers/worktrees.js.map +1 -1
  112. package/dist/git-cli/service.d.ts.map +1 -1
  113. package/dist/git-cli/service.js.map +1 -1
  114. package/dist/plus/agents/providers/claudeCodeProvider.d.ts +39 -1
  115. package/dist/plus/agents/providers/claudeCodeProvider.d.ts.map +1 -1
  116. package/dist/plus/agents/providers/claudeCodeProvider.js +978 -71
  117. package/dist/plus/agents/providers/claudeCodeProvider.js.map +1 -1
  118. package/dist/plus/agents/providers/claudeCodeTranscript.d.ts +24 -2
  119. package/dist/plus/agents/providers/claudeCodeTranscript.d.ts.map +1 -1
  120. package/dist/plus/agents/providers/claudeCodeTranscript.js +84 -9
  121. package/dist/plus/agents/providers/claudeCodeTranscript.js.map +1 -1
  122. package/dist/plus/agents/types.d.ts +37 -2
  123. package/dist/plus/agents/types.d.ts.map +1 -1
  124. package/dist/plus/agents/types.js +2 -0
  125. package/dist/plus/agents/types.js.map +1 -1
  126. package/dist/plus/ai/errors.d.ts +10 -0
  127. package/dist/plus/ai/errors.d.ts.map +1 -1
  128. package/dist/plus/ai/errors.js +29 -0
  129. package/dist/plus/ai/errors.js.map +1 -1
  130. package/dist/plus/ai/models/model.d.ts +4 -0
  131. package/dist/plus/ai/models/model.d.ts.map +1 -1
  132. package/dist/plus/ai/models/model.js +51 -6
  133. package/dist/plus/ai/models/model.js.map +1 -1
  134. package/dist/plus/ai/models/promptTemplates.d.ts +1 -1
  135. package/dist/plus/ai/models/promptTemplates.d.ts.map +1 -1
  136. package/dist/plus/ai/models/provider.d.ts +60 -2
  137. package/dist/plus/ai/models/provider.d.ts.map +1 -1
  138. package/dist/plus/ai/prompts.d.ts +12 -0
  139. package/dist/plus/ai/prompts.d.ts.map +1 -1
  140. package/dist/plus/ai/prompts.js +177 -61
  141. package/dist/plus/ai/prompts.js.map +1 -1
  142. package/dist/plus/ai/providers/anthropicProvider.d.ts +10 -2
  143. package/dist/plus/ai/providers/anthropicProvider.d.ts.map +1 -1
  144. package/dist/plus/ai/providers/anthropicProvider.js +139 -46
  145. package/dist/plus/ai/providers/anthropicProvider.js.map +1 -1
  146. package/dist/plus/ai/providers/deepSeekProvider.d.ts +2 -0
  147. package/dist/plus/ai/providers/deepSeekProvider.d.ts.map +1 -1
  148. package/dist/plus/ai/providers/deepSeekProvider.js +10 -21
  149. package/dist/plus/ai/providers/deepSeekProvider.js.map +1 -1
  150. package/dist/plus/ai/providers/geminiProvider.d.ts +1 -0
  151. package/dist/plus/ai/providers/geminiProvider.d.ts.map +1 -1
  152. package/dist/plus/ai/providers/geminiProvider.js +19 -0
  153. package/dist/plus/ai/providers/geminiProvider.js.map +1 -1
  154. package/dist/plus/ai/providers/gitkrakenProvider.d.ts +5 -1
  155. package/dist/plus/ai/providers/gitkrakenProvider.d.ts.map +1 -1
  156. package/dist/plus/ai/providers/gitkrakenProvider.js +118 -3
  157. package/dist/plus/ai/providers/gitkrakenProvider.js.map +1 -1
  158. package/dist/plus/ai/providers/huggingFaceProvider.d.ts +1 -0
  159. package/dist/plus/ai/providers/huggingFaceProvider.d.ts.map +1 -1
  160. package/dist/plus/ai/providers/huggingFaceProvider.js +5 -0
  161. package/dist/plus/ai/providers/huggingFaceProvider.js.map +1 -1
  162. package/dist/plus/ai/providers/mistralProvider.d.ts +3 -1
  163. package/dist/plus/ai/providers/mistralProvider.d.ts.map +1 -1
  164. package/dist/plus/ai/providers/mistralProvider.js +99 -19
  165. package/dist/plus/ai/providers/mistralProvider.js.map +1 -1
  166. package/dist/plus/ai/providers/ollamaProvider.d.ts +4 -3
  167. package/dist/plus/ai/providers/ollamaProvider.d.ts.map +1 -1
  168. package/dist/plus/ai/providers/ollamaProvider.js +38 -3
  169. package/dist/plus/ai/providers/ollamaProvider.js.map +1 -1
  170. package/dist/plus/ai/providers/openAICompatibleProvider.d.ts +1 -0
  171. package/dist/plus/ai/providers/openAICompatibleProvider.d.ts.map +1 -1
  172. package/dist/plus/ai/providers/openAICompatibleProvider.js +4 -0
  173. package/dist/plus/ai/providers/openAICompatibleProvider.js.map +1 -1
  174. package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts +154 -5
  175. package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts.map +1 -1
  176. package/dist/plus/ai/providers/openAICompatibleProviderBase.js +259 -10
  177. package/dist/plus/ai/providers/openAICompatibleProviderBase.js.map +1 -1
  178. package/dist/plus/ai/providers/openRouterProvider.d.ts +4 -0
  179. package/dist/plus/ai/providers/openRouterProvider.d.ts.map +1 -1
  180. package/dist/plus/ai/providers/openRouterProvider.js +9 -0
  181. package/dist/plus/ai/providers/openRouterProvider.js.map +1 -1
  182. package/dist/plus/ai/providers/openaiProvider.d.ts +1 -0
  183. package/dist/plus/ai/providers/openaiProvider.d.ts.map +1 -1
  184. package/dist/plus/ai/providers/openaiProvider.js +1 -0
  185. package/dist/plus/ai/providers/openaiProvider.js.map +1 -1
  186. package/dist/plus/ai/providers/responseFormatCache.d.ts +8 -0
  187. package/dist/plus/ai/providers/responseFormatCache.d.ts.map +1 -0
  188. package/dist/plus/ai/providers/responseFormatCache.js +25 -0
  189. package/dist/plus/ai/providers/responseFormatCache.js.map +1 -0
  190. package/dist/plus/ai/providers/xaiProvider.d.ts +1 -0
  191. package/dist/plus/ai/providers/xaiProvider.d.ts.map +1 -1
  192. package/dist/plus/ai/providers/xaiProvider.js +10 -1
  193. package/dist/plus/ai/providers/xaiProvider.js.map +1 -1
  194. package/dist/plus/ai/utils/ai.utils.d.ts +3 -0
  195. package/dist/plus/ai/utils/ai.utils.d.ts.map +1 -1
  196. package/dist/plus/ai/utils/ai.utils.js +13 -0
  197. package/dist/plus/ai/utils/ai.utils.js.map +1 -1
  198. package/dist/plus/ai/utils/results.utils.d.ts +16 -2
  199. package/dist/plus/ai/utils/results.utils.d.ts.map +1 -1
  200. package/dist/plus/ai/utils/results.utils.js +204 -28
  201. package/dist/plus/ai/utils/results.utils.js.map +1 -1
  202. package/dist/plus/git-github/api/github.d.ts +92 -4
  203. package/dist/plus/git-github/api/github.d.ts.map +1 -1
  204. package/dist/plus/git-github/api/github.js +324 -20
  205. package/dist/plus/git-github/api/github.js.map +1 -1
  206. package/dist/plus/git-github/api/pullRequestSearchQuery.d.ts +27 -1
  207. package/dist/plus/git-github/api/pullRequestSearchQuery.d.ts.map +1 -1
  208. package/dist/plus/git-github/api/pullRequestSearchQuery.js +73 -6
  209. package/dist/plus/git-github/api/pullRequestSearchQuery.js.map +1 -1
  210. package/dist/plus/git-github/models.d.ts +33 -5
  211. package/dist/plus/git-github/models.d.ts.map +1 -1
  212. package/dist/plus/git-github/models.js +43 -4
  213. package/dist/plus/git-github/models.js.map +1 -1
  214. package/dist/plus/git-github/providers/github/status.d.ts +1 -0
  215. package/dist/plus/git-github/providers/github/status.d.ts.map +1 -1
  216. package/dist/plus/git-github/providers/github/status.js.map +1 -1
  217. package/dist/plus/integrations/context.d.ts +4 -0
  218. package/dist/plus/integrations/context.d.ts.map +1 -1
  219. package/dist/plus/integrations/index.d.ts.map +1 -1
  220. package/dist/plus/integrations/index.js +2 -0
  221. package/dist/plus/integrations/index.js.map +1 -1
  222. package/dist/plus/integrations/integrationService.d.ts +16 -1
  223. package/dist/plus/integrations/integrationService.d.ts.map +1 -1
  224. package/dist/plus/integrations/integrationService.js +9 -1
  225. package/dist/plus/integrations/integrationService.js.map +1 -1
  226. package/dist/plus/integrations/manager.d.ts +45 -5
  227. package/dist/plus/integrations/manager.d.ts.map +1 -1
  228. package/dist/plus/integrations/models/gitHostIntegration.d.ts +18 -3
  229. package/dist/plus/integrations/models/gitHostIntegration.d.ts.map +1 -1
  230. package/dist/plus/integrations/models/gitHostIntegration.js +30 -2
  231. package/dist/plus/integrations/models/gitHostIntegration.js.map +1 -1
  232. package/dist/plus/integrations/models/integration.d.ts +4 -2
  233. package/dist/plus/integrations/models/integration.d.ts.map +1 -1
  234. package/dist/plus/integrations/models/integration.js +2 -2
  235. package/dist/plus/integrations/models/integration.js.map +1 -1
  236. package/dist/plus/integrations/providerFilters.d.ts +1 -1
  237. package/dist/plus/integrations/providerFilters.d.ts.map +1 -1
  238. package/dist/plus/integrations/providers/accounts.d.ts +6 -0
  239. package/dist/plus/integrations/providers/accounts.d.ts.map +1 -0
  240. package/dist/plus/integrations/providers/accounts.js +34 -0
  241. package/dist/plus/integrations/providers/accounts.js.map +1 -0
  242. package/dist/plus/integrations/providers/azure/models.d.ts.map +1 -1
  243. package/dist/plus/integrations/providers/azure/models.js +3 -0
  244. package/dist/plus/integrations/providers/azure/models.js.map +1 -1
  245. package/dist/plus/integrations/providers/bitbucket/models.d.ts.map +1 -1
  246. package/dist/plus/integrations/providers/bitbucket/models.js +1 -0
  247. package/dist/plus/integrations/providers/bitbucket/models.js.map +1 -1
  248. package/dist/plus/integrations/providers/github.d.ts +23 -2
  249. package/dist/plus/integrations/providers/github.d.ts.map +1 -1
  250. package/dist/plus/integrations/providers/github.js +169 -138
  251. package/dist/plus/integrations/providers/github.js.map +1 -1
  252. package/dist/plus/integrations/providers/gitlab.d.ts +9 -0
  253. package/dist/plus/integrations/providers/gitlab.d.ts.map +1 -1
  254. package/dist/plus/integrations/providers/gitlab.js +23 -4
  255. package/dist/plus/integrations/providers/gitlab.js.map +1 -1
  256. package/dist/plus/integrations/providers/models.d.ts +14 -32
  257. package/dist/plus/integrations/providers/models.d.ts.map +1 -1
  258. package/dist/plus/integrations/providers/models.js +66 -109
  259. package/dist/plus/integrations/providers/models.js.map +1 -1
  260. package/dist/plus/integrations/providers/pullRequestReviews.d.ts +50 -0
  261. package/dist/plus/integrations/providers/pullRequestReviews.d.ts.map +1 -0
  262. package/dist/plus/integrations/providers/pullRequestReviews.js +99 -0
  263. package/dist/plus/integrations/providers/pullRequestReviews.js.map +1 -0
  264. package/dist/plus/integrations/reads/broaden.d.ts.map +1 -1
  265. package/dist/plus/integrations/reads/broaden.js +6 -1
  266. package/dist/plus/integrations/reads/broaden.js.map +1 -1
  267. package/dist/plus/integrations/reads/counts.d.ts +55 -0
  268. package/dist/plus/integrations/reads/counts.d.ts.map +1 -1
  269. package/dist/plus/integrations/reads/counts.js +146 -2
  270. package/dist/plus/integrations/reads/counts.js.map +1 -1
  271. package/dist/plus/integrations/reads/drains.d.ts +7 -1
  272. package/dist/plus/integrations/reads/drains.d.ts.map +1 -1
  273. package/dist/plus/integrations/reads/drains.js +20 -6
  274. package/dist/plus/integrations/reads/drains.js.map +1 -1
  275. package/dist/plus/integrations/reads/filters.d.ts.map +1 -1
  276. package/dist/plus/integrations/reads/filters.js +22 -0
  277. package/dist/plus/integrations/reads/filters.js.map +1 -1
  278. package/dist/plus/integrations/reads/hierarchy.d.ts.map +1 -1
  279. package/dist/plus/integrations/reads/hierarchy.js +3 -1
  280. package/dist/plus/integrations/reads/hierarchy.js.map +1 -1
  281. package/dist/plus/integrations/reads/issueTracker.d.ts.map +1 -1
  282. package/dist/plus/integrations/reads/issueTracker.js +8 -3
  283. package/dist/plus/integrations/reads/issueTracker.js.map +1 -1
  284. package/dist/plus/integrations/reads/issues.d.ts.map +1 -1
  285. package/dist/plus/integrations/reads/issues.js +9 -4
  286. package/dist/plus/integrations/reads/issues.js.map +1 -1
  287. package/dist/plus/integrations/reads/pullRequests.d.ts.map +1 -1
  288. package/dist/plus/integrations/reads/pullRequests.js +9 -4
  289. package/dist/plus/integrations/reads/pullRequests.js.map +1 -1
  290. package/dist/plus/integrations/reads/searchPullRequests.d.ts +4 -3
  291. package/dist/plus/integrations/reads/searchPullRequests.d.ts.map +1 -1
  292. package/dist/plus/integrations/reads/searchPullRequests.js +6 -4
  293. package/dist/plus/integrations/reads/searchPullRequests.js.map +1 -1
  294. package/dist/plus/integrations/reads/sweeps.js +1 -1
  295. package/dist/plus/integrations/reads/sweeps.js.map +1 -1
  296. package/dist/plus/integrations/reads/warnings.d.ts +2 -2
  297. package/dist/plus/integrations/reads/warnings.d.ts.map +1 -1
  298. package/dist/plus/integrations/reads/warnings.js +11 -2
  299. package/dist/plus/integrations/reads/warnings.js.map +1 -1
  300. package/dist/plus/integrations/results.d.ts +6 -1
  301. package/dist/plus/integrations/results.d.ts.map +1 -1
  302. package/dist/plus/integrations/results.js.map +1 -1
  303. package/dist/utils/env/browser/base64.d.ts +1 -1
  304. package/dist/utils/env/browser/base64.d.ts.map +1 -1
  305. package/dist/utils/env/node/base64.d.ts +1 -1
  306. package/dist/utils/env/node/base64.d.ts.map +1 -1
  307. package/dist/utils/env/node/base64.js +2 -0
  308. package/dist/utils/env/node/base64.js.map +1 -1
  309. package/dist/utils/keys/chord.d.ts +52 -0
  310. package/dist/utils/keys/chord.d.ts.map +1 -0
  311. package/dist/utils/keys/chord.js +135 -0
  312. package/dist/utils/keys/chord.js.map +1 -0
  313. package/dist/utils/keys/keybinding.d.ts +53 -0
  314. package/dist/utils/keys/keybinding.d.ts.map +1 -0
  315. package/dist/utils/keys/keybinding.js +58 -0
  316. package/dist/utils/keys/keybinding.js.map +1 -0
  317. package/dist/utils/path.d.ts +11 -0
  318. package/dist/utils/path.d.ts.map +1 -1
  319. package/dist/utils/path.js +13 -0
  320. package/dist/utils/path.js.map +1 -1
  321. package/docs/integrations.md +76 -10
  322. package/docs/kepler-read-api-parity.md +9 -0
  323. package/package.json +13 -5
  324. package/src/git/cache.ts +383 -47
  325. package/src/git/context.ts +11 -0
  326. package/src/git/models/fileStatus.ts +1 -0
  327. package/src/git/models/issue.ts +4 -0
  328. package/src/git/models/mergeConflicts.ts +3 -2
  329. package/src/git/models/pullRequest.ts +117 -1
  330. package/src/git/models/repository.ts +58 -17
  331. package/src/git/models/statusFile.ts +3 -0
  332. package/src/git/providers/branches.ts +6 -0
  333. package/src/git/providers/commits.ts +11 -0
  334. package/src/git/providers/config.ts +18 -0
  335. package/src/git/providers/operations.ts +1 -0
  336. package/src/git/providers/pausedOperations.ts +2 -0
  337. package/src/git/providers/status.ts +1 -0
  338. package/src/git/utils/config.utils.ts +8 -0
  339. package/src/git/utils/issue.utils.ts +2 -0
  340. package/src/git/utils/pausedOperationStatus.utils.ts +28 -0
  341. package/src/git/utils/pullRequest.utils.ts +86 -0
  342. package/src/git/watching/changeEvent.ts +6 -1
  343. package/src/git/watching/classifyChange.ts +15 -1
  344. package/src/git/watching/watchService.ts +20 -3
  345. package/src/git/watching/watchSession.ts +41 -6
  346. package/src/git/watching/watcherPatterns.ts +1 -1
  347. package/src/git-cli/exec/git.ts +13 -3
  348. package/src/git-cli/providers/branches.ts +384 -132
  349. package/src/git-cli/providers/commits.ts +106 -15
  350. package/src/git-cli/providers/config.ts +229 -8
  351. package/src/git-cli/providers/contributors.ts +5 -1
  352. package/src/git-cli/providers/graph.ts +26 -13
  353. package/src/git-cli/providers/operations.ts +45 -20
  354. package/src/git-cli/providers/pausedOperations.ts +109 -17
  355. package/src/git-cli/providers/refs.ts +33 -3
  356. package/src/git-cli/providers/status.ts +25 -4
  357. package/src/git-cli/providers/worktrees.ts +5 -0
  358. package/src/git-cli/service.ts +0 -1
  359. package/src/plus/agents/providers/claudeCodeProvider.ts +1130 -87
  360. package/src/plus/agents/providers/claudeCodeTranscript.ts +95 -9
  361. package/src/plus/agents/types.ts +46 -2
  362. package/src/plus/ai/errors.ts +30 -0
  363. package/src/plus/ai/models/model.ts +56 -6
  364. package/src/plus/ai/models/promptTemplates.ts +1 -1
  365. package/src/plus/ai/models/provider.ts +69 -2
  366. package/src/plus/ai/prompts.ts +186 -61
  367. package/src/plus/ai/providers/anthropicProvider.ts +155 -47
  368. package/src/plus/ai/providers/deepSeekProvider.ts +11 -21
  369. package/src/plus/ai/providers/geminiProvider.ts +19 -0
  370. package/src/plus/ai/providers/gitkrakenProvider.ts +126 -3
  371. package/src/plus/ai/providers/huggingFaceProvider.ts +6 -0
  372. package/src/plus/ai/providers/mistralProvider.ts +102 -19
  373. package/src/plus/ai/providers/ollamaProvider.ts +55 -4
  374. package/src/plus/ai/providers/openAICompatibleProvider.ts +5 -0
  375. package/src/plus/ai/providers/openAICompatibleProviderBase.ts +360 -17
  376. package/src/plus/ai/providers/openRouterProvider.ts +17 -0
  377. package/src/plus/ai/providers/openaiProvider.ts +1 -0
  378. package/src/plus/ai/providers/responseFormatCache.ts +39 -0
  379. package/src/plus/ai/providers/xaiProvider.ts +10 -1
  380. package/src/plus/ai/utils/ai.utils.ts +14 -0
  381. package/src/plus/ai/utils/results.utils.ts +255 -31
  382. package/src/plus/git-github/api/github.ts +467 -23
  383. package/src/plus/git-github/api/pullRequestSearchQuery.ts +81 -7
  384. package/src/plus/git-github/models.ts +77 -7
  385. package/src/plus/git-github/providers/github/status.ts +1 -0
  386. package/src/plus/integrations/context.ts +4 -0
  387. package/src/plus/integrations/index.ts +2 -0
  388. package/src/plus/integrations/integrationService.ts +25 -2
  389. package/src/plus/integrations/manager.ts +50 -5
  390. package/src/plus/integrations/models/gitHostIntegration.ts +54 -2
  391. package/src/plus/integrations/models/integration.ts +24 -13
  392. package/src/plus/integrations/providerFilters.ts +6 -1
  393. package/src/plus/integrations/providers/accounts.ts +38 -0
  394. package/src/plus/integrations/providers/azure/models.ts +3 -0
  395. package/src/plus/integrations/providers/bitbucket/models.ts +1 -0
  396. package/src/plus/integrations/providers/github.ts +218 -145
  397. package/src/plus/integrations/providers/gitlab.ts +30 -20
  398. package/src/plus/integrations/providers/models.ts +99 -127
  399. package/src/plus/integrations/providers/pullRequestReviews.ts +122 -0
  400. package/src/plus/integrations/reads/broaden.ts +6 -1
  401. package/src/plus/integrations/reads/counts.ts +273 -2
  402. package/src/plus/integrations/reads/drains.ts +19 -6
  403. package/src/plus/integrations/reads/filters.ts +22 -0
  404. package/src/plus/integrations/reads/hierarchy.ts +3 -1
  405. package/src/plus/integrations/reads/issueTracker.ts +9 -3
  406. package/src/plus/integrations/reads/issues.ts +9 -4
  407. package/src/plus/integrations/reads/pullRequests.ts +9 -4
  408. package/src/plus/integrations/reads/searchPullRequests.ts +12 -4
  409. package/src/plus/integrations/reads/sweeps.ts +1 -1
  410. package/src/plus/integrations/reads/warnings.ts +12 -1
  411. package/src/plus/integrations/results.ts +6 -1
  412. package/src/utils/env/browser/base64.ts +1 -1
  413. package/src/utils/env/node/base64.ts +3 -1
  414. package/src/utils/keys/chord.ts +184 -0
  415. package/src/utils/keys/keybinding.ts +116 -0
  416. package/src/utils/path.ts +14 -0
@@ -1,4 +1,5 @@
1
1
  import { uuid } from '../../../utils/crypto.js';
2
+ import { Logger } from '../../../utils/logger.js';
2
3
  import { ollamaProviderDescriptor as provider } from '../constants.js';
3
4
  import { OpenAICompatibleProviderBase } from './openAICompatibleProviderBase.js';
4
5
  const defaultBaseUrl = 'http://localhost:11434';
@@ -90,13 +91,17 @@ export class OllamaProvider extends OpenAICompatibleProviderBase {
90
91
  const url = this.getBaseUrl();
91
92
  return url ? `${url}/api/chat` : undefined;
92
93
  }
94
+ // Ollama < 0.5.0 rejects a schema-valued `format` (accepts only 'json')
95
+ isResponseFormatRejection(status, body) {
96
+ return status === 400 && /format/i.test(body);
97
+ }
93
98
  getHeaders(_action, _apiKey, _model, _url) {
94
99
  return {
95
100
  Accept: 'application/json',
96
101
  'Content-Type': 'application/json',
97
102
  };
98
103
  }
99
- async fetch(action, model, apiKey, messages, modelOptions, signal) {
104
+ async fetch(action, model, apiKey, messages, modelOptions, responseFormat, signal) {
100
105
  let retries = 0;
101
106
  let maxInputTokens = model.maxTokens.input;
102
107
  while (true) {
@@ -109,19 +114,48 @@ export class OllamaProvider extends OpenAICompatibleProviderBase {
109
114
  }));
110
115
  // Ensure temperature is within valid range for Ollama (0.0-1.0)
111
116
  const temperature = Math.min(Math.max(modelOptions?.temperature ?? 0.7, 0), 1);
117
+ const format = responseFormat != null &&
118
+ !this.isResponseFormatSessionRejected(model, responseFormat) &&
119
+ this.supportsResponseFormat(model)
120
+ ? responseFormat.schema
121
+ : undefined;
112
122
  const request = {
113
123
  model: model.id,
114
124
  messages: ollamaMessages,
115
125
  stream: false,
126
+ // Ollama takes the bare JSON schema (grammar-constrained sampling, any model)
127
+ format: format,
116
128
  options: {
117
129
  temperature: temperature,
118
130
  // Add num_predict if outputTokens is specified
119
131
  ...(modelOptions?.outputTokens ? { num_predict: modelOptions.outputTokens } : {}),
120
132
  },
121
133
  };
122
- const rsp = await this.fetchCore(action, model, apiKey, request, signal);
134
+ let rsp = await this.fetchCore(action, model, apiKey, request, signal);
135
+ let errorBody;
136
+ if (!rsp.ok && rsp.status === 400 && request.format != null) {
137
+ // If the schema-valued format was rejected (Ollama < 0.5.0 accepts only 'json'),
138
+ // resend the same request without it — the prompt still describes the JSON
139
+ // Leave it `undefined` (not '') when the read fails, so `handleFetchFailure` falls
140
+ // back to reading the still-unconsumed response instead of parsing an empty string
141
+ errorBody = await rsp
142
+ .clone()
143
+ .text()
144
+ .catch(() => undefined);
145
+ if (this.isResponseFormatRejection(rsp.status, errorBody ?? '')) {
146
+ Logger.warn(`(${this.name}) ${model.id}: native response format was rejected (${rsp.status}); retrying without it`);
147
+ const rejected = responseFormat;
148
+ responseFormat = undefined;
149
+ delete request.format;
150
+ rsp = await this.fetchCore(action, model, apiKey, request, signal);
151
+ errorBody = undefined;
152
+ if (rsp.ok && rejected != null) {
153
+ this.rememberResponseFormatRejection(model, rejected);
154
+ }
155
+ }
156
+ }
123
157
  if (!rsp.ok) {
124
- const result = await this.handleFetchFailure(rsp, action, model, retries, maxInputTokens);
158
+ const result = await this.handleFetchFailure(rsp, action, model, retries, maxInputTokens, errorBody);
125
159
  if (result.retry) {
126
160
  maxInputTokens = result.maxInputTokens;
127
161
  retries++;
@@ -137,6 +171,7 @@ export class OllamaProvider extends OpenAICompatibleProviderBase {
137
171
  return {
138
172
  id: uuid(),
139
173
  content: data.message.content,
174
+ finishReason: data.done_reason === 'length' ? 'length' : undefined,
140
175
  model: model,
141
176
  usage: {
142
177
  promptTokens: data.prompt_eval_count ?? 0,
@@ -1 +1 @@
1
- {"version":3,"file":"ollamaProvider.js","sourceRoot":"","sources":["../../../../src/plus/ai/providers/ollamaProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ollamaProvider.js","sourceRoot":"","sources":["../../../../src/plus/ai/providers/ollamaProvider.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export declare class OpenAICompatibleProvider extends OpenAICompatibleProviderBa
11
11
  };
12
12
  getModels(): Promise<readonly AIModel<typeof provider.id>[]>;
13
13
  protected getUrl(_model?: AIModel<typeof provider.id>): string | undefined;
14
+ protected supportsResponseFormat(_model: AIModel<typeof provider.id>): boolean;
14
15
  private getOrPromptBaseUrl;
15
16
  configured(silent: boolean): Promise<boolean>;
16
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"openAICompatibleProvider.d.ts","sourceRoot":"","sources":["../../../../src/plus/ai/providers/openAICompatibleProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAKjF,qBAAa,wBAAyB,SAAQ,4BAA4B,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC;IAC7F,QAAQ,CAAC,EAAE,qBAAe;IAC1B,QAAQ,CAAC,IAAI,SAAiB;IAC9B,SAAS,CAAC,QAAQ,CAAC,UAAU,wEAAY;IACzC,SAAS,CAAC,QAAQ,CAAC,MAAM;QACxB,MAAM;QACN,YAAY;MACX;IAEF,SAAS,IAAI,OAAO,CAAC,SAAS,OAAO,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAE3D;IAED,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,SAAS,CAKzE;YAEa,kBAAkB;IAqBjB,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAO3D;CACD"}
1
+ {"version":3,"file":"openAICompatibleProvider.d.ts","sourceRoot":"","sources":["../../../../src/plus/ai/providers/openAICompatibleProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAKjF,qBAAa,wBAAyB,SAAQ,4BAA4B,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC;IAC7F,QAAQ,CAAC,EAAE,qBAAe;IAC1B,QAAQ,CAAC,IAAI,SAAiB;IAC9B,SAAS,CAAC,QAAQ,CAAC,UAAU,wEAAY;IACzC,SAAS,CAAC,QAAQ,CAAC,MAAM;QACxB,MAAM;QACN,YAAY;MACX;IAEF,SAAS,IAAI,OAAO,CAAC,SAAS,OAAO,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAE3D;IAED,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,SAAS,CAKzE;IAGD,UAAmB,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC,GAAG,OAAO,CAEtF;YAEa,kBAAkB;IAqBjB,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAO3D;CACD"}
@@ -20,6 +20,10 @@ export class OpenAICompatibleProvider extends OpenAICompatibleProviderBase {
20
20
  return undefined;
21
21
  return cfg.url || undefined;
22
22
  }
23
+ // Unknown user-configured backend — fall back to prompt-described JSON
24
+ supportsResponseFormat(_model) {
25
+ return false;
26
+ }
23
27
  async getOrPromptBaseUrl(silent, hasApiKey) {
24
28
  const orgConf = this.context.getProviderConfig(this.id);
25
29
  if (!orgConf.enabled)
@@ -1 +1 @@
1
- {"version":3,"file":"openAICompatibleProvider.js","sourceRoot":"","sources":["../../../../src/plus/ai/providers/openAICompatibleProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEjF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAGjF,MAAM,MAAM,GAA4B,YAAY,CAAC,QAAQ,CAAC,CAAC;AAE/D,MAAM,OAAO,wBAAyB,SAAQ,4BAAgD;IACpF,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;IACjB,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IACX,UAAU,GAAG,QAAQ,CAAC;IACtB,MAAM,GAAG;QAC3B,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,0BAA0B;KACxC,CAAC;IAEF,SAAS;QACR,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAES,MAAM,CAAC,MAAoC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAEnC,OAAO,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,MAAe,EAAE,SAAkB;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QACvC,IAAI,OAAO,CAAC,GAAG;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC;QAEpC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAE1B,IAAI,MAAM,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,SAAS,CAAC;YAAE,OAAO,GAAG,CAAC;QAErD,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CACjC,IAAI,CAAC,EAAE,EACP;YACC,UAAU,EAAE,GAAG;YACf,KAAK,EAAE,uCAAuC;YAC9C,WAAW,EAAE,sDAAsD;YACnE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,SAAS,CAAC;SACrF,EACD,MAAM,CACN,CAAC;IACH,CAAC;IAEQ,KAAK,CAAC,UAAU,CAAC,MAAe;QACxC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE/C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAE1C,OAAO,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;CACD"}
1
+ {"version":3,"file":"openAICompatibleProvider.js","sourceRoot":"","sources":["../../../../src/plus/ai/providers/openAICompatibleProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEjF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAGjF,MAAM,MAAM,GAA4B,YAAY,CAAC,QAAQ,CAAC,CAAC;AAE/D,MAAM,OAAO,wBAAyB,SAAQ,4BAAgD;IACpF,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;IACjB,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IACX,UAAU,GAAG,QAAQ,CAAC;IACtB,MAAM,GAAG;QAC3B,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,0BAA0B;KACxC,CAAC;IAEF,SAAS;QACR,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAES,MAAM,CAAC,MAAoC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAEnC,OAAO,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC;IAC7B,CAAC;IAED,uEAAuE;IACpD,sBAAsB,CAAC,MAAmC;QAC5E,OAAO,KAAK,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,MAAe,EAAE,SAAkB;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QACvC,IAAI,OAAO,CAAC,GAAG;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC;QAEpC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAE1B,IAAI,MAAM,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,SAAS,CAAC;YAAE,OAAO,GAAG,CAAC;QAErD,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CACjC,IAAI,CAAC,EAAE,EACP;YACC,UAAU,EAAE,GAAG;YACf,KAAK,EAAE,uCAAuC;YAC9C,WAAW,EAAE,sDAAsD;YACnE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,SAAS,CAAC;SACrF,EACD,MAAM,CACN,CAAC;IACH,CAAC;IAEQ,KAAK,CAAC,UAAU,CAAC,MAAe;QACxC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE/C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAE1C,OAAO,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;CACD"}
@@ -1,6 +1,6 @@
1
1
  import type { AIProviders } from '../constants.js';
2
2
  import type { AIActionType, AIModel, AIProviderDescriptor } from '../models/model.js';
3
- import type { AIChatMessage, AIChatMessageRole, AIProvider, AIProviderResponse } from '../models/provider.js';
3
+ import type { AIChatMessage, AIChatMessageRole, AIFinishReason, AIProvider, AIProviderResponse, AIResponseFormat, AIToolCall, AIToolDefinition, JSONSchema } from '../models/provider.js';
4
4
  import type { AIProviderContext } from './context.js';
5
5
  export declare abstract class OpenAICompatibleProviderBase<T extends AIProviders> implements AIProvider<T> {
6
6
  protected readonly context: AIProviderContext;
@@ -17,20 +17,24 @@ export declare abstract class OpenAICompatibleProviderBase<T extends AIProviders
17
17
  configured(silent: boolean): Promise<boolean>;
18
18
  getApiKey(silent: boolean): Promise<string | undefined>;
19
19
  abstract getModels(): Promise<readonly AIModel<T>[]>;
20
+ protected isResponseFormatSessionRejected(model: AIModel<T>, responseFormat: AIResponseFormat): boolean;
21
+ protected rememberResponseFormatRejection(model: AIModel<T>, responseFormat: AIResponseFormat): void;
20
22
  protected abstract getUrl(_model: AIModel<T>): string | undefined;
21
23
  protected getHeaders<TAction extends AIActionType>(_action: TAction, apiKey: string, _model: AIModel<T>, _url: string, _conversationId?: string): Record<string, string> | Promise<Record<string, string>>;
22
- sendRequest<TAction extends AIActionType>(action: TAction, model: AIModel<T>, apiKey: string, getMessages: (maxInputTokens: number, retries: number) => Promise<AIChatMessage[]>, options: {
24
+ sendRequest<TAction extends AIActionType>(action: TAction, model: AIModel<T>, apiKey: string, getMessages: (maxInputTokens: number, retries: number) => Promise<AIChatMessage<AIChatMessageRole>[]>, options: {
23
25
  signal: AbortSignal;
24
26
  modelOptions?: {
25
27
  outputTokens?: number;
26
28
  temperature?: number;
27
29
  };
28
30
  conversationId?: string;
31
+ responseFormat?: AIResponseFormat;
32
+ tools?: readonly AIToolDefinition[];
29
33
  }): Promise<AIProviderResponse<void> | undefined>;
30
- protected fetch<TAction extends AIActionType>(action: TAction, model: AIModel<T>, apiKey: string, messages: (maxInputTokens: number, retries: number) => Promise<AIChatMessage[]>, modelOptions?: {
34
+ protected fetch<TAction extends AIActionType>(action: TAction, model: AIModel<T>, apiKey: string, messages: (maxInputTokens: number, retries: number) => Promise<AIChatMessage<AIChatMessageRole>[]>, modelOptions?: {
31
35
  outputTokens?: number;
32
36
  temperature?: number;
33
- }, signal?: AbortSignal, conversationId?: string): Promise<AIProviderResponse<void>>;
37
+ }, responseFormat?: AIResponseFormat, signal?: AbortSignal, conversationId?: string, tools?: readonly AIToolDefinition[]): Promise<AIProviderResponse<void>>;
34
38
  /**
35
39
  * Returns the message-related request fields. The default sends every message inline (OpenAI
36
40
  * Chat Completions semantics); providers whose API carries the initial system prompt separately
@@ -40,10 +44,155 @@ export declare abstract class OpenAICompatibleProviderBase<T extends AIProviders
40
44
  messages: AIChatMessage<AIChatMessageRole>[];
41
45
  system?: string;
42
46
  };
43
- protected handleFetchFailure<TAction extends AIActionType>(rsp: Response, _action: TAction, model: AIModel<T>, retries: number, maxInputTokens: number): Promise<{
47
+ /** Whether the given model accepts a native response-format/schema field; when false the
48
+ * prompt's JSON description is the only format control (the request is unchanged).
49
+ * Dynamic-catalog providers (GitKraken, OpenRouter) populate
50
+ * {@link AIModel.supportsStructuredOutputs}; static providers override with id-based gates */
51
+ protected supportsResponseFormat(model: AIModel<T>): boolean;
52
+ /**
53
+ * Whether a failed response reads as a rejection of the `tools` field rather than a problem with the
54
+ * prompt — the trigger for one retry without tools, so a tool-using feature degrades to single-shot
55
+ * instead of failing outright.
56
+ *
57
+ * Providers that wrap upstream rejections in their own envelope (e.g. GitKraken) must override this:
58
+ * the wrapper's prose names neither "tool" nor "function", so the text match here cannot see through
59
+ * it and the fallback would never fire.
60
+ */
61
+ protected isToolsRejection(status: number, message: string | undefined): boolean;
62
+ /** Whether a failed response means the native response format itself was rejected — the
63
+ * trigger for stripping it and retrying via the prompt-described JSON. Providers that wrap
64
+ * upstream rejections in their own envelope (e.g. GitKraken) extend this */
65
+ protected isResponseFormatRejection(status: number, body: string): boolean;
66
+ /** Translates the canonical response format onto the request; called only when
67
+ * {@link supportsResponseFormat} allows it. Base emits the OpenAI `response_format.json_schema`
68
+ * envelope. Overrides must REPLACE this for providers with a different native field
69
+ * (e.g. Anthropic `output_config`) — never leave both on the request. */
70
+ protected applyResponseFormat(request: ChatCompletionRequest, _model: AIModel<T>, responseFormat: AIResponseFormat): void;
71
+ protected extractContent(data: ChatCompletionResponse): string;
72
+ /** Normalizes abnormal completion signals (all arrive as HTTP 200) so consumers can
73
+ * distinguish truncated/filtered/refused output from a malformed-but-complete reply */
74
+ protected extractFinishReason(data: ChatCompletionResponse): AIFinishReason | undefined;
75
+ /**
76
+ * Maps messages onto the provider's wire shape. The default is OpenAI Chat Completions: assistant
77
+ * tool calls go in `tool_calls` with `arguments` JSON-stringified, and tool results are `tool`-role
78
+ * entries keyed by `tool_call_id`. Providers with a different tool encoding (e.g. Anthropic's
79
+ * content blocks) override this.
80
+ */
81
+ protected serializeMessages(messages: AIChatMessage<AIChatMessageRole>[]): unknown[];
82
+ /** Returns the tool-related request fields. The default is the OpenAI `function` envelope. */
83
+ protected serializeTools(tools: readonly AIToolDefinition[]): {
84
+ tools: unknown[];
85
+ };
86
+ /**
87
+ * Extracts tool calls from a response, handling both the OpenAI shape
88
+ * (`choices[].message.tool_calls`, whose `arguments` is a JSON string) and the Anthropic shape
89
+ * (`content[]` blocks of type `tool_use`) — mirroring how {@link fetch} already reads content
90
+ * from both.
91
+ */
92
+ protected parseToolCalls(data: ChatCompletionResponse): AIToolCall[] | undefined;
93
+ protected handleFetchFailure<TAction extends AIActionType>(rsp: Response, _action: TAction, model: AIModel<T>, retries: number, maxInputTokens: number,
94
+ /** The already-read error body, when the caller had to read it (avoids a second decode) */
95
+ body?: string, sentTools?: boolean): Promise<{
44
96
  retry: true;
45
97
  maxInputTokens: number;
98
+ withoutTools?: boolean;
46
99
  }>;
47
100
  protected fetchCore<TAction extends AIActionType>(action: TAction, model: AIModel<T>, apiKey: string, request: object, signal: AbortSignal | undefined, conversationId?: string): Promise<Response>;
48
101
  }
102
+ export interface ChatCompletionRequest {
103
+ model: string;
104
+ /** Provider-shaped messages from {@link OpenAICompatibleProviderBase.serializeMessages} */
105
+ messages: unknown[];
106
+ /** Anthropic carries the initial system prompt here instead of as a `system`-role message */
107
+ system?: string;
108
+ /** Tool definitions, shaped by {@link OpenAICompatibleProviderBase.serializeTools} */
109
+ tools?: unknown[];
110
+ /** @deprecated but used by Anthropic & Gemini */
111
+ max_tokens?: number;
112
+ /** Currently can't be used for Anthropic & Gemini */
113
+ max_completion_tokens?: number;
114
+ metadata?: Record<string, string>;
115
+ stream?: boolean;
116
+ temperature?: number;
117
+ top_p?: number;
118
+ /** Not supported by many models/providers */
119
+ reasoning_effort?: 'low' | 'medium' | 'high';
120
+ /** OpenAI-compatible structured output (set via {@link OpenAICompatibleProviderBase.applyResponseFormat}) */
121
+ response_format?: {
122
+ type: 'json_schema';
123
+ json_schema: {
124
+ name: string;
125
+ strict: boolean;
126
+ schema: JSONSchema;
127
+ };
128
+ };
129
+ /** Anthropic-native structured output (set only by the Anthropic override) */
130
+ output_config?: {
131
+ format: {
132
+ type: 'json_schema';
133
+ schema: JSONSchema;
134
+ };
135
+ };
136
+ /** OpenRouter-only routing constraint (set only by the OpenRouter override) */
137
+ provider?: {
138
+ require_parameters: boolean;
139
+ };
140
+ }
141
+ export interface ChatCompletionResponse {
142
+ id: string;
143
+ model: string;
144
+ /** OpenAI compatible output */
145
+ choices?: {
146
+ index: number;
147
+ message: {
148
+ role: string;
149
+ content: string | null;
150
+ /** OpenAI-only; most OpenAI-compatible servers omit it entirely */
151
+ refusal?: string | null;
152
+ tool_calls?: {
153
+ id: string;
154
+ type: string;
155
+ function: {
156
+ name: string;
157
+ arguments: string;
158
+ };
159
+ /** GitKraken proxy only — an opaque provider reasoning token to round-trip */
160
+ thought_signature?: string;
161
+ }[];
162
+ };
163
+ finish_reason: string;
164
+ }[];
165
+ /** Anthropic output (non-text blocks, e.g. thinking, carry no text). `tool_use` blocks add the
166
+ * call fields, which is why `id`/`name` are optional here — {@link parseToolCalls} narrows on
167
+ * `type` and then checks them. */
168
+ content?: {
169
+ type: string;
170
+ text?: string;
171
+ id?: string;
172
+ name?: string;
173
+ input?: Record<string, unknown>;
174
+ }[];
175
+ /** Error envelope some providers/proxies return with an OK status (e.g. OpenRouter upstream failures) */
176
+ error?: {
177
+ message?: string;
178
+ code?: number | string;
179
+ } | null;
180
+ /** Anthropic stop reason */
181
+ stop_reason?: string;
182
+ usage: {
183
+ /** OpenAI compatible */
184
+ prompt_tokens?: number;
185
+ completion_tokens?: number;
186
+ total_tokens?: number;
187
+ /** Anthropic */
188
+ input_tokens?: number;
189
+ output_tokens?: number;
190
+ /** GitKraken */
191
+ gk: {
192
+ used: number;
193
+ limit: number;
194
+ resets_on: string;
195
+ };
196
+ };
197
+ }
49
198
  //# sourceMappingURL=openAICompatibleProviderBase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openAICompatibleProviderBase.d.ts","sourceRoot":"","sources":["../../../../src/plus/ai/providers/openAICompatibleProviderBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openAICompatibleProviderBase.d.ts","sourceRoot":"","sources":["../../../../src/plus/ai/providers/openAICompatibleProviderBase.ts"],"names":[],"mappings":"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"}