@codingame/monaco-vscode-view-common-service-override 31.0.0 → 32.0.0

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 (67) hide show
  1. package/index.js +3 -0
  2. package/package.json +3 -3
  3. package/service-override/vs/workbench/contrib/webview/browser/pre/service-worker.js +107 -88
  4. package/vscode/src/vs/sessions/common/theme.d.ts +21 -0
  5. package/vscode/src/vs/sessions/common/theme.js +126 -0
  6. package/vscode/src/vs/workbench/api/browser/viewsExtensionPoint.js +56 -56
  7. package/vscode/src/vs/workbench/browser/actions/helpActions.js +20 -20
  8. package/vscode/src/vs/workbench/browser/actions/listCommands.js +3 -3
  9. package/vscode/src/vs/workbench/browser/actions/navigationActions.js +6 -6
  10. package/vscode/src/vs/workbench/browser/parts/editor/editor.contribution.js +173 -168
  11. package/vscode/src/vs/workbench/browser/parts/editor/editorConfiguration.d.ts +1 -0
  12. package/vscode/src/vs/workbench/browser/parts/editor/editorConfiguration.js +31 -10
  13. package/vscode/src/vs/workbench/browser/parts/titlebar/menubar.contribution.d.ts +1 -0
  14. package/vscode/src/vs/workbench/browser/parts/titlebar/menubar.contribution.js +78 -0
  15. package/vscode/src/vs/workbench/browser/workbench.zenMode.contribution.d.ts +1 -0
  16. package/vscode/src/vs/workbench/browser/workbench.zenMode.contribution.js +140 -0
  17. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution.js +12 -12
  18. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek.js +3 -3
  19. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyTree.js +3 -3
  20. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditor.contribution.js +8 -2
  21. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInputFactory.d.ts +18 -0
  22. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInputFactory.js +84 -1
  23. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditors.d.ts +11 -1
  24. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditors.js +184 -19
  25. package/vscode/src/vs/workbench/contrib/customEditor/common/contributedCustomEditors.js +9 -5
  26. package/vscode/src/vs/workbench/contrib/customEditor/common/customEditor.d.ts +11 -0
  27. package/vscode/src/vs/workbench/contrib/customEditor/common/customEditor.js +9 -2
  28. package/vscode/src/vs/workbench/contrib/customEditor/common/extensionPoint.d.ts +27 -1
  29. package/vscode/src/vs/workbench/contrib/customEditor/common/extensionPoint.js +44 -12
  30. package/vscode/src/vs/workbench/contrib/languageStatus/browser/languageStatus.js +7 -7
  31. package/vscode/src/vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution.js +8 -8
  32. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/commands.js +29 -29
  33. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/devCommands.js +14 -14
  34. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditor.contribution.js +2 -2
  35. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorAccessibilityHelp.js +5 -5
  36. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/colors.js +13 -13
  37. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/conflictActions.js +20 -20
  38. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editorGutter.js +1 -1
  39. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/baseCodeEditorView.js +3 -3
  40. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/inputCodeEditorView.js +10 -10
  41. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/resultCodeEditorView.js +3 -3
  42. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/mergeEditor.js +1 -1
  43. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/viewModel.js +1 -1
  44. package/vscode/src/vs/workbench/contrib/preferences/browser/keyboardLayoutPicker.js +12 -12
  45. package/vscode/src/vs/workbench/contrib/sash/browser/sash.contribution.js +2 -2
  46. package/vscode/src/vs/workbench/contrib/scrollLocking/browser/scrollLocking.js +7 -7
  47. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchy.contribution.js +10 -10
  48. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyPeek.js +3 -3
  49. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyTree.js +3 -3
  50. package/vscode/src/vs/workbench/contrib/webview/browser/overlayWebview.d.ts +3 -2
  51. package/vscode/src/vs/workbench/contrib/webview/browser/overlayWebview.js +16 -8
  52. package/vscode/src/vs/workbench/contrib/webview/browser/resourceLoading.d.ts +9 -5
  53. package/vscode/src/vs/workbench/contrib/webview/browser/resourceLoading.js +22 -5
  54. package/vscode/src/vs/workbench/contrib/webview/browser/webviewElement.d.ts +4 -7
  55. package/vscode/src/vs/workbench/contrib/webview/browser/webviewElement.js +133 -32
  56. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewCommands.js +5 -5
  57. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewPanel.contribution.js +1 -1
  58. package/vscode/src/vs/workbench/contrib/webviewView/browser/webviewViewPane.d.ts +0 -5
  59. package/vscode/src/vs/workbench/contrib/webviewView/browser/webviewViewPane.js +5 -27
  60. package/vscode/src/vs/workbench/services/editor/browser/editorResolverService.d.ts +15 -7
  61. package/vscode/src/vs/workbench/services/editor/browser/editorResolverService.js +129 -55
  62. package/vscode/src/vs/workbench/services/history/browser/historyService.js +9 -9
  63. package/vscode/src/vs/workbench/services/progress/browser/progressService.js +7 -7
  64. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorHandler.js +1 -2
  65. package/vscode/src/vs/workbench/services/views/browser/viewDescriptorService.d.ts +3 -2
  66. package/vscode/src/vs/workbench/services/views/browser/viewDescriptorService.js +31 -33
  67. package/vscode/src/vs/workbench/services/views/browser/viewsService.js +9 -9
package/index.js CHANGED
@@ -49,7 +49,10 @@ import './vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchy.co
49
49
  import '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/parts/views/media/views.css';
50
50
  import './vscode/src/vs/workbench/api/browser/viewsExtensionPoint.js';
51
51
  import './vscode/src/vs/workbench/browser/parts/editor/editor.contribution.js';
52
+ import './vscode/src/vs/workbench/browser/parts/titlebar/menubar.contribution.js';
52
53
  import '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/workbench.contribution';
54
+ import './vscode/src/vs/workbench/browser/workbench.zenMode.contribution.js';
55
+ import './vscode/src/vs/sessions/common/theme.js';
53
56
  import './vscode/src/vs/workbench/contrib/customEditor/browser/customEditor.contribution.js';
54
57
  import './vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewPanel.contribution.js';
55
58
  import './vscode/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpener.contribution.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-view-common-service-override",
3
- "version": "31.0.0",
3
+ "version": "32.0.0",
4
4
  "private": false,
5
5
  "description": "VSCode public API plugged on the monaco editor - view-common service-override",
6
6
  "keywords": [],
@@ -15,8 +15,8 @@
15
15
  },
16
16
  "type": "module",
17
17
  "dependencies": {
18
- "@codingame/monaco-vscode-api": "31.0.0",
19
- "@codingame/monaco-vscode-bulk-edit-service-override": "31.0.0"
18
+ "@codingame/monaco-vscode-api": "32.0.0",
19
+ "@codingame/monaco-vscode-bulk-edit-service-override": "32.0.0"
20
20
  },
21
21
  "main": "index.js",
22
22
  "module": "index.js",
@@ -8,7 +8,7 @@
8
8
  /** @type {ServiceWorkerGlobalScope} */
9
9
  const sw = /** @type {any} */ (self);
10
10
 
11
- const VERSION = 4;
11
+ const VERSION = 5;
12
12
 
13
13
  const resourceCacheName = `vscode-resource-cache-${VERSION}`;
14
14
 
@@ -18,9 +18,6 @@ const searchParams = new URL(location.toString()).searchParams;
18
18
 
19
19
  const remoteAuthority = searchParams.get('remoteAuthority');
20
20
 
21
- /** @type {MessagePort|undefined} */
22
- let outerIframeMessagePort;
23
-
24
21
  /**
25
22
  * Origin used for resources
26
23
  */
@@ -115,6 +112,13 @@ class RequestStore {
115
112
  /** @type {RequestStore<ResourceResponse>} */
116
113
  const resourceRequestStore = new RequestStore();
117
114
 
115
+ /**
116
+ * Safari fallback: map of active chunk-based streaming responses.
117
+ * Maps request id to a WritableStreamDefaultWriter for piping chunks.
118
+ * @type {Map<number, WritableStreamDefaultWriter<Uint8Array>>}
119
+ */
120
+ const safariResourceStreams = new Map();
121
+
118
122
  /**
119
123
  * Map of requested localhost origins to optional redirects.
120
124
  */
@@ -141,28 +145,65 @@ sw.addEventListener('message', async (event) => {
141
145
  /** @type {Client} */
142
146
  const source = event.source;
143
147
  switch (event.data.channel) {
144
- case 'version': {
145
- perfMark('version/request');
146
- outerIframeMessagePort = event.ports[0];
147
- sw.clients.get(source.id).then(client => {
148
- perfMark('version/reply');
149
- if (client) {
150
- client.postMessage({
151
- channel: 'version',
152
- version: VERSION
153
- });
154
- }
155
- });
156
- return;
157
- }
158
148
  case 'did-load-resource': {
159
149
  /** @type {ResourceResponse} */
160
150
  const response = event.data.data;
161
- if (!resourceRequestStore.resolve(response.id, response)) {
151
+ if (response.status === 200 || response.status === 206) {
152
+ /** @type {ReadableStream<Uint8Array>} */
153
+ let stream;
154
+ if (response.stream) {
155
+ // Transferable stream (Chromium/Firefox)
156
+ stream = response.stream;
157
+ } else {
158
+ // Safari fallback: set up a TransformStream for incoming chunks
159
+ const transform = new TransformStream();
160
+ const writer = transform.writable.getWriter();
161
+ safariResourceStreams.set(response.id, writer);
162
+ writer.closed.then(
163
+ () => safariResourceStreams.delete(response.id),
164
+ () => safariResourceStreams.delete(response.id)
165
+ );
166
+ stream = transform.readable;
167
+ }
168
+ resourceRequestStore.resolve(response.id, {
169
+ status: response.status,
170
+ id: response.id,
171
+ path: response.path,
172
+ mime: response.mime,
173
+ etag: response.etag,
174
+ mtime: response.mtime,
175
+ stream,
176
+ range: response.range,
177
+ });
178
+ } else if (!resourceRequestStore.resolve(response.id, response)) {
162
179
  console.log('Could not resolve unknown resource', response.path);
163
180
  }
164
181
  return;
165
182
  }
183
+ // Safari fallback: chunk-based streaming for browsers without transferable streams
184
+ case 'did-load-resource-chunk': {
185
+ const data = event.data.data;
186
+ const writer = safariResourceStreams.get(data.id);
187
+ if (writer) {
188
+ writer.write(data.data).catch(() => {
189
+ safariResourceStreams.delete(data.id);
190
+ });
191
+ }
192
+ return;
193
+ }
194
+ case 'did-load-resource-end': {
195
+ const data = event.data.data;
196
+ const writer = safariResourceStreams.get(data.id);
197
+ if (writer) {
198
+ if (data.error) {
199
+ writer.abort(new Error('Stream error')).catch(() => { /* already cleaning up */ });
200
+ } else {
201
+ writer.close().catch(() => { /* already cleaning up */ });
202
+ }
203
+ safariResourceStreams.delete(data.id);
204
+ }
205
+ return;
206
+ }
166
207
  case 'did-load-localhost': {
167
208
  const data = event.data.data;
168
209
  if (!localhostRequestStore.resolve(data.id, data.location)) {
@@ -264,17 +305,14 @@ async function processResourceRequest(
264
305
  const webviewId = getWebviewIdForClient(client);
265
306
 
266
307
  // Refs https://github.com/microsoft/vscode/issues/244143
267
- // With PlzDedicatedWorker, worker subresources and blob wokers
308
+ // With PlzDedicatedWorker, worker subresources and blob workers
268
309
  // will use clients different from the window client.
269
- // Since we cannot different a worker main resource from a worker subresource
270
- // we will use message channel to the outer iframe provided at the time
271
- // of service worker controller version initialization.
272
310
  if (!webviewId && client.type !== 'worker' && client.type !== 'sharedworker') {
273
311
  console.error('Could not resolve webview id');
274
312
  return notFound();
275
313
  }
276
314
 
277
- const shouldTryCaching = (event.request.method === 'GET');
315
+ const shouldTryCaching = (event.request.method === 'GET' && !event.request.headers.get('range'));
278
316
 
279
317
  /**
280
318
  * @param {RequestStoreResult<ResourceResponse>} result
@@ -309,46 +347,14 @@ async function processResourceRequest(
309
347
  return unauthorized();
310
348
  }
311
349
 
312
- if (entry.status !== 200) {
350
+ if (entry.status !== 200 && entry.status !== 206) {
313
351
  return notFound();
314
352
  }
315
353
 
316
- const byteLength = entry.data.byteLength;
317
-
318
- const range = event.request.headers.get('range');
319
- if (range) {
320
- // To support seeking for videos, we need to handle range requests
321
- const bytes = range.match(/^bytes\=(\d+)\-(\d+)?$/g);
322
- if (bytes) {
323
- // TODO: Right now we are always reading the full file content. This is a bad idea
324
- // for large video files :)
325
-
326
- const start = Number(bytes[1]);
327
- const end = Number(bytes[2]) || byteLength - 1;
328
- return new Response(entry.data.slice(start, end + 1), {
329
- status: 206,
330
- headers: {
331
- ...accessControlHeaders,
332
- 'Content-range': `bytes 0-${end}/${byteLength}`,
333
- }
334
- });
335
- } else {
336
- // We don't understand the requested bytes
337
- return new Response(null, {
338
- status: 416,
339
- headers: {
340
- ...accessControlHeaders,
341
- 'Content-range': `*/${byteLength}`
342
- }
343
- });
344
- }
345
- }
346
-
347
354
  /** @type {Record<string, string>} */
348
355
  const headers = {
349
356
  ...accessControlHeaders,
350
357
  'Content-Type': entry.mime,
351
- 'Content-Length': byteLength.toString(),
352
358
  };
353
359
 
354
360
  if (entry.etag) {
@@ -370,17 +376,25 @@ async function processResourceRequest(
370
376
  headers['Cross-Origin-Opener-Policy'] = 'same-origin';
371
377
  }
372
378
 
373
- const response = new Response(entry.data, {
374
- status: 200,
375
- headers
376
- });
379
+ if (entry.stream) {
380
+ // Range responses: the host already read only the requested range,
381
+ // so we just pipe the stream through with a 206 status.
382
+ if (entry.status === 206 && entry.range) {
383
+ headers['Content-Range'] = entry.range;
384
+ headers['Cache-Control'] = 'no-store';
385
+ return new Response(entry.stream, { status: 206, headers });
386
+ }
377
387
 
378
- if (shouldTryCaching && entry.etag) {
379
- caches.open(resourceCacheName).then(cache => {
380
- return cache.put(event.request, response);
381
- });
388
+ const response = new Response(entry.stream, { status: 200, headers });
389
+
390
+ if (shouldTryCaching && entry.etag) {
391
+ const responseForCache = response.clone();
392
+ caches.open(resourceCacheName).then(cache => {
393
+ return cache.put(event.request, responseForCache);
394
+ });
395
+ }
396
+ return response;
382
397
  }
383
- return response.clone();
384
398
  };
385
399
 
386
400
  /** @type {Response|undefined} */
@@ -392,6 +406,28 @@ async function processResourceRequest(
392
406
 
393
407
  const { requestId, promise } = resourceRequestStore.create();
394
408
 
409
+ // Parse range header to forward to the host so it can read only the needed bytes
410
+ /** @type {{ start: number, end?: number } | undefined} */
411
+ let range;
412
+ const rangeHeader = event.request.headers.get('range');
413
+ if (rangeHeader) {
414
+ const bytes = rangeHeader.match(/^bytes\=(\d+)\-(\d+)?$/);
415
+ if (bytes) {
416
+ range = {
417
+ start: Number(bytes[1]),
418
+ end: bytes[2] !== undefined ? Number(bytes[2]) : undefined,
419
+ };
420
+ } else {
421
+ return new Response(null, {
422
+ status: 416,
423
+ headers: {
424
+ 'Access-Control-Allow-Origin': '*',
425
+ 'Content-Range': '*/*',
426
+ }
427
+ });
428
+ }
429
+ }
430
+
395
431
  if (webviewId) {
396
432
  const parentClients = await getOuterIframeClient(webviewId);
397
433
  if (!parentClients.length) {
@@ -408,18 +444,9 @@ async function processResourceRequest(
408
444
  path: requestUrlComponents.path,
409
445
  query: requestUrlComponents.query,
410
446
  ifNoneMatch: cached?.headers.get('ETag'),
447
+ range,
411
448
  });
412
449
  }
413
- } else if (client.type === 'worker' || client.type === 'sharedworker') {
414
- outerIframeMessagePort?.postMessage({
415
- channel: 'load-resource',
416
- id: requestId,
417
- scheme: requestUrlComponents.scheme,
418
- authority: requestUrlComponents.authority,
419
- path: requestUrlComponents.path,
420
- query: requestUrlComponents.query,
421
- ifNoneMatch: cached?.headers.get('ETag'),
422
- });
423
450
  }
424
451
 
425
452
  return promise.then(entry => resolveResourceEntry(entry, cached));
@@ -442,11 +469,8 @@ async function processLocalhostRequest(
442
469
  }
443
470
  const webviewId = getWebviewIdForClient(client);
444
471
  // Refs https://github.com/microsoft/vscode/issues/244143
445
- // With PlzDedicatedWorker, worker subresources and blob wokers
472
+ // With PlzDedicatedWorker, worker subresources and blob workers
446
473
  // will use clients different from the window client.
447
- // Since we cannot different a worker main resource from a worker subresource
448
- // we will use message channel to the outer iframe provided at the time
449
- // of service worker controller version initialization.
450
474
  if (!webviewId && client.type !== 'worker' && client.type !== 'sharedworker') {
451
475
  console.error('Could not resolve webview id');
452
476
  return fetch(event.request);
@@ -487,12 +511,6 @@ async function processLocalhostRequest(
487
511
  id: requestId,
488
512
  });
489
513
  }
490
- } else if (client.type === 'worker' || client.type === 'sharedworker') {
491
- outerIframeMessagePort?.postMessage({
492
- channel: 'load-localhost',
493
- origin: origin,
494
- id: requestId,
495
- });
496
514
  }
497
515
 
498
516
  return promise.then(resolveRedirect);
@@ -535,8 +553,9 @@ async function getWorkerClientForId(clientId) {
535
553
 
536
554
  /**
537
555
  * @typedef {(
538
- * | { readonly status: 200, id: number, path: string, mime: string, data: Uint8Array, etag: string|undefined, mtime: number|undefined }
539
- * | { readonly status: 304, id: number, path: string, mime: string, mtime: number|undefined }
556
+ * | { readonly status: 200, id: number, path: string, mime: string, stream: ReadableStream<Uint8Array>, etag: string|undefined, mtime: number | undefined }
557
+ * | { readonly status: 206, id: number, path: string, mime: string, stream: ReadableStream<Uint8Array>, range: string, etag: string|undefined, mtime: number | undefined }
558
+ * | { readonly status: 304, id: number, path: string, mime: string, mtime: number | undefined }
540
559
  * | { readonly status: 401, id: number, path: string }
541
560
  * | { readonly status: 404, id: number, path: string }
542
561
  * )} ResourceResponse
@@ -0,0 +1,21 @@
1
+ export declare const agentsBackground: string;
2
+ export declare const agentsPanelBackground: string;
3
+ export declare const agentsPanelForeground: string;
4
+ export declare const agentsPanelBorder: string;
5
+ export declare const agentsGradientTintColor: string;
6
+ export declare const agentFeedbackInputWidgetBorder: string;
7
+ export declare const agentsUpdateButtonDownloadingBackground: string;
8
+ export declare const agentsUpdateButtonDownloadedBackground: string;
9
+ export declare const agentsChatInputBackground: string;
10
+ export declare const agentsChatInputForeground: string;
11
+ export declare const agentsChatInputBorder: string;
12
+ export declare const agentsChatInputFocusBorder: string;
13
+ export declare const agentsChatInputPlaceholderForeground: string;
14
+ export declare const agentsNewSessionButtonBackground: string;
15
+ export declare const agentsNewSessionButtonForeground: string;
16
+ export declare const agentsNewSessionButtonBorder: string;
17
+ export declare const agentsNewSessionButtonHoverBackground: string;
18
+ export declare const agentsBadgeBackground: string;
19
+ export declare const agentsBadgeForeground: string;
20
+ export declare const agentsUnreadBadgeBackground: string;
21
+ export declare const agentsUnreadBadgeForeground: string;
@@ -0,0 +1,126 @@
1
+
2
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
3
+ import { registerColor, transparent } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colorUtils';
4
+ import { contrastBorder, focusBorder } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/baseColors';
5
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/chartsColors';
6
+ import { editorBackground, editorWidgetBorder, toolbarHoverBackground } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/editorColors';
7
+ import { buttonBackground, inputBackground, inputForeground, inputBorder, inputPlaceholderForeground, buttonBorder } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/inputColors';
8
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/listColors';
9
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/menuColors';
10
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/minimapColors';
11
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/miscColors';
12
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/quickpickColors';
13
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/searchColors';
14
+ import { SIDE_BAR_BACKGROUND, SIDE_BAR_FOREGROUND, PANEL_BORDER, ACTIVITY_BAR_BADGE_BACKGROUND, ACTIVITY_BAR_BADGE_FOREGROUND } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/theme';
15
+
16
+ registerColor("agents.background", {
17
+ dark: editorBackground,
18
+ light: SIDE_BAR_BACKGROUND,
19
+ hcDark: editorBackground,
20
+ hcLight: editorBackground
21
+ }, ( localize(
22
+ 2541,
23
+ "Background color of the agent sessions window shell and gradient base."
24
+ )));
25
+ registerColor("agentsPanel.background", {
26
+ dark: SIDE_BAR_BACKGROUND,
27
+ light: editorBackground,
28
+ hcDark: SIDE_BAR_BACKGROUND,
29
+ hcLight: SIDE_BAR_BACKGROUND
30
+ }, ( localize(
31
+ 2542,
32
+ "Background color of the card panels (chat, files, terminal) in the agent sessions window."
33
+ )));
34
+ registerColor("agentsPanel.foreground", SIDE_BAR_FOREGROUND, ( localize(
35
+ 2543,
36
+ "Foreground color of the card panels (chat, files, terminal) in the agent sessions window."
37
+ )));
38
+ registerColor("agentsPanel.border", {
39
+ dark: PANEL_BORDER,
40
+ light: editorWidgetBorder,
41
+ hcDark: contrastBorder,
42
+ hcLight: contrastBorder
43
+ }, ( localize(
44
+ 2544,
45
+ "Border color of the card panels (chat, files, terminal) in the agent sessions window."
46
+ )));
47
+ registerColor("agentsGradient.tintColor", buttonBackground, ( localize(
48
+ 2545,
49
+ "Tint color used in the background gradient of the agent sessions window shell."
50
+ )));
51
+ registerColor("agentFeedbackInputWidget.border", {
52
+ dark: editorWidgetBorder,
53
+ light: editorWidgetBorder,
54
+ hcDark: contrastBorder,
55
+ hcLight: contrastBorder
56
+ }, ( localize(
57
+ 2546,
58
+ "Border color of the agent feedback input widget shown in the editor."
59
+ )));
60
+ registerColor("agentsUpdateButton.downloadingBackground", ( transparent(buttonBackground, 0.4)), ( localize(
61
+ 2547,
62
+ "Background color of the update button to show download progress in the agent sessions window."
63
+ )));
64
+ registerColor("agentsUpdateButton.downloadedBackground", ( transparent(buttonBackground, 0.7)), ( localize(
65
+ 2548,
66
+ "Background color of the update button when download is complete in the agent sessions window."
67
+ )));
68
+ registerColor("agentsChatInput.background", inputBackground, ( localize(
69
+ 2549,
70
+ "Background color of the chat input field in the agent sessions window."
71
+ )));
72
+ registerColor("agentsChatInput.foreground", inputForeground, ( localize(
73
+ 2550,
74
+ "Foreground color of the chat input field in the agent sessions window."
75
+ )));
76
+ registerColor("agentsChatInput.border", inputBorder, ( localize(2551, "Border color of the chat input field in the agent sessions window.")));
77
+ registerColor("agentsChatInput.focusBorder", focusBorder, ( localize(
78
+ 2552,
79
+ "Border color of the chat input field when focused in the agent sessions window."
80
+ )));
81
+ registerColor(
82
+ "agentsChatInput.placeholderForeground",
83
+ inputPlaceholderForeground,
84
+ ( localize(
85
+ 2553,
86
+ "Placeholder text color in the chat input field in the agent sessions window."
87
+ ))
88
+ );
89
+ registerColor("agentsNewSessionButton.background", "#00000000", ( localize(
90
+ 2554,
91
+ "Background color of the New Session button in the agent sessions sidebar."
92
+ )));
93
+ registerColor("agentsNewSessionButton.foreground", SIDE_BAR_FOREGROUND, ( localize(
94
+ 2555,
95
+ "Foreground color of the New Session button in the agent sessions sidebar."
96
+ )));
97
+ registerColor("agentsNewSessionButton.border", buttonBorder, ( localize(
98
+ 2556,
99
+ "Border color of the New Session button in the agent sessions sidebar."
100
+ )));
101
+ registerColor(
102
+ "agentsNewSessionButton.hoverBackground",
103
+ toolbarHoverBackground,
104
+ ( localize(
105
+ 2557,
106
+ "Background color of the New Session button when hovered in the agent sessions sidebar."
107
+ ))
108
+ );
109
+ registerColor("agentsBadge.background", ACTIVITY_BAR_BADGE_BACKGROUND, ( localize(2558, "Background color of badges in the agent sessions window.")));
110
+ registerColor("agentsBadge.foreground", ACTIVITY_BAR_BADGE_FOREGROUND, ( localize(2559, "Foreground color of badges in the agent sessions window.")));
111
+ registerColor(
112
+ "agentsUnreadBadge.background",
113
+ ACTIVITY_BAR_BADGE_BACKGROUND,
114
+ ( localize(
115
+ 2560,
116
+ "Background color of the unread sessions count badge on the sidebar toggle."
117
+ ))
118
+ );
119
+ registerColor(
120
+ "agentsUnreadBadge.foreground",
121
+ ACTIVITY_BAR_BADGE_FOREGROUND,
122
+ ( localize(
123
+ 2561,
124
+ "Foreground color of the unread sessions count badge on the sidebar toggle."
125
+ ))
126
+ );