@gitkraken/core-gitlens 0.2.0 → 0.3.1

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 (448) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/dist/git/cache.d.ts +38 -8
  3. package/dist/git/cache.d.ts.map +1 -1
  4. package/dist/git/cache.js +120 -55
  5. package/dist/git/cache.js.map +1 -1
  6. package/dist/git/context.d.ts +19 -0
  7. package/dist/git/context.d.ts.map +1 -1
  8. package/dist/git/context.js.map +1 -1
  9. package/dist/git/features.d.ts +1 -1
  10. package/dist/git/features.d.ts.map +1 -1
  11. package/dist/git/features.js +1 -0
  12. package/dist/git/features.js.map +1 -1
  13. package/dist/git/models/commit.d.ts.map +1 -1
  14. package/dist/git/models/commit.js.map +1 -1
  15. package/dist/git/models/graph.d.ts +96 -0
  16. package/dist/git/models/graph.d.ts.map +1 -1
  17. package/dist/git/models/graph.js +24 -1
  18. package/dist/git/models/graph.js.map +1 -1
  19. package/dist/git/models/reference.d.ts +31 -0
  20. package/dist/git/models/reference.d.ts.map +1 -1
  21. package/dist/git/models/remote.d.ts.map +1 -1
  22. package/dist/git/models/remote.js.map +1 -1
  23. package/dist/git/models/remoteProvider.d.ts +1 -0
  24. package/dist/git/models/remoteProvider.d.ts.map +1 -1
  25. package/dist/git/models/remoteProvider.js.map +1 -1
  26. package/dist/git/models/repository.d.ts +30 -13
  27. package/dist/git/models/repository.d.ts.map +1 -1
  28. package/dist/git/models/repository.js +89 -87
  29. package/dist/git/models/repository.js.map +1 -1
  30. package/dist/git/models/search.d.ts +2 -2
  31. package/dist/git/models/search.d.ts.map +1 -1
  32. package/dist/git/models/statusFile.d.ts +9 -0
  33. package/dist/git/models/statusFile.d.ts.map +1 -1
  34. package/dist/git/models/statusFile.js +11 -0
  35. package/dist/git/models/statusFile.js.map +1 -1
  36. package/dist/git/models/worktree.d.ts +4 -1
  37. package/dist/git/models/worktree.d.ts.map +1 -1
  38. package/dist/git/models/worktree.js +2 -2
  39. package/dist/git/models/worktree.js.map +1 -1
  40. package/dist/git/parsers/diffParser.d.ts.map +1 -1
  41. package/dist/git/parsers/diffParser.js.map +1 -1
  42. package/dist/git/providers/branches.d.ts +15 -4
  43. package/dist/git/providers/branches.d.ts.map +1 -1
  44. package/dist/git/providers/commits.d.ts +4 -0
  45. package/dist/git/providers/commits.d.ts.map +1 -1
  46. package/dist/git/providers/config.d.ts +5 -4
  47. package/dist/git/providers/config.d.ts.map +1 -1
  48. package/dist/git/providers/operations.d.ts +61 -12
  49. package/dist/git/providers/operations.d.ts.map +1 -1
  50. package/dist/git/providers/pausedOperations.d.ts +3 -1
  51. package/dist/git/providers/pausedOperations.d.ts.map +1 -1
  52. package/dist/git/providers/refs.d.ts +23 -2
  53. package/dist/git/providers/refs.d.ts.map +1 -1
  54. package/dist/git/providers/staging.d.ts +16 -0
  55. package/dist/git/providers/staging.d.ts.map +1 -1
  56. package/dist/git/providers/status.d.ts +4 -1
  57. package/dist/git/providers/status.d.ts.map +1 -1
  58. package/dist/git/remotes/azure-devops.d.ts.map +1 -1
  59. package/dist/git/remotes/azure-devops.js.map +1 -1
  60. package/dist/git/remotes/custom.d.ts +2 -0
  61. package/dist/git/remotes/custom.d.ts.map +1 -1
  62. package/dist/git/remotes/custom.js +20 -0
  63. package/dist/git/remotes/custom.js.map +1 -1
  64. package/dist/git/{exec.types.d.ts → run.types.d.ts} +22 -3
  65. package/dist/git/run.types.d.ts.map +1 -0
  66. package/dist/git/run.types.js +2 -0
  67. package/dist/git/run.types.js.map +1 -0
  68. package/dist/git/service.d.ts.map +1 -1
  69. package/dist/git/service.js.map +1 -1
  70. package/dist/git/utils/autolink.utils.d.ts.map +1 -1
  71. package/dist/git/utils/autolink.utils.js.map +1 -1
  72. package/dist/git/utils/blame.utils.d.ts.map +1 -1
  73. package/dist/git/utils/blame.utils.js.map +1 -1
  74. package/dist/git/utils/conflictResolution.utils.d.ts +6 -0
  75. package/dist/git/utils/conflictResolution.utils.d.ts.map +1 -0
  76. package/dist/git/utils/conflictResolution.utils.js +25 -0
  77. package/dist/git/utils/conflictResolution.utils.js.map +1 -0
  78. package/dist/git/utils/contributor.utils.d.ts +3 -0
  79. package/dist/git/utils/contributor.utils.d.ts.map +1 -1
  80. package/dist/git/utils/contributor.utils.js +22 -0
  81. package/dist/git/utils/contributor.utils.js.map +1 -1
  82. package/dist/git/utils/fileStatus.utils.d.ts +2 -1
  83. package/dist/git/utils/fileStatus.utils.d.ts.map +1 -1
  84. package/dist/git/utils/fileStatus.utils.js +4 -0
  85. package/dist/git/utils/fileStatus.utils.js.map +1 -1
  86. package/dist/git/utils/reachability.utils.d.ts +37 -0
  87. package/dist/git/utils/reachability.utils.d.ts.map +1 -0
  88. package/dist/git/utils/reachability.utils.js +96 -0
  89. package/dist/git/utils/reachability.utils.js.map +1 -0
  90. package/dist/git/utils/search.utils.d.ts.map +1 -1
  91. package/dist/git/utils/search.utils.js +3 -0
  92. package/dist/git/utils/search.utils.js.map +1 -1
  93. package/dist/git/utils/sorting.d.ts +8 -0
  94. package/dist/git/utils/sorting.d.ts.map +1 -1
  95. package/dist/git/utils/sorting.js +15 -0
  96. package/dist/git/utils/sorting.js.map +1 -1
  97. package/dist/git/utils/status.utils.d.ts.map +1 -1
  98. package/dist/git/utils/status.utils.js.map +1 -1
  99. package/dist/git/watching/classifyChange.d.ts.map +1 -1
  100. package/dist/git/watching/classifyChange.js +8 -0
  101. package/dist/git/watching/classifyChange.js.map +1 -1
  102. package/dist/git/watching/gitIgnoreFilter.js +1 -1
  103. package/dist/git/watching/gitIgnoreFilter.js.map +1 -1
  104. package/dist/git/watching/initWatcher.d.ts.map +1 -1
  105. package/dist/git/watching/initWatcher.js.map +1 -1
  106. package/dist/git/watching/watchGroup.d.ts.map +1 -1
  107. package/dist/git/watching/watchGroup.js.map +1 -1
  108. package/dist/git/watching/watchService.d.ts +4 -2
  109. package/dist/git/watching/watchService.d.ts.map +1 -1
  110. package/dist/git/watching/watchService.js +31 -6
  111. package/dist/git/watching/watchService.js.map +1 -1
  112. package/dist/git/watching/watchSession.d.ts +14 -12
  113. package/dist/git/watching/watchSession.d.ts.map +1 -1
  114. package/dist/git/watching/watchSession.js +56 -55
  115. package/dist/git/watching/watchSession.js.map +1 -1
  116. package/dist/git-cli/exec/exec.types.d.ts +1 -1
  117. package/dist/git-cli/exec/exec.types.d.ts.map +1 -1
  118. package/dist/git-cli/exec/git.d.ts +3 -3
  119. package/dist/git-cli/exec/git.d.ts.map +1 -1
  120. package/dist/git-cli/exec/git.js.map +1 -1
  121. package/dist/git-cli/exec/gitQueue.d.ts +10 -2
  122. package/dist/git-cli/exec/gitQueue.d.ts.map +1 -1
  123. package/dist/git-cli/exec/gitQueue.js +39 -12
  124. package/dist/git-cli/exec/gitQueue.js.map +1 -1
  125. package/dist/git-cli/parsers/blameParser.d.ts.map +1 -1
  126. package/dist/git-cli/parsers/blameParser.js.map +1 -1
  127. package/dist/git-cli/parsers/logParser.js.map +1 -1
  128. package/dist/git-cli/parsers/refParser.d.ts +3 -30
  129. package/dist/git-cli/parsers/refParser.d.ts.map +1 -1
  130. package/dist/git-cli/parsers/refParser.js +30 -30
  131. package/dist/git-cli/parsers/refParser.js.map +1 -1
  132. package/dist/git-cli/providers/blame.d.ts.map +1 -1
  133. package/dist/git-cli/providers/blame.js.map +1 -1
  134. package/dist/git-cli/providers/branches.d.ts +15 -5
  135. package/dist/git-cli/providers/branches.d.ts.map +1 -1
  136. package/dist/git-cli/providers/branches.js +99 -68
  137. package/dist/git-cli/providers/branches.js.map +1 -1
  138. package/dist/git-cli/providers/commits.d.ts +1 -0
  139. package/dist/git-cli/providers/commits.d.ts.map +1 -1
  140. package/dist/git-cli/providers/commits.js +86 -30
  141. package/dist/git-cli/providers/commits.js.map +1 -1
  142. package/dist/git-cli/providers/config.d.ts +19 -6
  143. package/dist/git-cli/providers/config.d.ts.map +1 -1
  144. package/dist/git-cli/providers/config.js +86 -38
  145. package/dist/git-cli/providers/config.js.map +1 -1
  146. package/dist/git-cli/providers/diff.d.ts.map +1 -1
  147. package/dist/git-cli/providers/diff.js +5 -3
  148. package/dist/git-cli/providers/diff.js.map +1 -1
  149. package/dist/git-cli/providers/graph.d.ts.map +1 -1
  150. package/dist/git-cli/providers/graph.js +139 -16
  151. package/dist/git-cli/providers/graph.js.map +1 -1
  152. package/dist/git-cli/providers/operations.d.ts +17 -14
  153. package/dist/git-cli/providers/operations.d.ts.map +1 -1
  154. package/dist/git-cli/providers/operations.js +135 -63
  155. package/dist/git-cli/providers/operations.js.map +1 -1
  156. package/dist/git-cli/providers/patch.d.ts.map +1 -1
  157. package/dist/git-cli/providers/patch.js.map +1 -1
  158. package/dist/git-cli/providers/pausedOperations.d.ts +3 -1
  159. package/dist/git-cli/providers/pausedOperations.d.ts.map +1 -1
  160. package/dist/git-cli/providers/pausedOperations.js +7 -1
  161. package/dist/git-cli/providers/pausedOperations.js.map +1 -1
  162. package/dist/git-cli/providers/refs.d.ts +19 -2
  163. package/dist/git-cli/providers/refs.d.ts.map +1 -1
  164. package/dist/git-cli/providers/refs.js +286 -2
  165. package/dist/git-cli/providers/refs.js.map +1 -1
  166. package/dist/git-cli/providers/revision.js.map +1 -1
  167. package/dist/git-cli/providers/staging.d.ts +6 -0
  168. package/dist/git-cli/providers/staging.d.ts.map +1 -1
  169. package/dist/git-cli/providers/staging.js +32 -0
  170. package/dist/git-cli/providers/staging.js.map +1 -1
  171. package/dist/git-cli/providers/stash.d.ts.map +1 -1
  172. package/dist/git-cli/providers/stash.js +20 -2
  173. package/dist/git-cli/providers/stash.js.map +1 -1
  174. package/dist/git-cli/providers/status.d.ts +4 -1
  175. package/dist/git-cli/providers/status.d.ts.map +1 -1
  176. package/dist/git-cli/providers/status.js +8 -4
  177. package/dist/git-cli/providers/status.js.map +1 -1
  178. package/dist/git-cli/providers/tags.d.ts.map +1 -1
  179. package/dist/git-cli/providers/tags.js +10 -6
  180. package/dist/git-cli/providers/tags.js.map +1 -1
  181. package/dist/ipc/discovery.d.ts +49 -0
  182. package/dist/ipc/discovery.d.ts.map +1 -0
  183. package/dist/ipc/discovery.js +147 -0
  184. package/dist/ipc/discovery.js.map +1 -0
  185. package/dist/ipc/ipcServer.d.ts +20 -0
  186. package/dist/ipc/ipcServer.d.ts.map +1 -0
  187. package/dist/ipc/ipcServer.js +162 -0
  188. package/dist/ipc/ipcServer.js.map +1 -0
  189. package/dist/plus/agents/providers/claudeCodeProvider.d.ts +167 -0
  190. package/dist/plus/agents/providers/claudeCodeProvider.d.ts.map +1 -0
  191. package/dist/plus/agents/providers/claudeCodeProvider.js +1786 -0
  192. package/dist/plus/agents/providers/claudeCodeProvider.js.map +1 -0
  193. package/dist/plus/agents/providers/claudeCodeTranscript.d.ts +36 -0
  194. package/dist/plus/agents/providers/claudeCodeTranscript.d.ts.map +1 -0
  195. package/dist/plus/agents/providers/claudeCodeTranscript.js +171 -0
  196. package/dist/plus/agents/providers/claudeCodeTranscript.js.map +1 -0
  197. package/dist/plus/agents/sanitizePrompt.d.ts +15 -0
  198. package/dist/plus/agents/sanitizePrompt.d.ts.map +1 -0
  199. package/dist/plus/agents/sanitizePrompt.js +103 -0
  200. package/dist/plus/agents/sanitizePrompt.js.map +1 -0
  201. package/dist/plus/agents/stateMachine.d.ts +32 -0
  202. package/dist/plus/agents/stateMachine.d.ts.map +1 -0
  203. package/dist/plus/agents/stateMachine.js +180 -0
  204. package/dist/plus/agents/stateMachine.js.map +1 -0
  205. package/dist/plus/agents/types.d.ts +254 -0
  206. package/dist/plus/agents/types.d.ts.map +1 -0
  207. package/dist/plus/agents/types.js +49 -0
  208. package/dist/plus/agents/types.js.map +1 -0
  209. package/dist/plus/ai/errors.d.ts +4 -1
  210. package/dist/plus/ai/errors.d.ts.map +1 -1
  211. package/dist/plus/ai/errors.js +38 -0
  212. package/dist/plus/ai/errors.js.map +1 -1
  213. package/dist/plus/ai/models/model.d.ts +1 -1
  214. package/dist/plus/ai/models/model.d.ts.map +1 -1
  215. package/dist/plus/ai/models/model.js.map +1 -1
  216. package/dist/plus/ai/models/promptTemplates.d.ts +11 -2
  217. package/dist/plus/ai/models/promptTemplates.d.ts.map +1 -1
  218. package/dist/plus/ai/models/provider.d.ts +3 -0
  219. package/dist/plus/ai/models/provider.d.ts.map +1 -1
  220. package/dist/plus/ai/prompts.d.ts +1 -0
  221. package/dist/plus/ai/prompts.d.ts.map +1 -1
  222. package/dist/plus/ai/prompts.js +48 -8
  223. package/dist/plus/ai/prompts.js.map +1 -1
  224. package/dist/plus/ai/providers/gitkrakenProvider.d.ts +1 -1
  225. package/dist/plus/ai/providers/gitkrakenProvider.d.ts.map +1 -1
  226. package/dist/plus/ai/providers/gitkrakenProvider.js +4 -1
  227. package/dist/plus/ai/providers/gitkrakenProvider.js.map +1 -1
  228. package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts +4 -3
  229. package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts.map +1 -1
  230. package/dist/plus/ai/providers/openAICompatibleProviderBase.js +9 -6
  231. package/dist/plus/ai/providers/openAICompatibleProviderBase.js.map +1 -1
  232. package/dist/plus/ai/utils/ai.utils.d.ts.map +1 -1
  233. package/dist/plus/ai/utils/ai.utils.js +2 -0
  234. package/dist/plus/ai/utils/ai.utils.js.map +1 -1
  235. package/dist/plus/ai/utils/results.utils.d.ts.map +1 -1
  236. package/dist/plus/ai/utils/results.utils.js.map +1 -1
  237. package/dist/plus/git-github/api/github.d.ts +12 -1
  238. package/dist/plus/git-github/api/github.d.ts.map +1 -1
  239. package/dist/plus/git-github/api/github.js +245 -51
  240. package/dist/plus/git-github/api/github.js.map +1 -1
  241. package/dist/plus/git-github/api/types.d.ts +8 -0
  242. package/dist/plus/git-github/api/types.d.ts.map +1 -1
  243. package/dist/plus/git-github/models.d.ts +1 -1
  244. package/dist/plus/git-github/models.d.ts.map +1 -1
  245. package/dist/plus/git-github/models.js.map +1 -1
  246. package/dist/plus/git-github/providers/github/blame.d.ts.map +1 -1
  247. package/dist/plus/git-github/providers/github/blame.js.map +1 -1
  248. package/dist/plus/git-github/providers/github/branches.d.ts +5 -1
  249. package/dist/plus/git-github/providers/github/branches.d.ts.map +1 -1
  250. package/dist/plus/git-github/providers/github/branches.js +47 -24
  251. package/dist/plus/git-github/providers/github/branches.js.map +1 -1
  252. package/dist/plus/git-github/providers/github/commits.d.ts.map +1 -1
  253. package/dist/plus/git-github/providers/github/commits.js +144 -92
  254. package/dist/plus/git-github/providers/github/commits.js.map +1 -1
  255. package/dist/plus/git-github/providers/github/diff.d.ts +1 -1
  256. package/dist/plus/git-github/providers/github/diff.d.ts.map +1 -1
  257. package/dist/plus/git-github/providers/github/diff.js +23 -9
  258. package/dist/plus/git-github/providers/github/diff.js.map +1 -1
  259. package/dist/plus/git-github/providers/github/refs.d.ts +9 -1
  260. package/dist/plus/git-github/providers/github/refs.d.ts.map +1 -1
  261. package/dist/plus/git-github/providers/github/refs.js +39 -14
  262. package/dist/plus/git-github/providers/github/refs.js.map +1 -1
  263. package/dist/plus/git-github/providers/github/revision.d.ts.map +1 -1
  264. package/dist/plus/git-github/providers/github/revision.js +1 -2
  265. package/dist/plus/git-github/providers/github/revision.js.map +1 -1
  266. package/dist/plus/git-github/providers/github/status.d.ts +4 -1
  267. package/dist/plus/git-github/providers/github/status.d.ts.map +1 -1
  268. package/dist/plus/git-github/providers/github/status.js +1 -1
  269. package/dist/plus/git-github/providers/github/status.js.map +1 -1
  270. package/dist/plus/git-github/providers/github/tags.d.ts.map +1 -1
  271. package/dist/plus/git-github/providers/github/tags.js +35 -36
  272. package/dist/plus/git-github/providers/github/tags.js.map +1 -1
  273. package/dist/plus/git-github/providers/githubGitProvider.d.ts.map +1 -1
  274. package/dist/plus/git-github/providers/githubGitProvider.js.map +1 -1
  275. package/dist/utils/color.d.ts.map +1 -1
  276. package/dist/utils/color.js.map +1 -1
  277. package/dist/utils/date.d.ts.map +1 -1
  278. package/dist/utils/date.js +6 -0
  279. package/dist/utils/date.js.map +1 -1
  280. package/dist/utils/debounce.js +1 -1
  281. package/dist/utils/decorators/serializable.d.ts.map +1 -1
  282. package/dist/utils/decorators/serializable.js.map +1 -1
  283. package/dist/utils/dedupedAsyncCache.d.ts +37 -0
  284. package/dist/utils/dedupedAsyncCache.d.ts.map +1 -0
  285. package/dist/utils/dedupedAsyncCache.js +68 -0
  286. package/dist/utils/dedupedAsyncCache.js.map +1 -0
  287. package/dist/utils/diff.d.ts +2 -0
  288. package/dist/utils/diff.d.ts.map +1 -0
  289. package/dist/utils/diff.js +53 -0
  290. package/dist/utils/diff.js.map +1 -0
  291. package/dist/utils/disposable.d.ts.map +1 -1
  292. package/dist/utils/disposable.js.map +1 -1
  293. package/dist/utils/env/node/exec.d.ts.map +1 -1
  294. package/dist/utils/env/node/exec.js.map +1 -1
  295. package/dist/utils/error.d.ts.map +1 -1
  296. package/dist/utils/error.js.map +1 -1
  297. package/dist/utils/iterable.d.ts +7 -1
  298. package/dist/utils/iterable.d.ts.map +1 -1
  299. package/dist/utils/iterable.js +12 -4
  300. package/dist/utils/iterable.js.map +1 -1
  301. package/dist/utils/logger.d.ts.map +1 -1
  302. package/dist/utils/logger.js.map +1 -1
  303. package/dist/utils/lruMap.d.ts +9 -0
  304. package/dist/utils/lruMap.d.ts.map +1 -1
  305. package/dist/utils/lruMap.js +26 -4
  306. package/dist/utils/lruMap.js.map +1 -1
  307. package/dist/utils/markdown.d.ts.map +1 -1
  308. package/dist/utils/markdown.js.map +1 -1
  309. package/dist/utils/mru.d.ts.map +1 -1
  310. package/dist/utils/mru.js.map +1 -1
  311. package/dist/utils/object.d.ts +22 -1
  312. package/dist/utils/object.d.ts.map +1 -1
  313. package/dist/utils/object.js +56 -3
  314. package/dist/utils/object.js.map +1 -1
  315. package/dist/utils/paging.js +14 -15
  316. package/dist/utils/paging.js.map +1 -1
  317. package/dist/utils/path.d.ts.map +1 -1
  318. package/dist/utils/path.js.map +1 -1
  319. package/dist/utils/promise.d.ts +1 -0
  320. package/dist/utils/promise.d.ts.map +1 -1
  321. package/dist/utils/promise.js +17 -0
  322. package/dist/utils/promise.js.map +1 -1
  323. package/dist/utils/promiseCache.d.ts +10 -0
  324. package/dist/utils/promiseCache.d.ts.map +1 -1
  325. package/dist/utils/promiseCache.js +34 -4
  326. package/dist/utils/promiseCache.js.map +1 -1
  327. package/dist/utils/string.d.ts.map +1 -1
  328. package/dist/utils/string.js +1 -1
  329. package/dist/utils/string.js.map +1 -1
  330. package/dist/utils/uri.d.ts.map +1 -1
  331. package/dist/utils/uri.js.map +1 -1
  332. package/dist/utils/version.d.ts.map +1 -1
  333. package/dist/utils/version.js.map +1 -1
  334. package/package.json +13 -1
  335. package/src/git/cache.ts +192 -90
  336. package/src/git/context.ts +21 -0
  337. package/src/git/features.ts +2 -0
  338. package/src/git/models/commit.ts +1 -0
  339. package/src/git/models/graph.ts +97 -0
  340. package/src/git/models/reference.ts +33 -0
  341. package/src/git/models/remote.ts +1 -0
  342. package/src/git/models/remoteProvider.ts +1 -0
  343. package/src/git/models/repository.ts +105 -96
  344. package/src/git/models/search.ts +2 -2
  345. package/src/git/models/statusFile.ts +12 -0
  346. package/src/git/models/worktree.ts +10 -2
  347. package/src/git/parsers/diffParser.ts +2 -0
  348. package/src/git/providers/branches.ts +22 -4
  349. package/src/git/providers/commits.ts +4 -0
  350. package/src/git/providers/config.ts +3 -5
  351. package/src/git/providers/operations.ts +65 -1
  352. package/src/git/providers/pausedOperations.ts +1 -0
  353. package/src/git/providers/refs.ts +32 -3
  354. package/src/git/providers/staging.ts +12 -0
  355. package/src/git/providers/status.ts +6 -1
  356. package/src/git/remotes/azure-devops.ts +2 -0
  357. package/src/git/remotes/custom.ts +23 -0
  358. package/src/git/{exec.types.ts → run.types.ts} +22 -2
  359. package/src/git/service.ts +1 -0
  360. package/src/git/utils/autolink.utils.ts +1 -0
  361. package/src/git/utils/blame.utils.ts +2 -0
  362. package/src/git/utils/conflictResolution.utils.ts +31 -0
  363. package/src/git/utils/contributor.utils.ts +24 -0
  364. package/src/git/utils/fileStatus.utils.ts +7 -1
  365. package/src/git/utils/reachability.utils.ts +109 -0
  366. package/src/git/utils/search.utils.ts +2 -0
  367. package/src/git/utils/sorting.ts +17 -0
  368. package/src/git/utils/status.utils.ts +1 -0
  369. package/src/git/watching/classifyChange.ts +9 -0
  370. package/src/git/watching/gitIgnoreFilter.ts +2 -2
  371. package/src/git/watching/initWatcher.ts +2 -0
  372. package/src/git/watching/watchGroup.ts +3 -0
  373. package/src/git/watching/watchService.ts +45 -7
  374. package/src/git/watching/watchSession.ts +71 -55
  375. package/src/git-cli/exec/exec.types.ts +2 -2
  376. package/src/git-cli/exec/git.ts +6 -5
  377. package/src/git-cli/exec/gitQueue.ts +41 -12
  378. package/src/git-cli/parsers/blameParser.ts +1 -0
  379. package/src/git-cli/parsers/logParser.ts +1 -0
  380. package/src/git-cli/parsers/refParser.ts +33 -34
  381. package/src/git-cli/providers/blame.ts +1 -0
  382. package/src/git-cli/providers/branches.ts +165 -93
  383. package/src/git-cli/providers/commits.ts +107 -37
  384. package/src/git-cli/providers/config.ts +101 -48
  385. package/src/git-cli/providers/diff.ts +10 -3
  386. package/src/git-cli/providers/graph.ts +156 -16
  387. package/src/git-cli/providers/operations.ts +208 -83
  388. package/src/git-cli/providers/patch.ts +1 -0
  389. package/src/git-cli/providers/pausedOperations.ts +8 -0
  390. package/src/git-cli/providers/refs.ts +247 -3
  391. package/src/git-cli/providers/revision.ts +2 -2
  392. package/src/git-cli/providers/staging.ts +33 -0
  393. package/src/git-cli/providers/stash.ts +20 -2
  394. package/src/git-cli/providers/status.ts +24 -5
  395. package/src/git-cli/providers/tags.ts +15 -16
  396. package/src/ipc/discovery.ts +186 -0
  397. package/src/ipc/ipcServer.ts +171 -0
  398. package/src/plus/agents/providers/claudeCodeProvider.ts +2122 -0
  399. package/src/plus/agents/providers/claudeCodeTranscript.ts +214 -0
  400. package/src/plus/agents/sanitizePrompt.ts +109 -0
  401. package/src/plus/agents/stateMachine.ts +197 -0
  402. package/src/plus/agents/types.ts +325 -0
  403. package/src/plus/ai/errors.ts +40 -0
  404. package/src/plus/ai/models/model.ts +1 -0
  405. package/src/plus/ai/models/promptTemplates.ts +13 -0
  406. package/src/plus/ai/models/provider.ts +7 -1
  407. package/src/plus/ai/prompts.ts +49 -8
  408. package/src/plus/ai/providers/gitkrakenProvider.ts +4 -0
  409. package/src/plus/ai/providers/openAICompatibleProviderBase.ts +21 -4
  410. package/src/plus/ai/utils/ai.utils.ts +2 -0
  411. package/src/plus/ai/utils/results.utils.ts +2 -0
  412. package/src/plus/git-github/api/github.ts +315 -57
  413. package/src/plus/git-github/api/types.ts +15 -0
  414. package/src/plus/git-github/models.ts +1 -1
  415. package/src/plus/git-github/providers/github/blame.ts +2 -0
  416. package/src/plus/git-github/providers/github/branches.ts +61 -31
  417. package/src/plus/git-github/providers/github/commits.ts +231 -160
  418. package/src/plus/git-github/providers/github/diff.ts +27 -19
  419. package/src/plus/git-github/providers/github/refs.ts +58 -23
  420. package/src/plus/git-github/providers/github/revision.ts +1 -2
  421. package/src/plus/git-github/providers/github/status.ts +6 -1
  422. package/src/plus/git-github/providers/github/tags.ts +61 -62
  423. package/src/plus/git-github/providers/githubGitProvider.ts +1 -0
  424. package/src/utils/color.ts +2 -0
  425. package/src/utils/date.ts +5 -0
  426. package/src/utils/debounce.ts +1 -1
  427. package/src/utils/decorators/serializable.ts +1 -0
  428. package/src/utils/dedupedAsyncCache.ts +74 -0
  429. package/src/utils/diff.ts +61 -0
  430. package/src/utils/disposable.ts +2 -0
  431. package/src/utils/env/node/exec.ts +2 -0
  432. package/src/utils/error.ts +1 -0
  433. package/src/utils/iterable.ts +17 -3
  434. package/src/utils/logger.ts +1 -0
  435. package/src/utils/lruMap.ts +29 -4
  436. package/src/utils/markdown.ts +1 -0
  437. package/src/utils/mru.ts +2 -0
  438. package/src/utils/object.ts +55 -4
  439. package/src/utils/paging.ts +14 -14
  440. package/src/utils/path.ts +1 -0
  441. package/src/utils/promise.ts +22 -0
  442. package/src/utils/promiseCache.ts +48 -16
  443. package/src/utils/string.ts +3 -1
  444. package/src/utils/uri.ts +1 -0
  445. package/src/utils/version.ts +1 -0
  446. package/dist/git/exec.types.d.ts.map +0 -1
  447. package/dist/git/exec.types.js +0 -2
  448. package/dist/git/exec.types.js.map +0 -1
@@ -0,0 +1,180 @@
1
+ import { kill } from 'process';
2
+ /** Cap for derived plan / question summaries — short enough to clamp into a card row without
3
+ * truncation eating the leading content, long enough to convey what the prompt is about. */
4
+ const summaryMaxLength = 120;
5
+ export function deriveStatusFromEvent(event) {
6
+ switch (event) {
7
+ case 'SessionStart':
8
+ case 'Stop':
9
+ case 'StopFailure':
10
+ return 'idle';
11
+ case 'PreToolUse':
12
+ return 'tool_use';
13
+ case 'PreCompact':
14
+ return 'compacting';
15
+ case 'PermissionRequest':
16
+ case 'Elicitation':
17
+ return 'permission_requested';
18
+ case 'UserPromptSubmit':
19
+ case 'PostToolUse':
20
+ case 'PostToolUseFailure':
21
+ case 'PostCompact':
22
+ case 'PermissionDenied':
23
+ case 'ElicitationResult':
24
+ case 'SubagentStart':
25
+ case 'SubagentStop':
26
+ return 'thinking';
27
+ default:
28
+ return 'idle';
29
+ }
30
+ }
31
+ export function isProcessAlive(pid) {
32
+ // `kill(0, ...)` and `kill(<negative>, ...)` have process-group semantics on POSIX
33
+ // (and target the current process under libuv on Windows), so they don't tell us
34
+ // anything about a specific pid. Reject anything that isn't a real, positive pid.
35
+ if (!Number.isInteger(pid) || pid <= 0)
36
+ return false;
37
+ try {
38
+ kill(pid, 0);
39
+ return true;
40
+ }
41
+ catch (ex) {
42
+ // The process exists but we can't signal it: sandboxed/different uid (POSIX
43
+ // EPERM) or `OpenProcess` access-denied (Windows EACCES). Treat as alive.
44
+ // ESRCH and everything else mean dead.
45
+ const code = ex?.code;
46
+ return code === 'EPERM' || code === 'EACCES';
47
+ }
48
+ }
49
+ export function rehydrateSubagents(subagents) {
50
+ if (subagents == null || subagents.length === 0)
51
+ return undefined;
52
+ return subagents.map(s => ({
53
+ ...s,
54
+ lastActivity: new Date(s.lastActivity),
55
+ phaseSince: new Date(s.phaseSince),
56
+ }));
57
+ }
58
+ export function describeToolInput(toolName, toolInput) {
59
+ let detail;
60
+ switch (toolName) {
61
+ case 'Bash':
62
+ detail = toolInput.command;
63
+ break;
64
+ case 'Edit':
65
+ case 'MultiEdit':
66
+ case 'Write':
67
+ case 'Read':
68
+ detail = toolInput.file_path;
69
+ break;
70
+ case 'Grep':
71
+ case 'Glob':
72
+ detail = toolInput.pattern;
73
+ break;
74
+ case 'WebFetch':
75
+ detail = toolInput.url;
76
+ break;
77
+ case 'WebSearch':
78
+ detail = toolInput.query;
79
+ break;
80
+ case 'NotebookEdit':
81
+ detail = toolInput.notebook_path;
82
+ break;
83
+ case 'ExitPlanMode':
84
+ detail = extractPlanSummary(toolInput);
85
+ break;
86
+ case 'AskUserQuestion':
87
+ detail = extractQuestionDetails(toolInput)?.text;
88
+ break;
89
+ }
90
+ return detail != null ? `${toolName}(${detail})` : toolName;
91
+ }
92
+ /** Maps a Claude Code tool name to its UX-relevant prompt kind. `ExitPlanMode` and
93
+ * `AskUserQuestion` are the two tools whose semantics differ from a regular permission
94
+ * request — everything else falls through to the generic tool kind. */
95
+ export function classifyPermissionKind(toolName) {
96
+ switch (toolName) {
97
+ case 'ExitPlanMode':
98
+ return 'plan';
99
+ case 'AskUserQuestion':
100
+ return 'question';
101
+ default:
102
+ return 'tool';
103
+ }
104
+ }
105
+ /** Extracts a short, scannable summary from an ExitPlanMode plan body. Prefers the first
106
+ * Markdown heading (stripped of leading `#`s) so the plan's title surfaces; falls back to
107
+ * the first non-empty line if no heading appears. Capped at {@link summaryMaxLength} with an
108
+ * ellipsis. */
109
+ export function extractPlanSummary(toolInput) {
110
+ const plan = toolInput.plan;
111
+ if (!plan)
112
+ return undefined;
113
+ let heading;
114
+ let firstNonEmpty;
115
+ for (const line of plan.split(/\r?\n/)) {
116
+ const trimmed = line.trim();
117
+ if (!trimmed)
118
+ continue;
119
+ if (trimmed.startsWith('#')) {
120
+ const stripped = trimmed.replace(/^#+\s*/, '').trim();
121
+ if (stripped) {
122
+ heading = stripped;
123
+ break;
124
+ }
125
+ }
126
+ firstNonEmpty ??= trimmed;
127
+ }
128
+ const summary = heading ?? firstNonEmpty;
129
+ if (!summary)
130
+ return undefined;
131
+ return summary.length > summaryMaxLength ? `${summary.slice(0, summaryMaxLength).trimEnd()}…` : summary;
132
+ }
133
+ /** Extracts the leading question text + total question count from an AskUserQuestion call.
134
+ * Returns undefined if the input doesn't carry a recognisable `questions` array. */
135
+ export function extractQuestionDetails(toolInput) {
136
+ const questions = toolInput.questions;
137
+ if (!Array.isArray(questions) || questions.length === 0)
138
+ return undefined;
139
+ const first = questions[0]?.question;
140
+ if (typeof first !== 'string')
141
+ return undefined;
142
+ const trimmed = first.trim();
143
+ if (!trimmed)
144
+ return undefined;
145
+ const text = trimmed.length > summaryMaxLength ? `${trimmed.slice(0, summaryMaxLength).trimEnd()}…` : trimmed;
146
+ return { text: text, count: questions.length };
147
+ }
148
+ /** Returns the file path a file-mutating tool is targeting, or `undefined` for non-mutating /
149
+ * non-file tools. `Read` is intentionally excluded — "working on a file" means writing to it.
150
+ * Reads are surfaced separately via {@link getToolReadPath} so consumers (e.g. the treemap
151
+ * activity overlay) can render reads with a distinct visual treatment. */
152
+ export function getToolFilePath(toolName, toolInput) {
153
+ if (toolInput == null)
154
+ return undefined;
155
+ switch (toolName) {
156
+ case 'Edit':
157
+ case 'MultiEdit':
158
+ case 'Write':
159
+ return toolInput.file_path;
160
+ case 'NotebookEdit':
161
+ return toolInput.notebook_path;
162
+ default:
163
+ return undefined;
164
+ }
165
+ }
166
+ /** Returns the file path a read-only file tool is targeting, or `undefined` for non-read /
167
+ * non-file tools. Mirrors {@link getToolFilePath} but for `Read`/`NotebookRead`. */
168
+ export function getToolReadPath(toolName, toolInput) {
169
+ if (toolInput == null)
170
+ return undefined;
171
+ switch (toolName) {
172
+ case 'Read':
173
+ return toolInput.file_path;
174
+ case 'NotebookRead':
175
+ return toolInput.notebook_path;
176
+ default:
177
+ return undefined;
178
+ }
179
+ }
180
+ //# sourceMappingURL=stateMachine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateMachine.js","sourceRoot":"","sources":["../../../src/plus/agents/stateMachine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B;6FAC6F;AAC7F,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,MAAM,UAAU,qBAAqB,CAAC,KAAa;IAClD,QAAQ,KAAK,EAAE,CAAC;QACf,KAAK,cAAc,CAAC;QACpB,KAAK,MAAM,CAAC;QACZ,KAAK,aAAa;YACjB,OAAO,MAAM,CAAC;QACf,KAAK,YAAY;YAChB,OAAO,UAAU,CAAC;QACnB,KAAK,YAAY;YAChB,OAAO,YAAY,CAAC;QACrB,KAAK,mBAAmB,CAAC;QACzB,KAAK,aAAa;YACjB,OAAO,sBAAsB,CAAC;QAC/B,KAAK,kBAAkB,CAAC;QACxB,KAAK,aAAa,CAAC;QACnB,KAAK,oBAAoB,CAAC;QAC1B,KAAK,aAAa,CAAC;QACnB,KAAK,kBAAkB,CAAC;QACxB,KAAK,mBAAmB,CAAC;QACzB,KAAK,eAAe,CAAC;QACrB,KAAK,cAAc;YAClB,OAAO,UAAU,CAAC;QACnB;YACC,OAAO,MAAM,CAAC;IAChB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAW;IACzC,mFAAmF;IACnF,iFAAiF;IACjF,kFAAkF;IAClF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAErD,IAAI,CAAC;QACJ,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACb,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACb,4EAA4E;QAC5E,0EAA0E;QAC1E,uCAAuC;QACvC,MAAM,IAAI,GAAI,EAA4B,EAAE,IAAI,CAAC;QACjD,OAAO,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,QAAQ,CAAC;IAC9C,CAAC;AACF,CAAC;AAED,MAAM,UAAU,kBAAkB,CACjC,SAEY;IAEZ,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAClE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1B,GAAG,CAAC;QACJ,YAAY,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;QACtC,UAAU,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;KAClC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,SAAkC;IACrF,IAAI,MAA0B,CAAC;IAC/B,QAAQ,QAAQ,EAAE,CAAC;QAClB,KAAK,MAAM;YACV,MAAM,GAAG,SAAS,CAAC,OAA6B,CAAC;YACjD,MAAM;QACP,KAAK,MAAM,CAAC;QACZ,KAAK,WAAW,CAAC;QACjB,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACV,MAAM,GAAG,SAAS,CAAC,SAA+B,CAAC;YACnD,MAAM;QACP,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACV,MAAM,GAAG,SAAS,CAAC,OAA6B,CAAC;YACjD,MAAM;QACP,KAAK,UAAU;YACd,MAAM,GAAG,SAAS,CAAC,GAAyB,CAAC;YAC7C,MAAM;QACP,KAAK,WAAW;YACf,MAAM,GAAG,SAAS,CAAC,KAA2B,CAAC;YAC/C,MAAM;QACP,KAAK,cAAc;YAClB,MAAM,GAAG,SAAS,CAAC,aAAmC,CAAC;YACvD,MAAM;QACP,KAAK,cAAc;YAClB,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;YACvC,MAAM;QACP,KAAK,iBAAiB;YACrB,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;YACjD,MAAM;IACR,CAAC;IAED,OAAO,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7D,CAAC;AAED;;wEAEwE;AACxE,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACtD,QAAQ,QAAQ,EAAE,CAAC;QAClB,KAAK,cAAc;YAClB,OAAO,MAAM,CAAC;QACf,KAAK,iBAAiB;YACrB,OAAO,UAAU,CAAC;QACnB;YACC,OAAO,MAAM,CAAC;IAChB,CAAC;AACF,CAAC;AAED;;;gBAGgB;AAChB,MAAM,UAAU,kBAAkB,CAAC,SAAkC;IACpE,MAAM,IAAI,GAAG,SAAS,CAAC,IAA0B,CAAC;IAClD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAE5B,IAAI,OAA2B,CAAC;IAChC,IAAI,aAAiC,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACtD,IAAI,QAAQ,EAAE,CAAC;gBACd,OAAO,GAAG,QAAQ,CAAC;gBACnB,MAAM;YACP,CAAC;QACF,CAAC;QAED,aAAa,KAAK,OAAO,CAAC;IAC3B,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,IAAI,aAAa,CAAC;IACzC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,OAAO,OAAO,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;AACzG,CAAC;AAED;qFACqF;AACrF,MAAM,UAAU,sBAAsB,CACrC,SAAkC;IAElC,MAAM,SAAS,GAAG,SAAS,CAAC,SAA+D,CAAC;IAC5F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE1E,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAEhD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9G,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;AAChD,CAAC;AAED;;;2EAG2E;AAC3E,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,SAA8C;IAC/F,IAAI,SAAS,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IAExC,QAAQ,QAAQ,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC;QACZ,KAAK,WAAW,CAAC;QACjB,KAAK,OAAO;YACX,OAAO,SAAS,CAAC,SAA+B,CAAC;QAClD,KAAK,cAAc;YAClB,OAAO,SAAS,CAAC,aAAmC,CAAC;QACtD;YACC,OAAO,SAAS,CAAC;IACnB,CAAC;AACF,CAAC;AAED;qFACqF;AACrF,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,SAA8C;IAC/F,IAAI,SAAS,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IAExC,QAAQ,QAAQ,EAAE,CAAC;QAClB,KAAK,MAAM;YACV,OAAO,SAAS,CAAC,SAA+B,CAAC;QAClD,KAAK,cAAc;YAClB,OAAO,SAAS,CAAC,aAAmC,CAAC;QACtD;YACC,OAAO,SAAS,CAAC;IACnB,CAAC;AACF,CAAC"}
@@ -0,0 +1,254 @@
1
+ import type { IpcHandler } from '../../ipc/ipcServer.js';
2
+ import type { UnifiedDisposable } from '../../utils/disposable.js';
3
+ import type { Event } from '../../utils/event.js';
4
+ export declare const claudeCodeNonBlockingHookEvents: readonly ["SessionStart", "SessionEnd", "UserPromptSubmit", "PreToolUse", "PostToolUse", "PostToolUseFailure", "Notification", "Stop", "StopFailure", "SubagentStart", "SubagentStop", "TeammateIdle", "TaskCompleted", "InstructionsLoaded", "ConfigChange", "WorktreeCreate", "WorktreeRemove", "PreCompact", "PostCompact", "Elicitation", "ElicitationResult", "PermissionDenied", "CwdChanged"];
5
+ export declare const claudeCodeBlockingHookEvents: readonly ["PermissionRequest"];
6
+ export type ClaudeCodeHookEvent = (typeof claudeCodeNonBlockingHookEvents)[number] | (typeof claudeCodeBlockingHookEvents)[number];
7
+ export type PermissionDecision = 'allow' | 'deny';
8
+ export type AgentSessionStatus = 'thinking' | 'tool_use' | 'responding' | 'waiting' | 'idle' | 'compacting' | 'permission_requested';
9
+ export type AgentSessionPhase = 'idle' | 'working' | 'waiting';
10
+ export declare function getPhaseForStatus(status: AgentSessionStatus): AgentSessionPhase;
11
+ /**
12
+ * Returns whether the given phase represents an agent that is actively doing work or
13
+ * awaiting input (as opposed to fully idle). Uses an explicit allowlist so new phases
14
+ * default to "not active" rather than being silently treated as live.
15
+ */
16
+ export declare function isActiveAgentPhase(phase: AgentSessionPhase): boolean;
17
+ export interface PermissionSuggestion {
18
+ readonly type: string;
19
+ readonly tool?: string;
20
+ readonly rules?: readonly {
21
+ readonly toolName: string;
22
+ readonly ruleContent?: string;
23
+ }[];
24
+ readonly destination?: string;
25
+ }
26
+ /** Classification of what the agent is awaiting input for. Drives kind-aware UI: action button
27
+ * labels, phase wording, and which payload field carries the body. Detected at the provider
28
+ * boundary from the tool name / event so webviews don't grow their own classifiers.
29
+ * - `tool`: a regular tool permission (Bash, Edit, Read, …) — body is `toolDescription`.
30
+ * - `plan`: ExitPlanMode — body is `planSummary`; `planFilePath` may link the written plan.
31
+ * - `question`: AskUserQuestion — body is `questionText`; `questionCount` describes the batch.
32
+ * - `elicitation`: MCP elicitation — body is just `toolName`; user must respond in-session. */
33
+ export type PendingPermissionKind = 'tool' | 'plan' | 'question' | 'elicitation';
34
+ export interface PendingPermission {
35
+ readonly kind: PendingPermissionKind;
36
+ readonly toolName: string;
37
+ readonly toolDescription: string;
38
+ readonly toolInputDescription?: string;
39
+ readonly suggestions?: readonly PermissionSuggestion[];
40
+ /** Plan-mode (`kind === 'plan'`): on-disk path of the plan markdown, when the agent wrote one. */
41
+ readonly planFilePath?: string;
42
+ /** Plan-mode: short summary extracted from the plan content (first heading or leading sentence). */
43
+ readonly planSummary?: string;
44
+ /** Question-mode (`kind === 'question'`): the leading question text. */
45
+ readonly questionText?: string;
46
+ /** Question-mode: total number of questions in the batch. */
47
+ readonly questionCount?: number;
48
+ }
49
+ export interface AgentSession {
50
+ readonly id: string;
51
+ readonly providerId: string;
52
+ readonly providerName: string;
53
+ readonly name?: string;
54
+ readonly status: AgentSessionStatus;
55
+ readonly phase: AgentSessionPhase;
56
+ readonly statusDetail?: string;
57
+ readonly worktreePath?: string;
58
+ /** Common (parent) repo path shared by every worktree in this session's repo. Set together
59
+ * with `worktreePath` by `resolveGitInfo` — equal to `worktreePath` for a default-worktree
60
+ * session, otherwise the parent repo's common path. Use this for "same repo" identity
61
+ * checks; {@link workspacePath} is the matched workspace folder, not repo identity.
62
+ *
63
+ * `undefined` carries two meanings the host distinguishes internally (via the
64
+ * `gitInfoUnresolvable` bookkeeping flag) but consumers should treat identically: either
65
+ * "not yet resolved" (no probe completed) or "resolved but cwd is not inside any git repo".
66
+ * Either way, no repo identity is available — never attempt to `path.join`/`path.resolve`
67
+ * against it without an explicit `!= null` check. */
68
+ readonly commonPath?: string;
69
+ readonly pid?: number;
70
+ readonly lastActivity: Date;
71
+ readonly phaseSince: Date;
72
+ readonly isSubagent: boolean;
73
+ readonly parentId?: string;
74
+ readonly subagents?: readonly AgentSession[];
75
+ readonly pendingPermission?: PendingPermission;
76
+ /** The VS Code workspace folder containing the agent's cwd, or `undefined` if cwd is outside
77
+ * any open workspace folder. Used for `isInWorkspace` and "Open Folder" only — NOT for repo
78
+ * identity. For "what repo is this session in", use {@link commonPath}. */
79
+ readonly workspacePath?: string;
80
+ readonly cwd?: string;
81
+ /** The session's `cwd` at first observation. Set once and never overwritten — captures the
82
+ * agent's launch directory so consumers can detect drift (e.g. an agent that `cd`'d into a
83
+ * sibling worktree). Pairs with {@link initialWorktreePath} / {@link initialCommonPath}; for
84
+ * the live cwd, see {@link cwd}. */
85
+ readonly initialCwd?: string;
86
+ /** The session's `worktreePath` at first successful git-info resolution. Set once and never
87
+ * overwritten — compare against {@link worktreePath} to detect cross-worktree drift. Undefined
88
+ * if the session has never resolved into a git repo. */
89
+ readonly initialWorktreePath?: string;
90
+ /** The session's `commonPath` at first successful git-info resolution. Set once and never
91
+ * overwritten — compare against {@link commonPath} to detect cross-repo drift. Undefined if
92
+ * the session has never resolved into a git repo. */
93
+ readonly initialCommonPath?: string;
94
+ readonly planFile?: string;
95
+ readonly isInWorkspace: boolean;
96
+ readonly lastPrompt?: string;
97
+ readonly firstPrompt?: string;
98
+ /** Per-file activity record covering both read-class (Read/NotebookRead) and edit-class
99
+ * (Edit/Write/MultiEdit/NotebookEdit) tool calls. Populated on PreToolUse; each path is retained
100
+ * and fades for the configured decay window measured from its own last PostToolUse — the tail
101
+ * survives the turn-end Stop (which only drops the live `editing`/`reading` flags) and is fully
102
+ * cleared only on SessionEnd or once the decay window elapses.
103
+ *
104
+ * A sub-agent's file activity appears on its PARENT's `fileActivity`, not the sub-agent's own:
105
+ * the GK CLI keys a sub-agent's tool events under the parent session id (with `agentId` set), so
106
+ * they accumulate in the parent's bookkeeping directly. Consumers never need to recurse into
107
+ * `subagents[]`; sub-agent `AgentSession` objects carry `fileActivity: undefined`.
108
+ *
109
+ * Field semantics:
110
+ * - `path`: absolute path on the agent's filesystem.
111
+ * - `readAt` / `editedAt`: milliseconds since the last PreToolUse for that kind, computed by
112
+ * the host at serialization time (relative — avoids clock-skew). Omitted when never touched
113
+ * by that kind within the window.
114
+ * - `reading` / `editing`: `true` when at least one tool of that kind is in flight on this
115
+ * path right now (refcount > 0 in the host bookkeeping). Omitted when false to keep the
116
+ * wire minimal.
117
+ *
118
+ * Mutable array form so `Shape<AgentSession>` projects it cleanly (the `Shape<>` type mangles
119
+ * `readonly T[]` into a mapped object that loses its iterator). Treat as immutable. */
120
+ fileActivity?: {
121
+ path: string;
122
+ readAt?: number;
123
+ editedAt?: number;
124
+ reading?: true;
125
+ editing?: true;
126
+ }[];
127
+ /** `true` when the session was discovered via peer IPC sync (i.e. another GitLens window hosts
128
+ * the agent's hook flow and Claude Code extension panel). Locally-owned sessions leave this
129
+ * unset. The dispatcher uses this to route opens through the peer's IPC route + an OS-level
130
+ * window focus, since calling `claude-vscode.editor.open` in *our* extension only opens an
131
+ * inert local view that isn't connected to the live session running in the peer.
132
+ *
133
+ * Window-local: never serialized faithfully across the IPC wire. Each window decides locally
134
+ * based on how it received the session — `querySiblingWindowSessions` always overrides to
135
+ * `true` regardless of what the peer published. */
136
+ readonly isPeerOwned?: boolean;
137
+ /**
138
+ * Titles discovered by tailing the Claude Code transcript JSONL at
139
+ * `~/.claude/projects/<encoded-cwd>/<sessionId>.jsonl`. Populated by
140
+ * `ClaudeCodeTranscriptReader`; used by `getSessionDisplayName` as a fallback when no
141
+ * harness-supplied `name` is available. Last occurrence in the transcript wins per type.
142
+ */
143
+ readonly transcriptTitles?: {
144
+ readonly custom?: string;
145
+ readonly ai?: string;
146
+ readonly agent?: string;
147
+ };
148
+ }
149
+ export interface AgentSessionProvider extends UnifiedDisposable {
150
+ readonly id: string;
151
+ readonly name: string;
152
+ readonly icon: string;
153
+ readonly onDidChangeSessions: Event<void>;
154
+ readonly sessions: readonly AgentSession[];
155
+ start(workspacePaths: string[]): void;
156
+ stop(): void;
157
+ updateWorkspacePaths?(workspacePaths: string[]): void;
158
+ /** Pushed by the host from its cached agent detection. Lets the provider gate its reconciliation
159
+ * poll (the CLI `list-sessions` call) so an idle window with no sessions and no installed hooks
160
+ * doesn't spawn the CLI every interval. */
161
+ setClaudeHooksInstalled?(installed: boolean): void;
162
+ /** Resolves a pending permission. Returns `true` when the resolve was routed (the local IPC
163
+ * owns the session's pending entry); `false` when no local entry exists (typically a peer-
164
+ * discovered session owned by another GitLens window). Callers use this to give the user
165
+ * feedback rather than a silent no-op. */
166
+ resolvePermission?(sessionId: string, decision: PermissionDecision, updatedPermissions?: PermissionSuggestion[]): boolean;
167
+ /** Asks the peer GitLens window that has `workspacePath` open (or any peer whose workspacePath
168
+ * contains, or is contained by, it) to open the given session in its Claude Code extension
169
+ * via the `agents/sessions/open` IPC route. Resolves to `true` when at least one peer claimed
170
+ * the workspace AND was reachable; `false` otherwise. Best-effort: never rejects. The boolean
171
+ * is currently a diagnostic signal only — the dispatcher fires this in parallel with
172
+ * `vscode.openFolder` and relies on VS Code's window-folder matching to focus the owning
173
+ * window (which works whether or not the peer runs GitLens). */
174
+ notifyPeerOpenSession?(workspacePath: string, sessionId: string): Promise<boolean>;
175
+ }
176
+ /**
177
+ * Host-supplied IPC service. The agents package registers handlers and publishes
178
+ * the agents discovery file via this interface so it doesn't depend on the host's
179
+ * IPC service directly.
180
+ *
181
+ * The agents package is the source of truth for the workspacePaths advertised in
182
+ * the agents discovery file — `publishAgents` takes them as an argument and the host
183
+ * is expected to re-publish whenever those paths change.
184
+ */
185
+ export interface IpcRegistrar {
186
+ readonly port: number | undefined;
187
+ /** Directory scanned for peer-window agent discovery files. Omit to disable peer discovery (tests). */
188
+ readonly agentDiscoveryDir?: string;
189
+ registerHandler<Request = unknown, Response = unknown>(name: string, handler: IpcHandler<Request, Response>): UnifiedDisposable;
190
+ publishAgents(workspacePaths: string[]): Promise<void>;
191
+ unpublishAgents(): Promise<void>;
192
+ }
193
+ export interface AgentProviderCallbacks {
194
+ /** Host-supplied IPC service. Required for agents to receive hook events from the GK CLI. */
195
+ ipc: IpcRegistrar;
196
+ /** Returns the current "activity decay" window in milliseconds — the cooldown between a tool
197
+ * call finishing and the file being dropped from `AgentSession.fileActivity`. Optional — when
198
+ * omitted the provider falls back to its built-in default (5 min). Read by the provider at
199
+ * schedule time so changes to the host setting take effect on the next tool call without
200
+ * needing a re-wiring step. */
201
+ getActivityDecayMs?(): number;
202
+ /** Report that an agent session started. No-op if the host has no telemetry. */
203
+ onSessionStarted?(provider: string): void;
204
+ /** Report that an agent session ended. No-op if the host has no telemetry. */
205
+ onSessionEnded?(provider: string): void;
206
+ /** Report that a permission request was resolved. No-op if the host has no telemetry. */
207
+ onPermissionResolved?(info: {
208
+ provider: string;
209
+ tool: string;
210
+ decision: PermissionDecision;
211
+ }): void;
212
+ /** Report that a reconciliation poll found the polled session set drift from what the live IPC
213
+ * path had already tracked — `discovered` sessions the poll saw but we weren't tracking,
214
+ * `missing` sessions we track that the poll no longer reports alive. Ideally always zero. No-op
215
+ * if the host has no telemetry. */
216
+ onSyncDiscrepancy?(info: {
217
+ provider: string;
218
+ discovered: number;
219
+ missing: number;
220
+ polled: number;
221
+ tracked: number;
222
+ }): void;
223
+ /** Notify the host that a branch has agent activity. */
224
+ onBranchAgentActivity?(cwd: string): void;
225
+ /**
226
+ * Run the GK CLI with the given args. Returns stdout.
227
+ *
228
+ * Host responsibilities:
229
+ * - Resolve the CLI executable path (e.g. via `resolveCLIExecutable`)
230
+ * - Provide the default `cwd` if `options.cwd` is not set (e.g. `globalStorageUri.fsPath` in VS Code)
231
+ * - Inject any environment-specific flags (e.g. `--insiders` when the host has insiders mode enabled)
232
+ */
233
+ runCLICommand(args: string[], options?: {
234
+ cwd?: string;
235
+ }): Promise<string>;
236
+ /**
237
+ * Resolve git metadata for a session's cwd. Returns the stable worktree path; the worktree's
238
+ * display name (branch name for branch-type worktrees) is intentionally NOT returned — it's
239
+ * resolved live at serialization time so `git checkout` updates display without restarting.
240
+ * Optional — if omitted, sessions won't have worktree metadata.
241
+ */
242
+ resolveGitInfo?(cwd: string): Promise<{
243
+ repoRoot: string;
244
+ isWorktree: boolean;
245
+ worktreePath?: string;
246
+ } | undefined>;
247
+ /**
248
+ * Open a Claude Code session in the Claude Code VS Code extension. Invoked by the IPC handler
249
+ * when a peer GitLens window asks this window to open a session on its behalf — the host wires
250
+ * this to `claude-vscode.editor.open`. Throws if the extension isn't installed/active.
251
+ */
252
+ openSessionInClaudeExtension?(sessionId: string): Promise<void>;
253
+ }
254
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plus/agents/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ export const claudeCodeNonBlockingHookEvents = [
2
+ 'SessionStart',
3
+ 'SessionEnd',
4
+ 'UserPromptSubmit',
5
+ 'PreToolUse',
6
+ 'PostToolUse',
7
+ 'PostToolUseFailure',
8
+ 'Notification',
9
+ 'Stop',
10
+ 'StopFailure',
11
+ 'SubagentStart',
12
+ 'SubagentStop',
13
+ 'TeammateIdle',
14
+ 'TaskCompleted',
15
+ 'InstructionsLoaded',
16
+ 'ConfigChange',
17
+ 'WorktreeCreate',
18
+ 'WorktreeRemove',
19
+ 'PreCompact',
20
+ 'PostCompact',
21
+ 'Elicitation',
22
+ 'ElicitationResult',
23
+ 'PermissionDenied',
24
+ 'CwdChanged',
25
+ ];
26
+ export const claudeCodeBlockingHookEvents = ['PermissionRequest'];
27
+ export function getPhaseForStatus(status) {
28
+ switch (status) {
29
+ case 'thinking':
30
+ case 'tool_use':
31
+ case 'responding':
32
+ case 'compacting':
33
+ return 'working';
34
+ case 'waiting':
35
+ case 'permission_requested':
36
+ return 'waiting';
37
+ case 'idle':
38
+ return 'idle';
39
+ }
40
+ }
41
+ /**
42
+ * Returns whether the given phase represents an agent that is actively doing work or
43
+ * awaiting input (as opposed to fully idle). Uses an explicit allowlist so new phases
44
+ * default to "not active" rather than being silently treated as live.
45
+ */
46
+ export function isActiveAgentPhase(phase) {
47
+ return phase === 'working' || phase === 'waiting';
48
+ }
49
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plus/agents/types.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC9C,cAAc;IACd,YAAY;IACZ,kBAAkB;IAClB,YAAY;IACZ,aAAa;IACb,oBAAoB;IACpB,cAAc;IACd,MAAM;IACN,aAAa;IACb,eAAe;IACf,cAAc;IACd,cAAc;IACd,eAAe;IACf,oBAAoB;IACpB,cAAc;IACd,gBAAgB;IAChB,gBAAgB;IAChB,YAAY;IACZ,aAAa;IACb,aAAa;IACb,mBAAmB;IACnB,kBAAkB;IAClB,YAAY;CACH,CAAC;AAEX,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,mBAAmB,CAAU,CAAC;AAmB3E,MAAM,UAAU,iBAAiB,CAAC,MAA0B;IAC3D,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,YAAY,CAAC;QAClB,KAAK,YAAY;YAChB,OAAO,SAAS,CAAC;QAClB,KAAK,SAAS,CAAC;QACf,KAAK,sBAAsB;YAC1B,OAAO,SAAS,CAAC;QAClB,KAAK,MAAM;YACV,OAAO,MAAM,CAAC;IAChB,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAwB;IAC1D,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,CAAC;AACnD,CAAC"}
@@ -9,7 +9,9 @@ export declare const enum AIErrorReason {
9
9
  ModelNotSupported = 7,
10
10
  ServiceCapacityExceeded = 8,
11
11
  Unauthorized = 9,
12
- UserQuotaExceeded = 10
12
+ UserQuotaExceeded = 10,
13
+ NoNetwork = 11,
14
+ Unreachable = 12
13
15
  }
14
16
  export declare class AIError extends Error {
15
17
  readonly original?: Error;
@@ -22,4 +24,5 @@ export declare class AuthenticationRequiredError extends Error {
22
24
  export declare class AINoRequestDataError extends AIError {
23
25
  constructor(message?: string);
24
26
  }
27
+ export declare function classifyNetworkError(ex: unknown): AIErrorReason.NoNetwork | AIErrorReason.Unreachable | undefined;
25
28
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/plus/ai/errors.ts"],"names":[],"mappings":"AAAA,0BAAkB,aAAa;IAC9B,oBAAoB,IAAA;IACpB,YAAY,IAAA;IACZ,aAAa,IAAA;IACb,aAAa,IAAA;IACb,iBAAiB,IAAA;IACjB,wBAAwB,IAAA;IACxB,eAAe,IAAA;IACf,iBAAiB,IAAA;IACjB,uBAAuB,IAAA;IACvB,YAAY,IAAA;IACZ,iBAAiB,KAAA;CACjB;AAED,qBAAa,OAAQ,SAAQ,KAAK;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAAC;gBAE/B,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,KAAK;CA+CnD;AAED,qBAAa,2BAA4B,SAAQ,KAAK;;CAMrD;AAED,qBAAa,oBAAqB,SAAQ,OAAO;gBACpC,OAAO,CAAC,EAAE,MAAM;CAK5B"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/plus/ai/errors.ts"],"names":[],"mappings":"AAAA,0BAAkB,aAAa;IAC9B,oBAAoB,IAAA;IACpB,YAAY,IAAA;IACZ,aAAa,IAAA;IACb,aAAa,IAAA;IACb,iBAAiB,IAAA;IACjB,wBAAwB,IAAA;IACxB,eAAe,IAAA;IACf,iBAAiB,IAAA;IACjB,uBAAuB,IAAA;IACvB,YAAY,IAAA;IACZ,iBAAiB,KAAA;IACjB,SAAS,KAAA;IACT,WAAW,KAAA;CACX;AAED,qBAAa,OAAQ,SAAQ,KAAK;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAAC;gBAE/B,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,KAAK;CAqDnD;AAED,qBAAa,2BAA4B,SAAQ,KAAK;;CAMrD;AAED,qBAAa,oBAAqB,SAAQ,OAAO;gBACpC,OAAO,CAAC,EAAE,MAAM;CAK5B;AAcD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,OAAO,GAAG,aAAa,CAAC,SAAS,GAAG,aAAa,CAAC,WAAW,GAAG,SAAS,CAkBjH"}
@@ -11,6 +11,8 @@ export var AIErrorReason;
11
11
  AIErrorReason[AIErrorReason["ServiceCapacityExceeded"] = 8] = "ServiceCapacityExceeded";
12
12
  AIErrorReason[AIErrorReason["Unauthorized"] = 9] = "Unauthorized";
13
13
  AIErrorReason[AIErrorReason["UserQuotaExceeded"] = 10] = "UserQuotaExceeded";
14
+ AIErrorReason[AIErrorReason["NoNetwork"] = 11] = "NoNetwork";
15
+ AIErrorReason[AIErrorReason["Unreachable"] = 12] = "Unreachable";
14
16
  })(AIErrorReason || (AIErrorReason = {}));
15
17
  export class AIError extends Error {
16
18
  original;
@@ -36,6 +38,12 @@ export class AIError extends Error {
36
38
  case AIErrorReason.ServiceCapacityExceeded:
37
39
  message = 'Service capacity exceeded';
38
40
  break;
41
+ case AIErrorReason.NoNetwork:
42
+ message = 'Unable to reach the AI service. Please check your internet connection.';
43
+ break;
44
+ case AIErrorReason.Unreachable:
45
+ message = 'The AI service is temporarily unreachable.';
46
+ break;
39
47
  case AIErrorReason.NoRequestData:
40
48
  message = original?.message ?? 'No data was provided for the request';
41
49
  break;
@@ -73,4 +81,34 @@ export class AINoRequestDataError extends AIError {
73
81
  Error.captureStackTrace?.(this, new.target);
74
82
  }
75
83
  }
84
+ const noNetworkErrorCodes = new Set([
85
+ 'ENOTFOUND',
86
+ 'ECONNREFUSED',
87
+ 'EAI_AGAIN',
88
+ 'EHOSTUNREACH',
89
+ 'ENETUNREACH',
90
+ 'ENETDOWN',
91
+ 'UND_ERR_CONNECT_TIMEOUT',
92
+ ]);
93
+ const unreachableErrorCodes = new Set(['ECONNRESET', 'ETIMEDOUT', 'UND_ERR_SOCKET']);
94
+ export function classifyNetworkError(ex) {
95
+ let current = ex;
96
+ let sawFetchFailed = false;
97
+ for (let depth = 0; depth < 5 && current != null; depth++) {
98
+ if (!(current instanceof Error))
99
+ break;
100
+ if (current.name === 'TypeError' && current.message === 'fetch failed') {
101
+ sawFetchFailed = true;
102
+ }
103
+ const code = current.code;
104
+ if (typeof code === 'string') {
105
+ if (noNetworkErrorCodes.has(code))
106
+ return AIErrorReason.NoNetwork;
107
+ if (unreachableErrorCodes.has(code))
108
+ return AIErrorReason.Unreachable;
109
+ }
110
+ current = current.cause;
111
+ }
112
+ return sawFetchFailed ? AIErrorReason.NoNetwork : undefined;
113
+ }
76
114
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/plus/ai/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAkB,aAYjB;AAZD,WAAkB,aAAa;IAC9B,iFAAoB,CAAA;IACpB,iEAAY,CAAA;IACZ,mEAAa,CAAA;IACb,mEAAa,CAAA;IACb,2EAAiB,CAAA;IACjB,yFAAwB,CAAA;IACxB,uEAAe,CAAA;IACf,2EAAiB,CAAA;IACjB,uFAAuB,CAAA;IACvB,iEAAY,CAAA;IACZ,4EAAiB,CAAA;AAClB,CAAC,EAZiB,aAAa,KAAb,aAAa,QAY9B;AAED,MAAM,OAAO,OAAQ,SAAQ,KAAK;IACxB,QAAQ,CAAS;IACjB,MAAM,CAA4B;IAE3C,YAAY,MAAqB,EAAE,QAAgB;QAClD,IAAI,OAAO,CAAC;QACZ,QAAQ,MAAM,EAAE,CAAC;YAChB,KAAK,aAAa,CAAC,aAAa;gBAC/B,OAAO,GAAG,8DAA8D,CAAC;gBACzE,MAAM;YACP,KAAK,aAAa,CAAC,eAAe;gBACjC,OAAO,GAAG,0BAA0B,CAAC;gBACrC,MAAM;YACP,KAAK,aAAa,CAAC,iBAAiB;gBACnC,OAAO,GAAG,yCAAyC,CAAC;gBACpD,MAAM;YACP,KAAK,aAAa,CAAC,iBAAiB;gBACnC,OAAO,GAAG,qBAAqB,CAAC;gBAChC,MAAM;YACP,KAAK,aAAa,CAAC,wBAAwB;gBAC1C,OAAO,GAAG,qDAAqD,CAAC;gBAChE,MAAM;YACP,KAAK,aAAa,CAAC,uBAAuB;gBACzC,OAAO,GAAG,2BAA2B,CAAC;gBACtC,MAAM;YACP,KAAK,aAAa,CAAC,aAAa;gBAC/B,OAAO,GAAG,QAAQ,EAAE,OAAO,IAAI,sCAAsC,CAAC;gBACtE,MAAM;YACP,KAAK,aAAa,CAAC,iBAAiB;gBACnC,OAAO,GAAG,sCAAsC,CAAC;gBACjD,MAAM;YACP,KAAK,aAAa,CAAC,YAAY;gBAC9B,OAAO,GAAG,+DAA+D,CAAC;gBAC1E,MAAM;YACP,KAAK,aAAa,CAAC,oBAAoB;gBACtC,OAAO,GAAG,wEAAwE,CAAC;gBACnF,MAAM;YACP,KAAK,aAAa,CAAC,YAAY;gBAC9B,OAAO,GAAG,2DAA2D,CAAC;gBACtE,MAAM;YACP;gBACC,OAAO,GAAG,QAAQ,EAAE,OAAO,IAAI,2BAA2B,CAAC;gBAC3D,MAAM;QACR,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,KAAK,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;CACD;AAED,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACrD;QACC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAEjC,KAAK,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;CACD;AAED,MAAM,OAAO,oBAAqB,SAAQ,OAAO;IAChD,YAAY,OAAgB;QAC3B,KAAK,CAAC,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAE7E,KAAK,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;CACD"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/plus/ai/errors.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ export interface AIModelDescriptor<Provider extends AIProviders = AIProviders, M
18
18
  readonly provider: Provider;
19
19
  readonly model: Model;
20
20
  }
21
- export type AIActionType = 'explain-changes' | 'review-changes' | 'generate-commitMessage' | 'generate-stashMessage' | 'generate-changelog' | `generate-create-${'cloudPatch' | 'codeSuggestion' | 'pullRequest'}` | 'generate-commits' | 'generate-searchQuery';
21
+ export type AIActionType = 'explain-changes' | 'review-changes' | 'generate-commitMessage' | 'generate-stashMessage' | 'generate-changelog' | `generate-create-${'cloudPatch' | 'codeSuggestion' | 'pullRequest'}` | 'generate-commits' | 'conflict-resolution' | 'generate-searchQuery';
22
22
  export interface AIProviderDescriptor<T extends AIProviders = AIProviders> {
23
23
  readonly id: T;
24
24
  readonly name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/models/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExF,MAAM,WAAW,OAAO,CAAC,QAAQ,SAAS,WAAW,GAAG,WAAW,EAAE,KAAK,SAAS,MAAM,GAAG,MAAM;IACjG,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACpF,QAAQ,CAAC,QAAQ,EAAE;QAClB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;QACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACtB,CAAC;IAEF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAE1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB,CAAC,QAAQ,SAAS,WAAW,GAAG,WAAW,EAAE,KAAK,SAAS,MAAM,GAAG,MAAM;IAC3G,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACtB;AAED,MAAM,MAAM,YAAY,GACrB,iBAAiB,GACjB,gBAAgB,GAChB,wBAAwB,GACxB,uBAAuB,GACvB,oBAAoB,GACpB,mBAAmB,YAAY,GAAG,gBAAgB,GAAG,aAAa,EAAE,GACpE,kBAAkB,GAClB,sBAAsB,CAAC;AAE1B,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW;IACxE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IACf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,kBAAkB,GAAG,IAAI,GAAG,KAAK,CAAC;IAC9D,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAElC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,qCAAqC,CACrD,CAAC,SAAS,WAAW,GAAG,WAAW,CAClC,SAAQ,oBAAoB,CAAC,CAAC,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,eAAe,EAAE,UAAU,oBAAoB,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAAC,EAyXrG,CAAC"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/models/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExF,MAAM,WAAW,OAAO,CAAC,QAAQ,SAAS,WAAW,GAAG,WAAW,EAAE,KAAK,SAAS,MAAM,GAAG,MAAM;IACjG,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACpF,QAAQ,CAAC,QAAQ,EAAE;QAClB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;QACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACtB,CAAC;IAEF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAE1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB,CAAC,QAAQ,SAAS,WAAW,GAAG,WAAW,EAAE,KAAK,SAAS,MAAM,GAAG,MAAM;IAC3G,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACtB;AAED,MAAM,MAAM,YAAY,GACrB,iBAAiB,GACjB,gBAAgB,GAChB,wBAAwB,GACxB,uBAAuB,GACvB,oBAAoB,GACpB,mBAAmB,YAAY,GAAG,gBAAgB,GAAG,aAAa,EAAE,GACpE,kBAAkB,GAClB,qBAAqB,GACrB,sBAAsB,CAAC;AAE1B,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW;IACxE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IACf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,kBAAkB,GAAG,IAAI,GAAG,KAAK,CAAC;IAC9D,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAElC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,qCAAqC,CACrD,CAAC,SAAS,WAAW,GAAG,WAAW,CAClC,SAAQ,oBAAoB,CAAC,CAAC,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,eAAe,EAAE,UAAU,oBAAoB,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAAC,EAyXrG,CAAC"}