@vscode/chat-lib 0.47.2026050504 → 0.48.2026050735

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 (158) hide show
  1. package/dist/src/_internal/extension/common/constants.d.ts +1 -2
  2. package/dist/src/_internal/extension/common/constants.d.ts.map +1 -1
  3. package/dist/src/_internal/extension/common/constants.js +0 -4
  4. package/dist/src/_internal/extension/common/constants.js.map +1 -1
  5. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts.map +1 -1
  6. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js +84 -24
  7. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js.map +1 -1
  8. package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.d.ts +8 -3
  9. package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.d.ts.map +1 -1
  10. package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js +19 -5
  11. package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js.map +1 -1
  12. package/dist/src/_internal/extension/xtab/common/recentFilesForPrompt.d.ts.map +1 -1
  13. package/dist/src/_internal/extension/xtab/common/recentFilesForPrompt.js +10 -12
  14. package/dist/src/_internal/extension/xtab/common/recentFilesForPrompt.js.map +1 -1
  15. package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.d.ts +5 -2
  16. package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.d.ts.map +1 -1
  17. package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.js +29 -8
  18. package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.js.map +1 -1
  19. package/dist/src/_internal/platform/authentication/common/copilotToken.d.ts +6 -0
  20. package/dist/src/_internal/platform/authentication/common/copilotToken.d.ts.map +1 -1
  21. package/dist/src/_internal/platform/authentication/common/copilotToken.js +11 -0
  22. package/dist/src/_internal/platform/authentication/common/copilotToken.js.map +1 -1
  23. package/dist/src/_internal/platform/chat/common/chatQuotaService.d.ts +6 -0
  24. package/dist/src/_internal/platform/chat/common/chatQuotaService.d.ts.map +1 -1
  25. package/dist/src/_internal/platform/chat/common/chatQuotaService.js.map +1 -1
  26. package/dist/src/_internal/platform/chat/common/chatQuotaServiceImpl.d.ts +4 -0
  27. package/dist/src/_internal/platform/chat/common/chatQuotaServiceImpl.d.ts.map +1 -1
  28. package/dist/src/_internal/platform/chat/common/chatQuotaServiceImpl.js +16 -2
  29. package/dist/src/_internal/platform/chat/common/chatQuotaServiceImpl.js.map +1 -1
  30. package/dist/src/_internal/platform/chat/common/commonTypes.d.ts +1 -1
  31. package/dist/src/_internal/platform/chat/common/commonTypes.d.ts.map +1 -1
  32. package/dist/src/_internal/platform/chat/common/commonTypes.js.map +1 -1
  33. package/dist/src/_internal/platform/configuration/common/configurationService.d.ts +4 -1
  34. package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
  35. package/dist/src/_internal/platform/configuration/common/configurationService.js +8 -5
  36. package/dist/src/_internal/platform/configuration/common/configurationService.js.map +1 -1
  37. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts +1 -0
  38. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts.map +1 -1
  39. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js +6 -0
  40. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js.map +1 -1
  41. package/dist/src/_internal/platform/endpoint/common/endpointProvider.d.ts +1 -0
  42. package/dist/src/_internal/platform/endpoint/common/endpointProvider.d.ts.map +1 -1
  43. package/dist/src/_internal/platform/endpoint/common/endpointProvider.js.map +1 -1
  44. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts +1 -0
  45. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts.map +1 -1
  46. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js +1 -0
  47. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js.map +1 -1
  48. package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts +4 -0
  49. package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts.map +1 -1
  50. package/dist/src/_internal/platform/endpoint/node/messagesApi.js +4 -0
  51. package/dist/src/_internal/platform/endpoint/node/messagesApi.js.map +1 -1
  52. package/dist/src/_internal/platform/endpoint/node/responsesApi.d.ts.map +1 -1
  53. package/dist/src/_internal/platform/endpoint/node/responsesApi.js +3 -1
  54. package/dist/src/_internal/platform/endpoint/node/responsesApi.js.map +1 -1
  55. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts +0 -2
  56. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts.map +1 -1
  57. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js +2 -4
  58. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js.map +1 -1
  59. package/dist/src/_internal/platform/networking/common/networking.d.ts +29 -14
  60. package/dist/src/_internal/platform/networking/common/networking.d.ts.map +1 -1
  61. package/dist/src/_internal/platform/networking/common/networking.js +1 -6
  62. package/dist/src/_internal/platform/networking/common/networking.js.map +1 -1
  63. package/dist/src/_internal/platform/networking/common/openai.d.ts +6 -0
  64. package/dist/src/_internal/platform/networking/common/openai.d.ts.map +1 -1
  65. package/dist/src/_internal/platform/networking/common/openai.js.map +1 -1
  66. package/dist/src/_internal/platform/networking/node/stream.d.ts.map +1 -1
  67. package/dist/src/_internal/platform/networking/node/stream.js +3 -0
  68. package/dist/src/_internal/platform/networking/node/stream.js.map +1 -1
  69. package/dist/src/_internal/platform/otel/common/genAiAttributes.d.ts +2 -0
  70. package/dist/src/_internal/platform/otel/common/genAiAttributes.d.ts.map +1 -1
  71. package/dist/src/_internal/platform/otel/common/genAiAttributes.js +2 -0
  72. package/dist/src/_internal/platform/otel/common/genAiAttributes.js.map +1 -1
  73. package/dist/src/_internal/platform/otel/common/messageFormatters.d.ts +16 -4
  74. package/dist/src/_internal/platform/otel/common/messageFormatters.d.ts.map +1 -1
  75. package/dist/src/_internal/platform/otel/common/messageFormatters.js +137 -5
  76. package/dist/src/_internal/platform/otel/common/messageFormatters.js.map +1 -1
  77. package/dist/src/_internal/platform/proxyModels/common/proxyModelsService.d.ts +2 -0
  78. package/dist/src/_internal/platform/proxyModels/common/proxyModelsService.d.ts.map +1 -1
  79. package/dist/src/_internal/platform/proxyModels/common/proxyModelsService.js +3 -0
  80. package/dist/src/_internal/platform/proxyModels/common/proxyModelsService.js.map +1 -1
  81. package/dist/src/_internal/platform/proxyModels/node/proxyModelsService.d.ts +1 -0
  82. package/dist/src/_internal/platform/proxyModels/node/proxyModelsService.d.ts.map +1 -1
  83. package/dist/src/_internal/platform/proxyModels/node/proxyModelsService.js +3 -0
  84. package/dist/src/_internal/platform/proxyModels/node/proxyModelsService.js.map +1 -1
  85. package/dist/src/_internal/util/vs/base/common/async.d.ts +7 -4
  86. package/dist/src/_internal/util/vs/base/common/async.d.ts.map +1 -1
  87. package/dist/src/_internal/util/vs/base/common/async.js +23 -0
  88. package/dist/src/_internal/util/vs/base/common/async.js.map +1 -1
  89. package/dist/src/_internal/util/vs/base/common/codicons.d.ts +8 -0
  90. package/dist/src/_internal/util/vs/base/common/codicons.d.ts.map +1 -1
  91. package/dist/src/_internal/util/vs/base/common/codicons.js +2 -0
  92. package/dist/src/_internal/util/vs/base/common/codicons.js.map +1 -1
  93. package/dist/src/_internal/util/vs/base/common/codiconsLibrary.d.ts +6 -0
  94. package/dist/src/_internal/util/vs/base/common/codiconsLibrary.d.ts.map +1 -1
  95. package/dist/src/_internal/util/vs/base/common/codiconsLibrary.js +6 -0
  96. package/dist/src/_internal/util/vs/base/common/codiconsLibrary.js.map +1 -1
  97. package/dist/src/_internal/util/vs/base/common/event.d.ts +21 -5
  98. package/dist/src/_internal/util/vs/base/common/event.d.ts.map +1 -1
  99. package/dist/src/_internal/util/vs/base/common/event.js +60 -11
  100. package/dist/src/_internal/util/vs/base/common/event.js.map +1 -1
  101. package/dist/src/_internal/util/vs/base/common/filters.d.ts.map +1 -1
  102. package/dist/src/_internal/util/vs/base/common/filters.js +32 -6
  103. package/dist/src/_internal/util/vs/base/common/filters.js.map +1 -1
  104. package/dist/src/_internal/util/vs/base/common/glob.d.ts.map +1 -1
  105. package/dist/src/_internal/util/vs/base/common/glob.js +1 -3
  106. package/dist/src/_internal/util/vs/base/common/glob.js.map +1 -1
  107. package/dist/src/_internal/util/vs/base/common/htmlContent.d.ts +21 -2
  108. package/dist/src/_internal/util/vs/base/common/htmlContent.d.ts.map +1 -1
  109. package/dist/src/_internal/util/vs/base/common/htmlContent.js +30 -1
  110. package/dist/src/_internal/util/vs/base/common/htmlContent.js.map +1 -1
  111. package/dist/src/_internal/util/vs/base/common/lifecycle.d.ts +33 -1
  112. package/dist/src/_internal/util/vs/base/common/lifecycle.d.ts.map +1 -1
  113. package/dist/src/_internal/util/vs/base/common/lifecycle.js +74 -1
  114. package/dist/src/_internal/util/vs/base/common/lifecycle.js.map +1 -1
  115. package/dist/src/_internal/util/vs/base/common/network.d.ts +2 -0
  116. package/dist/src/_internal/util/vs/base/common/network.d.ts.map +1 -1
  117. package/dist/src/_internal/util/vs/base/common/network.js +3 -1
  118. package/dist/src/_internal/util/vs/base/common/network.js.map +1 -1
  119. package/dist/src/_internal/util/vs/base/common/objects.d.ts +13 -0
  120. package/dist/src/_internal/util/vs/base/common/objects.d.ts.map +1 -1
  121. package/dist/src/_internal/util/vs/base/common/objects.js +46 -0
  122. package/dist/src/_internal/util/vs/base/common/objects.js.map +1 -1
  123. package/dist/src/_internal/util/vs/base/common/observableInternal/index.d.ts +4 -4
  124. package/dist/src/_internal/util/vs/base/common/observableInternal/index.d.ts.map +1 -1
  125. package/dist/src/_internal/util/vs/base/common/observableInternal/index.js +6 -2
  126. package/dist/src/_internal/util/vs/base/common/observableInternal/index.js.map +1 -1
  127. package/dist/src/_internal/util/vs/base/common/observableInternal/logging/debugger/rpc.js.map +1 -1
  128. package/dist/src/_internal/util/vs/base/common/observableInternal/reactions/autorun.d.ts +26 -0
  129. package/dist/src/_internal/util/vs/base/common/observableInternal/reactions/autorun.d.ts.map +1 -1
  130. package/dist/src/_internal/util/vs/base/common/observableInternal/reactions/autorun.js +99 -0
  131. package/dist/src/_internal/util/vs/base/common/observableInternal/reactions/autorun.js.map +1 -1
  132. package/dist/src/_internal/util/vs/base/common/observableInternal/utils/promise.d.ts +13 -0
  133. package/dist/src/_internal/util/vs/base/common/observableInternal/utils/promise.d.ts.map +1 -1
  134. package/dist/src/_internal/util/vs/base/common/observableInternal/utils/promise.js +29 -1
  135. package/dist/src/_internal/util/vs/base/common/observableInternal/utils/promise.js.map +1 -1
  136. package/dist/src/_internal/util/vs/base/common/observableInternal/utils/utils.d.ts +6 -0
  137. package/dist/src/_internal/util/vs/base/common/observableInternal/utils/utils.d.ts.map +1 -1
  138. package/dist/src/_internal/util/vs/base/common/observableInternal/utils/utils.js +46 -0
  139. package/dist/src/_internal/util/vs/base/common/observableInternal/utils/utils.js.map +1 -1
  140. package/dist/src/_internal/util/vs/base/common/resources.d.ts +2 -2
  141. package/dist/src/_internal/util/vs/base/common/resources.d.ts.map +1 -1
  142. package/dist/src/_internal/util/vs/base/common/resources.js +2 -2
  143. package/dist/src/_internal/util/vs/base/common/resources.js.map +1 -1
  144. package/dist/src/_internal/util/vs/base/common/uri.d.ts.map +1 -1
  145. package/dist/src/_internal/util/vs/base/common/uri.js +6 -2
  146. package/dist/src/_internal/util/vs/base/common/uri.js.map +1 -1
  147. package/dist/src/_internal/util/vs/editor/common/core/ranges/offsetRange.d.ts +1 -1
  148. package/dist/src/_internal/util/vs/editor/common/core/ranges/offsetRange.js +1 -1
  149. package/dist/src/_internal/util/vs/editor/common/model/prefixSumComputer.d.ts.map +1 -1
  150. package/dist/src/_internal/util/vs/editor/common/model/prefixSumComputer.js +7 -1
  151. package/dist/src/_internal/util/vs/editor/common/model/prefixSumComputer.js.map +1 -1
  152. package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/markdownString.d.ts.map +1 -1
  153. package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/markdownString.js.map +1 -1
  154. package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/notebooks.d.ts.map +1 -1
  155. package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/notebooks.js +0 -1
  156. package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/notebooks.js.map +1 -1
  157. package/dist/src/package.json +144 -84
  158. package/package.json +1 -1
@@ -22,8 +22,7 @@ export declare const enum Intent {
22
22
  Generate = "generate",
23
23
  SearchPanel = "searchPanel",
24
24
  SearchKeywords = "searchKeywords",
25
- AskAgent = "askAgent",
26
- Chronicle = "chronicle"
25
+ AskAgent = "askAgent"
27
26
  }
28
27
  export declare const GITHUB_PLATFORM_AGENT = "github.copilot-dynamic.platform";
29
28
  export declare const agentsToCommands: Partial<Record<Intent, Record<string, Intent>>>;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/extension/common/constants.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAEtE,0BAAkB,MAAM;IACvB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,cAAc,mBAAmB;IACjC,QAAQ,aAAa;IACrB,eAAe,oBAAoB;IACnC,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,KAAK,cAAc;IACnB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,QAAQ,aAAa;IACrB,SAAS,cAAc;CACvB;AAED,eAAO,MAAM,qBAAqB,oCAAoC,CAAC;AAGvE,eAAO,MAAM,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgC5E,CAAC;AAGF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAc3H;AAED,eAAO,MAAM,YAAY,wBAAwB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/extension/common/constants.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAEtE,0BAAkB,MAAM;IACvB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,cAAc,mBAAmB;IACjC,QAAQ,aAAa;IACrB,eAAe,oBAAoB;IACnC,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,KAAK,cAAc;IACnB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,QAAQ,aAAa;CACrB;AAED,eAAO,MAAM,qBAAqB,oCAAoC,CAAC;AAGvE,eAAO,MAAM,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA4B5E,CAAC;AAGF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAc3H;AAED,eAAO,MAAM,YAAY,wBAAwB,CAAC"}
@@ -21,10 +21,6 @@ exports.agentsToCommands = {
21
21
  'semanticSearch': "semanticSearch" /* Intent.SemanticSearch */,
22
22
  'setupTests': "setupTests" /* Intent.SetupTests */,
23
23
  'compact': "editAgent" /* Intent.Agent */,
24
- 'chronicle': "chronicle" /* Intent.Chronicle */,
25
- 'chronicle:standup': "chronicle" /* Intent.Chronicle */,
26
- 'chronicle:tips': "chronicle" /* Intent.Chronicle */,
27
- 'chronicle:reindex': "chronicle" /* Intent.Chronicle */,
28
24
  },
29
25
  ["vscode" /* Intent.VSCode */]: {
30
26
  'search': "search" /* Intent.Search */,
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/_internal/extension/common/constants.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAqEhG,8CAcC;AAjFD,wEAAsE;AA6BzD,QAAA,qBAAqB,GAAG,iCAAiC,CAAC;AAEvE,oEAAoE;AACvD,QAAA,gBAAgB,GAAoD;IAChF,gCAAc,EAAE;QACf,SAAS,gCAAgB;QACzB,MAAM,0BAAa;QACnB,QAAQ,8BAAe;QACvB,OAAO,4BAAc;QACrB,KAAK,wBAAY;QACjB,KAAK,wBAAY;QACjB,aAAa,wCAAoB;QACjC,gBAAgB,8CAAuB;QACvC,YAAY,sCAAmB;QAC/B,SAAS,gCAAc;QACvB,WAAW,oCAAkB;QAC7B,mBAAmB,oCAAkB;QACrC,gBAAgB,oCAAkB;QAClC,mBAAmB,oCAAkB;KACrC;IACD,8BAAe,EAAE;QAChB,QAAQ,8BAAe;KACvB;IACD,kCAAiB,EAAE;QAClB,SAAS,gDAAwB;KACjC;IACD,8BAAe,EAAE;QAChB,KAAK,wBAAY;QACjB,KAAK,wBAAY;QACjB,SAAS,gCAAgB;QACzB,QAAQ,8BAAe;QACvB,OAAO,4BAAc;QACrB,MAAM,0BAAa;QACnB,UAAU,kCAAiB;KAC3B;CACD,CAAC;AAEF,oFAAoF;AACpF,SAAgB,iBAAiB,CAAC,QAAgB,EAAE,QAAsB;IACzE,IAAI,MAAM,CAAC,IAAI,CAAC,wBAAgB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,wBAAgB,CAAC,EAAE,CAAC;QAClE,IAAI,QAAQ,KAAK,0BAAY,CAAC,MAAM,IAAI,KAAK,iCAAkB,EAAE,CAAC;YACjE,SAAS;QACV,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QACrC,CAAC;IACF,CAAC;AACF,CAAC;AAEY,QAAA,YAAY,GAAG,qBAAqB,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/_internal/extension/common/constants.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAgEhG,8CAcC;AA5ED,wEAAsE;AA4BzD,QAAA,qBAAqB,GAAG,iCAAiC,CAAC;AAEvE,oEAAoE;AACvD,QAAA,gBAAgB,GAAoD;IAChF,gCAAc,EAAE;QACf,SAAS,gCAAgB;QACzB,MAAM,0BAAa;QACnB,QAAQ,8BAAe;QACvB,OAAO,4BAAc;QACrB,KAAK,wBAAY;QACjB,KAAK,wBAAY;QACjB,aAAa,wCAAoB;QACjC,gBAAgB,8CAAuB;QACvC,YAAY,sCAAmB;QAC/B,SAAS,gCAAc;KACvB;IACD,8BAAe,EAAE;QAChB,QAAQ,8BAAe;KACvB;IACD,kCAAiB,EAAE;QAClB,SAAS,gDAAwB;KACjC;IACD,8BAAe,EAAE;QAChB,KAAK,wBAAY;QACjB,KAAK,wBAAY;QACjB,SAAS,gCAAgB;QACzB,QAAQ,8BAAe;QACvB,OAAO,4BAAc;QACrB,MAAM,0BAAa;QACnB,UAAU,kCAAiB;KAC3B;CACD,CAAC;AAEF,oFAAoF;AACpF,SAAgB,iBAAiB,CAAC,QAAgB,EAAE,QAAsB;IACzE,IAAI,MAAM,CAAC,IAAI,CAAC,wBAAgB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,wBAAgB,CAAC,EAAE,CAAC;QAClE,IAAI,QAAQ,KAAK,0BAAY,CAAC,MAAM,IAAI,KAAK,iCAAkB,EAAE,CAAC;YACjE,SAAS;QACV,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QACrC,CAAC;IACF,CAAC;AACF,CAAC;AAEY,QAAA,YAAY,GAAG,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"chatMLFetcher.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/prompt/node/chatMLFetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chatMLFetcher.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/prompt/node/chatMLFetcher.ts"],"names":[],"mappings":"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"}
@@ -121,7 +121,8 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
121
121
  * Note: the returned array of strings may be less than `n` (e.g., in case there were errors during streaming)
122
122
  */
123
123
  async fetchMany(opts, token) {
124
- let { debugName, endpoint: chatEndpoint, finishedCb, location, messages, requestOptions, source, telemetryProperties, userInitiatedRequest, requestKindOptions, conversationId, turnId, useWebSocket, ignoreStatefulMarker } = opts;
124
+ let { debugName, endpoint: chatEndpoint, finishedCb, location, messages, requestOptions, source, telemetryProperties, userInitiatedRequest, interactionTypeOverride, conversationId, turnId, topLevelTurnId, useWebSocket, ignoreStatefulMarker } = opts;
125
+ const interactionType = interactionTypeOverride ?? locationToIntent(location);
125
126
  if (useWebSocket && this._consecutiveWebSocketRetryFallbacks >= ChatMLFetcherImpl_1._maxConsecutiveWebSocketFallbacks) {
126
127
  this._logService.debug(`[ChatWebSocketManager] Disabling WebSocket for request due to ${this._consecutiveWebSocketRetryFallbacks} consecutive WebSocket failures with successful HTTP fallback.`);
127
128
  useWebSocket = false;
@@ -196,7 +197,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
196
197
  const countTokens = () => tokenCountPromise ??= chatEndpoint.acquireTokenizer().countMessagesTokens(messages);
197
198
  const copilotToken = await this._authenticationService.getCopilotToken();
198
199
  usernameToScrub = copilotToken.username;
199
- const fetchResult = await this._fetchAndStreamChat(chatEndpoint, requestBody, baseTelemetry, streamRecorder.callback, requestOptions.secretKey, copilotToken, opts.location, ourRequestId, postOptions.n, token, countTokens, userInitiatedRequest, useWebSocket, turnId, conversationId, telemetryProperties, opts.useFetcher, canRetryOnce, requestKindOptions, opts.summarizedAtRoundId, opts.modeChanged);
200
+ const fetchResult = await this._fetchAndStreamChat(chatEndpoint, requestBody, baseTelemetry, streamRecorder.callback, requestOptions.secretKey, copilotToken, opts.location, ourRequestId, postOptions.n, token, countTokens, userInitiatedRequest, useWebSocket, turnId, conversationId, telemetryProperties, opts.useFetcher, canRetryOnce, interactionTypeOverride, opts.summarizedAtRoundId, opts.modeChanged);
200
201
  response = fetchResult.result;
201
202
  actualFetcher = fetchResult.fetcher;
202
203
  actualBytesReceived = fetchResult.bytesReceived;
@@ -270,6 +271,10 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
270
271
  if (requestOptions) {
271
272
  otelInferenceSpan.setAttribute(index_1.CopilotChatAttr.REQUEST_OPTIONS, (0, index_1.truncateForOTel)(JSON.stringify(requestOptions), this._otelService.config.maxAttributeSizeChars));
272
273
  }
274
+ const requestShape = pickRequestShapeMetadata(requestBody);
275
+ if (requestShape) {
276
+ otelInferenceSpan.setAttribute(index_1.CopilotChatAttr.REQUEST_SHAPE, (0, index_1.truncateForOTel)(JSON.stringify(requestShape), this._otelService.config.maxAttributeSizeChars));
277
+ }
273
278
  }
274
279
  tokenCount = await countTokens();
275
280
  const extensionId = source?.extensionId ?? constants_1.EXTENSION_ID;
@@ -284,7 +289,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
284
289
  pendingLoggedChatRequest?.markTimeToFirstToken(timeToFirstToken);
285
290
  switch (response.type) {
286
291
  case fetch_2.FetchResponseKind.Success: {
287
- const result = await this.processSuccessfulResponse(response, messages, requestBody, ourRequestId, maxResponseTokens, tokenCount, timeToFirstToken, streamRecorder, baseTelemetry, chatEndpoint, userInitiatedRequest, transport, actualFetcher, actualBytesReceived, suspendEventSeen, resumeEventSeen, actualModelCallId);
292
+ const result = await this.processSuccessfulResponse(response, messages, requestBody, ourRequestId, maxResponseTokens, tokenCount, timeToFirstToken, streamRecorder, baseTelemetry, chatEndpoint, userInitiatedRequest, interactionType, transport, actualFetcher, actualBytesReceived, suspendEventSeen, resumeEventSeen, actualModelCallId);
288
293
  // Handle FilteredRetry case with augmented messages
289
294
  if (result.type === commonTypes_1.ChatFetchResponseType.FilteredRetry) {
290
295
  if (opts.enableRetryOnFilter) {
@@ -334,6 +339,11 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
334
339
  pendingLoggedChatRequest?.resolve(result, streamRecorder.deltas);
335
340
  // Record OTel token usage metrics if available
336
341
  if (result.type === commonTypes_1.ChatFetchResponseType.Success && result.usage) {
342
+ // Store copilot_usage for per-request credits display, scoped to the turn.
343
+ // Skip background requests — they are not part of an active user turn.
344
+ if (typeof result.usage.copilot_usage?.total_nano_aiu === 'number' && turnId && interactionType !== 'conversation-background') {
345
+ this._chatQuotaService.setLastCopilotUsage(result.usage.copilot_usage.total_nano_aiu, topLevelTurnId ?? turnId);
346
+ }
337
347
  const metricAttrs = {
338
348
  operationName: index_1.GenAiOperationName.CHAT,
339
349
  providerName: index_1.GenAiProviderName.GITHUB,
@@ -429,7 +439,10 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
429
439
  model: chatEndpoint.model,
430
440
  apiType: chatEndpoint.apiType,
431
441
  transport,
442
+ interactionType,
443
+ conversationId: telemetryProperties.conversationId ?? conversationId,
432
444
  associatedRequestId: telemetryProperties.associatedRequestId,
445
+ parentRequestId: telemetryProperties.parentRequestId,
433
446
  retryAfterError: telemetryProperties.retryAfterError,
434
447
  retryAfterErrorGitHubRequestId: telemetryProperties.retryAfterErrorGitHubRequestId,
435
448
  connectivityTestError: telemetryProperties.connectivityTestError,
@@ -490,6 +503,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
490
503
  usernameToScrub,
491
504
  suspendEventSeen,
492
505
  resumeEventSeen,
506
+ interactionType,
493
507
  });
494
508
  if (retryResult) {
495
509
  return retryResult;
@@ -505,6 +519,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
505
519
  timeToFirstToken,
506
520
  isVisionRequest: this.filterImageMessages(messages),
507
521
  transport,
522
+ interactionType,
508
523
  fetcher: actualFetcher,
509
524
  bytesReceived: actualBytesReceived,
510
525
  issuedTime: baseTelemetry.issuedTime,
@@ -560,6 +575,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
560
575
  usernameToScrub,
561
576
  suspendEventSeen,
562
577
  resumeEventSeen,
578
+ interactionType,
563
579
  });
564
580
  if (retryResult) {
565
581
  return retryResult;
@@ -573,7 +589,10 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
573
589
  model: chatEndpoint.model,
574
590
  apiType: chatEndpoint.apiType,
575
591
  transport,
592
+ interactionType,
593
+ conversationId: telemetryProperties.conversationId ?? conversationId,
576
594
  associatedRequestId: telemetryProperties.associatedRequestId,
595
+ parentRequestId: telemetryProperties.parentRequestId,
577
596
  retryAfterError: telemetryProperties.retryAfterError,
578
597
  retryAfterErrorGitHubRequestId: telemetryProperties.retryAfterErrorGitHubRequestId,
579
598
  connectivityTestError: telemetryProperties.connectivityTestError,
@@ -606,6 +625,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
606
625
  timeToFirstToken: timeToError,
607
626
  isVisionRequest: this.filterImageMessages(messages),
608
627
  transport,
628
+ interactionType,
609
629
  fetcher: actualFetcher,
610
630
  bytesReceived: err.bytesReceived,
611
631
  issuedTime: baseTelemetry.issuedTime,
@@ -674,7 +694,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
674
694
  return authHeaders;
675
695
  }
676
696
  async _retryAfterError(params) {
677
- const { opts, processed, telemetryProperties, requestBody, tokenCount, maxResponseTokens, timeToError, transport, actualFetcher, bytesReceived, baseTelemetry, streamRecorder, retryReason, debugNamePrefix, pendingLoggedChatRequest, token, usernameToScrub, suspendEventSeen, resumeEventSeen, } = params;
697
+ const { opts, processed, telemetryProperties, requestBody, tokenCount, maxResponseTokens, timeToError, transport, actualFetcher, bytesReceived, baseTelemetry, streamRecorder, retryReason, debugNamePrefix, pendingLoggedChatRequest, token, usernameToScrub, suspendEventSeen, resumeEventSeen, interactionType, } = params;
678
698
  // net::ERR_NETWORK_CHANGED: https://github.com/microsoft/vscode/issues/260297
679
699
  const isNetworkChangedError = ['darwin', 'linux'].includes(process.platform) && processed.reason.indexOf('net::ERR_NETWORK_CHANGED') !== -1;
680
700
  // When Electron's network process crashes, all requests through it fail permanently.
@@ -702,6 +722,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
702
722
  timeToFirstToken: timeToError,
703
723
  isVisionRequest: this.filterImageMessages(opts.messages),
704
724
  transport,
725
+ interactionType,
705
726
  fetcher: actualFetcher,
706
727
  bytesReceived,
707
728
  issuedTime: baseTelemetry.issuedTime,
@@ -737,7 +758,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
737
758
  }
738
759
  return { retryResult, connectivityTestError, connectivityTestErrorGitHubRequestId };
739
760
  }
740
- async _fetchAndStreamChat(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, copilotToken, location, ourRequestId, nChoices, cancellationToken, countTokens, userInitiatedRequest, useWebSocket, turnId, conversationId, telemetryProperties, useFetcher, canRetryOnce, requestKindOptions, summarizedAtRoundId, modeChanged) {
761
+ async _fetchAndStreamChat(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, copilotToken, location, ourRequestId, nChoices, cancellationToken, countTokens, userInitiatedRequest, useWebSocket, turnId, conversationId, telemetryProperties, useFetcher, canRetryOnce, interactionTypeOverride, summarizedAtRoundId, modeChanged) {
741
762
  const isPowerSaveBlockerEnabled = this._configurationService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.ChatRequestPowerSaveBlocker, this._experimentationService);
742
763
  const blockerHandle = isPowerSaveBlockerEnabled && location !== commonTypes_1.ChatLocation.Other ? this._powerService.acquirePowerSaveBlocker() : undefined;
743
764
  let suspendEventSeen = false;
@@ -751,7 +772,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
751
772
  this._logService.info(`System resumed during streaming request ${ourRequestId} (${commonTypes_1.ChatLocation.toString(location)})`);
752
773
  });
753
774
  try {
754
- const fetchResult = await this._doFetchAndStreamChat(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, copilotToken, location, ourRequestId, nChoices, cancellationToken, countTokens, userInitiatedRequest, useWebSocket, turnId, conversationId, telemetryProperties, useFetcher, canRetryOnce, requestKindOptions, summarizedAtRoundId, modeChanged);
775
+ const fetchResult = await this._doFetchAndStreamChat(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, copilotToken, location, ourRequestId, nChoices, cancellationToken, countTokens, userInitiatedRequest, useWebSocket, turnId, conversationId, telemetryProperties, useFetcher, canRetryOnce, interactionTypeOverride, summarizedAtRoundId, modeChanged);
755
776
  return { ...fetchResult, suspendEventSeen: suspendEventSeen || undefined, resumeEventSeen: resumeEventSeen || undefined };
756
777
  }
757
778
  catch (err) {
@@ -769,7 +790,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
769
790
  blockerHandle?.dispose();
770
791
  }
771
792
  }
772
- async _doFetchAndStreamChat(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, copilotToken, location, ourRequestId, nChoices, cancellationToken, countTokens, userInitiatedRequest, useWebSocket, turnId, conversationId, telemetryProperties, useFetcher, canRetryOnce, requestKindOptions, summarizedAtRoundId, modeChanged) {
793
+ async _doFetchAndStreamChat(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, copilotToken, location, ourRequestId, nChoices, cancellationToken, countTokens, userInitiatedRequest, useWebSocket, turnId, conversationId, telemetryProperties, useFetcher, canRetryOnce, interactionTypeOverride, summarizedAtRoundId, modeChanged) {
773
794
  if (cancellationToken.isCancellationRequested) {
774
795
  return { result: { type: fetch_2.FetchResponseKind.Canceled, reason: 'before fetch request' } };
775
796
  }
@@ -825,10 +846,10 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
825
846
  }
826
847
  // WebSocket path: use persistent WebSocket connection for Responses API endpoints
827
848
  if (useWebSocket && turnId && conversationId) {
828
- const wsResult = await this._doFetchViaWebSocket(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, turnId, conversationId, cancellationToken, countTokens, userInitiatedRequest, telemetryProperties, requestKindOptions, summarizedAtRoundId, modeChanged);
849
+ const wsResult = await this._doFetchViaWebSocket(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, turnId, conversationId, cancellationToken, countTokens, userInitiatedRequest, telemetryProperties, interactionTypeOverride, summarizedAtRoundId, modeChanged);
829
850
  return { ...wsResult, otelSpan };
830
851
  }
831
- const httpResult = await this._doFetchViaHttp(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, nChoices, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce, requestKindOptions);
852
+ const httpResult = await this._doFetchViaHttp(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, nChoices, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce, interactionTypeOverride);
832
853
  return { ...httpResult, otelSpan };
833
854
  }
834
855
  catch (err) {
@@ -851,13 +872,9 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
851
872
  * Sends a chat request via a persistent WebSocket connection instead of HTTP POST.
852
873
  * Events are the same Responses API streaming events, processed by OpenAIResponsesProcessor.
853
874
  */
854
- async _doFetchViaWebSocket(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, turnId, conversationId, cancellationToken, countTokens, userInitiatedRequest, telemetryProperties, requestKindOptions, summarizedAtRoundId, modeChanged) {
875
+ async _doFetchViaWebSocket(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, turnId, conversationId, cancellationToken, countTokens, userInitiatedRequest, telemetryProperties, interactionTypeOverride, summarizedAtRoundId, modeChanged) {
855
876
  const intent = locationToIntent(location);
856
- const agentInteractionType = requestKindOptions?.kind === 'subagent' ?
857
- 'conversation-subagent' :
858
- requestKindOptions?.kind === 'background' ?
859
- 'conversation-background' :
860
- intent === 'conversation-agent' ? intent : undefined;
877
+ const agentInteractionType = interactionTypeOverride ?? intent;
861
878
  const additionalHeaders = {
862
879
  'Authorization': `Bearer ${secretKey}`,
863
880
  'X-Request-Id': ourRequestId,
@@ -866,10 +883,8 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
866
883
  'X-Interaction-Id': this._interactionService.interactionId,
867
884
  ...(chatEndpointInfo.getExtraHeaders ? chatEndpointInfo.getExtraHeaders(location) : {}),
868
885
  };
869
- if (agentInteractionType) {
870
- additionalHeaders['X-Interaction-Type'] = agentInteractionType;
871
- additionalHeaders['X-Agent-Task-Id'] = ourRequestId;
872
- }
886
+ additionalHeaders['X-Interaction-Type'] = agentInteractionType;
887
+ additionalHeaders['X-Agent-Task-Id'] = ourRequestId;
873
888
  if (request.messages?.some((m) => Array.isArray(m.content) ? m.content.some(c => 'image_url' in c) : false) && chatEndpointInfo.supportsVision) {
874
889
  additionalHeaders['Copilot-Vision-Request'] = 'true';
875
890
  }
@@ -906,6 +921,13 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
906
921
  telemetryData.properties[`request.option.${key}`] = JSON.stringify(value) ?? 'undefined';
907
922
  }
908
923
  this._telemetryService.sendGHTelemetryEvent('request.sent', telemetryData.properties, telemetryData.measurements);
924
+ if (request.tools) {
925
+ this._telemetryService.sendEnhancedGHTelemetryEvent('request.options.tools', (0, telemetry_1.multiplexProperties)({
926
+ headerRequestId: ourRequestId,
927
+ conversationId,
928
+ messagesJson: JSON.stringify(request.tools),
929
+ }), telemetryData.measurements);
930
+ }
909
931
  const requestStart = Date.now();
910
932
  const handle = connection.sendRequest(request, { userInitiated: !!userInitiatedRequest, turnId, requestId: ourRequestId, model: chatEndpointInfo.model, countTokens, tokenCountMax: chatEndpointInfo.maxOutputTokens, modelMaxPromptTokens: chatEndpointInfo.modelMaxPromptTokens, summarizedAtRoundId, modeChanged }, cancellationToken);
911
933
  const extendedBaseTelemetryData = baseTelemetryData.extendedBy({ modelCallId });
@@ -999,10 +1021,10 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
999
1021
  modelCallId,
1000
1022
  };
1001
1023
  }
1002
- async _doFetchViaHttp(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, nChoices, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce, requestKindOptions) {
1024
+ async _doFetchViaHttp(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, nChoices, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce, interactionTypeOverride) {
1003
1025
  // Generate unique ID to link input and output messages
1004
1026
  const modelCallId = (0, uuid_1.generateUuid)();
1005
- const response = await this._fetchWithInstrumentation(chatEndpointInfo, ourRequestId, request, secretKey, location, cancellationToken, userInitiatedRequest, { ...telemetryProperties, modelCallId }, useFetcher, canRetryOnce, requestKindOptions);
1027
+ const response = await this._fetchWithInstrumentation(chatEndpointInfo, ourRequestId, request, secretKey, location, cancellationToken, userInitiatedRequest, { ...telemetryProperties, modelCallId }, useFetcher, canRetryOnce, interactionTypeOverride);
1006
1028
  if (cancellationToken.isCancellationRequested) {
1007
1029
  try {
1008
1030
  // Destroy the stream so that the server is hopefully notified we don't want any more data
@@ -1074,7 +1096,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
1074
1096
  modelCallId,
1075
1097
  };
1076
1098
  }
1077
- async _fetchWithInstrumentation(chatEndpoint, ourRequestId, request, secretKey, location, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce, requestKindOptions) {
1099
+ async _fetchWithInstrumentation(chatEndpoint, ourRequestId, request, secretKey, location, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce, interactionTypeOverride) {
1078
1100
  // If request contains an image, we include this header.
1079
1101
  const additionalHeaders = {
1080
1102
  'X-Interaction-Id': this._interactionService.interactionId,
@@ -1103,6 +1125,13 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
1103
1125
  // the request and response.
1104
1126
  telemetryData.properties['headerRequestId'] = ourRequestId;
1105
1127
  this._telemetryService.sendGHTelemetryEvent('request.sent', telemetryData.properties, telemetryData.measurements);
1128
+ if (request.tools) {
1129
+ this._telemetryService.sendEnhancedGHTelemetryEvent('request.options.tools', (0, telemetry_1.multiplexProperties)({
1130
+ headerRequestId: ourRequestId,
1131
+ conversationId: telemetryProperties?.conversationId,
1132
+ messagesJson: JSON.stringify(request.tools),
1133
+ }), telemetryData.measurements);
1134
+ }
1106
1135
  const requestStart = Date.now();
1107
1136
  const intent = locationToIntent(location);
1108
1137
  // Wrap the Promise with success/error callbacks so we can log/measure it
@@ -1117,7 +1146,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
1117
1146
  useFetcher,
1118
1147
  canRetryOnce,
1119
1148
  location,
1120
- requestKindOptions,
1149
+ interactionTypeOverride,
1121
1150
  }).then(response => {
1122
1151
  const apim = response.headers.get('apim-request-id');
1123
1152
  if (apim) {
@@ -1379,13 +1408,14 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
1379
1408
  reason: `Request Failed: ${response.status} ${text}`
1380
1409
  };
1381
1410
  }
1382
- async processSuccessfulResponse(response, messages, requestBody, requestId, maxResponseTokens, promptTokenCount, timeToFirstToken, streamRecorder, baseTelemetry, chatEndpointInfo, userInitiatedRequest, transport, fetcher, bytesReceived, suspendEventSeen, resumeEventSeen, modelCallId) {
1411
+ async processSuccessfulResponse(response, messages, requestBody, requestId, maxResponseTokens, promptTokenCount, timeToFirstToken, streamRecorder, baseTelemetry, chatEndpointInfo, userInitiatedRequest, interactionType, transport, fetcher, bytesReceived, suspendEventSeen, resumeEventSeen, modelCallId) {
1383
1412
  const completions = [];
1384
1413
  for await (const chatCompletion of response.chatCompletions) {
1385
1414
  chatMLFetcherTelemetry_1.ChatMLFetcherTelemetrySender.sendSuccessTelemetry(this._telemetryService, {
1386
1415
  chatCompletion,
1387
1416
  baseTelemetry,
1388
1417
  userInitiatedRequest,
1418
+ interactionType,
1389
1419
  chatEndpointInfo,
1390
1420
  requestBody,
1391
1421
  maxResponseTokens,
@@ -1871,4 +1901,34 @@ function pickCacheRelevantRequestOptions(body) {
1871
1901
  }
1872
1902
  return Object.keys(out).length > 0 ? out : undefined;
1873
1903
  }
1904
+ /**
1905
+ * Sanitized request-shape metadata for debug views. This intentionally omits
1906
+ * identifiers such as `previous_response_id` itself and never includes message
1907
+ * or tool contents; it only records whether a Responses API continuation marker
1908
+ * was present and which top-level input item kinds were sent on the wire.
1909
+ */
1910
+ function pickRequestShapeMetadata(body) {
1911
+ const out = {};
1912
+ if (Array.isArray(body.input)) {
1913
+ out.api = 'responses';
1914
+ out.inputItemCount = body.input.length;
1915
+ out.inputItemTypes = body.input.map(item => {
1916
+ if (item && typeof item === 'object') {
1917
+ const type = item.type;
1918
+ if (typeof type === 'string') {
1919
+ return type;
1920
+ }
1921
+ }
1922
+ return 'unknown';
1923
+ });
1924
+ }
1925
+ else if (Array.isArray(body.messages)) {
1926
+ out.api = 'messages';
1927
+ out.messageCount = body.messages.length;
1928
+ }
1929
+ if (typeof body.previous_response_id === 'string') {
1930
+ out.hasPreviousResponseId = true;
1931
+ }
1932
+ return Object.keys(out).length > 0 ? out : undefined;
1933
+ }
1874
1934
  //# sourceMappingURL=chatMLFetcher.js.map