@vscode/chat-lib 0.0.5-13 → 0.0.5-14

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 (25) hide show
  1. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts +25 -8
  2. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts.map +1 -1
  3. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js +411 -174
  4. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js.map +1 -1
  5. package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.d.ts +42 -0
  6. package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.d.ts.map +1 -0
  7. package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js +171 -0
  8. package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js.map +1 -0
  9. package/dist/src/_internal/extension/xtab/common/tags.d.ts +13 -0
  10. package/dist/src/_internal/extension/xtab/common/tags.d.ts.map +1 -1
  11. package/dist/src/_internal/extension/xtab/common/tags.js +15 -1
  12. package/dist/src/_internal/extension/xtab/common/tags.js.map +1 -1
  13. package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts.map +1 -1
  14. package/dist/src/_internal/extension/xtab/node/xtabProvider.js +6 -20
  15. package/dist/src/_internal/extension/xtab/node/xtabProvider.js.map +1 -1
  16. package/dist/src/_internal/platform/networking/common/fetch.d.ts +0 -1
  17. package/dist/src/_internal/platform/networking/common/fetch.d.ts.map +1 -1
  18. package/dist/src/_internal/platform/networking/common/fetch.js +0 -8
  19. package/dist/src/_internal/platform/networking/common/fetch.js.map +1 -1
  20. package/dist/src/_internal/platform/openai/node/fetch.d.ts +2 -33
  21. package/dist/src/_internal/platform/openai/node/fetch.d.ts.map +1 -1
  22. package/dist/src/_internal/platform/openai/node/fetch.js +0 -401
  23. package/dist/src/_internal/platform/openai/node/fetch.js.map +1 -1
  24. package/dist/src/package.json +15 -4
  25. package/package.json +1 -1
@@ -5,23 +5,6 @@
5
5
  *--------------------------------------------------------------------------------------------*/
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.ChatFailKind = exports.FetchResponseKind = void 0;
8
- exports.fetchAndStreamChat = fetchAndStreamChat;
9
- const crypto_1 = require("../../../util/common/crypto");
10
- const uuid_1 = require("../../../util/vs/base/common/uuid");
11
- const instantiation_1 = require("../../../util/vs/platform/instantiation/common/instantiation");
12
- const authentication_1 = require("../../authentication/common/authentication");
13
- const chatQuotaService_1 = require("../../chat/common/chatQuotaService");
14
- const commonTypes_1 = require("../../chat/common/commonTypes");
15
- const interactionService_1 = require("../../chat/common/interactionService");
16
- const capiClient_1 = require("../../endpoint/common/capiClient");
17
- const logService_1 = require("../../log/common/logService");
18
- const fetch_1 = require("../../networking/common/fetch");
19
- const fetcherService_1 = require("../../networking/common/fetcherService");
20
- const networking_1 = require("../../networking/common/networking");
21
- const chatStream_1 = require("../../networking/node/chatStream");
22
- const stream_1 = require("../../networking/node/stream");
23
- const telemetry_1 = require("../../telemetry/common/telemetry");
24
- const telemetryData_1 = require("../../telemetry/common/telemetryData");
25
8
  var FetchResponseKind;
26
9
  (function (FetchResponseKind) {
27
10
  FetchResponseKind["Success"] = "success";
@@ -46,388 +29,4 @@ var ChatFailKind;
46
29
  ChatFailKind["NotFound"] = "notFound";
47
30
  ChatFailKind["Unknown"] = "unknown";
48
31
  })(ChatFailKind || (exports.ChatFailKind = ChatFailKind = {}));
49
- /**
50
- * A fetcher specialized to fetch ChatML completions. This differs from the standard fetcher in the form that ChatML
51
- * requires a different datamodel. Details can be found here https://platform.openai.com/docs/guides/chat
52
- *
53
- * This fetcher was created because the standard fetcher is tightly coupled to the OpenAI API completion models and a major refactoring
54
- * or rewrite is necessary to have a more generic fetcher that can be used for both completions and chat models.
55
- */
56
- async function fetchAndStreamChat(accessor, chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, nChoices, userInitiatedRequest, cancel, telemetryProperties, useFetcher) {
57
- const logService = accessor.get(logService_1.ILogService);
58
- const telemetryService = accessor.get(telemetry_1.ITelemetryService);
59
- const chatQuotaService = accessor.get(chatQuotaService_1.IChatQuotaService);
60
- const authenticationService = accessor.get(authentication_1.IAuthenticationService);
61
- const instantiationService = accessor.get(instantiation_1.IInstantiationService);
62
- if (cancel?.isCancellationRequested) {
63
- return { type: FetchResponseKind.Canceled, reason: 'before fetch request' };
64
- }
65
- logService.debug(`modelMaxPromptTokens ${chatEndpointInfo.modelMaxPromptTokens}`);
66
- logService.debug(`modelMaxResponseTokens ${request.max_tokens ?? 2048}`);
67
- logService.debug(`chat model ${chatEndpointInfo.model}`);
68
- secretKey ??= (await authenticationService.getCopilotToken()).token;
69
- if (!secretKey) {
70
- // If no key is set we error
71
- const urlOrRequestMetadata = (0, networking_1.stringifyUrlOrRequestMetadata)(chatEndpointInfo.urlOrRequestMetadata);
72
- logService.error(`Failed to send request to ${urlOrRequestMetadata} due to missing key`);
73
- (0, stream_1.sendCommunicationErrorTelemetry)(telemetryService, `Failed to send request to ${urlOrRequestMetadata} due to missing key`);
74
- return {
75
- type: FetchResponseKind.Failed,
76
- modelRequestId: undefined,
77
- failKind: ChatFailKind.TokenExpiredOrInvalid,
78
- reason: 'key is missing'
79
- };
80
- }
81
- // Generate unique ID to link input and output messages
82
- const modelCallId = (0, uuid_1.generateUuid)();
83
- const response = await instantiationService.invokeFunction(accessor => fetchWithInstrumentation(accessor, chatEndpointInfo, ourRequestId, request, secretKey, location, userInitiatedRequest, cancel, { ...telemetryProperties, modelCallId }, useFetcher));
84
- if (cancel?.isCancellationRequested) {
85
- const body = await response.body();
86
- try {
87
- // Destroy the stream so that the server is hopefully notified we don't want any more data
88
- // and can cancel/forget about the request itself.
89
- body.destroy();
90
- }
91
- catch (e) {
92
- logService.error(e, `Error destroying stream`);
93
- telemetryService.sendGHTelemetryException(e, 'Error destroying stream');
94
- }
95
- return { type: FetchResponseKind.Canceled, reason: 'after fetch request' };
96
- }
97
- if (response.status === 200 && authenticationService.copilotToken?.isFreeUser && authenticationService.copilotToken?.isChatQuotaExceeded) {
98
- authenticationService.resetCopilotToken();
99
- }
100
- if (response.status !== 200) {
101
- const telemetryData = createTelemetryData(chatEndpointInfo, location, ourRequestId);
102
- logService.info('Request ID for failed request: ' + ourRequestId);
103
- return instantiationService.invokeFunction(handleError, telemetryData, response, ourRequestId);
104
- }
105
- // Extend baseTelemetryData with modelCallId for output messages
106
- const extendedBaseTelemetryData = baseTelemetryData.extendedBy({ modelCallId });
107
- const chatCompletions = await chatEndpointInfo.processResponseFromChatEndpoint(telemetryService, logService, response, nChoices ?? /* OpenAI's default */ 1, finishedCb, extendedBaseTelemetryData, cancel);
108
- // CAPI will return us a Copilot Edits Session Header which is our token to using the speculative decoding endpoint
109
- // We should store this in the auth service for easy use later
110
- if (response.headers.get('Copilot-Edits-Session')) {
111
- authenticationService.speculativeDecodingEndpointToken = response.headers.get('Copilot-Edits-Session') ?? undefined;
112
- }
113
- chatQuotaService.processQuotaHeaders(response.headers);
114
- return {
115
- type: FetchResponseKind.Success,
116
- chatCompletions: chatCompletions,
117
- getProcessingTime: () => (0, fetch_1.getProcessingTime)(response),
118
- };
119
- }
120
- function createTelemetryData(chatEndpointInfo, location, headerRequestId) {
121
- return telemetryData_1.TelemetryData.createAndMarkAsIssued({
122
- endpoint: 'completions',
123
- engineName: 'chat',
124
- uiKind: commonTypes_1.ChatLocation.toString(location),
125
- headerRequestId
126
- });
127
- }
128
- async function handleError(accessor, telemetryData, response, requestId) {
129
- const logService = accessor.get(logService_1.ILogService);
130
- const telemetryService = accessor.get(telemetry_1.ITelemetryService);
131
- const authenticationService = accessor.get(authentication_1.IAuthenticationService);
132
- const modelRequestIdObj = (0, fetch_1.getRequestId)(response, undefined);
133
- requestId = modelRequestIdObj.headerRequestId || requestId;
134
- modelRequestIdObj.headerRequestId = requestId;
135
- telemetryData.properties.error = `Response status was ${response.status}`;
136
- telemetryData.properties.status = String(response.status);
137
- telemetryService.sendGHTelemetryEvent('request.shownWarning', telemetryData.properties, telemetryData.measurements);
138
- const text = await response.text();
139
- let jsonData;
140
- try {
141
- jsonData = JSON.parse(text);
142
- jsonData = jsonData?.error ?? jsonData; // Extract nested error object if it exists
143
- }
144
- catch {
145
- // JSON parsing failed, it's not json content.
146
- }
147
- if (400 <= response.status && response.status < 500) {
148
- if (response.status === 400 && text.includes('off_topic')) {
149
- return {
150
- type: FetchResponseKind.Failed,
151
- modelRequestId: modelRequestIdObj,
152
- failKind: ChatFailKind.OffTopic,
153
- reason: 'filtered as off_topic by intent classifier: message was not programming related',
154
- };
155
- }
156
- if (response.status === 401 && text.includes('authorize_url') && jsonData?.authorize_url) {
157
- return {
158
- type: FetchResponseKind.Failed,
159
- modelRequestId: modelRequestIdObj,
160
- failKind: ChatFailKind.AgentUnauthorized,
161
- reason: response.statusText || response.statusText,
162
- data: jsonData
163
- };
164
- }
165
- if (response.status === 400 && jsonData?.code === 'previous_response_not_found') {
166
- return {
167
- type: FetchResponseKind.Failed,
168
- modelRequestId: modelRequestIdObj,
169
- failKind: ChatFailKind.InvalidPreviousResponseId,
170
- reason: jsonData.message || 'Invalid previous response ID',
171
- data: jsonData,
172
- };
173
- }
174
- if (response.status === 401 || response.status === 403) {
175
- // Token has expired or invalid, fetch a new one on next request
176
- // TODO(drifkin): these actions should probably happen in vsc specific code
177
- authenticationService.resetCopilotToken(response.status);
178
- return {
179
- type: FetchResponseKind.Failed,
180
- modelRequestId: modelRequestIdObj,
181
- failKind: ChatFailKind.TokenExpiredOrInvalid,
182
- reason: jsonData?.message || `token expired or invalid: ${response.status}`,
183
- };
184
- }
185
- if (response.status === 402) {
186
- // When we receive a 402, we have exceed a quota
187
- // This is stored on the token so let's refresh it
188
- authenticationService.resetCopilotToken(response.status);
189
- const retryAfter = response.headers.get('retry-after');
190
- const convertToDate = (retryAfterString) => {
191
- if (!retryAfterString) {
192
- return undefined;
193
- }
194
- // Try treating it as a date
195
- const retryAfterDate = new Date(retryAfterString);
196
- if (!isNaN(retryAfterDate.getDate())) {
197
- return retryAfterDate;
198
- }
199
- // It is not a date, try treating it as a duration from the current date
200
- const retryAfterDuration = parseInt(retryAfterString, 10);
201
- if (isNaN(retryAfterDuration)) {
202
- return undefined;
203
- }
204
- return new Date(Date.now() + retryAfterDuration * 1000);
205
- };
206
- const retryAfterDate = convertToDate(retryAfter);
207
- return {
208
- type: FetchResponseKind.Failed,
209
- modelRequestId: modelRequestIdObj,
210
- failKind: ChatFailKind.QuotaExceeded,
211
- reason: jsonData?.message ?? 'Free tier quota exceeded',
212
- data: {
213
- capiError: jsonData,
214
- retryAfter: retryAfterDate
215
- }
216
- };
217
- }
218
- if (response.status === 404) {
219
- let errorReason;
220
- // Check if response body is valid JSON
221
- if (!jsonData) {
222
- errorReason = text;
223
- }
224
- else {
225
- errorReason = JSON.stringify(jsonData);
226
- }
227
- return {
228
- type: FetchResponseKind.Failed,
229
- modelRequestId: modelRequestIdObj,
230
- failKind: ChatFailKind.NotFound,
231
- reason: errorReason
232
- };
233
- }
234
- if (response.status === 422) {
235
- return {
236
- type: FetchResponseKind.Failed,
237
- modelRequestId: modelRequestIdObj,
238
- failKind: ChatFailKind.ContentFilter,
239
- reason: 'Filtered by Responsible AI Service'
240
- };
241
- }
242
- if (response.status === 424) {
243
- return {
244
- type: FetchResponseKind.Failed,
245
- modelRequestId: modelRequestIdObj,
246
- failKind: ChatFailKind.AgentFailedDependency,
247
- reason: text
248
- };
249
- }
250
- if (response.status === 429) {
251
- let rateLimitReason = text;
252
- rateLimitReason = jsonData?.message ?? jsonData?.code;
253
- if (text.includes('extension_blocked') && jsonData?.code === 'extension_blocked' && jsonData?.type === 'rate_limit_error') {
254
- return {
255
- type: FetchResponseKind.Failed,
256
- modelRequestId: modelRequestIdObj,
257
- failKind: ChatFailKind.ExtensionBlocked,
258
- reason: 'Extension blocked',
259
- data: {
260
- ...jsonData?.message,
261
- retryAfter: response.headers.get('retry-after'),
262
- }
263
- };
264
- }
265
- // HTTP 429 Too Many Requests
266
- return {
267
- type: FetchResponseKind.Failed,
268
- modelRequestId: modelRequestIdObj,
269
- failKind: ChatFailKind.RateLimited,
270
- reason: rateLimitReason,
271
- data: {
272
- retryAfter: response.headers.get('retry-after'),
273
- rateLimitKey: response.headers.get('x-ratelimit-exceeded'),
274
- capiError: jsonData
275
- }
276
- };
277
- }
278
- if (response.status === 466) {
279
- logService.info(text);
280
- return {
281
- type: FetchResponseKind.Failed,
282
- modelRequestId: modelRequestIdObj,
283
- failKind: ChatFailKind.ClientNotSupported,
284
- reason: `client not supported: ${text}`
285
- };
286
- }
287
- if (response.status === 499) {
288
- logService.info('Cancelled by server');
289
- return {
290
- type: FetchResponseKind.Failed,
291
- modelRequestId: modelRequestIdObj,
292
- failKind: ChatFailKind.ServerCanceled,
293
- reason: 'canceled by server'
294
- };
295
- }
296
- }
297
- else if (500 <= response.status && response.status < 600) {
298
- if (response.status === 503) {
299
- return {
300
- type: FetchResponseKind.Failed,
301
- modelRequestId: modelRequestIdObj,
302
- failKind: ChatFailKind.RateLimited,
303
- reason: 'Upstream provider rate limit hit',
304
- data: {
305
- retryAfter: null,
306
- rateLimitKey: null,
307
- capiError: { code: 'upstream_provider_rate_limit', message: text }
308
- }
309
- };
310
- }
311
- const reasonNoText = `Server error: ${response.status}`;
312
- const reason = `${reasonNoText} ${text}`;
313
- logService.error(reason);
314
- // HTTP 5xx Server Error
315
- return {
316
- type: FetchResponseKind.Failed,
317
- modelRequestId: modelRequestIdObj,
318
- failKind: ChatFailKind.ServerError,
319
- reason: reasonNoText,
320
- };
321
- }
322
- logService.error(`Request Failed: ${response.status} ${text}`);
323
- (0, stream_1.sendCommunicationErrorTelemetry)(telemetryService, 'Unhandled status from server: ' + response.status, text);
324
- return {
325
- type: FetchResponseKind.Failed,
326
- modelRequestId: modelRequestIdObj,
327
- failKind: ChatFailKind.Unknown,
328
- reason: `Request Failed: ${response.status} ${text}`
329
- };
330
- }
331
- async function fetchWithInstrumentation(accessor, chatEndpoint, ourRequestId, request, secretKey, location, userInitiatedRequest, cancel, telemetryProperties, useFetcher) {
332
- const logService = accessor.get(logService_1.ILogService);
333
- const telemetryService = accessor.get(telemetry_1.ITelemetryService);
334
- const fetcherService = accessor.get(fetcherService_1.IFetcherService);
335
- const capiClientService = accessor.get(capiClient_1.ICAPIClientService);
336
- const interactionService = accessor.get(interactionService_1.IInteractionService);
337
- // If request contains an image, we include this header.
338
- const additionalHeaders = {
339
- 'X-Interaction-Id': interactionService.interactionId,
340
- 'X-Initiator': userInitiatedRequest ? 'user' : 'agent', // Agent = a system request / not the primary user query.
341
- };
342
- if (request.messages?.some((m) => Array.isArray(m.content) ? m.content.some(c => 'image_url' in c) : false) && chatEndpoint.supportsVision) {
343
- additionalHeaders['Copilot-Vision-Request'] = 'true';
344
- }
345
- const telemetryData = telemetryData_1.TelemetryData.createAndMarkAsIssued({
346
- endpoint: 'completions',
347
- engineName: 'chat',
348
- uiKind: commonTypes_1.ChatLocation.toString(location),
349
- ...telemetryProperties // This includes the modelCallId from fetchAndStreamChat
350
- }, {
351
- maxTokenWindow: chatEndpoint.modelMaxPromptTokens
352
- });
353
- for (const [key, value] of Object.entries(request)) {
354
- if (key === 'messages' || key === 'input') {
355
- continue;
356
- } // Skip messages (PII)
357
- telemetryData.properties[`request.option.${key}`] = JSON.stringify(value) ?? 'undefined';
358
- }
359
- // The request ID we are passed in is sent in the request to the proxy, and included in our pre-request telemetry.
360
- // We hope (but do not rely on) that the model will use the same ID in the response, allowing us to correlate
361
- // the request and response.
362
- telemetryData.properties['headerRequestId'] = ourRequestId;
363
- telemetryService.sendGHTelemetryEvent('request.sent', telemetryData.properties, telemetryData.measurements);
364
- const requestStart = Date.now();
365
- const intent = locationToIntent(location);
366
- // Wrap the Promise with success/error callbacks so we can log/measure it
367
- return (0, networking_1.postRequest)(fetcherService, telemetryService, capiClientService, chatEndpoint, secretKey, await (0, crypto_1.createRequestHMAC)(process.env.HMAC_SECRET), intent, ourRequestId, request, additionalHeaders, cancel, useFetcher).then(response => {
368
- const apim = response.headers.get('apim-request-id');
369
- if (apim) {
370
- logService.debug(`APIM request id: ${apim}`);
371
- }
372
- const ghRequestId = response.headers.get('x-github-request-id');
373
- if (ghRequestId) {
374
- logService.debug(`GH request id: ${ghRequestId}`);
375
- }
376
- // This ID is hopefully the one the same as ourRequestId, but it is not guaranteed.
377
- // If they are different then we will override the original one we set in telemetryData above.
378
- const modelRequestId = (0, fetch_1.getRequestId)(response, undefined);
379
- telemetryData.extendWithRequestId(modelRequestId);
380
- // TODO: Add response length (requires parsing)
381
- const totalTimeMs = Date.now() - requestStart;
382
- telemetryData.measurements.totalTimeMs = totalTimeMs;
383
- logService.debug(`request.response: [${(0, networking_1.stringifyUrlOrRequestMetadata)(chatEndpoint.urlOrRequestMetadata)}], took ${totalTimeMs} ms`);
384
- telemetryService.sendGHTelemetryEvent('request.response', telemetryData.properties, telemetryData.measurements);
385
- return response;
386
- })
387
- .catch(error => {
388
- if (fetcherService.isAbortError(error)) {
389
- // If we cancelled a network request, we don't want to log a `request.error`
390
- throw error;
391
- }
392
- const warningTelemetry = telemetryData.extendedBy({ error: 'Network exception' });
393
- telemetryService.sendGHTelemetryEvent('request.shownWarning', warningTelemetry.properties, warningTelemetry.measurements);
394
- telemetryData.properties.code = String(error.code ?? '');
395
- telemetryData.properties.errno = String(error.errno ?? '');
396
- telemetryData.properties.message = String(error.message ?? '');
397
- telemetryData.properties.type = String(error.type ?? '');
398
- const totalTimeMs = Date.now() - requestStart;
399
- telemetryData.measurements.totalTimeMs = totalTimeMs;
400
- logService.debug(`request.response: [${(0, networking_1.stringifyUrlOrRequestMetadata)(chatEndpoint.urlOrRequestMetadata)}] took ${totalTimeMs} ms`);
401
- telemetryService.sendGHTelemetryEvent('request.error', telemetryData.properties, telemetryData.measurements);
402
- throw error;
403
- })
404
- .finally(() => {
405
- (0, chatStream_1.sendEngineMessagesTelemetry)(telemetryService, request.messages ?? [], telemetryData, false, logService);
406
- });
407
- }
408
- /**
409
- * WARNING: The value that is returned from this function drives the disablement of RAI for full-file rewrite requests
410
- * in Copilot Edits, Copilot Chat, Agent Mode, and Inline Chat.
411
- * If your chat location generates full-file rewrite requests and you are unsure if changing something here will cause problems, please talk to @roblourens
412
- */
413
- function locationToIntent(location) {
414
- switch (location) {
415
- case commonTypes_1.ChatLocation.Panel:
416
- return 'conversation-panel';
417
- case commonTypes_1.ChatLocation.Editor:
418
- return 'conversation-inline';
419
- case commonTypes_1.ChatLocation.EditingSession:
420
- return 'conversation-edits';
421
- case commonTypes_1.ChatLocation.Notebook:
422
- return 'conversation-notebook';
423
- case commonTypes_1.ChatLocation.Terminal:
424
- return 'conversation-terminal';
425
- case commonTypes_1.ChatLocation.Other:
426
- return 'conversation-other';
427
- case commonTypes_1.ChatLocation.Agent:
428
- return 'conversation-agent';
429
- case commonTypes_1.ChatLocation.ResponsesProxy:
430
- return 'responses-proxy';
431
- }
432
- }
433
32
  //# sourceMappingURL=fetch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../../../../src/_internal/platform/openai/node/fetch.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AA6FhG,gDA4GC;AArMD,wDAAgE;AAChE,4DAAiE;AACjE,gGAAuH;AACvH,+EAAoF;AACpF,yEAAuE;AACvE,+DAA6D;AAC7D,6EAA2E;AAC3E,iEAAsE;AACtE,4DAA0D;AAC1D,yDAAwI;AACxI,2EAA8F;AAC9F,mEAA8H;AAE9H,iEAA+E;AAC/E,yDAA+E;AAC/E,gEAA0F;AAC1F,wEAAqE;AAuBrE,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC5B,wCAAmB,CAAA;IACnB,sCAAiB,CAAA;IACjB,0CAAqB,CAAA;AACtB,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B;AAqBD,IAAY,YAgBX;AAhBD,WAAY,YAAY;IACvB,qCAAqB,CAAA;IACrB,+DAA+C,CAAA;IAC/C,iDAAiC,CAAA;IACjC,yDAAyC,CAAA;IACzC,2CAA2B,CAAA;IAC3B,+CAA+B,CAAA;IAC/B,qDAAqC,CAAA;IACrC,2CAA2B,CAAA;IAC3B,+CAA+B,CAAA;IAC/B,kDAAkC,CAAA;IAClC,0DAA0C,CAAA;IAC1C,qDAAqC,CAAA;IACrC,uEAAuD,CAAA;IACvD,qCAAqB,CAAA;IACrB,mCAAmB,CAAA;AACpB,CAAC,EAhBW,YAAY,4BAAZ,YAAY,QAgBvB;AAED;;;;;;GAMG;AACI,KAAK,UAAU,kBAAkB,CACvC,QAA0B,EAC1B,gBAA+B,EAC/B,OAAsB,EACtB,iBAAgC,EAChC,UAA4B,EAC5B,SAA6B,EAC7B,QAAsB,EACtB,YAAoB,EACpB,QAA4B,EAC5B,oBAA8B,EAC9B,MAAsC,EACtC,mBAAqD,EACrD,UAAsB;IAEtB,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,wBAAW,CAAC,CAAC;IAC7C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,6BAAiB,CAAC,CAAC;IACzD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,oCAAiB,CAAC,CAAC;IACzD,MAAM,qBAAqB,GAAG,QAAQ,CAAC,GAAG,CAAC,uCAAsB,CAAC,CAAC;IACnE,MAAM,oBAAoB,GAAG,QAAQ,CAAC,GAAG,CAAC,qCAAqB,CAAC,CAAC;IACjE,IAAI,MAAM,EAAE,uBAAuB,EAAE,CAAC;QACrC,OAAO,EAAE,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;IAC7E,CAAC;IAED,UAAU,CAAC,KAAK,CAAC,wBAAwB,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAClF,UAAU,CAAC,KAAK,CAAC,0BAA0B,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,UAAU,CAAC,KAAK,CAAC,cAAc,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC;IAEzD,SAAS,KAAK,CAAC,MAAM,qBAAqB,CAAC,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC;IACpE,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,4BAA4B;QAC5B,MAAM,oBAAoB,GAAG,IAAA,0CAA6B,EAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;QAClG,UAAU,CAAC,KAAK,CAAC,6BAA6B,oBAAoB,qBAAqB,CAAC,CAAC;QACzF,IAAA,wCAA+B,EAAC,gBAAgB,EAAE,6BAA6B,oBAAoB,qBAAqB,CAAC,CAAC;QAC1H,OAAO;YACN,IAAI,EAAE,iBAAiB,CAAC,MAAM;YAC9B,cAAc,EAAE,SAAS;YACzB,QAAQ,EAAE,YAAY,CAAC,qBAAqB;YAC5C,MAAM,EAAE,gBAAgB;SACxB,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,MAAM,WAAW,GAAG,IAAA,mBAAY,GAAE,CAAC;IAEnC,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CACrE,wBAAwB,CACvB,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,SAAS,EACT,QAAQ,EACR,oBAAoB,EACpB,MAAM,EACN,EAAE,GAAG,mBAAmB,EAAE,WAAW,EAAE,EACvC,UAAU,CACV,CAAC,CAAC;IAEJ,IAAI,MAAM,EAAE,uBAAuB,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,QAAS,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC;YACJ,0FAA0F;YAC1F,kDAAkD;YACjD,IAA0B,CAAC,OAAO,EAAE,CAAC;QACvC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC;YAC/C,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAC5E,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,qBAAqB,CAAC,YAAY,EAAE,UAAU,IAAI,qBAAqB,CAAC,YAAY,EAAE,mBAAmB,EAAE,CAAC;QAC1I,qBAAqB,CAAC,iBAAiB,EAAE,CAAC;IAC3C,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC7B,MAAM,aAAa,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QACpF,UAAU,CAAC,IAAI,CAAC,iCAAiC,GAAG,YAAY,CAAC,CAAC;QAClE,OAAO,oBAAoB,CAAC,cAAc,CAAC,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAChG,CAAC;IAED,gEAAgE;IAChE,MAAM,yBAAyB,GAAG,iBAAiB,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAEhF,MAAM,eAAe,GAAG,MAAM,gBAAgB,CAAC,+BAA+B,CAC7E,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,QAAQ,IAAI,sBAAsB,CAAC,CAAC,EACpC,UAAU,EACV,yBAAyB,EACzB,MAAM,CACN,CAAC;IAEF,mHAAmH;IACnH,8DAA8D;IAC9D,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE,CAAC;QACnD,qBAAqB,CAAC,gCAAgC,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,SAAS,CAAC;IACrH,CAAC;IAED,gBAAgB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEvD,OAAO;QACN,IAAI,EAAE,iBAAiB,CAAC,OAAO;QAC/B,eAAe,EAAE,eAAe;QAChC,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAA,yBAAiB,EAAC,QAAQ,CAAC;KACpD,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,gBAA+B,EAAE,QAAsB,EAAE,eAAuB;IAC5G,OAAO,6BAAa,CAAC,qBAAqB,CAAC;QAC1C,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,0BAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACvC,eAAe;KACf,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,WAAW,CACzB,QAA0B,EAC1B,aAA4B,EAC5B,QAAkB,EAClB,SAAiB;IAEjB,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,wBAAW,CAAC,CAAC;IAC7C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,6BAAiB,CAAC,CAAC;IACzD,MAAM,qBAAqB,GAAG,QAAQ,CAAC,GAAG,CAAC,uCAAsB,CAAC,CAAC;IACnE,MAAM,iBAAiB,GAAG,IAAA,oBAAY,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC5D,SAAS,GAAG,iBAAiB,CAAC,eAAe,IAAI,SAAS,CAAC;IAC3D,iBAAiB,CAAC,eAAe,GAAG,SAAS,CAAC;IAE9C,aAAa,CAAC,UAAU,CAAC,KAAK,GAAG,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC1E,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1D,gBAAgB,CAAC,oBAAoB,CAAC,sBAAsB,EAAE,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IAEpH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,QAAyC,CAAC;IAC9C,IAAI,CAAC;QACJ,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,QAAQ,GAAG,QAAQ,EAAE,KAAK,IAAI,QAAQ,CAAC,CAAC,2CAA2C;IACpF,CAAC;IAAC,MAAM,CAAC;QACR,8CAA8C;IAC/C,CAAC;IAED,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QAErD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3D,OAAO;gBACN,IAAI,EAAE,iBAAiB,CAAC,MAAM;gBAC9B,cAAc,EAAE,iBAAiB;gBACjC,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,MAAM,EAAE,iFAAiF;aACzF,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,QAAQ,EAAE,aAAa,EAAE,CAAC;YAC1F,OAAO;gBACN,IAAI,EAAE,iBAAiB,CAAC,MAAM;gBAC9B,cAAc,EAAE,iBAAiB;gBACjC,QAAQ,EAAE,YAAY,CAAC,iBAAiB;gBACxC,MAAM,EAAE,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU;gBAClD,IAAI,EAAE,QAAQ;aACd,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,EAAE,IAAI,KAAK,6BAA6B,EAAE,CAAC;YACjF,OAAO;gBACN,IAAI,EAAE,iBAAiB,CAAC,MAAM;gBAC9B,cAAc,EAAE,iBAAiB;gBACjC,QAAQ,EAAE,YAAY,CAAC,yBAAyB;gBAChD,MAAM,EAAE,QAAQ,CAAC,OAAO,IAAI,8BAA8B;gBAC1D,IAAI,EAAE,QAAQ;aACd,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACxD,gEAAgE;YAChE,2EAA2E;YAC3E,qBAAqB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACzD,OAAO;gBACN,IAAI,EAAE,iBAAiB,CAAC,MAAM;gBAC9B,cAAc,EAAE,iBAAiB;gBACjC,QAAQ,EAAE,YAAY,CAAC,qBAAqB;gBAC5C,MAAM,EAAE,QAAQ,EAAE,OAAO,IAAI,6BAA6B,QAAQ,CAAC,MAAM,EAAE;aAC3E,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC7B,gDAAgD;YAChD,kDAAkD;YAClD,qBAAqB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAEzD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAEvD,MAAM,aAAa,GAAG,CAAC,gBAA+B,EAAoB,EAAE;gBAC3E,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACvB,OAAO,SAAS,CAAC;gBAClB,CAAC;gBAED,4BAA4B;gBAC5B,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAClD,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;oBACtC,OAAO,cAAc,CAAC;gBACvB,CAAC;gBAED,wEAAwE;gBACxE,MAAM,kBAAkB,GAAG,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBAC1D,IAAI,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBAC/B,OAAO,SAAS,CAAC;gBAClB,CAAC;gBAED,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,kBAAkB,GAAG,IAAI,CAAC,CAAC;YACzD,CAAC,CAAC;YAEF,MAAM,cAAc,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;YAEjD,OAAO;gBACN,IAAI,EAAE,iBAAiB,CAAC,MAAM;gBAC9B,cAAc,EAAE,iBAAiB;gBACjC,QAAQ,EAAE,YAAY,CAAC,aAAa;gBACpC,MAAM,EAAE,QAAQ,EAAE,OAAO,IAAI,0BAA0B;gBACvD,IAAI,EAAE;oBACL,SAAS,EAAE,QAAQ;oBACnB,UAAU,EAAE,cAAc;iBAC1B;aACD,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC7B,IAAI,WAAmB,CAAC;YAExB,uCAAuC;YACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACf,WAAW,GAAG,IAAI,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACP,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACxC,CAAC;YAED,OAAO;gBACN,IAAI,EAAE,iBAAiB,CAAC,MAAM;gBAC9B,cAAc,EAAE,iBAAiB;gBACjC,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,MAAM,EAAE,WAAW;aACnB,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC7B,OAAO;gBACN,IAAI,EAAE,iBAAiB,CAAC,MAAM;gBAC9B,cAAc,EAAE,iBAAiB;gBACjC,QAAQ,EAAE,YAAY,CAAC,aAAa;gBACpC,MAAM,EAAE,oCAAoC;aAC5C,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC7B,OAAO;gBACN,IAAI,EAAE,iBAAiB,CAAC,MAAM;gBAC9B,cAAc,EAAE,iBAAiB;gBACjC,QAAQ,EAAE,YAAY,CAAC,qBAAqB;gBAC5C,MAAM,EAAE,IAAI;aACZ,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC7B,IAAI,eAAe,GAAG,IAAI,CAAC;YAC3B,eAAe,GAAG,QAAQ,EAAE,OAAO,IAAI,QAAQ,EAAE,IAAI,CAAC;YAEtD,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,QAAQ,EAAE,IAAI,KAAK,mBAAmB,IAAI,QAAQ,EAAE,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBAC3H,OAAO;oBACN,IAAI,EAAE,iBAAiB,CAAC,MAAM;oBAC9B,cAAc,EAAE,iBAAiB;oBACjC,QAAQ,EAAE,YAAY,CAAC,gBAAgB;oBACvC,MAAM,EAAE,mBAAmB;oBAC3B,IAAI,EAAE;wBACL,GAAG,QAAQ,EAAE,OAAO;wBACpB,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;qBAC/C;iBACD,CAAC;YACH,CAAC;YAED,6BAA6B;YAC7B,OAAO;gBACN,IAAI,EAAE,iBAAiB,CAAC,MAAM;gBAC9B,cAAc,EAAE,iBAAiB;gBACjC,QAAQ,EAAE,YAAY,CAAC,WAAW;gBAClC,MAAM,EAAE,eAAe;gBACvB,IAAI,EAAE;oBACL,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;oBAC/C,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;oBAC1D,SAAS,EAAE,QAAQ;iBACnB;aACD,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC7B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO;gBACN,IAAI,EAAE,iBAAiB,CAAC,MAAM;gBAC9B,cAAc,EAAE,iBAAiB;gBACjC,QAAQ,EAAE,YAAY,CAAC,kBAAkB;gBACzC,MAAM,EAAE,yBAAyB,IAAI,EAAE;aACvC,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC7B,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACvC,OAAO;gBACN,IAAI,EAAE,iBAAiB,CAAC,MAAM;gBAC9B,cAAc,EAAE,iBAAiB;gBACjC,QAAQ,EAAE,YAAY,CAAC,cAAc;gBACrC,MAAM,EAAE,oBAAoB;aAC5B,CAAC;QACH,CAAC;IAEF,CAAC;SAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QAE5D,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC7B,OAAO;gBACN,IAAI,EAAE,iBAAiB,CAAC,MAAM;gBAC9B,cAAc,EAAE,iBAAiB;gBACjC,QAAQ,EAAE,YAAY,CAAC,WAAW;gBAClC,MAAM,EAAE,kCAAkC;gBAC1C,IAAI,EAAE;oBACL,UAAU,EAAE,IAAI;oBAChB,YAAY,EAAE,IAAI;oBAClB,SAAS,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,OAAO,EAAE,IAAI,EAAE;iBAClE;aACD,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,iBAAiB,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,GAAG,YAAY,IAAI,IAAI,EAAE,CAAC;QACzC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzB,wBAAwB;QACxB,OAAO;YACN,IAAI,EAAE,iBAAiB,CAAC,MAAM;YAC9B,cAAc,EAAE,iBAAiB;YACjC,QAAQ,EAAE,YAAY,CAAC,WAAW;YAClC,MAAM,EAAE,YAAY;SACpB,CAAC;IACH,CAAC;IAED,UAAU,CAAC,KAAK,CAAC,mBAAmB,QAAQ,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IAE/D,IAAA,wCAA+B,EAAC,gBAAgB,EAAE,gCAAgC,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE5G,OAAO;QACN,IAAI,EAAE,iBAAiB,CAAC,MAAM;QAC9B,cAAc,EAAE,iBAAiB;QACjC,QAAQ,EAAE,YAAY,CAAC,OAAO;QAC9B,MAAM,EAAE,mBAAmB,QAAQ,CAAC,MAAM,IAAI,IAAI,EAAE;KACpD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CACtC,QAA0B,EAC1B,YAA2B,EAC3B,YAAoB,EACpB,OAAsB,EACtB,SAAiB,EACjB,QAAsB,EACtB,oBAA8B,EAC9B,MAA0B,EAC1B,mBAAyC,EACzC,UAAsB;IAEtB,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,wBAAW,CAAC,CAAC;IAC7C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,6BAAiB,CAAC,CAAC;IACzD,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,gCAAe,CAAC,CAAC;IACrD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,+BAAkB,CAAC,CAAC;IAC3D,MAAM,kBAAkB,GAAG,QAAQ,CAAC,GAAG,CAAC,wCAAmB,CAAC,CAAC;IAE7D,wDAAwD;IACxD,MAAM,iBAAiB,GAA2B;QACjD,kBAAkB,EAAE,kBAAkB,CAAC,aAAa;QACpD,aAAa,EAAE,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,yDAAyD;KACjH,CAAC;IACF,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAkB,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,cAAc,EAAE,CAAC;QAC7J,iBAAiB,CAAC,wBAAwB,CAAC,GAAG,MAAM,CAAC;IACtD,CAAC;IACD,MAAM,aAAa,GAAG,6BAAa,CAAC,qBAAqB,CAAC;QACzD,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,0BAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACvC,GAAG,mBAAmB,CAAC,wDAAwD;KAC/E,EAAE;QACF,cAAc,EAAE,YAAY,CAAC,oBAAoB;KACjD,CAAC,CAAC;IAEH,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YAC3C,SAAS;QACV,CAAC,CAAC,sBAAsB;QACxB,aAAa,CAAC,UAAU,CAAC,kBAAkB,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC;IAC1F,CAAC;IAED,kHAAkH;IAClH,6GAA6G;IAC7G,4BAA4B;IAC5B,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,YAAY,CAAC;IAE3D,gBAAgB,CAAC,oBAAoB,CAAC,cAAc,EAAE,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IAE5G,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE1C,yEAAyE;IACzE,OAAO,IAAA,wBAAW,EACjB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,MAAM,IAAA,0BAAiB,EAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAChD,MAAM,EACN,YAAY,EACZ,OAAO,EACP,iBAAiB,EACjB,MAAM,EACN,UAAU,CACV,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QACjB,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACrD,IAAI,IAAI,EAAE,CAAC;YACV,UAAU,CAAC,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAChE,IAAI,WAAW,EAAE,CAAC;YACjB,UAAU,CAAC,KAAK,CAAC,kBAAkB,WAAW,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,mFAAmF;QACnF,8FAA8F;QAC9F,MAAM,cAAc,GAAG,IAAA,oBAAY,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACzD,aAAa,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAElD,+CAA+C;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;QAC9C,aAAa,CAAC,YAAY,CAAC,WAAW,GAAG,WAAW,CAAC;QAErD,UAAU,CAAC,KAAK,CAAC,sBAAsB,IAAA,0CAA6B,EAAC,YAAY,CAAC,oBAAoB,CAAC,WAAW,WAAW,KAAK,CAAC,CAAC;QAEpI,gBAAgB,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QAEhH,OAAO,QAAQ,CAAC;IACjB,CAAC,CAAC;SACA,KAAK,CAAC,KAAK,CAAC,EAAE;QACd,IAAI,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACxC,4EAA4E;YAC5E,MAAM,KAAK,CAAC;QACb,CAAC;QAED,MAAM,gBAAgB,GAAG,aAAa,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAClF,gBAAgB,CAAC,oBAAoB,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAE1H,aAAa,CAAC,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACzD,aAAa,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC3D,aAAa,CAAC,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC/D,aAAa,CAAC,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAEzD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;QAC9C,aAAa,CAAC,YAAY,CAAC,WAAW,GAAG,WAAW,CAAC;QAErD,UAAU,CAAC,KAAK,CAAC,sBAAsB,IAAA,0CAA6B,EAAC,YAAY,CAAC,oBAAoB,CAAC,UAAU,WAAW,KAAK,CAAC,CAAC;QAEnI,gBAAgB,CAAC,oBAAoB,CAAC,eAAe,EAAE,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QAE7G,MAAM,KAAK,CAAC;IACb,CAAC,CAAC;SACD,OAAO,CAAC,GAAG,EAAE;QACb,IAAA,wCAA2B,EAAC,gBAAgB,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACzG,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,QAAsB;IAC/C,QAAQ,QAAQ,EAAE,CAAC;QAClB,KAAK,0BAAY,CAAC,KAAK;YACtB,OAAO,oBAAoB,CAAC;QAC7B,KAAK,0BAAY,CAAC,MAAM;YACvB,OAAO,qBAAqB,CAAC;QAC9B,KAAK,0BAAY,CAAC,cAAc;YAC/B,OAAO,oBAAoB,CAAC;QAC7B,KAAK,0BAAY,CAAC,QAAQ;YACzB,OAAO,uBAAuB,CAAC;QAChC,KAAK,0BAAY,CAAC,QAAQ;YACzB,OAAO,uBAAuB,CAAC;QAChC,KAAK,0BAAY,CAAC,KAAK;YACtB,OAAO,oBAAoB,CAAC;QAC7B,KAAK,0BAAY,CAAC,KAAK;YACtB,OAAO,oBAAoB,CAAC;QAC7B,KAAK,0BAAY,CAAC,cAAc;YAC/B,OAAO,iBAAiB,CAAC;IAC3B,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../../../../src/_internal/platform/openai/node/fetch.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAKhG,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC5B,wCAAmB,CAAA;IACnB,sCAAiB,CAAA;IACjB,0CAAqB,CAAA;AACtB,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B;AAoBD,IAAY,YAgBX;AAhBD,WAAY,YAAY;IACvB,qCAAqB,CAAA;IACrB,+DAA+C,CAAA;IAC/C,iDAAiC,CAAA;IACjC,yDAAyC,CAAA;IACzC,2CAA2B,CAAA;IAC3B,+CAA+B,CAAA;IAC/B,qDAAqC,CAAA;IACrC,2CAA2B,CAAA;IAC3B,+CAA+B,CAAA;IAC/B,kDAAkC,CAAA;IAClC,0DAA0C,CAAA;IAC1C,qDAAqC,CAAA;IACrC,uEAAuD,CAAA;IACvD,qCAAqB,CAAA;IACrB,mCAAmB,CAAA;AACpB,CAAC,EAhBW,YAAY,4BAAZ,YAAY,QAgBvB"}
@@ -2,7 +2,7 @@
2
2
  "name": "copilot-chat",
3
3
  "displayName": "GitHub Copilot Chat",
4
4
  "description": "AI chat features powered by Copilot",
5
- "version": "0.33.0",
5
+ "version": "0.34.0",
6
6
  "build": "1",
7
7
  "internalAIKey": "1058ec22-3c95-4951-8443-f26c1f325911",
8
8
  "completionsCoreVersion": "1.378.1799",
@@ -1714,6 +1714,11 @@
1714
1714
  "when": "true",
1715
1715
  "contents": "%github.copilot.viewsWelcome.agentsPlaceholder%"
1716
1716
  },
1717
+ {
1718
+ "view": "workbench.view.chat.sessions.copilot-cloud-agent",
1719
+ "when": "github.copilot.auth.missingPermissiveSession",
1720
+ "contents": "%github.copilot.viewsWelcome.noPermissiveToken.contents%"
1721
+ },
1717
1722
  {
1718
1723
  "view": "workbench.view.chat.sessions.copilot-cloud-agent",
1719
1724
  "when": "workspaceFolderCount == 0",
@@ -1785,6 +1790,10 @@
1785
1790
  }
1786
1791
  ],
1787
1792
  "commands": [
1793
+ {
1794
+ "command": "github.copilot.chat.triggerPermissiveSignIn",
1795
+ "title": "%github.copilot.command.triggerPermissiveSignIn%"
1796
+ },
1788
1797
  {
1789
1798
  "command": "github.copilot.claude.sessions.refresh",
1790
1799
  "title": "%github.copilot.command.refreshClaudeCodeSessions%",
@@ -3415,6 +3424,10 @@
3415
3424
  }
3416
3425
  ],
3417
3426
  "commandPalette": [
3427
+ {
3428
+ "command": "github.copilot.chat.triggerPermissiveSignIn",
3429
+ "when": "false"
3430
+ },
3418
3431
  {
3419
3432
  "command": "github.copilot.interactiveSession.feedback",
3420
3433
  "when": "github.copilot-chat.activated && !github.copilot.interactiveSession.disabled"
@@ -4341,7 +4354,6 @@
4341
4354
  "inputPlaceholder": "Describe your task, type `#` for adding context",
4342
4355
  "order": 2,
4343
4356
  "description": "The GitHub Copilot CLI Agent works on your local machine",
4344
- "when": "!chatEntitlementSignedOut && chatIsEnabled",
4345
4357
  "capabilities": {
4346
4358
  "supportsFileAttachments": true,
4347
4359
  "supportsProblemAttachments": true,
@@ -4370,7 +4382,6 @@
4370
4382
  "inputPlaceholder": "Describe your task, type `#` for adding context",
4371
4383
  "order": 1,
4372
4384
  "description": "Delegate tasks to the GitHub Copilot Cloud Agent. The agent works asynchronously in the cloud to implement changes, iterates via chat, and can create or update pull requests as needed.",
4373
- "when": "!chatEntitlementSignedOut && chatIsEnabled",
4374
4385
  "capabilities": {
4375
4386
  "supportsFileAttachments": true
4376
4387
  }
@@ -4569,7 +4580,7 @@
4569
4580
  "dependencies": {
4570
4581
  "@anthropic-ai/claude-code": "^1.0.120",
4571
4582
  "@anthropic-ai/sdk": "^0.68.0",
4572
- "@github/copilot": "^0.0.343",
4583
+ "@github/copilot": "^0.0.354",
4573
4584
  "@google/genai": "^1.22.0",
4574
4585
  "@humanwhocodes/gitignore-to-minimatch": "1.0.2",
4575
4586
  "@microsoft/tiktokenizer": "^1.0.10",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vscode/chat-lib",
3
- "version": "0.0.5-13",
3
+ "version": "0.0.5-14",
4
4
  "description": "Chat and inline editing SDK extracted from VS Code Copilot Chat",
5
5
  "main": "dist/src/main.js",
6
6
  "types": "dist/src/main.d.ts",