@vscode/chat-lib 0.0.1 → 0.0.3

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 (476) hide show
  1. package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts +2 -1
  2. package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts.map +1 -1
  3. package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js +70 -28
  4. package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js.map +1 -1
  5. package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.d.ts +4 -3
  6. package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.d.ts.map +1 -1
  7. package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.js +85 -109
  8. package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.js.map +1 -1
  9. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts.map +1 -1
  10. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js +14 -6
  11. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js.map +1 -1
  12. package/dist/src/_internal/extension/xtab/common/promptCrafting.d.ts.map +1 -1
  13. package/dist/src/_internal/extension/xtab/common/promptCrafting.js +6 -5
  14. package/dist/src/_internal/extension/xtab/common/promptCrafting.js.map +1 -1
  15. package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts +1 -0
  16. package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts.map +1 -1
  17. package/dist/src/_internal/extension/xtab/node/xtabProvider.js +44 -42
  18. package/dist/src/_internal/extension/xtab/node/xtabProvider.js.map +1 -1
  19. package/dist/src/_internal/platform/authentication/node/copilotTokenManager.d.ts.map +1 -1
  20. package/dist/src/_internal/platform/authentication/node/copilotTokenManager.js +8 -4
  21. package/dist/src/_internal/platform/authentication/node/copilotTokenManager.js.map +1 -1
  22. package/dist/src/_internal/platform/configuration/common/configurationService.d.ts +8 -0
  23. package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
  24. package/dist/src/_internal/platform/configuration/common/configurationService.js +11 -3
  25. package/dist/src/_internal/platform/configuration/common/configurationService.js.map +1 -1
  26. package/dist/src/_internal/platform/endpoint/common/capiClient.d.ts +1 -1
  27. package/dist/src/_internal/platform/endpoint/common/capiClient.d.ts.map +1 -1
  28. package/dist/src/_internal/platform/endpoint/common/capiClient.js +2 -2
  29. package/dist/src/_internal/platform/endpoint/common/capiClient.js.map +1 -1
  30. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts +4 -0
  31. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts.map +1 -1
  32. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js +7 -0
  33. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js.map +1 -1
  34. package/dist/src/_internal/platform/endpoint/node/capiClientImpl.d.ts.map +1 -1
  35. package/dist/src/_internal/platform/endpoint/node/capiClientImpl.js +1 -1
  36. package/dist/src/_internal/platform/endpoint/node/capiClientImpl.js.map +1 -1
  37. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts +1 -1
  38. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts.map +1 -1
  39. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js.map +1 -1
  40. package/dist/src/_internal/platform/endpoint/node/responsesApi.js +10 -4
  41. package/dist/src/_internal/platform/endpoint/node/responsesApi.js.map +1 -1
  42. package/dist/src/_internal/platform/env/common/envService.d.ts +5 -0
  43. package/dist/src/_internal/platform/env/common/envService.d.ts.map +1 -1
  44. package/dist/src/_internal/platform/env/common/envService.js +2 -1
  45. package/dist/src/_internal/platform/env/common/envService.js.map +1 -1
  46. package/dist/src/_internal/platform/env/common/nullEnvService.d.ts +3 -0
  47. package/dist/src/_internal/platform/env/common/nullEnvService.d.ts.map +1 -1
  48. package/dist/src/_internal/platform/env/common/nullEnvService.js +8 -1
  49. package/dist/src/_internal/platform/env/common/nullEnvService.js.map +1 -1
  50. package/dist/src/_internal/platform/github/common/githubService.d.ts +3 -3
  51. package/dist/src/_internal/platform/github/common/githubService.d.ts.map +1 -1
  52. package/dist/src/_internal/platform/github/common/githubService.js.map +1 -1
  53. package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.d.ts +0 -3
  54. package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.d.ts.map +1 -1
  55. package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.js +0 -5
  56. package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.js.map +1 -1
  57. package/dist/src/_internal/platform/networking/common/fetcherService.d.ts +2 -1
  58. package/dist/src/_internal/platform/networking/common/fetcherService.d.ts.map +1 -1
  59. package/dist/src/_internal/platform/networking/common/fetcherService.js.map +1 -1
  60. package/dist/src/_internal/platform/networking/common/networking.d.ts.map +1 -1
  61. package/dist/src/_internal/platform/networking/common/networking.js.map +1 -1
  62. package/dist/src/_internal/platform/telemetry/common/nullExperimentationService.d.ts +7 -0
  63. package/dist/src/_internal/platform/telemetry/common/nullExperimentationService.d.ts.map +1 -1
  64. package/dist/src/_internal/platform/telemetry/common/nullExperimentationService.js +1 -0
  65. package/dist/src/_internal/platform/telemetry/common/nullExperimentationService.js.map +1 -1
  66. package/dist/src/_internal/platform/telemetry/common/telemetry.d.ts +1 -0
  67. package/dist/src/_internal/platform/telemetry/common/telemetry.d.ts.map +1 -1
  68. package/dist/src/_internal/platform/telemetry/common/telemetry.js.map +1 -1
  69. package/dist/src/_internal/util/common/test/shims/chatTypes.d.ts +8 -0
  70. package/dist/src/_internal/util/common/test/shims/chatTypes.d.ts.map +1 -1
  71. package/dist/src/_internal/util/common/test/shims/chatTypes.js +19 -1
  72. package/dist/src/_internal/util/common/test/shims/chatTypes.js.map +1 -1
  73. package/dist/src/_internal/util/common/test/shims/enums.d.ts +6 -0
  74. package/dist/src/_internal/util/common/test/shims/enums.d.ts.map +1 -1
  75. package/dist/src/_internal/util/common/test/shims/enums.js +8 -1
  76. package/dist/src/_internal/util/common/test/shims/enums.js.map +1 -1
  77. package/dist/src/_internal/util/common/test/shims/vscodeTypesShim.d.ts.map +1 -1
  78. package/dist/src/_internal/util/common/test/shims/vscodeTypesShim.js +9 -1
  79. package/dist/src/_internal/util/common/test/shims/vscodeTypesShim.js.map +1 -1
  80. package/dist/src/_internal/vscodeTypes.d.ts +5 -0
  81. package/dist/src/_internal/vscodeTypes.d.ts.map +1 -1
  82. package/dist/src/_internal/vscodeTypes.js +6 -1
  83. package/dist/src/_internal/vscodeTypes.js.map +1 -1
  84. package/dist/src/main.d.ts +15 -1
  85. package/dist/src/main.d.ts.map +1 -1
  86. package/dist/src/main.js +73 -13
  87. package/dist/src/main.js.map +1 -1
  88. package/dist/src/package.json +70 -31
  89. package/package.json +7 -9
  90. package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/fragments.d.ts +0 -42
  91. package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/fragments.d.ts.map +0 -1
  92. package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/fragments.js +0 -125
  93. package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/fragments.js.map +0 -1
  94. package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/implementation.d.ts +0 -60
  95. package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/implementation.d.ts.map +0 -1
  96. package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/implementation.js +0 -416
  97. package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/implementation.js.map +0 -1
  98. package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/projectedText.d.ts +0 -30
  99. package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/projectedText.d.ts.map +0 -1
  100. package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/projectedText.js +0 -64
  101. package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/projectedText.js.map +0 -1
  102. package/dist/src/_internal/extension/prompts/node/inline/visualization.d.ts +0 -26
  103. package/dist/src/_internal/extension/prompts/node/inline/visualization.d.ts.map +0 -1
  104. package/dist/src/_internal/extension/prompts/node/inline/visualization.js +0 -41
  105. package/dist/src/_internal/extension/prompts/node/inline/visualization.js.map +0 -1
  106. package/dist/src/_internal/platform/editing/common/abstractText.d.ts +0 -58
  107. package/dist/src/_internal/platform/editing/common/abstractText.d.ts.map +0 -1
  108. package/dist/src/_internal/platform/editing/common/abstractText.js +0 -129
  109. package/dist/src/_internal/platform/editing/common/abstractText.js.map +0 -1
  110. package/dist/src/_internal/platform/parser/node/nodes.d.ts +0 -93
  111. package/dist/src/_internal/platform/parser/node/nodes.d.ts.map +0 -1
  112. package/dist/src/_internal/platform/parser/node/nodes.js +0 -133
  113. package/dist/src/_internal/platform/parser/node/nodes.js.map +0 -1
  114. package/dist/src/_internal/platform/telemetry/common/nullTelemetryService.d.ts +0 -18
  115. package/dist/src/_internal/platform/telemetry/common/nullTelemetryService.d.ts.map +0 -1
  116. package/dist/src/_internal/platform/telemetry/common/nullTelemetryService.js +0 -50
  117. package/dist/src/_internal/platform/telemetry/common/nullTelemetryService.js.map +0 -1
  118. package/dist/src/_internal/util/common/arrays.d.ts +0 -18
  119. package/dist/src/_internal/util/common/arrays.d.ts.map +0 -1
  120. package/dist/src/_internal/util/common/arrays.js +0 -80
  121. package/dist/src/_internal/util/common/arrays.js.map +0 -1
  122. package/src/_internal/extension/byok/node/openAIEndpoint.ts +0 -171
  123. package/src/_internal/extension/common/constants.ts +0 -90
  124. package/src/_internal/extension/inlineEdits/common/delayer.ts +0 -108
  125. package/src/_internal/extension/inlineEdits/common/editRebase.ts +0 -268
  126. package/src/_internal/extension/inlineEdits/common/ghNearbyNesProvider.tsx +0 -163
  127. package/src/_internal/extension/inlineEdits/common/nearbyCursorInlineEditProvider.ts +0 -225
  128. package/src/_internal/extension/inlineEdits/common/rejectionCollector.ts +0 -164
  129. package/src/_internal/extension/inlineEdits/node/debugRecorder.ts +0 -205
  130. package/src/_internal/extension/inlineEdits/node/importFiltering.ts +0 -25
  131. package/src/_internal/extension/inlineEdits/node/nesConfigs.ts +0 -12
  132. package/src/_internal/extension/inlineEdits/node/nextEditCache.ts +0 -278
  133. package/src/_internal/extension/inlineEdits/node/nextEditProvider.ts +0 -778
  134. package/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.ts +0 -983
  135. package/src/_internal/extension/inlineEdits/node/nextEditResult.ts +0 -40
  136. package/src/_internal/extension/prompt/common/importStatement.ts +0 -25
  137. package/src/_internal/extension/prompt/node/chatMLFetcher.ts +0 -706
  138. package/src/_internal/extension/prompts/node/inline/summarizedDocument/fragments.ts +0 -146
  139. package/src/_internal/extension/prompts/node/inline/summarizedDocument/implementation.ts +0 -527
  140. package/src/_internal/extension/prompts/node/inline/summarizedDocument/projectedText.ts +0 -76
  141. package/src/_internal/extension/prompts/node/inline/visualization.ts +0 -65
  142. package/src/_internal/extension/vscode.proposed.activeComment.d.ts +0 -23
  143. package/src/_internal/extension/vscode.proposed.aiRelatedInformation.d.ts +0 -49
  144. package/src/_internal/extension/vscode.proposed.aiSettingsSearch.d.ts +0 -31
  145. package/src/_internal/extension/vscode.proposed.aiTextSearchProvider.d.ts +0 -41
  146. package/src/_internal/extension/vscode.proposed.authLearnMore.d.ts +0 -16
  147. package/src/_internal/extension/vscode.proposed.chatBinaryReferenceData.d.ts +0 -41
  148. package/src/_internal/extension/vscode.proposed.chatEditing.d.ts +0 -29
  149. package/src/_internal/extension/vscode.proposed.chatParticipantAdditions.d.ts +0 -636
  150. package/src/_internal/extension/vscode.proposed.chatParticipantPrivate.d.ts +0 -276
  151. package/src/_internal/extension/vscode.proposed.chatProvider.d.ts +0 -62
  152. package/src/_internal/extension/vscode.proposed.chatReadonlyPromptReference.d.ts +0 -17
  153. package/src/_internal/extension/vscode.proposed.chatReferenceDiagnostic.d.ts +0 -23
  154. package/src/_internal/extension/vscode.proposed.chatSessionsProvider.d.ts +0 -218
  155. package/src/_internal/extension/vscode.proposed.chatStatusItem.d.ts +0 -61
  156. package/src/_internal/extension/vscode.proposed.codeActionAI.d.ts +0 -16
  157. package/src/_internal/extension/vscode.proposed.commentReveal.d.ts +0 -32
  158. package/src/_internal/extension/vscode.proposed.contribCommentThreadAdditionalMenu.d.ts +0 -8
  159. package/src/_internal/extension/vscode.proposed.contribCommentsViewThreadMenus.d.ts +0 -6
  160. package/src/_internal/extension/vscode.proposed.contribSourceControlInputBoxMenu.d.ts +0 -7
  161. package/src/_internal/extension/vscode.proposed.dataChannels.d.ts +0 -19
  162. package/src/_internal/extension/vscode.proposed.defaultChatParticipant.d.ts +0 -52
  163. package/src/_internal/extension/vscode.proposed.documentFiltersExclusive.d.ts +0 -13
  164. package/src/_internal/extension/vscode.proposed.embeddings.d.ts +0 -33
  165. package/src/_internal/extension/vscode.proposed.extensionsAny.d.ts +0 -40
  166. package/src/_internal/extension/vscode.proposed.findFiles2.d.ts +0 -125
  167. package/src/_internal/extension/vscode.proposed.findTextInFiles.d.ts +0 -104
  168. package/src/_internal/extension/vscode.proposed.findTextInFiles2.d.ts +0 -144
  169. package/src/_internal/extension/vscode.proposed.inlineCompletionsAdditions.d.ts +0 -202
  170. package/src/_internal/extension/vscode.proposed.interactive.d.ts +0 -11
  171. package/src/_internal/extension/vscode.proposed.languageModelCapabilities.d.ts +0 -25
  172. package/src/_internal/extension/vscode.proposed.languageModelDataPart.d.ts +0 -163
  173. package/src/_internal/extension/vscode.proposed.languageModelSystem.d.ts +0 -17
  174. package/src/_internal/extension/vscode.proposed.languageModelThinkingPart.d.ts +0 -49
  175. package/src/_internal/extension/vscode.proposed.languageModelToolResultAudience.d.ts +0 -36
  176. package/src/_internal/extension/vscode.proposed.mappedEditsProvider.d.ts +0 -110
  177. package/src/_internal/extension/vscode.proposed.newSymbolNamesProvider.d.ts +0 -47
  178. package/src/_internal/extension/vscode.proposed.readonlyMessage.d.ts +0 -14
  179. package/src/_internal/extension/vscode.proposed.resolvers.d.ts +0 -475
  180. package/src/_internal/extension/vscode.proposed.scmInputBoxValueProvider.d.ts +0 -25
  181. package/src/_internal/extension/vscode.proposed.taskProblemMatcherStatus.d.ts +0 -42
  182. package/src/_internal/extension/vscode.proposed.terminalDataWriteEvent.d.ts +0 -32
  183. package/src/_internal/extension/vscode.proposed.terminalExecuteCommandEvent.d.ts +0 -48
  184. package/src/_internal/extension/vscode.proposed.terminalQuickFixProvider.d.ts +0 -87
  185. package/src/_internal/extension/vscode.proposed.terminalSelection.d.ts +0 -16
  186. package/src/_internal/extension/vscode.proposed.testObserver.d.ts +0 -199
  187. package/src/_internal/extension/vscode.proposed.textDocumentChangeReason.d.ts +0 -30
  188. package/src/_internal/extension/vscode.proposed.textSearchProvider.d.ts +0 -281
  189. package/src/_internal/extension/vscode.proposed.textSearchProvider2.d.ts +0 -297
  190. package/src/_internal/extension/xtab/common/promptCrafting.ts +0 -670
  191. package/src/_internal/extension/xtab/node/xtabEndpoint.ts +0 -102
  192. package/src/_internal/extension/xtab/node/xtabProvider.ts +0 -976
  193. package/src/_internal/extension/xtab/node/xtabUtils.ts +0 -62
  194. package/src/_internal/platform/authentication/common/authentication.ts +0 -309
  195. package/src/_internal/platform/authentication/common/copilotToken.ts +0 -300
  196. package/src/_internal/platform/authentication/common/copilotTokenManager.ts +0 -59
  197. package/src/_internal/platform/authentication/common/copilotTokenStore.ts +0 -40
  198. package/src/_internal/platform/authentication/common/staticGitHubAuthenticationService.ts +0 -96
  199. package/src/_internal/platform/authentication/node/copilotTokenManager.ts +0 -303
  200. package/src/_internal/platform/chat/common/chatMLFetcher.ts +0 -124
  201. package/src/_internal/platform/chat/common/chatQuotaService.ts +0 -63
  202. package/src/_internal/platform/chat/common/chatQuotaServiceImpl.ts +0 -96
  203. package/src/_internal/platform/chat/common/commonTypes.ts +0 -353
  204. package/src/_internal/platform/chat/common/conversationOptions.ts +0 -16
  205. package/src/_internal/platform/chat/common/globalStringUtils.ts +0 -54
  206. package/src/_internal/platform/chat/common/interactionService.ts +0 -35
  207. package/src/_internal/platform/configuration/common/configurationService.ts +0 -803
  208. package/src/_internal/platform/configuration/common/defaultsOnlyConfigurationService.ts +0 -39
  209. package/src/_internal/platform/configuration/common/jsonSchema.ts +0 -139
  210. package/src/_internal/platform/configuration/common/validator.ts +0 -242
  211. package/src/_internal/platform/diff/common/diffService.ts +0 -41
  212. package/src/_internal/platform/diff/common/diffWorker.ts +0 -83
  213. package/src/_internal/platform/diff/node/diffServiceImpl.ts +0 -85
  214. package/src/_internal/platform/editing/common/abstractText.ts +0 -177
  215. package/src/_internal/platform/editing/common/notebookDocumentSnapshot.ts +0 -122
  216. package/src/_internal/platform/editing/common/positionOffsetTransformer.ts +0 -202
  217. package/src/_internal/platform/editing/common/textDocumentSnapshot.ts +0 -274
  218. package/src/_internal/platform/endpoint/common/capiClient.ts +0 -37
  219. package/src/_internal/platform/endpoint/common/chatModelCapabilities.ts +0 -115
  220. package/src/_internal/platform/endpoint/common/domainService.ts +0 -27
  221. package/src/_internal/platform/endpoint/common/endpointProvider.ts +0 -104
  222. package/src/_internal/platform/endpoint/common/endpointTypes.ts +0 -12
  223. package/src/_internal/platform/endpoint/common/licenseAgreement.ts +0 -11
  224. package/src/_internal/platform/endpoint/common/statefulMarkerContainer.tsx +0 -85
  225. package/src/_internal/platform/endpoint/common/thinkingDataContainer.tsx +0 -44
  226. package/src/_internal/platform/endpoint/node/capiClientImpl.ts +0 -18
  227. package/src/_internal/platform/endpoint/node/chatEndpoint.ts +0 -435
  228. package/src/_internal/platform/endpoint/node/domainServiceImpl.ts +0 -80
  229. package/src/_internal/platform/endpoint/node/proxyXtabEndpoint.ts +0 -43
  230. package/src/_internal/platform/endpoint/node/responsesApi.ts +0 -326
  231. package/src/_internal/platform/env/common/envService.ts +0 -134
  232. package/src/_internal/platform/env/common/nullEnvService.ts +0 -68
  233. package/src/_internal/platform/env/common/packagejson.ts +0 -49
  234. package/src/_internal/platform/git/common/gitExtensionService.ts +0 -21
  235. package/src/_internal/platform/git/common/nullGitExtensionService.ts +0 -20
  236. package/src/_internal/platform/git/vscode/git.d.ts +0 -414
  237. package/src/_internal/platform/github/common/githubAPI.ts +0 -44
  238. package/src/_internal/platform/github/common/githubService.ts +0 -87
  239. package/src/_internal/platform/github/common/nullOctokitServiceImpl.ts +0 -21
  240. package/src/_internal/platform/ignore/common/ignoreService.ts +0 -72
  241. package/src/_internal/platform/inlineCompletions/common/api.ts +0 -198
  242. package/src/_internal/platform/inlineEdits/common/dataTypes/diagnosticData.ts +0 -32
  243. package/src/_internal/platform/inlineEdits/common/dataTypes/documentId.ts +0 -52
  244. package/src/_internal/platform/inlineEdits/common/dataTypes/edit.ts +0 -165
  245. package/src/_internal/platform/inlineEdits/common/dataTypes/editUtils.ts +0 -74
  246. package/src/_internal/platform/inlineEdits/common/dataTypes/fetchCancellationError.ts +0 -14
  247. package/src/_internal/platform/inlineEdits/common/dataTypes/languageContext.ts +0 -107
  248. package/src/_internal/platform/inlineEdits/common/dataTypes/languageId.ts +0 -14
  249. package/src/_internal/platform/inlineEdits/common/dataTypes/permutation.ts +0 -69
  250. package/src/_internal/platform/inlineEdits/common/dataTypes/rootedLineEdit.ts +0 -49
  251. package/src/_internal/platform/inlineEdits/common/dataTypes/textEditLength.ts +0 -74
  252. package/src/_internal/platform/inlineEdits/common/dataTypes/textEditLengthHelper/combineTextEditInfos.ts +0 -132
  253. package/src/_internal/platform/inlineEdits/common/dataTypes/textEditLengthHelper/length.ts +0 -184
  254. package/src/_internal/platform/inlineEdits/common/dataTypes/textEditLengthHelper/textEditInfo.ts +0 -32
  255. package/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.ts +0 -89
  256. package/src/_internal/platform/inlineEdits/common/debugRecorderBookmark.ts +0 -10
  257. package/src/_internal/platform/inlineEdits/common/editReason.ts +0 -134
  258. package/src/_internal/platform/inlineEdits/common/inlineEditLogContext.ts +0 -490
  259. package/src/_internal/platform/inlineEdits/common/observableGit.ts +0 -49
  260. package/src/_internal/platform/inlineEdits/common/observableWorkspace.ts +0 -239
  261. package/src/_internal/platform/inlineEdits/common/responseProcessor.ts +0 -249
  262. package/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.ts +0 -468
  263. package/src/_internal/platform/inlineEdits/common/statelessNextEditProviders.ts +0 -59
  264. package/src/_internal/platform/inlineEdits/common/utils/observable.ts +0 -54
  265. package/src/_internal/platform/inlineEdits/common/utils/stringifyChatMessages.ts +0 -29
  266. package/src/_internal/platform/inlineEdits/common/utils/utils.ts +0 -56
  267. package/src/_internal/platform/inlineEdits/common/workspaceEditTracker/historyContextProvider.ts +0 -60
  268. package/src/_internal/platform/inlineEdits/common/workspaceEditTracker/nesHistoryContextProvider.ts +0 -353
  269. package/src/_internal/platform/inlineEdits/common/workspaceEditTracker/nesXtabHistoryTracker.ts +0 -176
  270. package/src/_internal/platform/languageContextProvider/common/languageContextProviderService.ts +0 -25
  271. package/src/_internal/platform/languageContextProvider/common/nullLanguageContextProviderService.ts +0 -38
  272. package/src/_internal/platform/languageServer/common/languageContextService.ts +0 -186
  273. package/src/_internal/platform/languages/common/languageDiagnosticsService.ts +0 -67
  274. package/src/_internal/platform/languages/common/testLanguageDiagnosticsService.ts +0 -28
  275. package/src/_internal/platform/log/common/logService.ts +0 -232
  276. package/src/_internal/platform/nesFetch/common/completionsAPI.ts +0 -78
  277. package/src/_internal/platform/nesFetch/common/completionsFetchService.ts +0 -118
  278. package/src/_internal/platform/nesFetch/common/responseStream.ts +0 -151
  279. package/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.ts +0 -236
  280. package/src/_internal/platform/nesFetch/node/streamTransformer.ts +0 -95
  281. package/src/_internal/platform/networking/common/fetch.ts +0 -349
  282. package/src/_internal/platform/networking/common/fetcherService.ts +0 -84
  283. package/src/_internal/platform/networking/common/networking.ts +0 -442
  284. package/src/_internal/platform/networking/common/openai.ts +0 -273
  285. package/src/_internal/platform/networking/node/chatStream.ts +0 -137
  286. package/src/_internal/platform/networking/node/stream.ts +0 -749
  287. package/src/_internal/platform/notebook/common/alternativeContent.ts +0 -89
  288. package/src/_internal/platform/notebook/common/alternativeContentFormat.ts +0 -10
  289. package/src/_internal/platform/notebook/common/alternativeContentProvider.json.ts +0 -262
  290. package/src/_internal/platform/notebook/common/alternativeContentProvider.text.ts +0 -243
  291. package/src/_internal/platform/notebook/common/alternativeContentProvider.ts +0 -41
  292. package/src/_internal/platform/notebook/common/alternativeContentProvider.xml.ts +0 -205
  293. package/src/_internal/platform/notebook/common/alternativeNotebookDocument.ts +0 -155
  294. package/src/_internal/platform/notebook/common/helpers.ts +0 -212
  295. package/src/_internal/platform/notebook/common/notebookService.ts +0 -43
  296. package/src/_internal/platform/openai/node/fetch.ts +0 -596
  297. package/src/_internal/platform/parser/node/nodes.ts +0 -190
  298. package/src/_internal/platform/requestLogger/node/nullRequestLogger.ts +0 -26
  299. package/src/_internal/platform/requestLogger/node/requestLogger.ts +0 -383
  300. package/src/_internal/platform/simulationTestContext/common/simulationTestContext.ts +0 -29
  301. package/src/_internal/platform/snippy/common/snippyService.ts +0 -25
  302. package/src/_internal/platform/telemetry/common/nullExperimentationService.ts +0 -64
  303. package/src/_internal/platform/telemetry/common/nullTelemetryService.ts +0 -53
  304. package/src/_internal/platform/telemetry/common/telemetry.ts +0 -215
  305. package/src/_internal/platform/telemetry/common/telemetryData.ts +0 -205
  306. package/src/_internal/platform/thinking/common/thinking.ts +0 -61
  307. package/src/_internal/platform/thinking/common/thinkingUtils.ts +0 -57
  308. package/src/_internal/platform/tokenizer/node/parseTikTokens.ts +0 -23
  309. package/src/_internal/platform/tokenizer/node/tikTokenizerImpl.ts +0 -74
  310. package/src/_internal/platform/tokenizer/node/tikTokenizerWorker.ts +0 -24
  311. package/src/_internal/platform/tokenizer/node/tokenizer.ts +0 -357
  312. package/src/_internal/platform/workspace/common/workspaceService.ts +0 -226
  313. package/src/_internal/platform/workspaceRecorder/common/workspaceLog.ts +0 -118
  314. package/src/_internal/util/common/anomalyDetection.ts +0 -112
  315. package/src/_internal/util/common/arrays.ts +0 -81
  316. package/src/_internal/util/common/async.ts +0 -155
  317. package/src/_internal/util/common/cache.ts +0 -183
  318. package/src/_internal/util/common/crypto.ts +0 -41
  319. package/src/_internal/util/common/errors.ts +0 -22
  320. package/src/_internal/util/common/globals.d.ts +0 -12
  321. package/src/_internal/util/common/imageUtils.ts +0 -154
  322. package/src/_internal/util/common/languages.ts +0 -940
  323. package/src/_internal/util/common/notebooks.ts +0 -286
  324. package/src/_internal/util/common/result.ts +0 -71
  325. package/src/_internal/util/common/services.ts +0 -43
  326. package/src/_internal/util/common/test/shims/chatTypes.ts +0 -448
  327. package/src/_internal/util/common/test/shims/editing.ts +0 -233
  328. package/src/_internal/util/common/test/shims/enums.ts +0 -61
  329. package/src/_internal/util/common/test/shims/l10n.ts +0 -37
  330. package/src/_internal/util/common/test/shims/newSymbolName.ts +0 -23
  331. package/src/_internal/util/common/test/shims/terminal.ts +0 -33
  332. package/src/_internal/util/common/test/shims/vscodeTypesShim.ts +0 -115
  333. package/src/_internal/util/common/time.ts +0 -31
  334. package/src/_internal/util/common/tokenizer.ts +0 -30
  335. package/src/_internal/util/common/tracing.ts +0 -52
  336. package/src/_internal/util/common/types.ts +0 -33
  337. package/src/_internal/util/common/variableLengthQuantity.ts +0 -40
  338. package/src/_internal/util/node/worker.ts +0 -130
  339. package/src/_internal/util/vs/base/common/arrays.ts +0 -926
  340. package/src/_internal/util/vs/base/common/arraysFind.ts +0 -206
  341. package/src/_internal/util/vs/base/common/assert.ts +0 -89
  342. package/src/_internal/util/vs/base/common/async.ts +0 -2582
  343. package/src/_internal/util/vs/base/common/buffer.ts +0 -501
  344. package/src/_internal/util/vs/base/common/cache.ts +0 -122
  345. package/src/_internal/util/vs/base/common/cancellation.ts +0 -150
  346. package/src/_internal/util/vs/base/common/charCode.ts +0 -452
  347. package/src/_internal/util/vs/base/common/codicons.ts +0 -66
  348. package/src/_internal/util/vs/base/common/codiconsLibrary.ts +0 -618
  349. package/src/_internal/util/vs/base/common/codiconsUtil.ts +0 -30
  350. package/src/_internal/util/vs/base/common/collections.ts +0 -156
  351. package/src/_internal/util/vs/base/common/diff/diff.ts +0 -1317
  352. package/src/_internal/util/vs/base/common/diff/diffChange.ts +0 -62
  353. package/src/_internal/util/vs/base/common/equals.ts +0 -148
  354. package/src/_internal/util/vs/base/common/errors.ts +0 -342
  355. package/src/_internal/util/vs/base/common/event.ts +0 -1782
  356. package/src/_internal/util/vs/base/common/extpath.ts +0 -425
  357. package/src/_internal/util/vs/base/common/filters.ts +0 -928
  358. package/src/_internal/util/vs/base/common/functional.ts +0 -34
  359. package/src/_internal/util/vs/base/common/glob.ts +0 -839
  360. package/src/_internal/util/vs/base/common/hash.ts +0 -326
  361. package/src/_internal/util/vs/base/common/htmlContent.ts +0 -212
  362. package/src/_internal/util/vs/base/common/iconLabels.ts +0 -118
  363. package/src/_internal/util/vs/base/common/iterator.ts +0 -196
  364. package/src/_internal/util/vs/base/common/lazy.ts +0 -59
  365. package/src/_internal/util/vs/base/common/lifecycle.ts +0 -845
  366. package/src/_internal/util/vs/base/common/linkedList.ts +0 -144
  367. package/src/_internal/util/vs/base/common/map.ts +0 -954
  368. package/src/_internal/util/vs/base/common/marshallingIds.ts +0 -35
  369. package/src/_internal/util/vs/base/common/mime.ts +0 -136
  370. package/src/_internal/util/vs/base/common/naturalLanguage/korean.ts +0 -425
  371. package/src/_internal/util/vs/base/common/network.ts +0 -429
  372. package/src/_internal/util/vs/base/common/numbers.ts +0 -166
  373. package/src/_internal/util/vs/base/common/objects.ts +0 -242
  374. package/src/_internal/util/vs/base/common/observable.ts +0 -10
  375. package/src/_internal/util/vs/base/common/observableInternal/base.ts +0 -208
  376. package/src/_internal/util/vs/base/common/observableInternal/changeTracker.ts +0 -96
  377. package/src/_internal/util/vs/base/common/observableInternal/commonFacade/cancellation.ts +0 -9
  378. package/src/_internal/util/vs/base/common/observableInternal/commonFacade/deps.ts +0 -12
  379. package/src/_internal/util/vs/base/common/observableInternal/debugLocation.ts +0 -88
  380. package/src/_internal/util/vs/base/common/observableInternal/debugName.ts +0 -150
  381. package/src/_internal/util/vs/base/common/observableInternal/experimental/utils.ts +0 -62
  382. package/src/_internal/util/vs/base/common/observableInternal/index.ts +0 -61
  383. package/src/_internal/util/vs/base/common/observableInternal/logging/consoleObservableLogger.ts +0 -388
  384. package/src/_internal/util/vs/base/common/observableInternal/logging/debugger/debuggerApi.d.ts +0 -154
  385. package/src/_internal/util/vs/base/common/observableInternal/logging/debugger/debuggerRpc.ts +0 -80
  386. package/src/_internal/util/vs/base/common/observableInternal/logging/debugger/devToolsLogger.ts +0 -485
  387. package/src/_internal/util/vs/base/common/observableInternal/logging/debugger/rpc.ts +0 -103
  388. package/src/_internal/util/vs/base/common/observableInternal/logging/debugger/utils.ts +0 -69
  389. package/src/_internal/util/vs/base/common/observableInternal/logging/logging.ts +0 -133
  390. package/src/_internal/util/vs/base/common/observableInternal/map.ts +0 -81
  391. package/src/_internal/util/vs/base/common/observableInternal/observables/baseObservable.ts +0 -172
  392. package/src/_internal/util/vs/base/common/observableInternal/observables/constObservable.ts +0 -44
  393. package/src/_internal/util/vs/base/common/observableInternal/observables/derived.ts +0 -190
  394. package/src/_internal/util/vs/base/common/observableInternal/observables/derivedImpl.ts +0 -445
  395. package/src/_internal/util/vs/base/common/observableInternal/observables/lazyObservableValue.ts +0 -154
  396. package/src/_internal/util/vs/base/common/observableInternal/observables/observableFromEvent.ts +0 -174
  397. package/src/_internal/util/vs/base/common/observableInternal/observables/observableSignal.ts +0 -67
  398. package/src/_internal/util/vs/base/common/observableInternal/observables/observableSignalFromEvent.ts +0 -62
  399. package/src/_internal/util/vs/base/common/observableInternal/observables/observableValue.ts +0 -131
  400. package/src/_internal/util/vs/base/common/observableInternal/observables/observableValueOpts.ts +0 -37
  401. package/src/_internal/util/vs/base/common/observableInternal/reactions/autorun.ts +0 -188
  402. package/src/_internal/util/vs/base/common/observableInternal/reactions/autorunImpl.ts +0 -256
  403. package/src/_internal/util/vs/base/common/observableInternal/set.ts +0 -78
  404. package/src/_internal/util/vs/base/common/observableInternal/transaction.ts +0 -115
  405. package/src/_internal/util/vs/base/common/observableInternal/utils/promise.ts +0 -129
  406. package/src/_internal/util/vs/base/common/observableInternal/utils/runOnChange.ts +0 -65
  407. package/src/_internal/util/vs/base/common/observableInternal/utils/utils.ts +0 -281
  408. package/src/_internal/util/vs/base/common/observableInternal/utils/utilsCancellation.ts +0 -101
  409. package/src/_internal/util/vs/base/common/observableInternal/utils/valueWithChangeEvent.ts +0 -31
  410. package/src/_internal/util/vs/base/common/path.ts +0 -1591
  411. package/src/_internal/util/vs/base/common/platform.ts +0 -282
  412. package/src/_internal/util/vs/base/common/process.ts +0 -78
  413. package/src/_internal/util/vs/base/common/resources.ts +0 -446
  414. package/src/_internal/util/vs/base/common/sequence.ts +0 -36
  415. package/src/_internal/util/vs/base/common/sseParser.ts +0 -247
  416. package/src/_internal/util/vs/base/common/stopwatch.ts +0 -43
  417. package/src/_internal/util/vs/base/common/stream.ts +0 -792
  418. package/src/_internal/util/vs/base/common/strings.ts +0 -1364
  419. package/src/_internal/util/vs/base/common/symbols.ts +0 -11
  420. package/src/_internal/util/vs/base/common/themables.ts +0 -106
  421. package/src/_internal/util/vs/base/common/types.ts +0 -345
  422. package/src/_internal/util/vs/base/common/uint.ts +0 -61
  423. package/src/_internal/util/vs/base/common/uri.ts +0 -752
  424. package/src/_internal/util/vs/base/common/uuid.ts +0 -72
  425. package/src/_internal/util/vs/base-common.d.ts +0 -42
  426. package/src/_internal/util/vs/editor/common/core/editOperation.ts +0 -62
  427. package/src/_internal/util/vs/editor/common/core/edits/edit.ts +0 -399
  428. package/src/_internal/util/vs/editor/common/core/edits/lineEdit.ts +0 -414
  429. package/src/_internal/util/vs/editor/common/core/edits/stringEdit.ts +0 -568
  430. package/src/_internal/util/vs/editor/common/core/edits/textEdit.ts +0 -411
  431. package/src/_internal/util/vs/editor/common/core/position.ts +0 -186
  432. package/src/_internal/util/vs/editor/common/core/range.ts +0 -519
  433. package/src/_internal/util/vs/editor/common/core/ranges/lineRange.ts +0 -416
  434. package/src/_internal/util/vs/editor/common/core/ranges/offsetRange.ts +0 -275
  435. package/src/_internal/util/vs/editor/common/core/text/abstractText.ts +0 -127
  436. package/src/_internal/util/vs/editor/common/core/text/positionToOffset.ts +0 -26
  437. package/src/_internal/util/vs/editor/common/core/text/positionToOffsetImpl.ts +0 -144
  438. package/src/_internal/util/vs/editor/common/core/text/textLength.ts +0 -150
  439. package/src/_internal/util/vs/editor/common/core/wordHelper.ts +0 -177
  440. package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/diffAlgorithm.ts +0 -210
  441. package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/dynamicProgrammingDiffing.ts +0 -109
  442. package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/myersDiffAlgorithm.ts +0 -178
  443. package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/computeMovedLines.ts +0 -331
  444. package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/defaultLinesDiffComputer.ts +0 -273
  445. package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/heuristicSequenceOptimizations.ts +0 -475
  446. package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/lineSequence.ts +0 -47
  447. package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/linesSliceCharSequence.ts +0 -248
  448. package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/utils.ts +0 -76
  449. package/src/_internal/util/vs/editor/common/diff/legacyLinesDiffComputer.ts +0 -693
  450. package/src/_internal/util/vs/editor/common/diff/linesDiffComputer.ts +0 -61
  451. package/src/_internal/util/vs/editor/common/diff/rangeMapping.ts +0 -418
  452. package/src/_internal/util/vs/editor/common/model/prefixSumComputer.ts +0 -304
  453. package/src/_internal/util/vs/nls.messages.ts +0 -21
  454. package/src/_internal/util/vs/nls.ts +0 -243
  455. package/src/_internal/util/vs/platform/instantiation/common/descriptors.ts +0 -23
  456. package/src/_internal/util/vs/platform/instantiation/common/graph.ts +0 -113
  457. package/src/_internal/util/vs/platform/instantiation/common/instantiation.ts +0 -127
  458. package/src/_internal/util/vs/platform/instantiation/common/instantiationService.ts +0 -483
  459. package/src/_internal/util/vs/platform/instantiation/common/serviceCollection.ts +0 -34
  460. package/src/_internal/util/vs/vscode-globals-nls.d.ts +0 -42
  461. package/src/_internal/util/vs/vscode-globals-product.d.ts +0 -35
  462. package/src/_internal/util/vs/workbench/api/common/extHostTypes/diagnostic.ts +0 -109
  463. package/src/_internal/util/vs/workbench/api/common/extHostTypes/es5ClassCompat.ts +0 -34
  464. package/src/_internal/util/vs/workbench/api/common/extHostTypes/location.ts +0 -51
  465. package/src/_internal/util/vs/workbench/api/common/extHostTypes/markdownString.ts +0 -83
  466. package/src/_internal/util/vs/workbench/api/common/extHostTypes/notebooks.ts +0 -296
  467. package/src/_internal/util/vs/workbench/api/common/extHostTypes/position.ts +0 -195
  468. package/src/_internal/util/vs/workbench/api/common/extHostTypes/range.ts +0 -167
  469. package/src/_internal/util/vs/workbench/api/common/extHostTypes/selection.ts +0 -94
  470. package/src/_internal/util/vs/workbench/api/common/extHostTypes/snippetString.ts +0 -103
  471. package/src/_internal/util/vs/workbench/api/common/extHostTypes/snippetTextEdit.ts +0 -44
  472. package/src/_internal/util/vs/workbench/api/common/extHostTypes/symbolInformation.ts +0 -89
  473. package/src/_internal/util/vs/workbench/api/common/extHostTypes/textEdit.ts +0 -99
  474. package/src/_internal/vscodeTypes.ts +0 -100
  475. package/src/main.ts +0 -207
  476. package/src/package.json +0 -4063
@@ -1,268 +0,0 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the MIT License. See License.txt in the project root for license information.
4
- *--------------------------------------------------------------------------------------------*/
5
-
6
- import { SingleEdits } from '../../../platform/inlineEdits/common/dataTypes/edit';
7
- import * as errors from '../../../util/common/errors';
8
- import { ITracer } from '../../../util/common/tracing';
9
- import { AnnotatedStringEdit, AnnotatedStringReplacement, IEditData, StringEdit, StringReplacement, VoidEditData } from '../../../util/vs/editor/common/core/edits/stringEdit';
10
- import { OffsetRange } from '../../../util/vs/editor/common/core/ranges/offsetRange';
11
- import { StringText } from '../../../util/vs/editor/common/core/text/abstractText';
12
- import { DefaultLinesDiffComputer } from '../../../util/vs/editor/common/diff/defaultLinesDiffComputer/defaultLinesDiffComputer';
13
- import { ILinesDiffComputerOptions } from '../../../util/vs/editor/common/diff/linesDiffComputer';
14
-
15
- const TROUBLESHOOT_EDIT_CONSISTENCY = false;
16
-
17
- export interface NesRebaseConfigs {
18
- }
19
-
20
- export class EditDataWithIndex implements IEditData<EditDataWithIndex> {
21
- constructor(
22
- public readonly index: number
23
- ) { }
24
-
25
- join(data: EditDataWithIndex): EditDataWithIndex | undefined {
26
- if (this.index !== data.index) {
27
- return undefined;
28
- }
29
- return this;
30
- }
31
- }
32
-
33
- export function tryRebase(originalDocument: string, editWindow: OffsetRange | undefined, originalEdits: readonly StringReplacement[], detailedEdits: AnnotatedStringReplacement<EditDataWithIndex>[][], userEditSince: StringEdit, currentDocumentContent: string, currentSelection: readonly OffsetRange[], resolution: 'strict' | 'lenient', tracer: ITracer, nesConfigs: NesRebaseConfigs = {}): { rebasedEdit: StringReplacement; rebasedEditIndex: number }[] | 'outsideEditWindow' | 'rebaseFailed' | 'error' | 'inconsistentEdits' {
34
- const start = Date.now();
35
- try {
36
- return _tryRebase(originalDocument, editWindow, originalEdits, detailedEdits, userEditSince, currentDocumentContent, currentSelection, resolution, tracer, nesConfigs);
37
- } catch (err) {
38
- tracer.trace(`Rebase error: ${errors.toString(err)}`);
39
- return 'error';
40
- } finally {
41
- tracer.trace(`Rebase duration: ${Date.now() - start}ms`);
42
- }
43
- }
44
-
45
- function _tryRebase(originalDocument: string, editWindow: OffsetRange | undefined, originalEdits: readonly StringReplacement[], detailedEdits: AnnotatedStringReplacement<EditDataWithIndex>[][], userEditSinceOrig: StringEdit, currentDocumentContent: string, currentSelection: readonly OffsetRange[], resolution: 'strict' | 'lenient', tracer: ITracer, nesConfigs: NesRebaseConfigs) {
46
- if (!checkEditConsistency(originalDocument, userEditSinceOrig, currentDocumentContent, tracer, true)) {
47
- return 'inconsistentEdits';
48
- }
49
- const userEditSince = userEditSinceOrig.removeCommonSuffixAndPrefix(originalDocument);
50
- const cursorRange = currentSelection[0];
51
- if (editWindow && cursorRange) {
52
- const updatedEditWindow = userEditSince.applyToOffsetRangeOrUndefined(editWindow);
53
- if (!updatedEditWindow?.containsRange(cursorRange)) {
54
- return 'outsideEditWindow';
55
- }
56
- }
57
- if (detailedEdits.length < originalEdits.length) {
58
- let intermediateDocument = originalDocument;
59
- for (let index = 0; index < detailedEdits.length; index++) {
60
- const edit = originalEdits[index];
61
- intermediateDocument = StringEdit.single(edit).apply(intermediateDocument);
62
- }
63
- for (let index = detailedEdits.length; index < originalEdits.length; index++) {
64
- const edit = originalEdits[index];
65
- const editData = new EditDataWithIndex(index);
66
- detailedEdits[index] = computeDiff(edit.replaceRange.substring(intermediateDocument), edit.newText, edit.replaceRange.start, editData, {
67
- ignoreTrimWhitespace: false,
68
- computeMoves: false,
69
- extendToSubwords: true,
70
- maxComputationTimeMs: 500,
71
- }) || [new AnnotatedStringReplacement(edit.replaceRange, edit.newText, editData)];
72
- intermediateDocument = StringEdit.single(edit).apply(intermediateDocument);
73
- }
74
- }
75
- const diffedEdit = AnnotatedStringEdit.compose(detailedEdits.map(edits => AnnotatedStringEdit.create(edits)));
76
- const rebasedEdit = tryRebaseEdits(originalDocument, diffedEdit, userEditSince, resolution, nesConfigs);
77
- if (!rebasedEdit) {
78
- return 'rebaseFailed';
79
- }
80
- const grouped = rebasedEdit.replacements.reduce((acc, item) => {
81
- (acc[item.data.index] ||= []).push(item);
82
- return acc;
83
- }, [] as (AnnotatedStringReplacement<EditDataWithIndex>[] | undefined)[]);
84
- const resultEdits: { rebasedEdit: StringReplacement; rebasedEditIndex: number }[] = [];
85
- for (let index = 0; index < grouped.length; index++) {
86
- const group = grouped[index];
87
- if (!group) {
88
- continue;
89
- }
90
- const range = OffsetRange.fromTo(group[0].replaceRange.start, group[group.length - 1].replaceRange.endExclusive);
91
- const newText = group.map((edit, i, a) => {
92
- if (i > 0) {
93
- return currentDocumentContent.substring(a[i - 1].replaceRange.endExclusive, edit.replaceRange.start) + edit.newText;
94
- } else {
95
- return edit.newText;
96
- }
97
- }).join('');
98
- const resultEdit = StringReplacement.replace(range, newText);
99
- if (!resultEdit.removeCommonSuffixAndPrefix(currentDocumentContent).isEmpty) {
100
- resultEdits.push({ rebasedEdit: resultEdit, rebasedEditIndex: index });
101
- }
102
- }
103
- if (resolution === 'strict' && resultEdits.length > 0 && new SingleEdits(originalEdits).apply(originalDocument) !== StringEdit.create(resultEdits.map(r => r.rebasedEdit)).apply(currentDocumentContent)) {
104
- tracer.trace('Result consistency check failed.');
105
- return 'inconsistentEdits';
106
- }
107
- return resultEdits;
108
- }
109
-
110
- export function checkEditConsistency(original: string, edit: StringEdit, current: string, tracer: ITracer, enabled = TROUBLESHOOT_EDIT_CONSISTENCY) {
111
- if (!enabled) {
112
- return true;
113
- }
114
- const consistent = edit.apply(original) === current;
115
- if (!consistent) {
116
- tracer.trace('Edit consistency check failed.');
117
- }
118
- return consistent;
119
- }
120
-
121
- export function tryRebaseStringEdits<T extends IEditData<T>>(content: string, ours: StringEdit, base: StringEdit, resolution: 'strict' | 'lenient', nesConfigs: NesRebaseConfigs = {}): StringEdit | undefined {
122
- return tryRebaseEdits(content, ours.mapData(r => new VoidEditData()), base, resolution, nesConfigs)?.toStringEdit();
123
- }
124
-
125
- function tryRebaseEdits<T extends IEditData<T>>(content: string, ours: AnnotatedStringEdit<T>, baseOrig: StringEdit, resolution: 'strict' | 'lenient', nesConfigs: NesRebaseConfigs): AnnotatedStringEdit<T> | undefined {
126
- const base = baseOrig.removeCommonSuffixAndPrefix(content);
127
-
128
- const newEdits: AnnotatedStringReplacement<T>[] = [];
129
-
130
- let baseIdx = 0;
131
- let ourIdx = 0;
132
- let offset = 0;
133
-
134
- while (ourIdx < ours.replacements.length || baseIdx < base.replacements.length) {
135
- // take the edit that starts first
136
- const baseEdit = base.replacements[baseIdx];
137
- const ourEdit = ours.replacements[ourIdx];
138
-
139
- if (!ourEdit) {
140
- if (resolution === 'strict') {
141
- // baseEdit does not match but interleaves
142
- return undefined;
143
- }
144
- // We processed all our edits
145
- break;
146
- } else if (!baseEdit) {
147
- // no more edits from base
148
- newEdits.push(ourEdit.delta(offset));
149
- ourIdx++;
150
- } else {
151
- let ourE = ourEdit;
152
- if (!ourE.replaceRange.containsRange(baseEdit.replaceRange)) {
153
- // Try to shift our edit to include the base edit.
154
- if (ourE.replaceRange.start > baseEdit.replaceRange.start) {
155
- // Expand our edit to the left to include the base edit.
156
- const added = content.substring(baseEdit.replaceRange.start, ourE.replaceRange.start);
157
- const updated = added + ourE.newText;
158
- // Remove the same text from the right.
159
- if (updated.endsWith(added)) {
160
- ourE = new AnnotatedStringReplacement(
161
- OffsetRange.fromTo(baseEdit.replaceRange.start, ourE.replaceRange.endExclusive - added.length),
162
- updated.substring(0, updated.length - added.length),
163
- ourE.data,
164
- );
165
- }
166
- }
167
- // Skipping the case where there is another edit for now because we might have to merge with it first.
168
- else if (ourIdx === ours.replacements.length - 1 && ourE.replaceRange.endExclusive < baseEdit.replaceRange.endExclusive) {
169
- // Expand our edit to the right to include the base edit.
170
- const added = content.substring(ourE.replaceRange.endExclusive, baseEdit.replaceRange.endExclusive);
171
- const updated = ourE.newText + added;
172
- // Remove the same text from the left.
173
- if (updated.startsWith(added)) {
174
- ourE = new AnnotatedStringReplacement(
175
- OffsetRange.fromTo(ourE.replaceRange.start + added.length, baseEdit.replaceRange.endExclusive),
176
- updated.substring(added.length),
177
- ourE.data,
178
- );
179
- }
180
- }
181
- }
182
- if (ourE.replaceRange.intersectsOrTouches(baseEdit.replaceRange)) {
183
- if (ourE.replaceRange.containsRange(baseEdit.replaceRange) && ourE.newText.length >= baseEdit.newText.length) {
184
- let delta = 0;
185
- let ourNewTextOffset = 0;
186
- let baseE = baseEdit;
187
- let previousBaseE: StringReplacement | undefined;
188
- while (baseE && ourE.replaceRange.containsRange(baseE.replaceRange)) {
189
- ourNewTextOffset = agreementIndexOf(content, ourE, baseE, previousBaseE, ourNewTextOffset, resolution, nesConfigs);
190
- if (ourNewTextOffset === -1) {
191
- // Conflicting
192
- return undefined;
193
- }
194
- delta += baseE.newText.length - baseE.replaceRange.length;
195
- previousBaseE = baseE;
196
- baseE = base.replacements[++baseIdx];
197
- }
198
- newEdits.push(new AnnotatedStringReplacement(
199
- new OffsetRange(ourE.replaceRange.start + offset, ourE.replaceRange.endExclusive + offset + delta),
200
- ourE.newText,
201
- ourE.data,
202
- ));
203
- ourIdx++;
204
- offset += delta;
205
- } else {
206
- // Conflicting
207
- return undefined;
208
- }
209
- } else if (ourEdit.replaceRange.start < baseEdit.replaceRange.start) {
210
- // Our edit starts first
211
- newEdits.push(new AnnotatedStringReplacement(
212
- ourEdit.replaceRange.delta(offset),
213
- ourEdit.newText,
214
- ourEdit.data,
215
- ));
216
- ourIdx++;
217
- } else {
218
- if (resolution === 'strict') {
219
- // baseEdit does not match but interleaves
220
- return undefined;
221
- }
222
- baseIdx++;
223
- offset += baseEdit.newText.length - baseEdit.replaceRange.length;
224
- }
225
- }
226
- }
227
-
228
- return AnnotatedStringEdit.create(newEdits);
229
- }
230
-
231
- export const maxAgreementOffset = 10; // If the user's typing is more than this into the suggestion we consider it a miss.
232
- export const maxImperfectAgreementLength = 5; // If the user's typing is longer than this and the suggestion is not a perfect match we consider it a miss.
233
-
234
- function agreementIndexOf<T extends IEditData<T>>(content: string, ourE: AnnotatedStringReplacement<T>, baseE: StringReplacement, previousBaseE: StringReplacement | undefined, ourNewTextOffset: number, resolution: 'strict' | 'lenient', nesConfigs: NesRebaseConfigs) {
235
- const minStart = previousBaseE ? previousBaseE.replaceRange.endExclusive : ourE.replaceRange.start;
236
- if (minStart < baseE.replaceRange.start) {
237
- baseE = new StringReplacement(
238
- OffsetRange.fromTo(minStart, baseE.replaceRange.endExclusive),
239
- content.substring(minStart, baseE.replaceRange.start) + baseE.newText
240
- );
241
- }
242
- const j = ourE.newText.indexOf(baseE.newText, ourNewTextOffset);
243
- if (resolution === 'strict' && j > maxAgreementOffset) {
244
- return -1;
245
- }
246
- if (resolution === 'strict' && j > 0 && baseE.newText.length > maxImperfectAgreementLength) {
247
- return -1;
248
- }
249
- return j !== -1 ? j + baseE.newText.length : -1;
250
- }
251
-
252
- function computeDiff(original: string, modified: string, offset: number, editData: EditDataWithIndex, options: ILinesDiffComputerOptions): AnnotatedStringReplacement<EditDataWithIndex>[] | undefined {
253
- const originalLines = original.split(/\r\n|\r|\n/);
254
- const modifiedLines = modified.split(/\r\n|\r|\n/);
255
- const diffComputer = new DefaultLinesDiffComputer();
256
- const result = diffComputer.computeDiff(originalLines, modifiedLines, options);
257
- if (result.hitTimeout) {
258
- return undefined;
259
- }
260
-
261
- const originalText = new StringText(original);
262
- const modifiedText = new StringText(modified);
263
- return result.changes.map(change => (change.innerChanges || []).map(innerChange => {
264
- const range = originalText.getTransformer().getOffsetRange(innerChange.originalRange);
265
- const newText = modifiedText.getValueOfRange(innerChange.modifiedRange);
266
- return new AnnotatedStringReplacement(range.delta(offset), newText, editData);
267
- })).flat();
268
- }
@@ -1,163 +0,0 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the MIT License. See License.txt in the project root for license information.
4
- *--------------------------------------------------------------------------------------------*/
5
-
6
- import { StatelessNextEditDocument } from '../../../platform/inlineEdits/common/statelessNextEditProvider';
7
- import { LineEdit } from '../../../util/vs/editor/common/core/edits/lineEdit';
8
- import { StringEdit } from '../../../util/vs/editor/common/core/edits/stringEdit';
9
- import { OffsetRange } from '../../../util/vs/editor/common/core/ranges/offsetRange';
10
-
11
- const N_GRAM_UNDO_RATIO_TO_FILTER_OUT = 0.7;
12
-
13
- export function editWouldDeleteWhatWasJustInserted(activeDocument: StatelessNextEditDocument, lineEdit: LineEdit) {
14
- let edit = lineEdit.toEdit(activeDocument.documentAfterEdits);
15
- // ! important: reduce it to the minimal set of changes
16
- edit = edit.normalizeOnSource(activeDocument.documentAfterEdits.value);
17
- if (!editIsDeletion(edit)) {
18
- return false;
19
- }
20
- // We are deleting something. Is it what was just inserted?
21
- for (let i = activeDocument.recentEdits.edits.length - 1; i >= 0; i--) {
22
- const recentEdit = activeDocument.recentEdits.edits[i];
23
- const rebaseResult = edit.tryRebase(recentEdit);
24
- if (!rebaseResult) {
25
- // the edit we want to do cannot be rebased, which indicates that it would interfere with a recent edit
26
- return true;
27
- }
28
- edit = rebaseResult;
29
- }
30
- return false;
31
- }
32
-
33
- function editIsDeletion(edit: StringEdit): boolean {
34
- const deletedChars = edit.replacements.reduce((acc, singleEdit) => acc + singleEdit.replaceRange.length, 0);
35
- const insertedChars = edit.replacements.reduce((acc, singleEdit) => acc + singleEdit.newText.length, 0);
36
- return insertedChars === 0 && deletedChars > 0;
37
- }
38
-
39
- /**
40
- * Represents information loss/gain (4-grams) via an edit.
41
- */
42
- export class InformationDelta {
43
-
44
- constructor(
45
- public readonly inserted: Set<string> = new Set<string>(),
46
- public readonly deleted: Set<string> = new Set<string>()
47
- ) { }
48
-
49
- combine(other: InformationDelta) {
50
- return new InformationDelta(setUnion(this.inserted, other.inserted), setUnion(this.deleted, other.deleted));
51
- }
52
-
53
- isUndoneBy(other: InformationDelta) {
54
- const otherReallyNewInsertions = setMinus(other.inserted, other.deleted);
55
- const otherReallyDeleted = setMinus(other.deleted, other.inserted);
56
-
57
- const otherReallyDeletesMyInserts = setIntersectionCount(otherReallyDeleted, this.inserted);
58
- const otherReallyInsertsMyDeletes = setIntersectionCount(otherReallyNewInsertions, this.deleted);
59
-
60
- if (otherReallyDeleted.size > 6 && otherReallyDeletesMyInserts / otherReallyDeleted.size > N_GRAM_UNDO_RATIO_TO_FILTER_OUT) {
61
- return true;
62
- }
63
-
64
- if (otherReallyNewInsertions.size > 6 && otherReallyInsertsMyDeletes / otherReallyNewInsertions.size > N_GRAM_UNDO_RATIO_TO_FILTER_OUT) {
65
- return true;
66
- }
67
-
68
- return false;
69
- }
70
- }
71
-
72
- export function getInformationDelta(source: string, edit: StringEdit): InformationDelta {
73
- const inserted = new Set<string>();
74
- const deleted = new Set<string>();
75
- const tryAddDeleted = (deletedRange: OffsetRange | undefined) => {
76
- if (!deletedRange) {
77
- return;
78
- }
79
- const deletedText = source.substring(deletedRange.start, deletedRange.endExclusive);
80
- for (let line of deletedText.split(/\r\n|\r|\n/)) {
81
- line = line.trim();
82
- for (const piece of to4grams(line)) {
83
- deleted.add(piece);
84
- }
85
- }
86
- };
87
- const tryAddInserted = (insertedText: string) => {
88
- for (let line of insertedText.split(/\r\n|\r|\n/)) {
89
- line = line.trim();
90
- for (const piece of to4grams(line)) {
91
- inserted.add(piece);
92
- }
93
- }
94
- };
95
- for (const e of edit.replacements) {
96
- const e1 = e.removeCommonPrefix(source).removeCommonSuffix(source);
97
- const e2 = e.removeCommonSuffix(source).removeCommonPrefix(source);
98
- if (e1.isEmpty) {
99
- continue;
100
- }
101
- tryAddDeleted(e1.replaceRange);
102
- tryAddDeleted(e2.replaceRange);
103
- tryAddDeleted(e1.replaceRange.intersect(e2.replaceRange));
104
-
105
- // tryAddInserted(e1.newText);
106
- // tryAddInserted(e2.newText);
107
- // e1 might have a suffix overlap with the prefix of e1
108
- tryAddInserted(trimOverlap(e1.newText, e2.newText));
109
- }
110
- return new InformationDelta(inserted, deleted);
111
- }
112
-
113
- function trimOverlap(stringToEliminateEnd: string, stringToEliminateStart: string): string {
114
- const length = Math.min(stringToEliminateEnd.length, stringToEliminateStart.length);
115
- for (let trimLength = 0; trimLength < length; trimLength++) {
116
- const str1 = stringToEliminateEnd.slice(0, stringToEliminateEnd.length - trimLength);
117
- const str2 = stringToEliminateStart.slice(trimLength);
118
- if (str1 === str2) {
119
- return str1;
120
- }
121
- }
122
- return '';
123
- }
124
-
125
- function to4grams(text: string) {
126
- const result: string[] = [];
127
- for (let i = 4; i < text.length; i++) {
128
- const ngram = text.slice(i - 4, i);
129
- result.push(ngram);
130
- }
131
- return result;
132
- }
133
-
134
- function setUnion(a: Set<string>, b: Set<string>): Set<string> {
135
- const result = new Set<string>();
136
- for (const el of a) {
137
- result.add(el);
138
- }
139
- for (const el of b) {
140
- result.add(el);
141
- }
142
- return result;
143
- }
144
-
145
- function setMinus(a: Set<string>, b: Set<string>): Set<string> {
146
- const result = new Set<string>();
147
- for (const el of a) {
148
- if (!b.has(el)) {
149
- result.add(el);
150
- }
151
- }
152
- return result;
153
- }
154
-
155
- function setIntersectionCount(a: Set<string>, b: Set<string>): number {
156
- let result = 0;
157
- for (const el of a) {
158
- if (b.has(el)) {
159
- result++;
160
- }
161
- }
162
- return result;
163
- }
@@ -1,225 +0,0 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the MIT License. See License.txt in the project root for license information.
4
- *--------------------------------------------------------------------------------------------*/
5
-
6
- import { StatelessNextEditDocument } from '../../../platform/inlineEdits/common/statelessNextEditProvider';
7
- import { ChoiceLogProbs } from '../../../platform/networking/common/openai';
8
- import { BugIndicatingError } from '../../../util/vs/base/common/errors';
9
- import { Range } from '../../../util/vs/editor/common/core/range';
10
- import { OffsetRange, OffsetRangeSet } from '../../../util/vs/editor/common/core/ranges/offsetRange';
11
-
12
- /**
13
- * Read the selection from the document, otherwise deduce it from the last edit.
14
- */
15
- export function getOrDeduceSelectionFromLastEdit(activeDoc: StatelessNextEditDocument): Range | null {
16
- const origin = new OffsetRange(0, 0);
17
- if (activeDoc.lastSelectionInAfterEdit && !activeDoc.lastSelectionInAfterEdit.equals(origin)) {
18
- return activeDoc.documentAfterEdits.getTransformer().getRange(activeDoc.lastSelectionInAfterEdit);
19
- }
20
-
21
- const selectionRange = deduceSelectionFromLastEdit(activeDoc);
22
- return selectionRange;
23
- }
24
-
25
- function deduceSelectionFromLastEdit(activeDoc: StatelessNextEditDocument): Range | null {
26
- const mostRecentEdit = activeDoc.recentEdits.edits.at(-1);
27
- if (mostRecentEdit === undefined) {
28
- return null;
29
- }
30
-
31
- const mostRecentSingleEdit = mostRecentEdit.replacements.at(-1);
32
- if (mostRecentSingleEdit === undefined) {
33
- return null;
34
- }
35
-
36
- const offsetRange = mostRecentSingleEdit.replaceRange;
37
- const newText = mostRecentSingleEdit.newText;
38
- const change = newText.length - offsetRange.length;
39
- const newOffset = offsetRange.endExclusive + change;
40
-
41
- const selectionRange = activeDoc.documentAfterEdits.getTransformer().getRange(new OffsetRange(newOffset, newOffset));
42
-
43
- return selectionRange;
44
- }
45
-
46
- type Tokens = Token<number>[];
47
-
48
- export class Token<T> {
49
- public readonly range: OffsetRange;
50
-
51
- get id(): string {
52
- return this.text + '_' + this.range.toString();
53
- }
54
-
55
- constructor(public readonly text: string, public readonly value: T, offset: number) {
56
- this.range = new OffsetRange(offset, offset + text.length);
57
- }
58
-
59
- public equals(other: Token<T>): boolean {
60
- return this.range.equals(other.range) && this.text === other.text;
61
- }
62
-
63
- public deltaOffset(offset: number): Token<T> {
64
- return new Token(this.text, this.value, this.range.start + offset);
65
- }
66
- }
67
-
68
- export function clipTokensToRange(tokens: Tokens, range: OffsetRange): Tokens {
69
- return tokens.filter(token => range.intersects(token.range));
70
- }
71
-
72
- export function clipTokensToRangeAndAdjustOffsets(tokens: Tokens, range: OffsetRange): Tokens {
73
- return clipTokensToRange(tokens, range).map(token => token.deltaOffset(-range.start));
74
- }
75
-
76
- export function removeTokensInRangeAndAdjustOffsets(tokens: Tokens, range: OffsetRange): Tokens {
77
- const adjustedTokens: Tokens = [];
78
- for (let token of tokens) {
79
- // remove tokens inside the range
80
- if (range.containsRange(token.range)) {
81
- continue;
82
- }
83
- // adjust the token offset
84
- if (token.range.start > range.start) {
85
- token = token.deltaOffset(-range.length);
86
- }
87
-
88
- adjustedTokens.push(token);
89
- }
90
-
91
- return adjustedTokens;
92
- }
93
-
94
- export function getTokensFromLogProbs(logProbs: ChoiceLogProbs, offset: number): Tokens {
95
- let acc = offset;
96
- return logProbs.content.map(tokenContent => {
97
- const token = new Token(tokenContent.token, tokenContent.logprob, acc);
98
- acc += token.range.length;
99
- return token;
100
- });
101
- }
102
-
103
- export class LineWithTokens {
104
-
105
- static stringEquals(a: LineWithTokens, b: LineWithTokens): boolean {
106
- return a._text === b._text;
107
- }
108
-
109
- static fromText(text: string, tokens: Tokens | undefined): LineWithTokens[] {
110
- tokens = tokens ?? [];
111
-
112
- const lines: LineWithTokens[] = [];
113
- while (true) {
114
- const eolIdxWith = text.indexOf('\r\n');
115
- const eolIdxWithout = text.indexOf('\n');
116
- const eolIdx = (eolIdxWith === -1 ? eolIdxWithout : (eolIdxWithout === -1 ? eolIdxWith : Math.min(eolIdxWith, eolIdxWithout)));
117
- const eol = (eolIdxWith !== -1 ? '\r\n' : (eolIdxWithout === -1 ? undefined : '\n'));
118
-
119
- if (eol === undefined) {
120
- lines.push(new LineWithTokens(text, tokens, '\n'));
121
- break;
122
- }
123
-
124
- const lineLength = eolIdx + eol.length;
125
- const line = text.substring(0, eolIdx);
126
- const lineTokensWithBoundary = tokens.filter(t => t.range.start < lineLength && t.range.endExclusive > 0);
127
- lines.push(new LineWithTokens(line, lineTokensWithBoundary, eol));
128
-
129
- text = text.substring(lineLength);
130
- tokens = tokens.map(t => t.deltaOffset(-lineLength)).filter(t => t.range.endExclusive > 0);
131
- }
132
-
133
- return lines;
134
- }
135
-
136
- get text(): string { return this._text; }
137
- get tokens(): Tokens { return this._tokens; }
138
- get length(): number { return this._text.length; }
139
- get lengthWithEOL(): number { return this._text.length + this._eol.length; }
140
- get eol(): '\n' | '\r\n' { return this._eol; }
141
-
142
- constructor(
143
- private readonly _text: string,
144
- private readonly _tokens: Tokens,
145
- private readonly _eol: '\n' | '\r\n'
146
- ) { }
147
-
148
- trim() {
149
- return this.trimStart().trimEnd();
150
- }
151
-
152
- trimStart() {
153
- const lineStartTrimmed = this._text.trimStart();
154
- const trimmedLength = this._text.length - lineStartTrimmed.length;
155
- const tokensUpdated = this._tokens.map(t => t.deltaOffset(-trimmedLength)).filter(t => t.range.endExclusive > 0);
156
- return new LineWithTokens(lineStartTrimmed, tokensUpdated, this._eol);
157
- }
158
-
159
- trimEnd() {
160
- const lineEndTrimmed = this._text.trimEnd();
161
- const tokensUpdated = this._tokens.filter(t => t.range.start < lineEndTrimmed.length);
162
- return new LineWithTokens(lineEndTrimmed, tokensUpdated, this._eol);
163
- }
164
-
165
- substring(start: number, end: number): LineWithTokens {
166
- const lineSubstring = this._text.substring(start, end);
167
- const tokensUpdated = this._tokens.map(t => t.deltaOffset(-start)).filter(t => t.range.endExclusive > 0 && t.range.start < lineSubstring.length);
168
- return new LineWithTokens(lineSubstring, tokensUpdated, this._eol);
169
- }
170
-
171
- stringEquals(other: LineWithTokens): boolean {
172
- return LineWithTokens.stringEquals(this, other);
173
- }
174
-
175
- equals(other: LineWithTokens): boolean {
176
- return this._text === other.text
177
- && this._tokens.length === other.tokens.length
178
- && this._tokens.every((t, i) => t.equals(other.tokens[i]));
179
- }
180
-
181
- dropTokens(tokens: Tokens): LineWithTokens {
182
- return new LineWithTokens(this._text, this._tokens.filter(t => !tokens.some(token => t.equals(token))), this._eol);
183
- }
184
-
185
- findTokens(fn: (token: Token<number>) => boolean): Token<number>[] {
186
- return this._tokens.filter(fn);
187
- }
188
- }
189
-
190
- export function getTokensFromLinesWithTokens(lines: LineWithTokens[]): Tokens {
191
- let offset = 0;
192
-
193
- const tokens: Tokens = [];
194
- for (const line of lines) {
195
- const textLine = line.text + line.eol;
196
- tokens.push(...line.tokens.map(t => t.deltaOffset(offset)));
197
- offset += textLine.length;
198
- }
199
-
200
- const tokensDeduplicated: Tokens = [];
201
- const tokensSeen = new Set<string>();
202
- for (const token of tokens) {
203
- if (!tokensSeen.has(token.id)) {
204
- tokensSeen.add(token.id);
205
- tokensDeduplicated.push(token);
206
- }
207
- }
208
-
209
- return tokensDeduplicated;
210
- }
211
-
212
- export function mergeOffsetRangesAtDistance(ranges: OffsetRange[], distance: number): OffsetRange[] {
213
- if (distance < 0) {
214
- throw new BugIndicatingError('Distance must be positive');
215
- }
216
-
217
- const rangesGrown = ranges.map(r => new OffsetRange(r.start - distance, r.endExclusive + distance));
218
-
219
- const set = new OffsetRangeSet();
220
- for (const range of rangesGrown) {
221
- set.addRange(range);
222
- }
223
-
224
- return set.ranges.map(r => new OffsetRange(r.start + distance, r.endExclusive - distance));
225
- }