@vscode/chat-lib 0.43.2026040705 → 0.44.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 (152) hide show
  1. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsFromNetwork.d.ts +1 -5
  2. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsFromNetwork.d.ts.map +1 -1
  3. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsFromNetwork.js +3 -11
  4. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsFromNetwork.js.map +1 -1
  5. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networking.d.ts +0 -30
  6. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networking.d.ts.map +1 -1
  7. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networking.js +4 -82
  8. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networking.js.map +1 -1
  9. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.d.ts +2 -10
  10. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.d.ts.map +1 -1
  11. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.js +6 -160
  12. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.js.map +1 -1
  13. package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.d.ts +11 -0
  14. package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.d.ts.map +1 -1
  15. package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.js +21 -3
  16. package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.js.map +1 -1
  17. package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts +2 -2
  18. package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts.map +1 -1
  19. package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js +34 -12
  20. package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js.map +1 -1
  21. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts +1 -1
  22. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts.map +1 -1
  23. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js +22 -15
  24. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js.map +1 -1
  25. package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js +2 -2
  26. package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js.map +1 -1
  27. package/dist/src/_internal/extension/xtab/node/cursorLineDivergence.d.ts +41 -0
  28. package/dist/src/_internal/extension/xtab/node/cursorLineDivergence.d.ts.map +1 -0
  29. package/dist/src/_internal/extension/xtab/node/cursorLineDivergence.js +181 -0
  30. package/dist/src/_internal/extension/xtab/node/cursorLineDivergence.js.map +1 -0
  31. package/dist/src/_internal/extension/xtab/node/editIntent.d.ts +31 -0
  32. package/dist/src/_internal/extension/xtab/node/editIntent.d.ts.map +1 -0
  33. package/dist/src/_internal/extension/xtab/node/editIntent.js +193 -0
  34. package/dist/src/_internal/extension/xtab/node/editIntent.js.map +1 -0
  35. package/dist/src/_internal/extension/xtab/node/responseFormatHandlers.d.ts +52 -0
  36. package/dist/src/_internal/extension/xtab/node/responseFormatHandlers.d.ts.map +1 -0
  37. package/dist/src/_internal/extension/xtab/node/responseFormatHandlers.js +159 -0
  38. package/dist/src/_internal/extension/xtab/node/responseFormatHandlers.js.map +1 -0
  39. package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts +10 -37
  40. package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts.map +1 -1
  41. package/dist/src/_internal/extension/xtab/node/xtabProvider.js +277 -349
  42. package/dist/src/_internal/extension/xtab/node/xtabProvider.js.map +1 -1
  43. package/dist/src/_internal/extension/xtab/node/xtabUtils.d.ts +10 -0
  44. package/dist/src/_internal/extension/xtab/node/xtabUtils.d.ts.map +1 -1
  45. package/dist/src/_internal/extension/xtab/node/xtabUtils.js +24 -0
  46. package/dist/src/_internal/extension/xtab/node/xtabUtils.js.map +1 -1
  47. package/dist/src/_internal/platform/authentication/common/copilotToken.d.ts +1 -0
  48. package/dist/src/_internal/platform/authentication/common/copilotToken.d.ts.map +1 -1
  49. package/dist/src/_internal/platform/authentication/common/copilotToken.js +3 -0
  50. package/dist/src/_internal/platform/authentication/common/copilotToken.js.map +1 -1
  51. package/dist/src/_internal/platform/chat/common/commonTypes.d.ts.map +1 -1
  52. package/dist/src/_internal/platform/chat/common/commonTypes.js +34 -4
  53. package/dist/src/_internal/platform/chat/common/commonTypes.js.map +1 -1
  54. package/dist/src/_internal/platform/configuration/common/configurationService.d.ts +17 -4
  55. package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
  56. package/dist/src/_internal/platform/configuration/common/configurationService.js +22 -9
  57. package/dist/src/_internal/platform/configuration/common/configurationService.js.map +1 -1
  58. package/dist/src/_internal/platform/configuration/common/defaultsOnlyConfigurationService.d.ts +1 -1
  59. package/dist/src/_internal/platform/configuration/common/defaultsOnlyConfigurationService.d.ts.map +1 -1
  60. package/dist/src/_internal/platform/configuration/common/defaultsOnlyConfigurationService.js +1 -1
  61. package/dist/src/_internal/platform/configuration/common/defaultsOnlyConfigurationService.js.map +1 -1
  62. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts +20 -0
  63. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts.map +1 -1
  64. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js +45 -1
  65. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js.map +1 -1
  66. package/dist/src/_internal/platform/endpoint/common/endpointProvider.d.ts +2 -0
  67. package/dist/src/_internal/platform/endpoint/common/endpointProvider.d.ts.map +1 -1
  68. package/dist/src/_internal/platform/endpoint/common/endpointProvider.js.map +1 -1
  69. package/dist/src/_internal/platform/endpoint/common/statefulMarkerContainer.d.ts +5 -0
  70. package/dist/src/_internal/platform/endpoint/common/statefulMarkerContainer.d.ts.map +1 -1
  71. package/dist/src/_internal/platform/endpoint/common/statefulMarkerContainer.js +13 -0
  72. package/dist/src/_internal/platform/endpoint/common/statefulMarkerContainer.js.map +1 -1
  73. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts +3 -1
  74. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts.map +1 -1
  75. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js +14 -14
  76. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js.map +1 -1
  77. package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts.map +1 -1
  78. package/dist/src/_internal/platform/endpoint/node/messagesApi.js +28 -12
  79. package/dist/src/_internal/platform/endpoint/node/messagesApi.js.map +1 -1
  80. package/dist/src/_internal/platform/endpoint/node/responsesApi.d.ts +12 -2
  81. package/dist/src/_internal/platform/endpoint/node/responsesApi.d.ts.map +1 -1
  82. package/dist/src/_internal/platform/endpoint/node/responsesApi.js +201 -23
  83. package/dist/src/_internal/platform/endpoint/node/responsesApi.js.map +1 -1
  84. package/dist/src/_internal/platform/git/common/gitService.d.ts +7 -3
  85. package/dist/src/_internal/platform/git/common/gitService.d.ts.map +1 -1
  86. package/dist/src/_internal/platform/git/common/gitService.js.map +1 -1
  87. package/dist/src/_internal/platform/github/common/githubAPI.d.ts +1 -0
  88. package/dist/src/_internal/platform/github/common/githubAPI.d.ts.map +1 -1
  89. package/dist/src/_internal/platform/github/common/githubAPI.js +2 -0
  90. package/dist/src/_internal/platform/github/common/githubAPI.js.map +1 -1
  91. package/dist/src/_internal/platform/github/common/githubService.d.ts +3 -2
  92. package/dist/src/_internal/platform/github/common/githubService.d.ts.map +1 -1
  93. package/dist/src/_internal/platform/github/common/githubService.js.map +1 -1
  94. package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.d.ts +12 -3
  95. package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.d.ts.map +1 -1
  96. package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.js +72 -46
  97. package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.js.map +1 -1
  98. package/dist/src/_internal/platform/inlineEdits/common/utils/utils.d.ts +3 -0
  99. package/dist/src/_internal/platform/inlineEdits/common/utils/utils.d.ts.map +1 -1
  100. package/dist/src/_internal/platform/inlineEdits/common/utils/utils.js +12 -0
  101. package/dist/src/_internal/platform/inlineEdits/common/utils/utils.js.map +1 -1
  102. package/dist/src/_internal/platform/log/common/logService.d.ts +5 -0
  103. package/dist/src/_internal/platform/log/common/logService.d.ts.map +1 -1
  104. package/dist/src/_internal/platform/log/common/logService.js +22 -0
  105. package/dist/src/_internal/platform/log/common/logService.js.map +1 -1
  106. package/dist/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.d.ts +1 -1
  107. package/dist/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.d.ts.map +1 -1
  108. package/dist/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.js +1 -1
  109. package/dist/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.js.map +1 -1
  110. package/dist/src/_internal/platform/networking/common/anthropic.d.ts +0 -16
  111. package/dist/src/_internal/platform/networking/common/anthropic.d.ts.map +1 -1
  112. package/dist/src/_internal/platform/networking/common/anthropic.js +10 -42
  113. package/dist/src/_internal/platform/networking/common/anthropic.js.map +1 -1
  114. package/dist/src/_internal/platform/networking/common/fetcherService.d.ts +1 -0
  115. package/dist/src/_internal/platform/networking/common/fetcherService.d.ts.map +1 -1
  116. package/dist/src/_internal/platform/networking/common/fetcherService.js.map +1 -1
  117. package/dist/src/_internal/platform/networking/common/networking.d.ts +22 -4
  118. package/dist/src/_internal/platform/networking/common/networking.d.ts.map +1 -1
  119. package/dist/src/_internal/platform/networking/common/networking.js.map +1 -1
  120. package/dist/src/_internal/platform/networking/node/chatStream.d.ts +10 -0
  121. package/dist/src/_internal/platform/networking/node/chatStream.d.ts.map +1 -1
  122. package/dist/src/_internal/platform/networking/node/chatStream.js +28 -0
  123. package/dist/src/_internal/platform/networking/node/chatStream.js.map +1 -1
  124. package/dist/src/_internal/platform/networking/node/chatWebSocketManager.d.ts +23 -5
  125. package/dist/src/_internal/platform/networking/node/chatWebSocketManager.d.ts.map +1 -1
  126. package/dist/src/_internal/platform/networking/node/chatWebSocketManager.js +67 -20
  127. package/dist/src/_internal/platform/networking/node/chatWebSocketManager.js.map +1 -1
  128. package/dist/src/_internal/platform/networking/node/chatWebSocketTelemetry.d.ts +15 -1
  129. package/dist/src/_internal/platform/networking/node/chatWebSocketTelemetry.d.ts.map +1 -1
  130. package/dist/src/_internal/platform/networking/node/chatWebSocketTelemetry.js +51 -7
  131. package/dist/src/_internal/platform/networking/node/chatWebSocketTelemetry.js.map +1 -1
  132. package/dist/src/_internal/platform/requestLogger/common/requestLogger.d.ts +171 -0
  133. package/dist/src/_internal/platform/requestLogger/common/requestLogger.d.ts.map +1 -0
  134. package/dist/src/_internal/platform/requestLogger/common/requestLogger.js +145 -0
  135. package/dist/src/_internal/platform/requestLogger/common/requestLogger.js.map +1 -0
  136. package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.d.ts +2 -1
  137. package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.d.ts.map +1 -1
  138. package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.js.map +1 -1
  139. package/dist/src/_internal/platform/requestLogger/node/requestLogger.d.ts +4 -166
  140. package/dist/src/_internal/platform/requestLogger/node/requestLogger.d.ts.map +1 -1
  141. package/dist/src/_internal/platform/requestLogger/node/requestLogger.js +3 -139
  142. package/dist/src/_internal/platform/requestLogger/node/requestLogger.js.map +1 -1
  143. package/dist/src/main.d.ts +2 -0
  144. package/dist/src/main.d.ts.map +1 -1
  145. package/dist/src/main.js +48 -6
  146. package/dist/src/main.js.map +1 -1
  147. package/dist/src/package.json +106 -96
  148. package/package.json +71 -71
  149. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/stream.d.ts +0 -182
  150. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/stream.d.ts.map +0 -1
  151. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/stream.js +0 -558
  152. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/stream.js.map +0 -1
@@ -12,14 +12,14 @@ class ChatWebSocketTelemetrySender {
12
12
  "owner": "chrmarti",
13
13
  "comment": "Report a successful WebSocket connection.",
14
14
  "conversationId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the conversation" },
15
- "requestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the current turn request" },
15
+ "initiatingRequestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the request that initiated the connection" },
16
16
  "gitHubRequestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "GitHub request id if available" },
17
17
  "connectDurationMs": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Time to establish the WebSocket connection in milliseconds", "isMeasurement": true }
18
18
  }
19
19
  */
20
20
  telemetryService.sendTelemetryEvent('websocket.connected', { github: true, microsoft: true }, {
21
21
  conversationId: properties.conversationId,
22
- requestId: properties.requestId,
22
+ initiatingRequestId: properties.initiatingRequestId,
23
23
  gitHubRequestId: properties.gitHubRequestId,
24
24
  }, {
25
25
  connectDurationMs: properties.connectDurationMs,
@@ -31,20 +31,22 @@ class ChatWebSocketTelemetrySender {
31
31
  "owner": "chrmarti",
32
32
  "comment": "Report a failed WebSocket connection attempt.",
33
33
  "conversationId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the conversation" },
34
- "requestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the current turn request" },
34
+ "initiatingRequestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the request that initiated the connection" },
35
35
  "gitHubRequestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "GitHub request id if available" },
36
36
  "error": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Error message for the failed connection" },
37
37
  "connectDurationMs": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Time until the connection error in milliseconds", "isMeasurement": true },
38
38
  "responseStatusCode": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "HTTP response status code from the failed connection attempt", "isMeasurement": true },
39
- "responseStatusText": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "HTTP response status text from the failed connection attempt" }
39
+ "responseStatusText": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "HTTP response status text from the failed connection attempt" },
40
+ "networkError": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "The underlying network error code and message from the dispatch layer" }
40
41
  }
41
42
  */
42
43
  telemetryService.sendTelemetryErrorEvent('websocket.connectError', { github: true, microsoft: true }, {
43
44
  conversationId: properties.conversationId,
44
- requestId: properties.requestId,
45
+ initiatingRequestId: properties.initiatingRequestId,
45
46
  gitHubRequestId: properties.gitHubRequestId,
46
47
  error: properties.error,
47
48
  responseStatusText: properties.responseStatusText,
49
+ networkError: properties.networkError,
48
50
  }, {
49
51
  connectDurationMs: properties.connectDurationMs,
50
52
  responseStatusCode: properties.responseStatusCode,
@@ -56,11 +58,13 @@ class ChatWebSocketTelemetrySender {
56
58
  "owner": "chrmarti",
57
59
  "comment": "Report a WebSocket connection close event.",
58
60
  "conversationId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the conversation" },
61
+ "initiatingRequestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the request that initiated the connection" },
59
62
  "turnId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the turn" },
60
63
  "previousTurnId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Turn id of the previous request on this connection" },
61
64
  "hadActiveRequest": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Whether the previous request was still active when the new one began", "isMeasurement": true },
62
65
  "requestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the current turn request" },
63
66
  "gitHubRequestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "GitHub request id if available" },
67
+ "modelId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Model identifier from the request body" },
64
68
  "closeReason": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Human-readable description of the close code" },
65
69
  "closeEventReason": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Close event reason string from server" },
66
70
  "closeEventWasClean": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Whether the connection closed cleanly" },
@@ -74,10 +78,12 @@ class ChatWebSocketTelemetrySender {
74
78
  */
75
79
  telemetryService.sendTelemetryEvent('websocket.close', { github: true, microsoft: true }, {
76
80
  conversationId: properties.conversationId,
81
+ initiatingRequestId: properties.initiatingRequestId,
77
82
  turnId: properties.turnId,
78
83
  previousTurnId: properties.previousTurnId,
79
84
  requestId: properties.requestId,
80
85
  gitHubRequestId: properties.gitHubRequestId,
86
+ modelId: properties.modelId,
81
87
  closeReason: properties.closeReason,
82
88
  closeEventReason: properties.closeEventReason,
83
89
  closeEventWasClean: properties.closeEventWasClean,
@@ -97,11 +103,13 @@ class ChatWebSocketTelemetrySender {
97
103
  "owner": "chrmarti",
98
104
  "comment": "Report a runtime error on an established WebSocket connection.",
99
105
  "conversationId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the conversation" },
106
+ "initiatingRequestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the request that initiated the connection" },
100
107
  "turnId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the turn" },
101
108
  "previousTurnId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Turn id of the previous request on this connection" },
102
109
  "hadActiveRequest": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Whether the previous request was still active when the new one began", "isMeasurement": true },
103
110
  "requestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the current turn request" },
104
111
  "gitHubRequestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "GitHub request id if available" },
112
+ "modelId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Model identifier from the request body" },
105
113
  "error": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Error message" },
106
114
  "totalSentMessageCount": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Number of messages sent over this connection", "isMeasurement": true },
107
115
  "totalReceivedMessageCount": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Number of messages received over this connection", "isMeasurement": true },
@@ -112,10 +120,12 @@ class ChatWebSocketTelemetrySender {
112
120
  */
113
121
  telemetryService.sendTelemetryErrorEvent('websocket.error', { github: true, microsoft: true }, {
114
122
  conversationId: properties.conversationId,
123
+ initiatingRequestId: properties.initiatingRequestId,
115
124
  turnId: properties.turnId,
116
125
  previousTurnId: properties.previousTurnId,
117
126
  requestId: properties.requestId,
118
127
  gitHubRequestId: properties.gitHubRequestId,
128
+ modelId: properties.modelId,
119
129
  error: properties.error,
120
130
  }, {
121
131
  hadActiveRequest: properties.hadActiveRequest ? 1 : 0,
@@ -132,7 +142,7 @@ class ChatWebSocketTelemetrySender {
132
142
  "owner": "chrmarti",
133
143
  "comment": "Report when a WebSocket connection is closed during setup before fully opening.",
134
144
  "conversationId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the conversation" },
135
- "requestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the current turn request" },
145
+ "initiatingRequestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the request that initiated the connection" },
136
146
  "gitHubRequestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "GitHub request id if available" },
137
147
  "closeReason": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Human-readable description of the close code" },
138
148
  "closeEventReason": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Close event reason string from server" },
@@ -143,7 +153,7 @@ class ChatWebSocketTelemetrySender {
143
153
  */
144
154
  telemetryService.sendTelemetryErrorEvent('websocket.closeDuringSetup', { github: true, microsoft: true }, {
145
155
  conversationId: properties.conversationId,
146
- requestId: properties.requestId,
156
+ initiatingRequestId: properties.initiatingRequestId,
147
157
  gitHubRequestId: properties.gitHubRequestId,
148
158
  closeReason: properties.closeReason,
149
159
  closeEventReason: properties.closeEventReason,
@@ -159,14 +169,21 @@ class ChatWebSocketTelemetrySender {
159
169
  "owner": "chrmarti",
160
170
  "comment": "Report when a request is sent over the WebSocket connection.",
161
171
  "conversationId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the conversation" },
172
+ "initiatingRequestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the request that initiated the connection" },
162
173
  "turnId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the turn" },
163
174
  "previousTurnId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Turn id of the previous request on this connection" },
164
175
  "hadActiveRequest": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Whether the previous request was still active when the new one began", "isMeasurement": true },
165
176
  "requestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the current turn request" },
166
177
  "gitHubRequestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "GitHub request id if available" },
178
+ "modelId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Model identifier from the request body" },
167
179
  "statefulMarkerMatched": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Whether the connection stateful marker matched the previous_response_id sent in the request", "isMeasurement": true },
168
180
  "previousResponseIdUnset": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Whether previous_response_id was undefined in the request", "isMeasurement": true },
169
181
  "hasCompactionData": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Whether the request input contains compaction data", "isMeasurement": true },
182
+ "summarizedAtRoundIdSet": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Whether a summarized round ID was set in the request options", "isMeasurement": true },
183
+ "summarizedAtRoundIdMatched": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Whether the summarized round ID matches the one stored on the connection", "isMeasurement": true },
184
+ "compactionThreshold": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Compaction threshold from context_management in the request body", "isMeasurement": true },
185
+ "tokenCountMax": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Maximum generated tokens", "isMeasurement": true },
186
+ "modelMaxPromptTokens": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Maximum prompt tokens for the model", "isMeasurement": true },
170
187
  "totalSentMessageCount": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Number of messages sent over this connection", "isMeasurement": true },
171
188
  "totalReceivedMessageCount": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Number of messages received over this connection", "isMeasurement": true },
172
189
  "sentMessageCharacters": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Character count of this sent message payload", "isMeasurement": true },
@@ -177,15 +194,22 @@ class ChatWebSocketTelemetrySender {
177
194
  */
178
195
  telemetryService.sendTelemetryEvent('websocket.requestSent', { github: true, microsoft: true }, {
179
196
  conversationId: properties.conversationId,
197
+ initiatingRequestId: properties.initiatingRequestId,
180
198
  turnId: properties.turnId,
181
199
  previousTurnId: properties.previousTurnId,
182
200
  requestId: properties.requestId,
183
201
  gitHubRequestId: properties.gitHubRequestId,
202
+ modelId: properties.modelId,
184
203
  }, {
185
204
  hadActiveRequest: properties.hadActiveRequest ? 1 : 0,
186
205
  statefulMarkerMatched: properties.statefulMarkerMatched ? 1 : 0,
187
206
  previousResponseIdUnset: properties.previousResponseIdUnset ? 1 : 0,
188
207
  hasCompactionData: properties.hasCompactionData ? 1 : 0,
208
+ summarizedAtRoundIdSet: properties.summarizedAtRoundIdSet ? 1 : 0,
209
+ summarizedAtRoundIdMatched: properties.summarizedAtRoundIdMatched ? 1 : 0,
210
+ compactionThreshold: properties.compactionThreshold,
211
+ tokenCountMax: properties.tokenCountMax,
212
+ modelMaxPromptTokens: properties.modelMaxPromptTokens,
189
213
  totalSentMessageCount: properties.totalSentMessageCount,
190
214
  totalReceivedMessageCount: properties.totalReceivedMessageCount,
191
215
  sentMessageCharacters: properties.sentMessageCharacters,
@@ -200,11 +224,13 @@ class ChatWebSocketTelemetrySender {
200
224
  "owner": "chrmarti",
201
225
  "comment": "Report when a received websocket message fails JSON parsing.",
202
226
  "conversationId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the conversation" },
227
+ "initiatingRequestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the request that initiated the connection" },
203
228
  "turnId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the turn" },
204
229
  "previousTurnId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Turn id of the previous request on this connection" },
205
230
  "hadActiveRequest": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Whether the previous request was still active when the new one began", "isMeasurement": true },
206
231
  "requestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the current turn request" },
207
232
  "gitHubRequestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "GitHub request id if available" },
233
+ "modelId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Model identifier from the request body" },
208
234
  "error": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Parse error message" },
209
235
  "totalSentMessageCount": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Number of messages sent over this connection", "isMeasurement": true },
210
236
  "totalReceivedMessageCount": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Number of messages received over this connection", "isMeasurement": true },
@@ -216,10 +242,12 @@ class ChatWebSocketTelemetrySender {
216
242
  */
217
243
  telemetryService.sendTelemetryErrorEvent('websocket.messageParseError', { github: true, microsoft: true }, {
218
244
  conversationId: properties.conversationId,
245
+ initiatingRequestId: properties.initiatingRequestId,
219
246
  turnId: properties.turnId,
220
247
  previousTurnId: properties.previousTurnId,
221
248
  requestId: properties.requestId,
222
249
  gitHubRequestId: properties.gitHubRequestId,
250
+ modelId: properties.modelId,
223
251
  error: properties.error,
224
252
  }, {
225
253
  hadActiveRequest: properties.hadActiveRequest ? 1 : 0,
@@ -237,15 +265,23 @@ class ChatWebSocketTelemetrySender {
237
265
  "owner": "chrmarti",
238
266
  "comment": "Report terminal outcome for a websocket request.",
239
267
  "conversationId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the conversation" },
268
+ "initiatingRequestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the request that initiated the connection" },
240
269
  "turnId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the turn" },
241
270
  "previousTurnId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Turn id of the previous request on this connection" },
242
271
  "hadActiveRequest": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Whether the previous request was still active when the new one began", "isMeasurement": true },
243
272
  "requestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Id of the current turn request" },
244
273
  "gitHubRequestId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "GitHub request id if available" },
274
+ "modelId": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Model identifier from the request body" },
245
275
  "requestOutcome": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Terminal outcome of the websocket request" },
246
276
  "statefulMarkerMatched": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Whether the connection stateful marker matched the previous_response_id sent in the request", "isMeasurement": true },
247
277
  "previousResponseIdUnset": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Whether previous_response_id was undefined in the request", "isMeasurement": true },
248
278
  "hasCompactionData": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Whether the request input contains compaction data", "isMeasurement": true },
279
+ "summarizedAtRoundIdSet": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Whether a summarized round ID was set in the request options", "isMeasurement": true },
280
+ "summarizedAtRoundIdMatched": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Whether the summarized round ID matches the one stored on the connection", "isMeasurement": true },
281
+ "compactionThreshold": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Compaction threshold from context_management in the request body", "isMeasurement": true },
282
+ "promptTokenCount": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Number of prompt tokens, locally counted", "isMeasurement": true },
283
+ "tokenCountMax": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Maximum generated tokens", "isMeasurement": true },
284
+ "modelMaxPromptTokens": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Maximum prompt tokens for the model", "isMeasurement": true },
249
285
  "totalSentMessageCount": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Number of messages sent over this connection", "isMeasurement": true },
250
286
  "totalReceivedMessageCount": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Number of messages received over this connection", "isMeasurement": true },
251
287
  "totalSentCharacters": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "comment": "Total characters sent over this connection", "isMeasurement": true },
@@ -264,10 +300,12 @@ class ChatWebSocketTelemetrySender {
264
300
  */
265
301
  telemetryService.sendTelemetryEvent('websocket.requestOutcome', { github: true, microsoft: true }, {
266
302
  conversationId: properties.conversationId,
303
+ initiatingRequestId: properties.initiatingRequestId,
267
304
  turnId: properties.turnId,
268
305
  previousTurnId: properties.previousTurnId,
269
306
  requestId: properties.requestId,
270
307
  gitHubRequestId: properties.gitHubRequestId,
308
+ modelId: properties.modelId,
271
309
  requestOutcome: properties.requestOutcome,
272
310
  closeReason: properties.closeReason,
273
311
  serverErrorMessage: properties.serverErrorMessage,
@@ -277,6 +315,12 @@ class ChatWebSocketTelemetrySender {
277
315
  statefulMarkerMatched: properties.statefulMarkerMatched ? 1 : 0,
278
316
  previousResponseIdUnset: properties.previousResponseIdUnset ? 1 : 0,
279
317
  hasCompactionData: properties.hasCompactionData ? 1 : 0,
318
+ summarizedAtRoundIdSet: properties.summarizedAtRoundIdSet ? 1 : 0,
319
+ summarizedAtRoundIdMatched: properties.summarizedAtRoundIdMatched ? 1 : 0,
320
+ compactionThreshold: properties.compactionThreshold,
321
+ promptTokenCount: properties.promptTokenCount,
322
+ tokenCountMax: properties.tokenCountMax,
323
+ modelMaxPromptTokens: properties.modelMaxPromptTokens,
280
324
  totalSentMessageCount: properties.totalSentMessageCount,
281
325
  totalReceivedMessageCount: properties.totalReceivedMessageCount,
282
326
  totalSentCharacters: properties.totalSentCharacters,
@@ -1 +1 @@
1
- {"version":3,"file":"chatWebSocketTelemetry.js","sourceRoot":"","sources":["../../../../../../src/_internal/platform/networking/node/chatWebSocketTelemetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chatWebSocketTelemetry.js","sourceRoot":"","sources":["../../../../../../src/_internal/platform/networking/node/chatWebSocketTelemetry.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAmHhG,MAAa,4BAA4B;IAEjC,MAAM,CAAC,sBAAsB,CACnC,gBAAmC,EACnC,UAAsD;QAEtD;;;;;;;;;UASE;QACF,gBAAgB,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;YAC7F,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;YACnD,eAAe,EAAE,UAAU,CAAC,eAAe;SAC3C,EAAE;YACF,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;SAC/C,CAAC,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,yBAAyB,CACtC,gBAAmC,EACnC,UAAyD;QAEzD;;;;;;;;;;;;;UAaE;QACF,gBAAgB,CAAC,uBAAuB,CAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;YACrG,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;YACnD,eAAe,EAAE,UAAU,CAAC,eAAe;YAC3C,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;YACjD,YAAY,EAAE,UAAU,CAAC,YAAY;SACrC,EAAE;YACF,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;YAC/C,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;SACjD,CAAC,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAC/B,gBAAmC,EACnC,UAAkD;QAElD;;;;;;;;;;;;;;;;;;;;;;UAsBE;QACF,gBAAgB,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;YACzF,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;YACnD,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,eAAe,EAAE,UAAU,CAAC,eAAe;YAC3C,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;YAC7C,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;SACjD,EAAE;YACF,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,qBAAqB,EAAE,UAAU,CAAC,qBAAqB;YACvD,yBAAyB,EAAE,UAAU,CAAC,yBAAyB;YAC/D,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;YACnD,uBAAuB,EAAE,UAAU,CAAC,uBAAuB;YAC3D,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;SACrD,CAAC,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAC/B,gBAAmC,EACnC,UAAkD;QAElD;;;;;;;;;;;;;;;;;;;UAmBE;QACF,gBAAgB,CAAC,uBAAuB,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;YAC9F,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;YACnD,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,eAAe,EAAE,UAAU,CAAC,eAAe;YAC3C,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,KAAK,EAAE,UAAU,CAAC,KAAK;SACvB,EAAE;YACF,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,qBAAqB,EAAE,UAAU,CAAC,qBAAqB;YACvD,yBAAyB,EAAE,UAAU,CAAC,yBAAyB;YAC/D,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;YACnD,uBAAuB,EAAE,UAAU,CAAC,uBAAuB;YAC3D,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;SACrD,CAAC,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,6BAA6B,CAC1C,gBAAmC,EACnC,UAA6D;QAE7D;;;;;;;;;;;;;UAaE;QACF,gBAAgB,CAAC,uBAAuB,CAAC,4BAA4B,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;YACzG,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;YACnD,eAAe,EAAE,UAAU,CAAC,eAAe;YAC3C,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;YAC7C,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;SACjD,EAAE;YACF,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;SAC/C,CAAC,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,wBAAwB,CACrC,gBAAmC,EACnC,UAAwD;QAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;UA2BE;QACF,gBAAgB,CAAC,kBAAkB,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;YAC/F,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;YACnD,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,eAAe,EAAE,UAAU,CAAC,eAAe;YAC3C,OAAO,EAAE,UAAU,CAAC,OAAO;SAC3B,EAAE;YACF,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,qBAAqB,EAAE,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,uBAAuB,EAAE,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnE,iBAAiB,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,sBAAsB,EAAE,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,0BAA0B,EAAE,UAAU,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;YACnD,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;YACrD,qBAAqB,EAAE,UAAU,CAAC,qBAAqB;YACvD,yBAAyB,EAAE,UAAU,CAAC,yBAAyB;YAC/D,qBAAqB,EAAE,UAAU,CAAC,qBAAqB;YACvD,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;YACnD,uBAAuB,EAAE,UAAU,CAAC,uBAAuB;YAC3D,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;SACrD,CAAC,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,8BAA8B,CAC3C,gBAAmC,EACnC,UAA8D;QAE9D;;;;;;;;;;;;;;;;;;;;UAoBE;QACF,gBAAgB,CAAC,uBAAuB,CAAC,6BAA6B,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;YAC1G,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;YACnD,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,eAAe,EAAE,UAAU,CAAC,eAAe;YAC3C,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,KAAK,EAAE,UAAU,CAAC,KAAK;SACvB,EAAE;YACF,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,qBAAqB,EAAE,UAAU,CAAC,qBAAqB;YACvD,yBAAyB,EAAE,UAAU,CAAC,yBAAyB;YAC/D,yBAAyB,EAAE,UAAU,CAAC,yBAAyB;YAC/D,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;YACnD,uBAAuB,EAAE,UAAU,CAAC,uBAAuB;YAC3D,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;SACrD,CAAC,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,2BAA2B,CACxC,gBAAmC,EACnC,UAA2D;QAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAqCE;QACF,gBAAgB,CAAC,kBAAkB,CAAC,0BAA0B,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;YAClG,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;YACnD,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,eAAe,EAAE,UAAU,CAAC,eAAe;YAC3C,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;YACjD,eAAe,EAAE,UAAU,CAAC,eAAe;SAC3C,EAAE;YACF,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,qBAAqB,EAAE,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,uBAAuB,EAAE,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnE,iBAAiB,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,sBAAsB,EAAE,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,0BAA0B,EAAE,UAAU,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;YACnD,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;YAC7C,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;YACrD,qBAAqB,EAAE,UAAU,CAAC,qBAAqB;YACvD,yBAAyB,EAAE,UAAU,CAAC,yBAAyB;YAC/D,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;YACnD,uBAAuB,EAAE,UAAU,CAAC,uBAAuB;YAC3D,uBAAuB,EAAE,UAAU,CAAC,uBAAuB;YAC3D,2BAA2B,EAAE,UAAU,CAAC,2BAA2B;YACnE,qBAAqB,EAAE,UAAU,CAAC,qBAAqB;YACvD,yBAAyB,EAAE,UAAU,CAAC,yBAAyB;YAC/D,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;YACrD,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;YAC/C,SAAS,EAAE,UAAU,CAAC,SAAS;SAC/B,CAAC,CAAC;IACJ,CAAC;CACD;AAzWD,oEAyWC"}
@@ -0,0 +1,171 @@
1
+ import type { RequestMetadata } from '@vscode/copilot-api';
2
+ import { HTMLTracer, IChatEndpointInfo, Raw, RenderPromptResult } from '@vscode/prompt-tsx';
3
+ import type { Event } from 'vscode';
4
+ import { ChatFetchError, ChatLocation, ChatResponses, FetchSuccess } from '../../../platform/chat/common/commonTypes';
5
+ import { IResponseDelta, OptionalChatRequestParams } from '../../../platform/networking/common/fetch';
6
+ import { IChatEndpoint, IEndpointBody } from '../../../platform/networking/common/networking';
7
+ import { ThemeIcon } from '../../../util/vs/base/common/themables';
8
+ import { OffsetRange } from '../../../util/vs/editor/common/core/ranges/offsetRange';
9
+ import type { LanguageModelToolResult2 } from '../../../vscodeTypes';
10
+ import type { IModelAPIResponse } from '../../endpoint/common/endpointProvider';
11
+ import { APIUsage } from '../../networking/common/openai';
12
+ import { ThinkingData } from '../../thinking/common/thinking';
13
+ import { CapturingToken } from '../common/capturingToken';
14
+ export type UriData = {
15
+ kind: 'request';
16
+ id: string;
17
+ } | {
18
+ kind: 'latest';
19
+ };
20
+ export declare class ChatRequestScheme {
21
+ static readonly chatRequestScheme = "ccreq";
22
+ static buildUri(data: UriData, format?: 'markdown' | 'json' | 'rawrequest'): string;
23
+ static parseUri(uri: string): {
24
+ data: UriData;
25
+ format: 'markdown' | 'json' | 'rawrequest';
26
+ } | undefined;
27
+ static findAllUris(text: string): {
28
+ uri: string;
29
+ range: OffsetRange;
30
+ }[];
31
+ }
32
+ export declare const enum LoggedInfoKind {
33
+ Element = 0,
34
+ Request = 1,
35
+ ToolCall = 2
36
+ }
37
+ export interface ILoggedElementInfo {
38
+ kind: LoggedInfoKind.Element;
39
+ id: string;
40
+ name: string;
41
+ tokens: number;
42
+ maxTokens: number;
43
+ trace: HTMLTracer;
44
+ token: CapturingToken | undefined;
45
+ toJSON(): object;
46
+ }
47
+ export interface ILoggedRequestInfo {
48
+ kind: LoggedInfoKind.Request;
49
+ id: string;
50
+ entry: LoggedRequest;
51
+ token: CapturingToken | undefined;
52
+ toJSON(): object;
53
+ }
54
+ export interface ILoggedToolCall {
55
+ kind: LoggedInfoKind.ToolCall;
56
+ id: string;
57
+ name: string;
58
+ args: unknown;
59
+ response: LanguageModelToolResult2;
60
+ token: CapturingToken | undefined;
61
+ time: number;
62
+ thinking?: ThinkingData;
63
+ toolMetadata?: unknown;
64
+ toJSON(): Promise<object>;
65
+ }
66
+ export interface ILoggedPendingRequest {
67
+ messages: Raw.ChatMessage[];
68
+ ourRequestId: string;
69
+ model: string;
70
+ location: ChatLocation;
71
+ intent?: string;
72
+ postOptions?: OptionalChatRequestParams;
73
+ body?: IEndpointBody;
74
+ ignoreStatefulMarker?: boolean;
75
+ isConversationRequest?: boolean;
76
+ /** Custom metadata to be displayed in the log document */
77
+ customMetadata?: Record<string, string | number | boolean | undefined>;
78
+ }
79
+ export type LoggedInfo = ILoggedElementInfo | ILoggedRequestInfo | ILoggedToolCall;
80
+ export declare const IRequestLogger: import("../../../util/common/services").ServiceIdentifier<IRequestLogger>;
81
+ export interface IRequestLogger {
82
+ readonly _serviceBrand: undefined;
83
+ promptRendererTracing: boolean;
84
+ captureInvocation<T>(request: CapturingToken, fn: () => Promise<T>): Promise<T>;
85
+ logToolCall(id: string, name: string, args: unknown, response: LanguageModelToolResult2, thinking?: ThinkingData): void;
86
+ logServerToolCall(id: string, name: string, args: unknown, result: LanguageModelToolResult2): void;
87
+ logModelListCall(requestId: string, requestMetadata: RequestMetadata, models: IModelAPIResponse[]): void;
88
+ logContentExclusionRules(repos: string[], rules: {
89
+ patterns: string[];
90
+ ifAnyMatch: string[];
91
+ ifNoneMatch: string[];
92
+ }[], durationMs: number): void;
93
+ logChatRequest(debugName: string, chatEndpoint: IChatEndpointLogInfo, chatParams: ILoggedPendingRequest): PendingLoggedChatRequest;
94
+ addPromptTrace(elementName: string, endpoint: IChatEndpointInfo, result: RenderPromptResult, trace: HTMLTracer): void;
95
+ addEntry(entry: LoggedRequest): void;
96
+ onDidChangeRequests: Event<void>;
97
+ getRequests(): LoggedInfo[];
98
+ getRequestById(id: string): LoggedInfo | undefined;
99
+ enableWorkspaceEditTracing(): void;
100
+ disableWorkspaceEditTracing(): void;
101
+ }
102
+ export declare const enum LoggedRequestKind {
103
+ ChatMLSuccess = "ChatMLSuccess",
104
+ ChatMLFailure = "ChatMLFailure",
105
+ ChatMLCancelation = "ChatMLCancelation",
106
+ MarkdownContentRequest = "MarkdownContentRequest"
107
+ }
108
+ export type IChatEndpointLogInfo = Partial<Pick<IChatEndpoint, 'model' | 'modelMaxPromptTokens' | 'urlOrRequestMetadata'>>;
109
+ export interface ILoggedChatMLRequest {
110
+ debugName: string;
111
+ chatEndpoint: IChatEndpointLogInfo;
112
+ chatParams: ILoggedPendingRequest;
113
+ startTime: Date;
114
+ endTime: Date;
115
+ isConversationRequest?: boolean;
116
+ /** Custom metadata to be displayed in the log document */
117
+ customMetadata?: Record<string, string | number | boolean | undefined>;
118
+ }
119
+ export interface ILoggedChatMLSuccessRequest extends ILoggedChatMLRequest {
120
+ type: LoggedRequestKind.ChatMLSuccess;
121
+ timeToFirstToken: number | undefined;
122
+ usage: APIUsage | undefined;
123
+ result: FetchSuccess<string[]>;
124
+ deltas?: IResponseDelta[];
125
+ }
126
+ export interface ILoggedChatMLFailureRequest extends ILoggedChatMLRequest {
127
+ type: LoggedRequestKind.ChatMLFailure;
128
+ timeToFirstToken: number | undefined;
129
+ result: ChatFetchError;
130
+ }
131
+ export interface ILoggedChatMLCancelationRequest extends ILoggedChatMLRequest {
132
+ type: LoggedRequestKind.ChatMLCancelation;
133
+ }
134
+ export interface IMarkdownContentRequest {
135
+ type: LoggedRequestKind.MarkdownContentRequest;
136
+ startTimeMs: number;
137
+ icon: ThemeIcon | undefined | (() => ThemeIcon | undefined);
138
+ debugName: string;
139
+ markdownContent: string | (() => string);
140
+ isConversationRequest?: boolean;
141
+ /**
142
+ * When set, the log tree and virtual document will refresh when this event fires.
143
+ * Used for "live" entries that update over time (e.g. in-progress NES requests).
144
+ */
145
+ onDidChange?: Event<void>;
146
+ /**
147
+ * When set, determines whether this entry should be visible in the log tree.
148
+ * Used for live entries that may become hidden (e.g. skipped/cancelled NES requests).
149
+ */
150
+ isVisible?: () => boolean;
151
+ }
152
+ export declare function resolveMarkdownContent(entry: IMarkdownContentRequest): string;
153
+ export declare function resolveMarkdownIcon(entry: IMarkdownContentRequest): ThemeIcon | undefined;
154
+ export type LoggedRequest = (ILoggedChatMLSuccessRequest | ILoggedChatMLFailureRequest | ILoggedChatMLCancelationRequest | IMarkdownContentRequest);
155
+ declare class AbstractPendingLoggedRequest {
156
+ protected _logbook: IRequestLogger;
157
+ protected _debugName: string;
158
+ protected _chatEndpoint: IChatEndpointLogInfo;
159
+ protected _chatParams: ILoggedPendingRequest;
160
+ protected _time: Date;
161
+ protected _timeToFirstToken: number | undefined;
162
+ constructor(_logbook: IRequestLogger, _debugName: string, _chatEndpoint: IChatEndpointLogInfo, _chatParams: ILoggedPendingRequest);
163
+ markTimeToFirstToken(timeToFirstToken: number): void;
164
+ resolveWithCancelation(): void;
165
+ }
166
+ export declare class PendingLoggedChatRequest extends AbstractPendingLoggedRequest {
167
+ constructor(logbook: IRequestLogger, debugName: string, chatEndpoint: IChatEndpoint, chatParams: ILoggedPendingRequest);
168
+ resolve(result: ChatResponses, deltas?: IResponseDelta[]): void;
169
+ }
170
+ export {};
171
+ //# sourceMappingURL=requestLogger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestLogger.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/platform/requestLogger/common/requestLogger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
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.PendingLoggedChatRequest = exports.IRequestLogger = exports.ChatRequestScheme = void 0;
8
+ exports.resolveMarkdownContent = resolveMarkdownContent;
9
+ exports.resolveMarkdownIcon = resolveMarkdownIcon;
10
+ const commonTypes_1 = require("../../../platform/chat/common/commonTypes");
11
+ const services_1 = require("../../../util/common/services");
12
+ const offsetRange_1 = require("../../../util/vs/editor/common/core/ranges/offsetRange");
13
+ class ChatRequestScheme {
14
+ static { this.chatRequestScheme = 'ccreq'; }
15
+ static buildUri(data, format = 'markdown') {
16
+ let extension;
17
+ if (format === 'markdown') {
18
+ extension = 'copilotmd';
19
+ }
20
+ else if (format === 'json') {
21
+ extension = 'json';
22
+ }
23
+ else { // rawrequest
24
+ extension = 'request.json';
25
+ }
26
+ if (data.kind === 'latest') {
27
+ return `${ChatRequestScheme.chatRequestScheme}:latest.${extension}`;
28
+ }
29
+ else {
30
+ return `${ChatRequestScheme.chatRequestScheme}:${data.id}.${extension}`;
31
+ }
32
+ }
33
+ static parseUri(uri) {
34
+ // Check for latest markdown
35
+ if (uri === this.buildUri({ kind: 'latest' }, 'markdown')) {
36
+ return { data: { kind: 'latest' }, format: 'markdown' };
37
+ }
38
+ // Check for latest JSON
39
+ if (uri === this.buildUri({ kind: 'latest' }, 'json')) {
40
+ return { data: { kind: 'latest' }, format: 'json' };
41
+ }
42
+ // Check for latest rawrequest
43
+ if (uri === this.buildUri({ kind: 'latest' }, 'rawrequest')) {
44
+ return { data: { kind: 'latest' }, format: 'rawrequest' };
45
+ }
46
+ // Check for specific request markdown
47
+ const mdMatch = uri.match(/ccreq:([^\s]+)\.copilotmd/);
48
+ if (mdMatch) {
49
+ return { data: { kind: 'request', id: mdMatch[1] }, format: 'markdown' };
50
+ }
51
+ // specific raw body json
52
+ const bodyJsonMatch = uri.match(/ccreq:([^\s]+)\.request\.json/);
53
+ if (bodyJsonMatch) {
54
+ return { data: { kind: 'request', id: bodyJsonMatch[1] }, format: 'rawrequest' };
55
+ }
56
+ // Check for specific request JSON
57
+ const jsonMatch = uri.match(/ccreq:([^\s]+)\.json/);
58
+ if (jsonMatch) {
59
+ return { data: { kind: 'request', id: jsonMatch[1] }, format: 'json' };
60
+ }
61
+ return undefined;
62
+ }
63
+ static findAllUris(text) {
64
+ const linkRE = /(ccreq:[^\s]+\.(copilotmd|json|request\.json))/g;
65
+ return [...text.matchAll(linkRE)].map((m) => {
66
+ const identifier = m[1];
67
+ return {
68
+ uri: identifier,
69
+ range: new offsetRange_1.OffsetRange(m.index, m.index + identifier.length)
70
+ };
71
+ });
72
+ }
73
+ }
74
+ exports.ChatRequestScheme = ChatRequestScheme;
75
+ exports.IRequestLogger = (0, services_1.createServiceIdentifier)('IRequestLogger');
76
+ function resolveMarkdownContent(entry) {
77
+ return typeof entry.markdownContent === 'function' ? entry.markdownContent() : entry.markdownContent;
78
+ }
79
+ function resolveMarkdownIcon(entry) {
80
+ return typeof entry.icon === 'function' ? entry.icon() : entry.icon;
81
+ }
82
+ class AbstractPendingLoggedRequest {
83
+ constructor(_logbook, _debugName, _chatEndpoint, _chatParams) {
84
+ this._logbook = _logbook;
85
+ this._debugName = _debugName;
86
+ this._chatEndpoint = _chatEndpoint;
87
+ this._chatParams = _chatParams;
88
+ this._timeToFirstToken = undefined;
89
+ this._time = new Date();
90
+ }
91
+ markTimeToFirstToken(timeToFirstToken) {
92
+ this._timeToFirstToken = timeToFirstToken;
93
+ }
94
+ resolveWithCancelation() {
95
+ this._logbook.addEntry({
96
+ type: "ChatMLCancelation" /* LoggedRequestKind.ChatMLCancelation */,
97
+ debugName: this._debugName,
98
+ chatEndpoint: this._chatEndpoint,
99
+ chatParams: this._chatParams,
100
+ startTime: this._time,
101
+ endTime: new Date(),
102
+ isConversationRequest: this._chatParams.isConversationRequest,
103
+ customMetadata: this._chatParams.customMetadata
104
+ });
105
+ }
106
+ }
107
+ class PendingLoggedChatRequest extends AbstractPendingLoggedRequest {
108
+ constructor(logbook, debugName, chatEndpoint, chatParams) {
109
+ super(logbook, debugName, chatEndpoint, chatParams);
110
+ }
111
+ resolve(result, deltas) {
112
+ if (result.type === commonTypes_1.ChatFetchResponseType.Success) {
113
+ this._logbook.addEntry({
114
+ type: "ChatMLSuccess" /* LoggedRequestKind.ChatMLSuccess */,
115
+ debugName: this._debugName,
116
+ usage: result.usage,
117
+ chatEndpoint: this._chatEndpoint,
118
+ chatParams: this._chatParams,
119
+ startTime: this._time,
120
+ endTime: new Date(),
121
+ timeToFirstToken: this._timeToFirstToken,
122
+ isConversationRequest: this._chatParams.isConversationRequest,
123
+ customMetadata: this._chatParams.customMetadata,
124
+ result,
125
+ deltas
126
+ });
127
+ }
128
+ else {
129
+ this._logbook.addEntry({
130
+ type: result.type === commonTypes_1.ChatFetchResponseType.Canceled ? "ChatMLCancelation" /* LoggedRequestKind.ChatMLCancelation */ : "ChatMLFailure" /* LoggedRequestKind.ChatMLFailure */,
131
+ debugName: this._debugName,
132
+ chatEndpoint: this._chatEndpoint,
133
+ chatParams: this._chatParams,
134
+ startTime: this._time,
135
+ endTime: new Date(),
136
+ timeToFirstToken: this._timeToFirstToken,
137
+ isConversationRequest: this._chatParams.isConversationRequest,
138
+ customMetadata: this._chatParams.customMetadata,
139
+ result,
140
+ });
141
+ }
142
+ }
143
+ }
144
+ exports.PendingLoggedChatRequest = PendingLoggedChatRequest;
145
+ //# sourceMappingURL=requestLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestLogger.js","sourceRoot":"","sources":["../../../../../../src/_internal/platform/requestLogger/common/requestLogger.ts"],"names":[],"mappings":"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"}