@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.
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsFromNetwork.d.ts +1 -5
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsFromNetwork.d.ts.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsFromNetwork.js +3 -11
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsFromNetwork.js.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networking.d.ts +0 -30
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networking.d.ts.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networking.js +4 -82
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networking.js.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.d.ts +2 -10
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.d.ts.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.js +6 -160
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.d.ts +11 -0
- package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.js +21 -3
- package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts +2 -2
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js +34 -12
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js +22 -15
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js +2 -2
- package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/cursorLineDivergence.d.ts +41 -0
- package/dist/src/_internal/extension/xtab/node/cursorLineDivergence.d.ts.map +1 -0
- package/dist/src/_internal/extension/xtab/node/cursorLineDivergence.js +181 -0
- package/dist/src/_internal/extension/xtab/node/cursorLineDivergence.js.map +1 -0
- package/dist/src/_internal/extension/xtab/node/editIntent.d.ts +31 -0
- package/dist/src/_internal/extension/xtab/node/editIntent.d.ts.map +1 -0
- package/dist/src/_internal/extension/xtab/node/editIntent.js +193 -0
- package/dist/src/_internal/extension/xtab/node/editIntent.js.map +1 -0
- package/dist/src/_internal/extension/xtab/node/responseFormatHandlers.d.ts +52 -0
- package/dist/src/_internal/extension/xtab/node/responseFormatHandlers.d.ts.map +1 -0
- package/dist/src/_internal/extension/xtab/node/responseFormatHandlers.js +159 -0
- package/dist/src/_internal/extension/xtab/node/responseFormatHandlers.js.map +1 -0
- package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts +10 -37
- package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabProvider.js +277 -349
- package/dist/src/_internal/extension/xtab/node/xtabProvider.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabUtils.d.ts +10 -0
- package/dist/src/_internal/extension/xtab/node/xtabUtils.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabUtils.js +24 -0
- package/dist/src/_internal/extension/xtab/node/xtabUtils.js.map +1 -1
- package/dist/src/_internal/platform/authentication/common/copilotToken.d.ts +1 -0
- package/dist/src/_internal/platform/authentication/common/copilotToken.d.ts.map +1 -1
- package/dist/src/_internal/platform/authentication/common/copilotToken.js +3 -0
- package/dist/src/_internal/platform/authentication/common/copilotToken.js.map +1 -1
- package/dist/src/_internal/platform/chat/common/commonTypes.d.ts.map +1 -1
- package/dist/src/_internal/platform/chat/common/commonTypes.js +34 -4
- package/dist/src/_internal/platform/chat/common/commonTypes.js.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts +17 -4
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.js +22 -9
- package/dist/src/_internal/platform/configuration/common/configurationService.js.map +1 -1
- package/dist/src/_internal/platform/configuration/common/defaultsOnlyConfigurationService.d.ts +1 -1
- package/dist/src/_internal/platform/configuration/common/defaultsOnlyConfigurationService.d.ts.map +1 -1
- package/dist/src/_internal/platform/configuration/common/defaultsOnlyConfigurationService.js +1 -1
- package/dist/src/_internal/platform/configuration/common/defaultsOnlyConfigurationService.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts +20 -0
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js +45 -1
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/endpointProvider.d.ts +2 -0
- package/dist/src/_internal/platform/endpoint/common/endpointProvider.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/endpointProvider.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/statefulMarkerContainer.d.ts +5 -0
- package/dist/src/_internal/platform/endpoint/common/statefulMarkerContainer.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/statefulMarkerContainer.js +13 -0
- package/dist/src/_internal/platform/endpoint/common/statefulMarkerContainer.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts +3 -1
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js +14 -14
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/messagesApi.js +28 -12
- package/dist/src/_internal/platform/endpoint/node/messagesApi.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/responsesApi.d.ts +12 -2
- package/dist/src/_internal/platform/endpoint/node/responsesApi.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/responsesApi.js +201 -23
- package/dist/src/_internal/platform/endpoint/node/responsesApi.js.map +1 -1
- package/dist/src/_internal/platform/git/common/gitService.d.ts +7 -3
- package/dist/src/_internal/platform/git/common/gitService.d.ts.map +1 -1
- package/dist/src/_internal/platform/git/common/gitService.js.map +1 -1
- package/dist/src/_internal/platform/github/common/githubAPI.d.ts +1 -0
- package/dist/src/_internal/platform/github/common/githubAPI.d.ts.map +1 -1
- package/dist/src/_internal/platform/github/common/githubAPI.js +2 -0
- package/dist/src/_internal/platform/github/common/githubAPI.js.map +1 -1
- package/dist/src/_internal/platform/github/common/githubService.d.ts +3 -2
- package/dist/src/_internal/platform/github/common/githubService.d.ts.map +1 -1
- package/dist/src/_internal/platform/github/common/githubService.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.d.ts +12 -3
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.js +72 -46
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/utils/utils.d.ts +3 -0
- package/dist/src/_internal/platform/inlineEdits/common/utils/utils.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/utils/utils.js +12 -0
- package/dist/src/_internal/platform/inlineEdits/common/utils/utils.js.map +1 -1
- package/dist/src/_internal/platform/log/common/logService.d.ts +5 -0
- package/dist/src/_internal/platform/log/common/logService.d.ts.map +1 -1
- package/dist/src/_internal/platform/log/common/logService.js +22 -0
- package/dist/src/_internal/platform/log/common/logService.js.map +1 -1
- package/dist/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.d.ts +1 -1
- package/dist/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.d.ts.map +1 -1
- package/dist/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.js +1 -1
- package/dist/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/anthropic.d.ts +0 -16
- package/dist/src/_internal/platform/networking/common/anthropic.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/anthropic.js +10 -42
- package/dist/src/_internal/platform/networking/common/anthropic.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/fetcherService.d.ts +1 -0
- package/dist/src/_internal/platform/networking/common/fetcherService.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/fetcherService.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/networking.d.ts +22 -4
- package/dist/src/_internal/platform/networking/common/networking.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/networking.js.map +1 -1
- package/dist/src/_internal/platform/networking/node/chatStream.d.ts +10 -0
- package/dist/src/_internal/platform/networking/node/chatStream.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/node/chatStream.js +28 -0
- package/dist/src/_internal/platform/networking/node/chatStream.js.map +1 -1
- package/dist/src/_internal/platform/networking/node/chatWebSocketManager.d.ts +23 -5
- package/dist/src/_internal/platform/networking/node/chatWebSocketManager.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/node/chatWebSocketManager.js +67 -20
- package/dist/src/_internal/platform/networking/node/chatWebSocketManager.js.map +1 -1
- package/dist/src/_internal/platform/networking/node/chatWebSocketTelemetry.d.ts +15 -1
- package/dist/src/_internal/platform/networking/node/chatWebSocketTelemetry.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/node/chatWebSocketTelemetry.js +51 -7
- package/dist/src/_internal/platform/networking/node/chatWebSocketTelemetry.js.map +1 -1
- package/dist/src/_internal/platform/requestLogger/common/requestLogger.d.ts +171 -0
- package/dist/src/_internal/platform/requestLogger/common/requestLogger.d.ts.map +1 -0
- package/dist/src/_internal/platform/requestLogger/common/requestLogger.js +145 -0
- package/dist/src/_internal/platform/requestLogger/common/requestLogger.js.map +1 -0
- package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.d.ts +2 -1
- package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.d.ts.map +1 -1
- package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.js.map +1 -1
- package/dist/src/_internal/platform/requestLogger/node/requestLogger.d.ts +4 -166
- package/dist/src/_internal/platform/requestLogger/node/requestLogger.d.ts.map +1 -1
- package/dist/src/_internal/platform/requestLogger/node/requestLogger.js +3 -139
- package/dist/src/_internal/platform/requestLogger/node/requestLogger.js.map +1 -1
- package/dist/src/main.d.ts +2 -0
- package/dist/src/main.d.ts.map +1 -1
- package/dist/src/main.js +48 -6
- package/dist/src/main.js.map +1 -1
- package/dist/src/package.json +106 -96
- package/package.json +71 -71
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/stream.d.ts +0 -182
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/stream.d.ts.map +0 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/stream.js +0 -558
- 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
|
-
"
|
|
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
|
-
|
|
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
|
-
"
|
|
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
|
-
|
|
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
|
-
"
|
|
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
|
-
|
|
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":";AAAA;;;gGAGgG;;;
|
|
1
|
+
{"version":3,"file":"chatWebSocketTelemetry.js","sourceRoot":"","sources":["../../../../../../src/_internal/platform/networking/node/chatWebSocketTelemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -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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"}
|