@vscode/chat-lib 0.3.0 → 0.3.1-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 (332) hide show
  1. package/dist/src/_internal/extension/byok/node/openAIEndpoint.js +1 -1
  2. package/dist/src/_internal/extension/byok/node/openAIEndpoint.js.map +1 -1
  3. package/dist/src/_internal/extension/completions-core/common/ghostTextContext.d.ts +5 -0
  4. package/dist/src/_internal/extension/completions-core/common/ghostTextContext.d.ts.map +1 -0
  5. package/dist/src/_internal/extension/completions-core/common/ghostTextContext.js +16 -0
  6. package/dist/src/_internal/extension/completions-core/common/ghostTextContext.js.map +1 -0
  7. package/dist/src/_internal/extension/completions-core/vscode-node/extension/src/modelPickerUserSelection.d.ts +3 -0
  8. package/dist/src/_internal/extension/completions-core/vscode-node/extension/src/modelPickerUserSelection.d.ts.map +1 -0
  9. package/dist/src/_internal/extension/completions-core/vscode-node/extension/src/modelPickerUserSelection.js +9 -0
  10. package/dist/src/_internal/extension/completions-core/vscode-node/extension/src/modelPickerUserSelection.js.map +1 -0
  11. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/asyncCompletions.d.ts +1 -1
  12. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/asyncCompletions.d.ts.map +1 -1
  13. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/cacheUtils.d.ts +19 -0
  14. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/cacheUtils.d.ts.map +1 -0
  15. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/cacheUtils.js +12 -0
  16. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/cacheUtils.js.map +1 -0
  17. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsFromNetwork.d.ts +49 -0
  18. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsFromNetwork.d.ts.map +1 -0
  19. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsFromNetwork.js +331 -0
  20. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsFromNetwork.js.map +1 -0
  21. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/copilotCompletion.d.ts +3 -2
  22. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/copilotCompletion.d.ts.map +1 -1
  23. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/copilotCompletion.js +2 -6
  24. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/copilotCompletion.js.map +1 -1
  25. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/current.d.ts +1 -1
  26. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/current.d.ts.map +1 -1
  27. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/current.js +2 -2
  28. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/current.js.map +1 -1
  29. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/ghostText.d.ts +32 -12
  30. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/ghostText.d.ts.map +1 -1
  31. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/ghostText.js +368 -806
  32. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/ghostText.js.map +1 -1
  33. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/ghostTextStrategy.d.ts +16 -0
  34. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/ghostTextStrategy.d.ts.map +1 -0
  35. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/ghostTextStrategy.js +196 -0
  36. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/ghostTextStrategy.js.map +1 -0
  37. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/last.d.ts +3 -5
  38. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/last.d.ts.map +1 -1
  39. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/last.js +8 -8
  40. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/last.js.map +1 -1
  41. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/requestContext.d.ts +37 -0
  42. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/requestContext.d.ts.map +1 -0
  43. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/requestContext.js +7 -0
  44. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/requestContext.js.map +1 -0
  45. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/resultType.d.ts +8 -0
  46. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/resultType.d.ts.map +1 -0
  47. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/resultType.js +16 -0
  48. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/resultType.js.map +1 -0
  49. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/streamedCompletionSplitter.d.ts.map +1 -1
  50. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/streamedCompletionSplitter.js +3 -5
  51. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/streamedCompletionSplitter.js.map +1 -1
  52. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/telemetry.d.ts +3 -2
  53. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/telemetry.d.ts.map +1 -1
  54. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/telemetry.js +10 -9
  55. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/telemetry.js.map +1 -1
  56. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/inlineCompletion.d.ts +2 -1
  57. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/inlineCompletion.d.ts.map +1 -1
  58. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/inlineCompletion.js +8 -7
  59. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/inlineCompletion.js.map +1 -1
  60. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networkConfiguration.d.ts +1 -6
  61. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networkConfiguration.d.ts.map +1 -1
  62. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networking.d.ts +1 -0
  63. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networking.d.ts.map +1 -1
  64. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networking.js +1 -0
  65. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networking.js.map +1 -1
  66. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.d.ts +25 -7
  67. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.d.ts.map +1 -1
  68. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.js +316 -23
  69. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.js.map +1 -1
  70. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/model.d.ts +3 -1
  71. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/model.d.ts.map +1 -1
  72. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/model.js +28 -3
  73. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/model.js.map +1 -1
  74. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/openai.d.ts +5 -9
  75. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/openai.d.ts.map +1 -1
  76. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/openai.js +0 -3
  77. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/openai.js.map +1 -1
  78. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/stream.d.ts +3 -27
  79. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/stream.d.ts.map +1 -1
  80. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/stream.js +17 -62
  81. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/stream.js.map +1 -1
  82. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/postInsertion.d.ts +1 -1
  83. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/postInsertion.d.ts.map +1 -1
  84. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/postInsertion.js +0 -4
  85. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/postInsertion.js.map +1 -1
  86. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/completionsPromptFactory/componentsCompletionsPromptFactory.d.ts +7 -5
  87. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/completionsPromptFactory/componentsCompletionsPromptFactory.d.ts.map +1 -1
  88. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/completionsPromptFactory/componentsCompletionsPromptFactory.js +75 -13
  89. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/completionsPromptFactory/componentsCompletionsPromptFactory.js.map +1 -1
  90. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/diagnostics.d.ts +10 -0
  91. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/diagnostics.d.ts.map +1 -0
  92. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/diagnostics.js +92 -0
  93. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/diagnostics.js.map +1 -0
  94. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/splitContextPrompt.d.ts.map +1 -1
  95. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/splitContextPrompt.js +2 -1
  96. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/splitContextPrompt.js.map +1 -1
  97. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistry.d.ts +9 -0
  98. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistry.d.ts.map +1 -1
  99. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistry.js +50 -1
  100. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistry.js.map +1 -1
  101. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviders/contextItemSchemas.d.ts +6 -2
  102. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviders/contextItemSchemas.d.ts.map +1 -1
  103. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviders/contextItemSchemas.js +106 -43
  104. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviders/contextItemSchemas.js.map +1 -1
  105. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviders/diagnostics.d.ts +5 -0
  106. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviders/diagnostics.d.ts.map +1 -0
  107. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviders/diagnostics.js +59 -0
  108. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviders/diagnostics.js.map +1 -0
  109. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/prompt.d.ts +4 -0
  110. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/prompt.d.ts.map +1 -1
  111. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/prompt.js +24 -1
  112. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/prompt.js.map +1 -1
  113. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/anomalyDetection.d.ts +1 -1
  114. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/anomalyDetection.d.ts.map +1 -1
  115. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/anomalyDetection.js.map +1 -1
  116. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/suggestions.d.ts +2 -2
  117. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/suggestions.d.ts.map +1 -1
  118. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/suggestions.js +2 -4
  119. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/suggestions.js.map +1 -1
  120. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/telemetry.d.ts +2 -1
  121. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/telemetry.d.ts.map +1 -1
  122. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/telemetry.js.map +1 -1
  123. package/dist/src/_internal/extension/completions-core/vscode-node/types/src/contextProviderApiV1.d.ts +10 -2
  124. package/dist/src/_internal/extension/completions-core/vscode-node/types/src/contextProviderApiV1.d.ts.map +1 -1
  125. package/dist/src/_internal/extension/completions-core/vscode-node/types/src/contextProviderApiV1.js +8 -0
  126. package/dist/src/_internal/extension/completions-core/vscode-node/types/src/contextProviderApiV1.js.map +1 -1
  127. package/dist/src/_internal/extension/inlineEdits/common/nesTriggerHint.d.ts +16 -0
  128. package/dist/src/_internal/extension/inlineEdits/common/nesTriggerHint.d.ts.map +1 -0
  129. package/dist/src/_internal/extension/inlineEdits/common/nesTriggerHint.js +27 -0
  130. package/dist/src/_internal/extension/inlineEdits/common/nesTriggerHint.js.map +1 -0
  131. package/dist/src/_internal/extension/inlineEdits/common/userInteractionMonitor.d.ts +8 -1
  132. package/dist/src/_internal/extension/inlineEdits/common/userInteractionMonitor.d.ts.map +1 -1
  133. package/dist/src/_internal/extension/inlineEdits/common/userInteractionMonitor.js +10 -4
  134. package/dist/src/_internal/extension/inlineEdits/common/userInteractionMonitor.js.map +1 -1
  135. package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.d.ts +6 -2
  136. package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.d.ts.map +1 -1
  137. package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.js +5 -5
  138. package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.js.map +1 -1
  139. package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts +2 -0
  140. package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts.map +1 -1
  141. package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js +11 -7
  142. package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js.map +1 -1
  143. package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.d.ts.map +1 -1
  144. package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.js +9 -3
  145. package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.js.map +1 -1
  146. package/dist/src/_internal/extension/inlineEdits/node/nextEditResult.d.ts +3 -0
  147. package/dist/src/_internal/extension/inlineEdits/node/nextEditResult.d.ts.map +1 -1
  148. package/dist/src/_internal/extension/inlineEdits/node/nextEditResult.js.map +1 -1
  149. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts +22 -0
  150. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts.map +1 -1
  151. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js +187 -66
  152. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js.map +1 -1
  153. package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.d.ts +7 -5
  154. package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.d.ts.map +1 -1
  155. package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js +26 -14
  156. package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js.map +1 -1
  157. package/dist/src/_internal/extension/xtab/common/lintErrors.d.ts +2 -0
  158. package/dist/src/_internal/extension/xtab/common/lintErrors.d.ts.map +1 -1
  159. package/dist/src/_internal/extension/xtab/common/lintErrors.js +31 -7
  160. package/dist/src/_internal/extension/xtab/common/lintErrors.js.map +1 -1
  161. package/dist/src/_internal/extension/xtab/common/promptCrafting.d.ts.map +1 -1
  162. package/dist/src/_internal/extension/xtab/common/promptCrafting.js +11 -6
  163. package/dist/src/_internal/extension/xtab/common/promptCrafting.js.map +1 -1
  164. package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.d.ts +2 -2
  165. package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.d.ts.map +1 -1
  166. package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.js +15 -12
  167. package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.js.map +1 -1
  168. package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.d.ts +3 -1
  169. package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.d.ts.map +1 -1
  170. package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.js +9 -3
  171. package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.js.map +1 -1
  172. package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts +5 -23
  173. package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts.map +1 -1
  174. package/dist/src/_internal/extension/xtab/node/xtabProvider.js +222 -195
  175. package/dist/src/_internal/extension/xtab/node/xtabProvider.js.map +1 -1
  176. package/dist/src/_internal/platform/authentication/common/authentication.d.ts +2 -1
  177. package/dist/src/_internal/platform/authentication/common/authentication.d.ts.map +1 -1
  178. package/dist/src/_internal/platform/authentication/common/authentication.js +7 -2
  179. package/dist/src/_internal/platform/authentication/common/authentication.js.map +1 -1
  180. package/dist/src/_internal/platform/authentication/common/copilotToken.d.ts +146 -49
  181. package/dist/src/_internal/platform/authentication/common/copilotToken.d.ts.map +1 -1
  182. package/dist/src/_internal/platform/authentication/common/copilotToken.js +152 -18
  183. package/dist/src/_internal/platform/authentication/common/copilotToken.js.map +1 -1
  184. package/dist/src/_internal/platform/authentication/common/staticGitHubAuthenticationService.js +1 -1
  185. package/dist/src/_internal/platform/authentication/common/staticGitHubAuthenticationService.js.map +1 -1
  186. package/dist/src/_internal/platform/authentication/node/copilotTokenManager.d.ts +10 -0
  187. package/dist/src/_internal/platform/authentication/node/copilotTokenManager.d.ts.map +1 -1
  188. package/dist/src/_internal/platform/authentication/node/copilotTokenManager.js +111 -41
  189. package/dist/src/_internal/platform/authentication/node/copilotTokenManager.js.map +1 -1
  190. package/dist/src/_internal/platform/chat/common/chatMLFetcher.js +1 -1
  191. package/dist/src/_internal/platform/chat/common/chatMLFetcher.js.map +1 -1
  192. package/dist/src/_internal/platform/chat/common/commonTypes.d.ts +5 -1
  193. package/dist/src/_internal/platform/chat/common/commonTypes.d.ts.map +1 -1
  194. package/dist/src/_internal/platform/chat/common/commonTypes.js +5 -1
  195. package/dist/src/_internal/platform/chat/common/commonTypes.js.map +1 -1
  196. package/dist/src/_internal/platform/completions-core/common/openai/copilotAnnotations.d.ts +27 -0
  197. package/dist/src/_internal/platform/completions-core/common/openai/copilotAnnotations.d.ts.map +1 -0
  198. package/dist/src/_internal/platform/completions-core/common/openai/copilotAnnotations.js +35 -0
  199. package/dist/src/_internal/platform/completions-core/common/openai/copilotAnnotations.js.map +1 -0
  200. package/dist/src/_internal/platform/configuration/common/configurationService.d.ts +74 -34
  201. package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
  202. package/dist/src/_internal/platform/configuration/common/configurationService.js +58 -25
  203. package/dist/src/_internal/platform/configuration/common/configurationService.js.map +1 -1
  204. package/dist/src/_internal/platform/configuration/common/validator.d.ts +2 -0
  205. package/dist/src/_internal/platform/configuration/common/validator.d.ts.map +1 -1
  206. package/dist/src/_internal/platform/configuration/common/validator.js +18 -0
  207. package/dist/src/_internal/platform/configuration/common/validator.js.map +1 -1
  208. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts +2 -0
  209. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts.map +1 -1
  210. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js +10 -1
  211. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js.map +1 -1
  212. package/dist/src/_internal/platform/endpoint/common/endpointProvider.d.ts +3 -0
  213. package/dist/src/_internal/platform/endpoint/common/endpointProvider.d.ts.map +1 -1
  214. package/dist/src/_internal/platform/endpoint/common/endpointProvider.js.map +1 -1
  215. package/dist/src/_internal/platform/endpoint/common/endpointTypes.d.ts +1 -0
  216. package/dist/src/_internal/platform/endpoint/common/endpointTypes.d.ts.map +1 -1
  217. package/dist/src/_internal/platform/endpoint/common/endpointTypes.js +1 -0
  218. package/dist/src/_internal/platform/endpoint/common/endpointTypes.js.map +1 -1
  219. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts +2 -0
  220. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts.map +1 -1
  221. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js +83 -3
  222. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js.map +1 -1
  223. package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts +19 -4
  224. package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts.map +1 -1
  225. package/dist/src/_internal/platform/endpoint/node/messagesApi.js +247 -36
  226. package/dist/src/_internal/platform/endpoint/node/messagesApi.js.map +1 -1
  227. package/dist/src/_internal/platform/endpoint/node/responsesApi.d.ts +2 -0
  228. package/dist/src/_internal/platform/endpoint/node/responsesApi.d.ts.map +1 -1
  229. package/dist/src/_internal/platform/endpoint/node/responsesApi.js +23 -5
  230. package/dist/src/_internal/platform/endpoint/node/responsesApi.js.map +1 -1
  231. package/dist/src/_internal/platform/git/common/gitService.d.ts +2 -1
  232. package/dist/src/_internal/platform/git/common/gitService.d.ts.map +1 -1
  233. package/dist/src/_internal/platform/git/common/gitService.js.map +1 -1
  234. package/dist/src/_internal/platform/github/common/githubService.d.ts +36 -0
  235. package/dist/src/_internal/platform/github/common/githubService.d.ts.map +1 -1
  236. package/dist/src/_internal/platform/github/common/githubService.js +60 -0
  237. package/dist/src/_internal/platform/github/common/githubService.js.map +1 -1
  238. package/dist/src/_internal/platform/inlineCompletions/common/api.d.ts +5 -1
  239. package/dist/src/_internal/platform/inlineCompletions/common/api.d.ts.map +1 -1
  240. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/languageContext.d.ts +10 -2
  241. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/languageContext.d.ts.map +1 -1
  242. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/languageContext.js +23 -4
  243. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/languageContext.js.map +1 -1
  244. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts +2 -1
  245. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts.map +1 -1
  246. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js +1 -0
  247. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js.map +1 -1
  248. package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.d.ts +5 -0
  249. package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.d.ts.map +1 -1
  250. package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.js +123 -0
  251. package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.js.map +1 -1
  252. package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.d.ts +15 -3
  253. package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.d.ts.map +1 -1
  254. package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.js +20 -0
  255. package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.js.map +1 -1
  256. package/dist/src/_internal/platform/inlineEdits/node/inlineEditsModelService.d.ts.map +1 -1
  257. package/dist/src/_internal/platform/inlineEdits/node/inlineEditsModelService.js +5 -0
  258. package/dist/src/_internal/platform/inlineEdits/node/inlineEditsModelService.js.map +1 -1
  259. package/dist/src/_internal/platform/languageServer/common/languageContextService.d.ts +27 -2
  260. package/dist/src/_internal/platform/languageServer/common/languageContextService.d.ts.map +1 -1
  261. package/dist/src/_internal/platform/languageServer/common/languageContextService.js +1 -0
  262. package/dist/src/_internal/platform/languageServer/common/languageContextService.js.map +1 -1
  263. package/dist/src/_internal/platform/log/common/logService.d.ts +12 -0
  264. package/dist/src/_internal/platform/log/common/logService.d.ts.map +1 -1
  265. package/dist/src/_internal/platform/log/common/logService.js +39 -0
  266. package/dist/src/_internal/platform/log/common/logService.js.map +1 -1
  267. package/dist/src/_internal/platform/nesFetch/common/completionsAPI.d.ts +74 -0
  268. package/dist/src/_internal/platform/nesFetch/common/completionsAPI.d.ts.map +1 -0
  269. package/dist/src/_internal/platform/nesFetch/common/completionsAPI.js +23 -0
  270. package/dist/src/_internal/platform/nesFetch/common/completionsAPI.js.map +1 -0
  271. package/dist/src/_internal/platform/nesFetch/common/completionsFetchService.d.ts +72 -0
  272. package/dist/src/_internal/platform/nesFetch/common/completionsFetchService.d.ts.map +1 -0
  273. package/dist/src/_internal/platform/nesFetch/common/completionsFetchService.js +44 -0
  274. package/dist/src/_internal/platform/nesFetch/common/completionsFetchService.js.map +1 -0
  275. package/dist/src/_internal/platform/nesFetch/common/responseStream.d.ts +36 -0
  276. package/dist/src/_internal/platform/nesFetch/common/responseStream.d.ts.map +1 -0
  277. package/dist/src/_internal/platform/nesFetch/common/responseStream.js +167 -0
  278. package/dist/src/_internal/platform/nesFetch/common/responseStream.js.map +1 -0
  279. package/dist/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.d.ts +28 -0
  280. package/dist/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.d.ts.map +1 -0
  281. package/dist/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.js +184 -0
  282. package/dist/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.js.map +1 -0
  283. package/dist/src/_internal/platform/nesFetch/node/streamTransformer.d.ts +9 -0
  284. package/dist/src/_internal/platform/nesFetch/node/streamTransformer.d.ts.map +1 -0
  285. package/dist/src/_internal/platform/nesFetch/node/streamTransformer.js +71 -0
  286. package/dist/src/_internal/platform/nesFetch/node/streamTransformer.js.map +1 -0
  287. package/dist/src/_internal/platform/networking/common/anthropic.d.ts +166 -0
  288. package/dist/src/_internal/platform/networking/common/anthropic.d.ts.map +1 -0
  289. package/dist/src/_internal/platform/networking/common/anthropic.js +177 -0
  290. package/dist/src/_internal/platform/networking/common/anthropic.js.map +1 -0
  291. package/dist/src/_internal/platform/networking/common/fetch.d.ts +19 -12
  292. package/dist/src/_internal/platform/networking/common/fetch.d.ts.map +1 -1
  293. package/dist/src/_internal/platform/networking/common/fetch.js +5 -5
  294. package/dist/src/_internal/platform/networking/common/fetch.js.map +1 -1
  295. package/dist/src/_internal/platform/networking/common/fetcherService.d.ts +35 -6
  296. package/dist/src/_internal/platform/networking/common/fetcherService.d.ts.map +1 -1
  297. package/dist/src/_internal/platform/networking/common/fetcherService.js +96 -11
  298. package/dist/src/_internal/platform/networking/common/fetcherService.js.map +1 -1
  299. package/dist/src/_internal/platform/networking/common/networking.d.ts +7 -3
  300. package/dist/src/_internal/platform/networking/common/networking.d.ts.map +1 -1
  301. package/dist/src/_internal/platform/networking/common/networking.js +4 -4
  302. package/dist/src/_internal/platform/networking/common/networking.js.map +1 -1
  303. package/dist/src/_internal/platform/networking/node/stream.d.ts.map +1 -1
  304. package/dist/src/_internal/platform/networking/node/stream.js +55 -29
  305. package/dist/src/_internal/platform/networking/node/stream.js.map +1 -1
  306. package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.d.ts +1 -0
  307. package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.d.ts.map +1 -1
  308. package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.js +2 -0
  309. package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.js.map +1 -1
  310. package/dist/src/_internal/platform/requestLogger/node/requestLogger.d.ts +2 -0
  311. package/dist/src/_internal/platform/requestLogger/node/requestLogger.d.ts.map +1 -1
  312. package/dist/src/_internal/platform/requestLogger/node/requestLogger.js.map +1 -1
  313. package/dist/src/_internal/util/common/test/shims/chatTypes.d.ts +95 -8
  314. package/dist/src/_internal/util/common/test/shims/chatTypes.d.ts.map +1 -1
  315. package/dist/src/_internal/util/common/test/shims/chatTypes.js +65 -11
  316. package/dist/src/_internal/util/common/test/shims/chatTypes.js.map +1 -1
  317. package/dist/src/_internal/util/common/test/shims/vscodeTypesShim.d.ts.map +1 -1
  318. package/dist/src/_internal/util/common/test/shims/vscodeTypesShim.js +5 -2
  319. package/dist/src/_internal/util/common/test/shims/vscodeTypesShim.js.map +1 -1
  320. package/dist/src/_internal/util/common/tracing.d.ts +13 -0
  321. package/dist/src/_internal/util/common/tracing.d.ts.map +1 -1
  322. package/dist/src/_internal/util/common/tracing.js +7 -0
  323. package/dist/src/_internal/util/common/tracing.js.map +1 -1
  324. package/dist/src/_internal/vscodeTypes.d.ts +5 -1
  325. package/dist/src/_internal/vscodeTypes.d.ts.map +1 -1
  326. package/dist/src/_internal/vscodeTypes.js +6 -3
  327. package/dist/src/_internal/vscodeTypes.js.map +1 -1
  328. package/dist/src/main.d.ts.map +1 -1
  329. package/dist/src/main.js +8 -1
  330. package/dist/src/main.js.map +1 -1
  331. package/dist/src/package.json +655 -338
  332. package/package.json +4 -4
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
23
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
24
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
25
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
26
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
27
+ };
28
+ var __importStar = (this && this.__importStar) || (function () {
29
+ var ownKeys = function(o) {
30
+ ownKeys = Object.getOwnPropertyNames || function (o) {
31
+ var ar = [];
32
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
33
+ return ar;
34
+ };
35
+ return ownKeys(o);
36
+ };
37
+ return function (mod) {
38
+ if (mod && mod.__esModule) return mod;
39
+ var result = {};
40
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
41
+ __setModuleDefault(result, mod);
42
+ return result;
43
+ };
44
+ })();
45
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
46
+ return function (target, key) { decorator(target, key, paramIndex); }
47
+ };
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.CompletionsFetchService = void 0;
50
+ const errors = __importStar(require("../../../util/common/errors"));
51
+ const result_1 = require("../../../util/common/result");
52
+ const authentication_1 = require("../../authentication/common/authentication");
53
+ const fetch_1 = require("../../networking/common/fetch");
54
+ const fetcherService_1 = require("../../networking/common/fetcherService");
55
+ const completionsFetchService_1 = require("../common/completionsFetchService");
56
+ const responseStream_1 = require("../common/responseStream");
57
+ const streamTransformer_1 = require("./streamTransformer");
58
+ let CompletionsFetchService = class CompletionsFetchService {
59
+ constructor(authService, fetcherService) {
60
+ this.authService = authService;
61
+ this.fetcherService = fetcherService;
62
+ }
63
+ disconnectAll() {
64
+ return this.fetcherService.disconnectAll();
65
+ }
66
+ async fetch(url, secretKey, params, requestId, ct, headerOverrides) {
67
+ if (ct.isCancellationRequested) {
68
+ return result_1.Result.error(new completionsFetchService_1.Completions.RequestCancelled());
69
+ }
70
+ const options = {
71
+ requestId,
72
+ headers: this.getHeaders(requestId, secretKey, headerOverrides),
73
+ body: JSON.stringify({
74
+ ...params,
75
+ stream: true,
76
+ })
77
+ };
78
+ const fetchResponse = await this._fetchFromUrl(url, options, ct);
79
+ if (fetchResponse.isError()) {
80
+ return fetchResponse;
81
+ }
82
+ if (fetchResponse.val.status === 200) {
83
+ const jsonlStream = (0, streamTransformer_1.streamToLines)(fetchResponse.val.body);
84
+ const completionsStream = (0, streamTransformer_1.jsonlStreamToCompletions)(jsonlStream);
85
+ const response = new responseStream_1.ResponseStream(fetchResponse.val.response, completionsStream, fetchResponse.val.requestId, fetchResponse.val.headers);
86
+ return result_1.Result.ok(response);
87
+ }
88
+ else {
89
+ const error = new completionsFetchService_1.Completions.UnsuccessfulResponse(fetchResponse.val.status, fetchResponse.val.statusText, fetchResponse.val.headers, () => collectAsyncIterableToString(fetchResponse.val.body).catch(() => ''));
90
+ return result_1.Result.error(error);
91
+ }
92
+ }
93
+ async _fetchFromUrl(url, options, ct) {
94
+ const fetchAbortCtl = this.fetcherService.makeAbortController();
95
+ const onCancellationDisposable = ct.onCancellationRequested(() => {
96
+ fetchAbortCtl.abort();
97
+ });
98
+ try {
99
+ const request = {
100
+ headers: options.headers,
101
+ body: options.body,
102
+ signal: fetchAbortCtl.signal,
103
+ method: 'POST',
104
+ };
105
+ const response = await this.fetcherService.fetch(url, request);
106
+ if (response.status === 200 && this.authService.copilotToken?.isFreeUser && this.authService.copilotToken?.isChatQuotaExceeded) {
107
+ this.authService.resetCopilotToken();
108
+ }
109
+ if (response.status !== 200) {
110
+ if (response.status === 402) {
111
+ // When we receive a 402, we have exceed the free tier quota
112
+ // This is stored on the token so let's refresh it
113
+ if (!this.authService.copilotToken?.isCompletionsQuotaExceeded) {
114
+ this.authService.resetCopilotToken(response.status);
115
+ await this.authService.getCopilotToken();
116
+ }
117
+ }
118
+ return result_1.Result.error(new completionsFetchService_1.Completions.UnsuccessfulResponse(response.status, response.statusText, response.headers, () => response.text().catch(() => '')));
119
+ }
120
+ const body = response.body.pipeThrough(new TextDecoderStream());
121
+ const responseStream = streamWithCleanup(body, onCancellationDisposable);
122
+ return result_1.Result.ok({
123
+ status: response.status,
124
+ statusText: response.statusText,
125
+ headers: response.headers,
126
+ body: responseStream,
127
+ requestId: (0, fetch_1.getRequestId)(response.headers),
128
+ response,
129
+ });
130
+ }
131
+ catch (reason) {
132
+ onCancellationDisposable.dispose();
133
+ if (reason instanceof Error && reason.message === 'This operation was aborted') {
134
+ return result_1.Result.error(new completionsFetchService_1.Completions.RequestCancelled());
135
+ }
136
+ const error = errors.fromUnknown(reason);
137
+ return result_1.Result.error(new completionsFetchService_1.Completions.Unexpected(error));
138
+ }
139
+ }
140
+ getHeaders(requestId, secretKey, headerOverrides = {}) {
141
+ const headers = {
142
+ 'Content-Type': 'application/json',
143
+ 'x-policy-id': 'nil',
144
+ Authorization: 'Bearer ' + secretKey,
145
+ 'X-Request-Id': requestId,
146
+ 'X-GitHub-Api-Version': '2025-04-01',
147
+ ...headerOverrides,
148
+ };
149
+ return headers;
150
+ }
151
+ };
152
+ exports.CompletionsFetchService = CompletionsFetchService;
153
+ exports.CompletionsFetchService = CompletionsFetchService = __decorate([
154
+ __param(0, authentication_1.IAuthenticationService),
155
+ __param(1, fetcherService_1.IFetcherService)
156
+ ], CompletionsFetchService);
157
+ /**
158
+ * Wraps an async iterable stream and disposes the cleanup disposable when the stream completes or errors.
159
+ */
160
+ async function* streamWithCleanup(stream, cleanupDisposable) {
161
+ try {
162
+ for await (const str of stream) {
163
+ yield str;
164
+ }
165
+ }
166
+ catch (err) {
167
+ const error = errors.fromUnknown(err);
168
+ throw error;
169
+ }
170
+ finally {
171
+ cleanupDisposable.dispose();
172
+ }
173
+ }
174
+ /**
175
+ * Collects all strings from an async iterable and joins them into a single string.
176
+ */
177
+ async function collectAsyncIterableToString(iterable) {
178
+ const parts = [];
179
+ for await (const part of iterable) {
180
+ parts.push(part);
181
+ }
182
+ return parts.join('');
183
+ }
184
+ //# sourceMappingURL=completionsFetchServiceImpl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completionsFetchServiceImpl.js","sourceRoot":"","sources":["../../../../../../src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Completion } from '../common/completionsAPI';
2
+ /**
3
+ * Transforms a stream of strings into a stream of lines.
4
+ *
5
+ * Listener should handle the errors coming from the input stream.
6
+ */
7
+ export declare function streamToLines(stream: AsyncIterable<string>): AsyncGenerator<string>;
8
+ export declare function jsonlStreamToCompletions(jsonlStream: AsyncIterable<string>): AsyncGenerator<Completion>;
9
+ //# sourceMappingURL=streamTransformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamTransformer.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/platform/nesFetch/node/streamTransformer.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;;;GAIG;AACH,wBAAuB,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAkB1F;AAED,wBAAuB,wBAAwB,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,CAgB9G"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.streamToLines = streamToLines;
8
+ exports.jsonlStreamToCompletions = jsonlStreamToCompletions;
9
+ /**
10
+ * Transforms a stream of strings into a stream of lines.
11
+ *
12
+ * Listener should handle the errors coming from the input stream.
13
+ */
14
+ async function* streamToLines(stream) {
15
+ let buffer = '';
16
+ for await (const str of stream) {
17
+ buffer += str;
18
+ let newlineIndex;
19
+ while ((newlineIndex = buffer.indexOf('\n')) !== -1) {
20
+ // take the first line
21
+ const line = buffer.substring(0, newlineIndex);
22
+ buffer = buffer.substring(newlineIndex + 1);
23
+ yield line;
24
+ }
25
+ }
26
+ if (buffer.length > 0) {
27
+ // last line which doesn't end with \n
28
+ yield buffer;
29
+ }
30
+ }
31
+ async function* jsonlStreamToCompletions(jsonlStream) {
32
+ for await (const line of jsonlStream) {
33
+ if (line.trim() === 'data: [DONE]') {
34
+ continue;
35
+ }
36
+ if (line.startsWith('data: ')) {
37
+ const message = JSON.parse(line.substring('data: '.length));
38
+ if (message.error) {
39
+ throw new Error(message.error.message);
40
+ }
41
+ yield message;
42
+ }
43
+ }
44
+ }
45
+ // function replaceBytes(s: string): string {
46
+ // if (!s.startsWith('bytes:')) {
47
+ // return s;
48
+ // }
49
+ // const bytes: number[] = [];
50
+ // let i = 'bytes:'.length;
51
+ // const textEncoder = new TextEncoder();
52
+ // while (i < s.length) {
53
+ // if (s.slice(i, i + 3) === '\\\\x') {
54
+ // bytes.push(parseInt(s.slice(i + 3, i + 5), 16));
55
+ // i += 5;
56
+ // } else if (s.slice(i, i + 2) === '\\x') {
57
+ // bytes.push(parseInt(s.slice(i + 2, i + 4), 16));
58
+ // i += 4;
59
+ // } else {
60
+ // const encoded = textEncoder.encode(s.slice(i, i + 1));
61
+ // for (const b of encoded) {
62
+ // bytes.push(b);
63
+ // }
64
+ // i += 1;
65
+ // }
66
+ // }
67
+ // return new TextDecoder('utf8', { fatal: false }).decode(
68
+ // new Uint8Array(bytes)
69
+ // );
70
+ // }
71
+ //# sourceMappingURL=streamTransformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamTransformer.js","sourceRoot":"","sources":["../../../../../../src/_internal/platform/nesFetch/node/streamTransformer.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;AAShG,sCAkBC;AAED,4DAgBC;AAzCD;;;;GAIG;AACI,KAAK,SAAS,CAAC,CAAC,aAAa,CAAC,MAA6B;IACjE,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,CAAC;QACd,IAAI,YAAoB,CAAC;QACzB,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACrD,sBAAsB;YACtB,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;YAC/C,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;YAC5C,MAAM,IAAI,CAAC;QACZ,CAAC;IACF,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,sCAAsC;QACtC,MAAM,MAAM,CAAC;IACd,CAAC;AACF,CAAC;AAEM,KAAK,SAAS,CAAC,CAAC,wBAAwB,CAAC,WAAkC;IACjF,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,cAAc,EAAE,CAAC;YACpC,SAAS;QACV,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAiD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YAE1G,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC;YAED,MAAM,OAAO,CAAC;QACf,CAAC;IACF,CAAC;AACF,CAAC;AAED,6CAA6C;AAC7C,kCAAkC;AAClC,cAAc;AACd,KAAK;AACL,+BAA+B;AAC/B,4BAA4B;AAC5B,0CAA0C;AAC1C,0BAA0B;AAC1B,yCAAyC;AACzC,sDAAsD;AACtD,aAAa;AACb,8CAA8C;AAC9C,sDAAsD;AACtD,aAAa;AACb,aAAa;AACb,4DAA4D;AAC5D,gCAAgC;AAChC,qBAAqB;AACrB,OAAO;AACP,aAAa;AACb,MAAM;AACN,KAAK;AACL,4DAA4D;AAC5D,0BAA0B;AAC1B,MAAM;AACN,IAAI"}
@@ -0,0 +1,166 @@
1
+ import { IConfigurationService } from '../../configuration/common/configurationService';
2
+ import { IExperimentationService } from '../../telemetry/common/nullExperimentationService';
3
+ import { IChatEndpoint } from './networking';
4
+ /**
5
+ * Types for Anthropic Messages API
6
+ * Based on https://platform.claude.com/docs/en/api/messages
7
+ *
8
+ * This interface supports both regular tools and server tools (web search, tool search):
9
+ * - Regular tools: require name, description, and input_schema
10
+ * - Tool search tools: require only type and name
11
+ */
12
+ export interface AnthropicMessagesTool {
13
+ name: string;
14
+ type?: string;
15
+ description?: string;
16
+ input_schema?: {
17
+ type: 'object';
18
+ properties?: Record<string, unknown>;
19
+ required?: string[];
20
+ };
21
+ defer_loading?: boolean;
22
+ }
23
+ export interface ToolReference {
24
+ type: 'tool_reference';
25
+ tool_name: string;
26
+ }
27
+ export interface ToolSearchToolSearchResult {
28
+ type: 'tool_search_tool_search_result';
29
+ tool_references: ToolReference[];
30
+ }
31
+ export interface ToolSearchToolResultError {
32
+ type: 'tool_search_tool_result_error';
33
+ error_code: 'too_many_requests' | 'invalid_pattern' | 'pattern_too_long' | 'unavailable';
34
+ }
35
+ export interface ServerToolUse {
36
+ type: 'server_tool_use';
37
+ id: string;
38
+ name: string;
39
+ input: {
40
+ query: string;
41
+ };
42
+ }
43
+ export interface ToolSearchToolResult {
44
+ type: 'tool_search_tool_result';
45
+ tool_use_id: string;
46
+ content: ToolSearchToolSearchResult | ToolSearchToolResultError;
47
+ }
48
+ export interface ToolSearchUsage {
49
+ tool_search_requests: number;
50
+ }
51
+ /**
52
+ * Tools that should not use deferred loading when tool search is enabled.
53
+ * These are frequently used tools that benefit from being immediately available.
54
+ *
55
+ * TODO: @bhavyaus Replace these hardcoded strings with constants from ToolName enum
56
+ */
57
+ export declare const nonDeferredToolNames: Set<string>;
58
+ /**
59
+ * Context management types for Anthropic Messages API
60
+ * Based on https://platform.claude.com/docs/en/build-with-claude/context-editing
61
+ */
62
+ export type ContextManagementTrigger = {
63
+ type: 'input_tokens';
64
+ value: number;
65
+ } | {
66
+ type: 'tool_uses';
67
+ value: number;
68
+ };
69
+ export type ContextManagementKeep = {
70
+ type: 'tool_uses';
71
+ value: number;
72
+ } | {
73
+ type: 'thinking_turns';
74
+ value: number;
75
+ } | 'all';
76
+ export type ContextManagementClearAtLeast = {
77
+ type: 'input_tokens';
78
+ value: number;
79
+ };
80
+ export interface ClearToolUsesEdit {
81
+ type: 'clear_tool_uses_20250919';
82
+ trigger?: ContextManagementTrigger;
83
+ keep?: ContextManagementKeep;
84
+ clear_at_least?: ContextManagementClearAtLeast;
85
+ exclude_tools?: string[];
86
+ clear_tool_inputs?: boolean;
87
+ }
88
+ export interface ClearThinkingEdit {
89
+ type: 'clear_thinking_20251015';
90
+ keep?: ContextManagementKeep;
91
+ }
92
+ export type ContextManagementEdit = ClearToolUsesEdit | ClearThinkingEdit;
93
+ export interface ContextManagement {
94
+ edits: ContextManagementEdit[];
95
+ }
96
+ export interface AppliedContextEdit {
97
+ type: 'clear_thinking_20251015' | 'clear_tool_uses_20250919';
98
+ cleared_thinking_turns?: number;
99
+ cleared_tool_uses?: number;
100
+ cleared_input_tokens?: number;
101
+ }
102
+ export interface ContextManagementResponse {
103
+ applied_edits: AppliedContextEdit[];
104
+ }
105
+ /**
106
+ * Context editing is supported by:
107
+ * - Claude Haiku 4.5 (claude-haiku-4-5-* or claude-haiku-4.5-*)
108
+ * - Claude Sonnet 4.5 (claude-sonnet-4-5-* or claude-sonnet-4.5-*)
109
+ * - Claude Sonnet 4 (claude-sonnet-4-*)
110
+ * - Claude Opus 4.5 (claude-opus-4-5-* or claude-opus-4.5-*)
111
+ * - Claude Opus 4.1 (claude-opus-4-1-* or claude-opus-4.1-*)
112
+ * - Claude Opus 4 (claude-opus-4-*)
113
+ * @param modelId The model ID to check
114
+ * @returns true if the model supports context editing
115
+ */
116
+ export declare function modelSupportsContextEditing(modelId: string): boolean;
117
+ /**
118
+ * Tool search is only supported by:
119
+ * - Claude Opus 4.5 (claude-opus-4-5-* or claude-opus-4.5-*)
120
+ * @param modelId The model ID to check
121
+ * @returns true if the model supports tool search
122
+ */
123
+ export declare function modelSupportsToolSearch(modelId: string): boolean;
124
+ /**
125
+ * Memory is supported by:
126
+ * - Claude Haiku 4.5 (claude-haiku-4-5-* or claude-haiku-4.5-*)
127
+ * - Claude Sonnet 4.5 (claude-sonnet-4-5-* or claude-sonnet-4.5-*)
128
+ * - Claude Sonnet 4 (claude-sonnet-4-*)
129
+ * - Claude Opus 4.5 (claude-opus-4-5-* or claude-opus-4.5-*)
130
+ * - Claude Opus 4.1 (claude-opus-4-1-* or claude-opus-4.1-*)
131
+ * - Claude Opus 4 (claude-opus-4-*)
132
+ * @param modelId The model ID to check
133
+ * @returns true if the model supports memory
134
+ */
135
+ export declare function modelSupportsMemory(modelId: string): boolean;
136
+ export declare function isAnthropicToolSearchEnabled(endpoint: IChatEndpoint | string, configurationService: IConfigurationService, experimentationService: IExperimentationService): boolean;
137
+ export declare function isAnthropicContextEditingEnabled(endpoint: IChatEndpoint | string, configurationService: IConfigurationService, experimentationService: IExperimentationService): boolean;
138
+ export interface ContextEditingConfig {
139
+ triggerType: 'input_tokens' | 'tool_uses';
140
+ triggerValue: number;
141
+ keepCount: number;
142
+ clearAtLeastTokens: number | undefined;
143
+ excludeTools: string[];
144
+ clearInputs: boolean;
145
+ thinkingKeepTurns: number;
146
+ }
147
+ /**
148
+ * Builds the context_management configuration object for the Messages API request.
149
+ * @param config The context editing configuration from individual settings
150
+ * @param thinkingEnabled Whether extended thinking is enabled
151
+ * @returns The context_management object to include in the request, or undefined if no edits
152
+ */
153
+ export declare function buildContextManagement(config: ContextEditingConfig, thinkingEnabled: boolean): ContextManagement | undefined;
154
+ /**
155
+ * Default values for context editing configuration.
156
+ */
157
+ export declare const CONTEXT_EDITING_DEFAULTS: ContextEditingConfig;
158
+ /**
159
+ * Reads context editing configuration from settings and builds the context_management object.
160
+ * This is a convenience function that combines reading configuration with buildContextManagement.
161
+ * @param configurationService The configuration service to read settings from
162
+ * @param thinkingEnabled Whether extended thinking is enabled
163
+ * @returns The context_management object to include in the request, or undefined if disabled
164
+ */
165
+ export declare function getContextManagementFromConfig(configurationService: IConfigurationService, thinkingEnabled: boolean): ContextManagement | undefined;
166
+ //# sourceMappingURL=anthropic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/platform/networking/common/anthropic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.CONTEXT_EDITING_DEFAULTS = exports.nonDeferredToolNames = void 0;
8
+ exports.modelSupportsContextEditing = modelSupportsContextEditing;
9
+ exports.modelSupportsToolSearch = modelSupportsToolSearch;
10
+ exports.modelSupportsMemory = modelSupportsMemory;
11
+ exports.isAnthropicToolSearchEnabled = isAnthropicToolSearchEnabled;
12
+ exports.isAnthropicContextEditingEnabled = isAnthropicContextEditingEnabled;
13
+ exports.buildContextManagement = buildContextManagement;
14
+ exports.getContextManagementFromConfig = getContextManagementFromConfig;
15
+ const configurationService_1 = require("../../configuration/common/configurationService");
16
+ /**
17
+ * Tools that should not use deferred loading when tool search is enabled.
18
+ * These are frequently used tools that benefit from being immediately available.
19
+ *
20
+ * TODO: @bhavyaus Replace these hardcoded strings with constants from ToolName enum
21
+ */
22
+ exports.nonDeferredToolNames = new Set([
23
+ // Read/navigate
24
+ 'read_file',
25
+ 'list_dir',
26
+ // Search
27
+ 'grep_search',
28
+ 'semantic_search',
29
+ 'file_search',
30
+ // Edit
31
+ 'replace_string_in_file',
32
+ 'multi_replace_string_in_file',
33
+ 'insert_edit_into_file',
34
+ 'apply_patch',
35
+ 'create_file',
36
+ // Terminal
37
+ 'run_in_terminal',
38
+ 'get_terminal_output',
39
+ // Other high-usage tools
40
+ 'get_errors',
41
+ 'manage_todo_list',
42
+ ]);
43
+ /**
44
+ * Context editing is supported by:
45
+ * - Claude Haiku 4.5 (claude-haiku-4-5-* or claude-haiku-4.5-*)
46
+ * - Claude Sonnet 4.5 (claude-sonnet-4-5-* or claude-sonnet-4.5-*)
47
+ * - Claude Sonnet 4 (claude-sonnet-4-*)
48
+ * - Claude Opus 4.5 (claude-opus-4-5-* or claude-opus-4.5-*)
49
+ * - Claude Opus 4.1 (claude-opus-4-1-* or claude-opus-4.1-*)
50
+ * - Claude Opus 4 (claude-opus-4-*)
51
+ * @param modelId The model ID to check
52
+ * @returns true if the model supports context editing
53
+ */
54
+ function modelSupportsContextEditing(modelId) {
55
+ // Normalize: lowercase and replace dots with dashes so "4.5" matches "4-5"
56
+ const normalized = modelId.toLowerCase().replace(/\./g, '-');
57
+ return normalized.startsWith('claude-haiku-4-5') ||
58
+ normalized.startsWith('claude-sonnet-4-5') ||
59
+ normalized.startsWith('claude-sonnet-4') ||
60
+ normalized.startsWith('claude-opus-4-5') ||
61
+ normalized.startsWith('claude-opus-4-1') ||
62
+ normalized.startsWith('claude-opus-4');
63
+ }
64
+ /**
65
+ * Tool search is only supported by:
66
+ * - Claude Opus 4.5 (claude-opus-4-5-* or claude-opus-4.5-*)
67
+ * @param modelId The model ID to check
68
+ * @returns true if the model supports tool search
69
+ */
70
+ function modelSupportsToolSearch(modelId) {
71
+ // Normalize: lowercase and replace dots with dashes so "4.5" matches "4-5"
72
+ const normalized = modelId.toLowerCase().replace(/\./g, '-');
73
+ // TODO: Enable sonnet tool search when supported by all providers
74
+ // return normalized.startsWith('claude-sonnet-4-5') ||
75
+ return normalized.startsWith('claude-opus-4-5');
76
+ }
77
+ /**
78
+ * Memory is supported by:
79
+ * - Claude Haiku 4.5 (claude-haiku-4-5-* or claude-haiku-4.5-*)
80
+ * - Claude Sonnet 4.5 (claude-sonnet-4-5-* or claude-sonnet-4.5-*)
81
+ * - Claude Sonnet 4 (claude-sonnet-4-*)
82
+ * - Claude Opus 4.5 (claude-opus-4-5-* or claude-opus-4.5-*)
83
+ * - Claude Opus 4.1 (claude-opus-4-1-* or claude-opus-4.1-*)
84
+ * - Claude Opus 4 (claude-opus-4-*)
85
+ * @param modelId The model ID to check
86
+ * @returns true if the model supports memory
87
+ */
88
+ function modelSupportsMemory(modelId) {
89
+ const normalized = modelId.toLowerCase().replace(/\./g, '-');
90
+ return normalized.startsWith('claude-haiku-4-5') ||
91
+ normalized.startsWith('claude-sonnet-4-5') ||
92
+ normalized.startsWith('claude-sonnet-4') ||
93
+ normalized.startsWith('claude-opus-4-5') ||
94
+ normalized.startsWith('claude-opus-4-1') ||
95
+ normalized.startsWith('claude-opus-4');
96
+ }
97
+ function isAnthropicToolSearchEnabled(endpoint, configurationService, experimentationService) {
98
+ const effectiveModelId = typeof endpoint === 'string' ? endpoint : endpoint.model;
99
+ if (!modelSupportsToolSearch(effectiveModelId)) {
100
+ return false;
101
+ }
102
+ return configurationService.getExperimentBasedConfig(configurationService_1.ConfigKey.AnthropicToolSearchEnabled, experimentationService);
103
+ }
104
+ function isAnthropicContextEditingEnabled(endpoint, configurationService, experimentationService) {
105
+ const effectiveModelId = typeof endpoint === 'string' ? endpoint : endpoint.model;
106
+ if (!modelSupportsContextEditing(effectiveModelId)) {
107
+ return false;
108
+ }
109
+ return configurationService.getExperimentBasedConfig(configurationService_1.ConfigKey.AnthropicContextEditingEnabled, experimentationService);
110
+ }
111
+ /**
112
+ * Builds the context_management configuration object for the Messages API request.
113
+ * @param config The context editing configuration from individual settings
114
+ * @param thinkingEnabled Whether extended thinking is enabled
115
+ * @returns The context_management object to include in the request, or undefined if no edits
116
+ */
117
+ function buildContextManagement(config, thinkingEnabled) {
118
+ const edits = [];
119
+ // Add thinking block clearing if extended thinking is enabled
120
+ if (thinkingEnabled) {
121
+ const thinkingKeepTurns = config.thinkingKeepTurns;
122
+ edits.push({
123
+ type: 'clear_thinking_20251015',
124
+ keep: { type: 'thinking_turns', value: Math.max(1, thinkingKeepTurns) },
125
+ });
126
+ }
127
+ // Add tool result clearing configuration
128
+ const { triggerType, triggerValue, keepCount, clearAtLeastTokens, excludeTools, clearInputs } = config;
129
+ // Build trigger based on type - use configured values directly (defaults match Anthropic's recommendations)
130
+ const trigger = { type: triggerType, value: triggerValue };
131
+ const toolEdit = {
132
+ type: 'clear_tool_uses_20250919',
133
+ trigger,
134
+ keep: { type: 'tool_uses', value: keepCount },
135
+ ...(clearAtLeastTokens ? { clear_at_least: { type: 'input_tokens', value: clearAtLeastTokens } } : {}),
136
+ ...(excludeTools.length > 0 ? { exclude_tools: excludeTools } : {}),
137
+ ...(clearInputs ? { clear_tool_inputs: clearInputs } : {}),
138
+ };
139
+ edits.push(toolEdit);
140
+ return edits.length > 0 ? { edits } : undefined;
141
+ }
142
+ /**
143
+ * Default values for context editing configuration.
144
+ */
145
+ exports.CONTEXT_EDITING_DEFAULTS = {
146
+ triggerType: 'input_tokens',
147
+ triggerValue: 80000,
148
+ keepCount: 3,
149
+ clearAtLeastTokens: 10000,
150
+ excludeTools: [],
151
+ clearInputs: true,
152
+ thinkingKeepTurns: 1,
153
+ };
154
+ /**
155
+ * Reads context editing configuration from settings and builds the context_management object.
156
+ * This is a convenience function that combines reading configuration with buildContextManagement.
157
+ * @param configurationService The configuration service to read settings from
158
+ * @param thinkingEnabled Whether extended thinking is enabled
159
+ * @returns The context_management object to include in the request, or undefined if disabled
160
+ */
161
+ function getContextManagementFromConfig(configurationService, thinkingEnabled) {
162
+ const userConfig = configurationService.getConfig(configurationService_1.ConfigKey.Advanced.AnthropicContextEditingConfig);
163
+ if (!userConfig) {
164
+ return buildContextManagement(exports.CONTEXT_EDITING_DEFAULTS, thinkingEnabled);
165
+ }
166
+ const contextEditingConfig = {
167
+ triggerType: userConfig.triggerType ?? exports.CONTEXT_EDITING_DEFAULTS.triggerType,
168
+ triggerValue: userConfig.triggerValue ?? exports.CONTEXT_EDITING_DEFAULTS.triggerValue,
169
+ keepCount: userConfig.keepCount ?? exports.CONTEXT_EDITING_DEFAULTS.keepCount,
170
+ clearAtLeastTokens: userConfig.clearAtLeastTokens ?? exports.CONTEXT_EDITING_DEFAULTS.clearAtLeastTokens,
171
+ excludeTools: userConfig.excludeTools ?? exports.CONTEXT_EDITING_DEFAULTS.excludeTools,
172
+ clearInputs: userConfig.clearInputs ?? exports.CONTEXT_EDITING_DEFAULTS.clearInputs,
173
+ thinkingKeepTurns: userConfig.thinkingKeepTurns ?? exports.CONTEXT_EDITING_DEFAULTS.thinkingKeepTurns,
174
+ };
175
+ return buildContextManagement(contextEditingConfig, thinkingEnabled);
176
+ }
177
+ //# sourceMappingURL=anthropic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../../../../src/_internal/platform/networking/common/anthropic.ts"],"names":[],"mappings":"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"}