@codingame/monaco-vscode-telemetry-service-override 37.2.0 → 37.3.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 (26) hide show
  1. package/common.d.ts +3 -0
  2. package/common.js +18 -0
  3. package/index.d.ts +2 -3
  4. package/index.js +2 -18
  5. package/package.json +10 -2
  6. package/session.d.ts +2 -0
  7. package/session.js +2 -0
  8. package/vscode/src/vs/base/common/editArcTracker.js +6 -6
  9. package/vscode/src/vs/platform/telemetry/common/telemetryLogAppender.js +1 -1
  10. package/vscode/src/vs/platform/telemetry/common/telemetryService.js +21 -21
  11. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/aiContributionFeature.js +1 -1
  12. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/editStats/aiStatsChart.js +1 -1
  13. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/editStats/aiStatsFeature.js +3 -3
  14. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/editStats/aiStatsStatusBar.js +12 -12
  15. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/editTelemetry.contribution.js +6 -6
  16. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/helpers/annotatedDocuments.js +6 -6
  17. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/helpers/documentWithAnnotatedEdits.js +5 -5
  18. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/helpers/vscodeObservableWorkspace.js +2 -2
  19. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/agentHostEditMarkerService.js +5 -3
  20. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/arcTelemetryReporter.js +1 -1
  21. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/arcTelemetrySender.js +27 -13
  22. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/editSourceTrackingFeature.js +6 -6
  23. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/editSourceTrackingImpl.js +1 -1
  24. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/editTracker.js +5 -5
  25. package/vscode/src/vs/workbench/contrib/editTelemetry/common/arcTracker.js +2 -2
  26. package/vscode/src/vs/workbench/contrib/telemetry/browser/telemetry.contribution.js +1 -1
package/common.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import { type IEditorOverrideServices } from "@codingame/monaco-vscode-api/vscode/vs/editor/standalone/browser/standaloneServices";
2
+ export type { ITelemetryData, TelemetryLevel } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry";
3
+ export default function getServiceOverride(): IEditorOverrideServices;
package/common.js ADDED
@@ -0,0 +1,18 @@
1
+
2
+ import '@codingame/monaco-vscode-api/vscode/vs/editor/standalone/browser/standaloneServices';
3
+ import { SyncDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/descriptors';
4
+ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
5
+ import { TelemetryService } from './vscode/src/vs/workbench/services/telemetry/browser/telemetryService.js';
6
+ import { IDataChannelService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dataChannel/common/dataChannel.service';
7
+ import { DataChannelService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/dataChannel/browser/dataChannelService';
8
+ import './vscode/src/vs/workbench/contrib/telemetry/browser/telemetry.contribution.js';
9
+ import './vscode/src/vs/workbench/contrib/editTelemetry/browser/editTelemetry.contribution.js';
10
+
11
+ function getServiceOverride() {
12
+ return {
13
+ [ITelemetryService.toString()]: new SyncDescriptor(TelemetryService, [], true),
14
+ [IDataChannelService.toString()]: new SyncDescriptor(DataChannelService, [], true)
15
+ };
16
+ }
17
+
18
+ export { getServiceOverride as default };
package/index.d.ts CHANGED
@@ -1,3 +1,2 @@
1
- import { type IEditorOverrideServices } from "@codingame/monaco-vscode-api/vscode/vs/editor/standalone/browser/standaloneServices";
2
- export type { ITelemetryData, TelemetryLevel } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry";
3
- export default function getServiceOverride(): IEditorOverrideServices;
1
+ export { default } from "./common.js";
2
+ export * from "./common.js";
package/index.js CHANGED
@@ -1,20 +1,4 @@
1
1
 
2
- import '@codingame/monaco-vscode-api/vscode/vs/editor/standalone/browser/standaloneServices';
3
- import { SyncDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/descriptors';
4
- import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
5
- import { TelemetryService } from './vscode/src/vs/workbench/services/telemetry/browser/telemetryService.js';
6
- import { IDataChannelService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dataChannel/common/dataChannel.service';
7
- import { DataChannelService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/dataChannel/browser/dataChannelService';
8
- import './vscode/src/vs/workbench/contrib/telemetry/browser/telemetry.contribution.js';
9
- import './vscode/src/vs/workbench/contrib/editTelemetry/browser/editTelemetry.contribution.js';
10
- import './vscode/src/vs/workbench/contrib/bracketPairColorizer2Telemetry/browser/bracketPairColorizer2Telemetry.contribution.js';
2
+ export { default } from './common.js';
11
3
  import './vscode/src/vs/workbench/services/policies/browser/policyTelemetry.contribution.js';
12
-
13
- function getServiceOverride() {
14
- return {
15
- [ITelemetryService.toString()]: new SyncDescriptor(TelemetryService, [], true),
16
- [IDataChannelService.toString()]: new SyncDescriptor(DataChannelService, [], true)
17
- };
18
- }
19
-
20
- export { getServiceOverride as default };
4
+ import './vscode/src/vs/workbench/contrib/bracketPairColorizer2Telemetry/browser/bracketPairColorizer2Telemetry.contribution.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-telemetry-service-override",
3
- "version": "37.2.0",
3
+ "version": "37.3.0",
4
4
  "private": false,
5
5
  "description": "VSCode public API plugged on the monaco editor - telemetry service-override",
6
6
  "keywords": [],
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "type": "module",
17
17
  "dependencies": {
18
- "@codingame/monaco-vscode-api": "37.2.0",
18
+ "@codingame/monaco-vscode-api": "37.3.0",
19
19
  "@microsoft/1ds-core-js": "3.2.18",
20
20
  "@microsoft/1ds-post-js": "3.2.18"
21
21
  },
@@ -33,6 +33,14 @@
33
33
  "types": "./vscode/src/*.d.ts",
34
34
  "default": "./vscode/src/*.js"
35
35
  },
36
+ "./session": {
37
+ "types": "./session.d.ts",
38
+ "default": "./session.js"
39
+ },
40
+ "./common": {
41
+ "types": "./common.d.ts",
42
+ "default": "./common.js"
43
+ },
36
44
  "./*": {
37
45
  "types": "./*.d.ts",
38
46
  "default": "./*.js"
package/session.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export { default } from "./common.js";
2
+ export * from "./common.js";
package/session.js ADDED
@@ -0,0 +1,2 @@
1
+
2
+ export { default } from './common.js';
@@ -16,10 +16,10 @@ class EditArcTracker {
16
16
  return result;
17
17
  }
18
18
  handleEdits(edit) {
19
- const untrackedEdit = normalizeReplacements(( edit.replacements.map(replacement => ({
19
+ const untrackedEdit = normalizeReplacements(edit.replacements.map(replacement => ({
20
20
  ...replacement,
21
21
  isTracked: false
22
- }))));
22
+ })));
23
23
  this._updatedTrackedEdit = compose(this._updatedTrackedEdit, untrackedEdit);
24
24
  }
25
25
  getAcceptedRestrainedCharactersCount() {
@@ -45,7 +45,7 @@ class EditArcTracker {
45
45
  }
46
46
  }
47
47
  function removeCommonText(replacements, originalText, isTracked) {
48
- return ( replacements.map(replacement => {
48
+ return replacements.map(replacement => {
49
49
  const oldText = originalText.substring(replacement.start, replacement.endExclusive);
50
50
  const prefixLength = commonPrefixLength(oldText, replacement.text);
51
51
  const suffixLength = Math.min(
@@ -59,7 +59,7 @@ function removeCommonText(replacements, originalText, isTracked) {
59
59
  text: replacement.text.substring(prefixLength, replacement.text.length - suffixLength),
60
60
  isTracked
61
61
  };
62
- }));
62
+ });
63
63
  }
64
64
  function normalizeReplacements(replacements) {
65
65
  const result = [];
@@ -189,13 +189,13 @@ function getLineCountInfo(replacements, initialText) {
189
189
  };
190
190
  }
191
191
  const lineOffsets = ( new LineOffsets(initialText));
192
- const textReplacements = ( replacements.map(replacement => ({
192
+ const textReplacements = replacements.map(replacement => ({
193
193
  start: lineOffsets.getPosition(replacement.start),
194
194
  end: lineOffsets.getPosition(replacement.endExclusive),
195
195
  startOffset: replacement.start,
196
196
  endOffset: replacement.endExclusive,
197
197
  text: replacement.text
198
- })));
198
+ }));
199
199
  let deletedLineCounts = 0;
200
200
  let insertedLineCounts = 0;
201
201
  let current = [];
@@ -20,7 +20,7 @@ let TelemetryLogAppender = class TelemetryLogAppender extends Disposable {
20
20
  const justLoggingAndNotSending = isLoggingOnly(productService, environmentService);
21
21
  const logSuffix = justLoggingAndNotSending ? " (Not Sent)" : "";
22
22
  this.logger = this._register(loggerService.createLogger(id, {
23
- name: ( localize(2469, "Telemetry{0}", logSuffix)),
23
+ name: ( localize(2487, "Telemetry{0}", logSuffix)),
24
24
  group: TelemetryLogGroup,
25
25
  hidden: true
26
26
  }));
@@ -180,28 +180,28 @@ let TelemetryService = class TelemetryService {
180
180
  TelemetryService = TelemetryService_1 = ( __decorate([( __param(1, IConfigurationService)), ( __param(2, IProductService))], TelemetryService));
181
181
  function getTelemetryLevelSettingDescription() {
182
182
  const telemetryText = ( localize(
183
- 2470,
183
+ 2488,
184
184
  "Controls {0} telemetry, first-party extension telemetry, and participating third-party extension telemetry. Some third party extensions might not respect this setting. Consult the specific extension's documentation to be sure. Telemetry helps us better understand how {0} is performing, where improvements need to be made, and how features are being used.",
185
185
  product.nameLong
186
186
  ));
187
187
  const externalLinksStatement = !product.privacyStatementUrl ? ( localize(
188
- 2471,
188
+ 2489,
189
189
  "Read more about the [data we collect]({0}).",
190
190
  "https://aka.ms/vscode-telemetry"
191
191
  )) : ( localize(
192
- 2472,
192
+ 2490,
193
193
  "Read more about the [data we collect]({0}) and our [privacy statement]({1}).",
194
194
  "https://aka.ms/vscode-telemetry",
195
195
  product.privacyStatementUrl
196
196
  ));
197
197
  const restartString = !isWeb ? ( localize(
198
- 2473,
198
+ 2491,
199
199
  "A full restart of the application is necessary for crash reporting changes to take effect."
200
200
  )) : "";
201
- const crashReportsHeader = ( localize(2474, "Crash Reports"));
202
- const errorsHeader = ( localize(2475, "Error Telemetry"));
203
- const usageHeader = ( localize(2476, "Usage Data"));
204
- const telemetryTableDescription = ( localize(2477, "The following table outlines the data sent with each setting:"));
201
+ const crashReportsHeader = ( localize(2492, "Crash Reports"));
202
+ const errorsHeader = ( localize(2493, "Error Telemetry"));
203
+ const usageHeader = ( localize(2494, "Usage Data"));
204
+ const telemetryTableDescription = ( localize(2495, "The following table outlines the data sent with each setting:"));
205
205
  const telemetryTable = `
206
206
  | | ${crashReportsHeader} | ${errorsHeader} | ${usageHeader} |
207
207
  |:------|:-------------:|:---------------:|:----------:|
@@ -211,7 +211,7 @@ function getTelemetryLevelSettingDescription() {
211
211
  | off | - | - | - |
212
212
  `;
213
213
  const deprecatedSettingNote = ( localize(
214
- 2478,
214
+ 2496,
215
215
  "****Note:*** If this setting is 'off', no telemetry will be sent regardless of other telemetry settings. If this setting is set to anything except 'off' and telemetry is disabled with deprecated settings, no telemetry will be sent.*"
216
216
  ));
217
217
  const telemetryDescription = `
@@ -233,7 +233,7 @@ configurationRegistry.registerConfiguration({
233
233
  "id": TELEMETRY_SECTION_ID,
234
234
  "order": 1,
235
235
  "type": "object",
236
- "title": ( localize(2479, "Telemetry")),
236
+ "title": ( localize(2497, "Telemetry")),
237
237
  "properties": {
238
238
  [TELEMETRY_SETTING_ID]: {
239
239
  "type": "string",
@@ -243,7 +243,7 @@ configurationRegistry.registerConfiguration({
243
243
  TelemetryConfiguration.CRASH,
244
244
  TelemetryConfiguration.OFF
245
245
  ],
246
- "enumDescriptions": [( localize(2480, "Sends usage data, errors, and crash reports.")), ( localize(2481, "Sends general error telemetry and crash reports.")), ( localize(2482, "Sends OS level crash reports.")), ( localize(2483, "Disables all product telemetry."))],
246
+ "enumDescriptions": [( localize(2498, "Sends usage data, errors, and crash reports.")), ( localize(2499, "Sends general error telemetry and crash reports.")), ( localize(2500, "Sends OS level crash reports.")), ( localize(2501, "Disables all product telemetry."))],
247
247
  "markdownDescription": getTelemetryLevelSettingDescription(),
248
248
  "default": TelemetryConfiguration.ON,
249
249
  "restricted": true,
@@ -256,20 +256,20 @@ configurationRegistry.registerConfiguration({
256
256
  localization: {
257
257
  description: {
258
258
  key: "telemetry.telemetryLevel.policyDescription",
259
- value: ( localize(2484, "Controls the level of telemetry."))
259
+ value: ( localize(2502, "Controls the level of telemetry."))
260
260
  },
261
261
  enumDescriptions: [{
262
262
  key: "telemetry.telemetryLevel.default",
263
- value: ( localize(2480, "Sends usage data, errors, and crash reports."))
263
+ value: ( localize(2498, "Sends usage data, errors, and crash reports."))
264
264
  }, {
265
265
  key: "telemetry.telemetryLevel.error",
266
- value: ( localize(2481, "Sends general error telemetry and crash reports."))
266
+ value: ( localize(2499, "Sends general error telemetry and crash reports."))
267
267
  }, {
268
268
  key: "telemetry.telemetryLevel.crash",
269
- value: ( localize(2482, "Sends OS level crash reports."))
269
+ value: ( localize(2500, "Sends OS level crash reports."))
270
270
  }, {
271
271
  key: "telemetry.telemetryLevel.off",
272
- value: ( localize(2483, "Disables all product telemetry."))
272
+ value: ( localize(2501, "Disables all product telemetry."))
273
273
  }]
274
274
  }
275
275
  }
@@ -278,7 +278,7 @@ configurationRegistry.registerConfiguration({
278
278
  type: "boolean",
279
279
  default: true,
280
280
  description: ( localize(
281
- 2485,
281
+ 2503,
282
282
  "Enable feedback mechanisms such as the issue reporter, surveys, and other feedback options."
283
283
  )),
284
284
  policy: {
@@ -289,7 +289,7 @@ configurationRegistry.registerConfiguration({
289
289
  description: {
290
290
  key: "telemetry.feedback.enabled",
291
291
  value: ( localize(
292
- 2485,
292
+ 2503,
293
293
  "Enable feedback mechanisms such as the issue reporter, surveys, and other feedback options."
294
294
  ))
295
295
  }
@@ -299,11 +299,11 @@ configurationRegistry.registerConfiguration({
299
299
  [TELEMETRY_OLD_SETTING_ID]: {
300
300
  "type": "boolean",
301
301
  "markdownDescription": !product.privacyStatementUrl ? ( localize(
302
- 2486,
302
+ 2504,
303
303
  "Enable diagnostic data to be collected. This helps us to better understand how {0} is performing and where improvements need to be made.",
304
304
  product.nameLong
305
305
  )) : ( localize(
306
- 2487,
306
+ 2505,
307
307
  "Enable diagnostic data to be collected. This helps us to better understand how {0} is performing and where improvements need to be made. [Read more]({1}) about what we collect and our privacy statement.",
308
308
  product.nameLong,
309
309
  product.privacyStatementUrl
@@ -311,7 +311,7 @@ configurationRegistry.registerConfiguration({
311
311
  "default": true,
312
312
  "restricted": true,
313
313
  "markdownDeprecationMessage": ( localize(
314
- 2488,
314
+ 2506,
315
315
  "If this setting is false, no telemetry will be sent regardless of the new setting's value. Deprecated in favor of the {0} setting.",
316
316
  `\`#${TELEMETRY_SETTING_ID}#\``
317
317
  )),
@@ -77,7 +77,7 @@ class AiContributionFeature extends Disposable {
77
77
  return false;
78
78
  }
79
79
  _clearAiContributions(resources) {
80
- const uris = resources ? ( resources.map(r => URI.revive(r))) : [...( this._trackers.keys())];
80
+ const uris = resources ? resources.map(r => URI.revive(r)) : [...( this._trackers.keys())];
81
81
  for (const uri of uris) {
82
82
  const entry = this._trackers.get(uri);
83
83
  if (entry) {
@@ -82,7 +82,7 @@ function createAiStatsChart(options) {
82
82
  text.setAttribute("text-anchor", "middle");
83
83
  text.setAttribute("fill", asCssVariable(chartsForeground));
84
84
  text.setAttribute("font-size", "11px");
85
- text.textContent = ( localize(12150, "No data yet"));
85
+ text.textContent = ( localize(14275, "No data yet"));
86
86
  g.appendChild(text);
87
87
  return container;
88
88
  }
@@ -23,7 +23,7 @@ let AiStatsFeature = class AiStatsFeature extends Disposable {
23
23
  this._storageService = _storageService;
24
24
  this._instantiationService = _instantiationService;
25
25
  this._dataVersion = observableValue(this, 0);
26
- this.aiRate = ( this._dataVersion.map(() => {
26
+ this.aiRate = this._dataVersion.map(() => {
27
27
  const val = this._data.getValue();
28
28
  if (!val) {
29
29
  return 0;
@@ -36,7 +36,7 @@ let AiStatsFeature = class AiStatsFeature extends Disposable {
36
36
  return session.aiCharacters / sum;
37
37
  });
38
38
  return r;
39
- }));
39
+ });
40
40
  this.sessionCount = derived(this, r => {
41
41
  this._dataVersion.read(r);
42
42
  const val = this._data.getValue();
@@ -80,7 +80,7 @@ let AiStatsFeature = class AiStatsFeature extends Disposable {
80
80
  const lastRequestIds = [];
81
81
  const obs = mapObservableArrayCached(this, annotatedDocuments.documents, (doc, store) => {
82
82
  store.add(runOnChange(doc.documentWithAnnotations.value, (_val, _prev, edit) => {
83
- const e = AnnotatedStringEdit.compose(( edit.map(e => e.edit)));
83
+ const e = AnnotatedStringEdit.compose(edit.map(e => e.edit));
84
84
  const curSession = ( new Lazy(() => this._getDataAndSession()));
85
85
  for (const r of e.replacements) {
86
86
  if (isAiEdit(r.data.editSource)) {
@@ -21,7 +21,7 @@ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/obse
21
21
  import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
22
22
  import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
23
23
 
24
- registerCss(media);
24
+ registerCss(media, 1);
25
25
  let AiStatsStatusBar = class AiStatsStatusBar extends Disposable {
26
26
  static {
27
27
  this.hot = createHotClass(this);
@@ -36,8 +36,8 @@ let AiStatsStatusBar = class AiStatsStatusBar extends Disposable {
36
36
  const statusBarItem = this._createStatusBar().keepUpdated(reader.store);
37
37
  const store = this._register(( new DisposableStore()));
38
38
  reader.store.add(this._statusbarService.addEntry({
39
- name: ( localize(12151, "Inline Suggestions")),
40
- ariaLabel: ( localize(12152, "Inline suggestions status bar")),
39
+ name: ( localize(14276, "Inline Suggestions")),
40
+ ariaLabel: ( localize(14277, "Inline suggestions status bar")),
41
41
  text: "",
42
42
  tooltip: {
43
43
  element: async _token => {
@@ -93,7 +93,7 @@ let AiStatsStatusBar = class AiStatsStatusBar extends Disposable {
93
93
  }
94
94
  }, [n.div({
95
95
  style: {
96
- width: ( this._aiStatsFeature.aiRate.map(v => `${v * 100}%`)),
96
+ width: this._aiStatsFeature.aiRate.map(v => `${v * 100}%`),
97
97
  backgroundColor: "currentColor"
98
98
  }
99
99
  })])])]);
@@ -102,7 +102,7 @@ let AiStatsStatusBar = class AiStatsStatusBar extends Disposable {
102
102
  AiStatsStatusBar = ( __decorate([( __param(1, IStatusbarService)), ( __param(2, ICommandService)), ( __param(3, ITelemetryService))], AiStatsStatusBar));
103
103
  function createAiStatsHover(options) {
104
104
  const chartViewMode = observableValue("chartViewMode", "days");
105
- const aiRatePercent = ( options.data.aiRate.map(r => `${Math.round(r * 100)}%`));
105
+ const aiRatePercent = options.data.aiRate.map(r => `${Math.round(r * 100)}%`);
106
106
  const createToggleButton = (mode, tooltip, icon) => {
107
107
  return derived(reader => {
108
108
  const currentMode = chartViewMode.read(reader);
@@ -140,7 +140,7 @@ function createAiStatsHover(options) {
140
140
  style: {
141
141
  flex: 1
142
142
  }
143
- }, [( localize(12153, "AI Usage Statistics"))]), n.div({
143
+ }, [( localize(14278, "AI Usage Statistics"))]), n.div({
144
144
  style: {
145
145
  marginLeft: "auto"
146
146
  }
@@ -151,7 +151,7 @@ function createAiStatsHover(options) {
151
151
  enabled: true,
152
152
  run: options.onOpenSettings,
153
153
  class: ThemeIcon.asClassName(Codicon.gear),
154
- tooltip: ( localize(12154, "Configure"))
154
+ tooltip: ( localize(14279, "Configure"))
155
155
  },
156
156
  options: {
157
157
  icon: true,
@@ -167,13 +167,13 @@ function createAiStatsHover(options) {
167
167
  flex: 1,
168
168
  paddingRight: "4px"
169
169
  }
170
- }, [( localize(12155, "AI vs Typing Average: {0}", aiRatePercent.get()))])]), n.div({
170
+ }, [( localize(14280, "AI vs Typing Average: {0}", aiRatePercent.get()))])]), n.div({
171
171
  style: {
172
172
  flex: 1,
173
173
  paddingRight: "4px"
174
174
  }
175
175
  }, [( localize(
176
- 12156,
176
+ 14281,
177
177
  "Accepted inline suggestions today: {0}",
178
178
  options.data.acceptedInlineSuggestionsToday.get()
179
179
  ))]),
@@ -195,14 +195,14 @@ function createAiStatsHover(options) {
195
195
  style: {
196
196
  flex: 1
197
197
  }
198
- }, [( chartViewMode.map(mode => mode === "days" ? ( localize(12157, "AI Rate by Day")) : ( localize(12158, "AI Rate by Session"))))]), n.div({
198
+ }, [chartViewMode.map(mode => mode === "days" ? ( localize(14282, "AI Rate by Day")) : ( localize(14283, "AI Rate by Session")))]), n.div({
199
199
  class: "chart-view-toggle",
200
200
  style: {
201
201
  marginLeft: "auto",
202
202
  display: "flex",
203
203
  gap: "2px"
204
204
  }
205
- }, [createToggleButton("days", ( localize(12159, "Days")), Codicon.calendar), createToggleButton("sessions", ( localize(12160, "Sessions")), Codicon.listFlat)])]),
205
+ }, [createToggleButton("days", ( localize(14284, "Days")), Codicon.calendar), createToggleButton("sessions", ( localize(14285, "Sessions")), Codicon.listFlat)])]),
206
206
  derived(reader => {
207
207
  const sessions = options.data.sessions.read(reader);
208
208
  const viewMode = chartViewMode.read(reader);
@@ -243,7 +243,7 @@ class CommandWithArgs {
243
243
  }
244
244
  function openSettingsCommand(options = {}) {
245
245
  return ( new CommandWithArgs("workbench.action.openSettings", [{
246
- query: options.ids ? ( options.ids.map(id => `@id:${id}`)).join(" ") : undefined
246
+ query: options.ids ? options.ids.map(id => `@id:${id}`).join(" ") : undefined
247
247
  }]));
248
248
  }
249
249
 
@@ -22,12 +22,12 @@ const configurationRegistry = ( Registry.as(Extensions.Configuration));
22
22
  configurationRegistry.registerConfiguration({
23
23
  id: "task",
24
24
  order: 100,
25
- title: ( localize(12161, "Edit Telemetry")),
25
+ title: ( localize(14286, "Edit Telemetry")),
26
26
  type: "object",
27
27
  properties: {
28
28
  [EDIT_TELEMETRY_SETTING_ID]: {
29
29
  markdownDescription: ( localize(
30
- 12162,
30
+ 14287,
31
31
  "Controls whether to enable telemetry for edit statistics (only sends statistics if general telemetry is enabled)."
32
32
  )),
33
33
  type: "boolean",
@@ -42,7 +42,7 @@ configurationRegistry.registerConfiguration({
42
42
  },
43
43
  [AI_STATS_SETTING_ID]: {
44
44
  markdownDescription: ( localize(
45
- 12163,
45
+ 14288,
46
46
  "Controls whether to enable AI statistics in the editor. The gauge shows the average AI rate across 5-minute sessions, where each session's rate is calculated as AI-inserted characters divided by total inserted characters."
47
47
  )),
48
48
  type: "boolean",
@@ -54,7 +54,7 @@ configurationRegistry.registerConfiguration({
54
54
  },
55
55
  [EDIT_TELEMETRY_DETAILS_SETTING_ID]: {
56
56
  markdownDescription: ( localize(
57
- 12164,
57
+ 14289,
58
58
  "Controls whether to enable telemetry for detailed edit statistics (only sends statistics if general telemetry is enabled)."
59
59
  )),
60
60
  type: "boolean",
@@ -65,13 +65,13 @@ configurationRegistry.registerConfiguration({
65
65
  }
66
66
  },
67
67
  [EDIT_TELEMETRY_SHOW_STATUS_BAR]: {
68
- markdownDescription: ( localize(12165, "Controls whether to show the status bar for edit telemetry.")),
68
+ markdownDescription: ( localize(14290, "Controls whether to show the status bar for edit telemetry.")),
69
69
  type: "boolean",
70
70
  default: false,
71
71
  tags: ["experimental"]
72
72
  },
73
73
  [EDIT_TELEMETRY_SHOW_DECORATIONS]: {
74
- markdownDescription: ( localize(12166, "Controls whether to show decorations for edit telemetry.")),
74
+ markdownDescription: ( localize(14291, "Controls whether to show decorations for edit telemetry.")),
75
75
  type: "boolean",
76
76
  default: false,
77
77
  tags: ["experimental"]
@@ -21,11 +21,11 @@ let AnnotatedDocuments = class AnnotatedDocuments extends Disposable {
21
21
  this._states = mapObservableArrayCached(this, this._workspace.documents, (doc, store) => {
22
22
  const docIsVisible = derived(reader => uriVisibilityProvider.isVisible(doc.uri, reader));
23
23
  const wasEverVisible = derivedObservableWithCache(this, (reader, lastVal) => lastVal || docIsVisible.read(reader));
24
- return ( wasEverVisible.map(v => v ? store.add(
24
+ return wasEverVisible.map(v => v ? store.add(
25
25
  this._instantiationService.createInstance(AnnotatedDocument, doc, docIsVisible)
26
- ) : undefined));
26
+ ) : undefined);
27
27
  });
28
- this.documents = ( this._states.map((vals, reader) => ( vals.map(v => v.read(reader))).filter(isDefined)));
28
+ this.documents = this._states.map((vals, reader) => vals.map(v => v.read(reader)).filter(isDefined));
29
29
  this.documents.recomputeInitiallyAndOnChange(this._store);
30
30
  }
31
31
  };
@@ -40,9 +40,9 @@ let UriVisibilityProvider = class UriVisibilityProvider {
40
40
  onDidRemoveGroupSignal.read(reader);
41
41
  return this._editorGroupsService.groups;
42
42
  });
43
- this.visibleUris = ( mapObservableArrayCached(this, groups, g => {
43
+ this.visibleUris = mapObservableArrayCached(this, groups, g => {
44
44
  const editors = observableFromEvent(this, g.onDidModelChange, () => g.editors);
45
- return ( editors.map(e => ( e.map(editor => EditorResourceAccessor.getCanonicalUri(editor)))));
45
+ return editors.map(e => e.map(editor => EditorResourceAccessor.getCanonicalUri(editor)));
46
46
  }).map((editors, reader) => {
47
47
  const map = ( new Map());
48
48
  for (const urisObs of editors) {
@@ -53,7 +53,7 @@ let UriVisibilityProvider = class UriVisibilityProvider {
53
53
  }
54
54
  }
55
55
  return map;
56
- }));
56
+ });
57
57
  }
58
58
  isVisible(uri, reader) {
59
59
  return ( this.visibleUris.read(reader).has(( uri.toString())));
@@ -17,10 +17,10 @@ class DocumentWithSourceAnnotatedEdits extends Disposable {
17
17
  this._originalDoc = _originalDoc;
18
18
  const v = this.value = observableValue(this, _originalDoc.value.get());
19
19
  this._register(runOnChange(this._originalDoc.value, (val, _prevVal, edits) => {
20
- const eComposed = AnnotatedStringEdit.compose(( edits.map(e => {
20
+ const eComposed = AnnotatedStringEdit.compose(edits.map(e => {
21
21
  const editSourceData = ( new EditSourceData(e.reason));
22
22
  return e.mapData(() => editSourceData);
23
- })));
23
+ }));
24
24
  v.set(val, undefined, {
25
25
  edit: eComposed
26
26
  });
@@ -228,7 +228,7 @@ let CombineStreamedChanges = class CombineStreamedChanges extends Disposable {
228
228
  do {
229
229
  reader.readBufferedOrThrow();
230
230
  last = peeked;
231
- chatEdit = chatEdit.compose(AnnotatedStringEdit.compose(( peeked.change.map(c => c.edit))));
231
+ chatEdit = chatEdit.compose(AnnotatedStringEdit.compose(peeked.change.map(c => c.edit)));
232
232
  const peekedOrUndefined = await reader.peekTimeout(1000);
233
233
  if (!peekedOrUndefined) {
234
234
  break;
@@ -245,7 +245,7 @@ let CombineStreamedChanges = class CombineStreamedChanges extends Disposable {
245
245
  }
246
246
  } else {
247
247
  reader.readBufferedOrThrow();
248
- const e = AnnotatedStringEdit.compose(( peeked.change.map(c => c.edit)));
248
+ const e = AnnotatedStringEdit.compose(peeked.change.map(c => c.edit));
249
249
  this._value.set(peeked.value, undefined, {
250
250
  edit: e
251
251
  });
@@ -285,7 +285,7 @@ class MinimizeEditsProcessor extends Disposable {
285
285
  const v = this.value = observableValue(this, _originalDoc.value.get());
286
286
  let prevValue = this._originalDoc.value.get().value;
287
287
  this._register(runOnChange(this._originalDoc.value, (val, _prevVal, edits) => {
288
- const eComposed = AnnotatedStringEdit.compose(( edits.map(e => e.edit)));
288
+ const eComposed = AnnotatedStringEdit.compose(edits.map(e => e.edit));
289
289
  const e = eComposed.removeCommonSuffixAndPrefix(prevValue);
290
290
  prevValue = val.value;
291
291
  v.set(val, undefined, {
@@ -30,12 +30,12 @@ let VSCodeWorkspace = class VSCodeWorkspace extends ObservableWorkspace {
30
30
  const models = this._textModelService.getModels();
31
31
  return models;
32
32
  });
33
- const documents = ( mapObservableArrayCached(this, models, (m, store) => {
33
+ const documents = mapObservableArrayCached(this, models, (m, store) => {
34
34
  if (m.isTooLargeForSyncing()) {
35
35
  return undefined;
36
36
  }
37
37
  return store.add(( new VSCodeDocument(m)));
38
- }).recomputeInitiallyAndOnChange(this._store).map(d => d.filter(isDefined)));
38
+ }).recomputeInitiallyAndOnChange(this._store).map(d => d.filter(isDefined));
39
39
  this._documents = documents;
40
40
  }
41
41
  dispose() {
@@ -401,7 +401,9 @@ let AgentHostEditMarkerService = class AgentHostEditMarkerService extends Dispos
401
401
  }
402
402
  }
403
403
  _queuePendingCoverageGapAcknowledgements(resourceKey, acknowledgements) {
404
- const pending = ( new Map(( (this._pendingCoverageGapAcknowledgements.get(resourceKey)?.acknowledgements ?? []).map(acknowledgement => [acknowledgement.id, acknowledgement]))));
404
+ const pending = ( new Map(
405
+ (this._pendingCoverageGapAcknowledgements.get(resourceKey)?.acknowledgements ?? []).map(acknowledgement => [acknowledgement.id, acknowledgement])
406
+ ));
405
407
  for (const acknowledgement of acknowledgements) {
406
408
  pending.set(acknowledgement.id, acknowledgement);
407
409
  }
@@ -497,7 +499,7 @@ let AgentHostEditMarkerService = class AgentHostEditMarkerService extends Dispos
497
499
  if (afterDigest !== observation.afterDigest) {
498
500
  continue;
499
501
  }
500
- const sources = ( consumed.map(index => markers[index].source));
502
+ const sources = consumed.map(index => markers[index].source);
501
503
  const firstSource = sources[0];
502
504
  const source = firstSource && sources.every(
503
505
  candidate => candidate !== undefined && candidate.modelId === firstSource.modelId && candidate.harness === firstSource.harness
@@ -639,7 +641,7 @@ function isValidCoverageGapAcknowledgements(acknowledgements, lastSequence) {
639
641
  if (acknowledgements === undefined) {
640
642
  return true;
641
643
  }
642
- if (!Array.isArray(acknowledgements) || acknowledgements.length === 0 || ( new Set(( acknowledgements.map(acknowledgement => acknowledgement.id)))).size !== acknowledgements.length) {
644
+ if (!Array.isArray(acknowledgements) || acknowledgements.length === 0 || ( new Set(acknowledgements.map(acknowledgement => acknowledgement.id))).size !== acknowledgements.length) {
643
645
  return false;
644
646
  }
645
647
  return acknowledgements.every(
@@ -30,7 +30,7 @@ let ArcTelemetryReporter = class ArcTelemetryReporter extends Disposable {
30
30
  this._telemetryService = _telemetryService;
31
31
  this._arcTracker = ( new ArcTracker(this._documentValueBeforeTrackedEdit, this._trackedEdit));
32
32
  this._store.add(runOnChange(this._document.value, (_val, _prevVal, changes) => {
33
- const edit = BaseStringEdit.composeOrUndefined(( changes.map(c => c.edit)));
33
+ const edit = BaseStringEdit.composeOrUndefined(changes.map(c => c.edit));
34
34
  if (edit) {
35
35
  this._arcTracker.handleEdits(edit);
36
36
  }
@@ -19,7 +19,7 @@ let EditTelemetryReportInlineEditArcSender = class EditTelemetryReportInlineEdit
19
19
  super();
20
20
  this._instantiationService = _instantiationService;
21
21
  this._register(runOnChange(docWithAnnotatedEdits.value, (_val, _prev, changes) => {
22
- const edit = AnnotatedStringEdit.compose(( changes.map(c => c.edit)));
22
+ const edit = AnnotatedStringEdit.compose(changes.map(c => c.edit));
23
23
  if (!( edit.replacements.some(r => r.data.editSource.metadata.source === "inlineCompletionAccept"))) {
24
24
  return;
25
25
  }
@@ -32,8 +32,14 @@ let EditTelemetryReportInlineEditArcSender = class EditTelemetryReportInlineEdit
32
32
  }
33
33
  const data = edit.replacements[0].data.editSource.metadata;
34
34
  const docWithJustReason = createDocWithJustReason(docWithAnnotatedEdits, this._store);
35
- const reporter = this._store.add(
36
- this._instantiationService.createInstance(ArcTelemetryReporter, ( [0, 30, 120, 300, 600, 900].map(s => s * 1000)), _prev, docWithJustReason, scmRepoBridge, edit, res => {
35
+ const reporter = this._store.add(this._instantiationService.createInstance(
36
+ ArcTelemetryReporter,
37
+ [0, 30, 120, 300, 600, 900].map(s => s * 1000),
38
+ _prev,
39
+ docWithJustReason,
40
+ scmRepoBridge,
41
+ edit,
42
+ res => {
37
43
  res.telemetryService.publicLog2("editTelemetry.reportInlineEditArc", {
38
44
  extensionId: data.$extensionId ?? "",
39
45
  extensionVersion: data.$extensionVersion ?? "",
@@ -50,10 +56,11 @@ let EditTelemetryReportInlineEditArcSender = class EditTelemetryReportInlineEdit
50
56
  currentDeletedLineCount: res.currentDeletedLineCount,
51
57
  ...forwardToChannelIf(isCopilotLikeExtension(data.$extensionId))
52
58
  });
53
- }, () => {
59
+ },
60
+ () => {
54
61
  this._store.delete(reporter);
55
- })
56
- );
62
+ }
63
+ ));
57
64
  }));
58
65
  }
59
66
  };
@@ -63,7 +70,7 @@ let CreateSuggestionIdForChatOrInlineChatCaller = class CreateSuggestionIdForCha
63
70
  super();
64
71
  this._aiEditTelemetryService = _aiEditTelemetryService;
65
72
  this._register(runOnChange(docWithAnnotatedEdits.value, (_val, _prev, changes) => {
66
- const edit = AnnotatedStringEdit.compose(( changes.map(c => c.edit)));
73
+ const edit = AnnotatedStringEdit.compose(changes.map(c => c.edit));
67
74
  const supportedSource = ( new Set(["Chat.applyEdits", "inlineChat.applyEdits"]));
68
75
  if (!( edit.replacements.some(r => ( supportedSource.has(r.data.editSource.metadata.source))))) {
69
76
  return;
@@ -116,7 +123,7 @@ let EditTelemetryReportEditArcForChatOrInlineChatSender = class EditTelemetryRep
116
123
  this._instantiationService = _instantiationService;
117
124
  this._randomService = _randomService;
118
125
  this._register(runOnChange(docWithAnnotatedEdits.value, (_val, _prev, changes) => {
119
- const edit = AnnotatedStringEdit.compose(( changes.map(c => c.edit)));
126
+ const edit = AnnotatedStringEdit.compose(changes.map(c => c.edit));
120
127
  const supportedSource = ( new Set(["Chat.applyEdits", "inlineChat.applyEdits"]));
121
128
  if (!( edit.replacements.some(r => ( supportedSource.has(r.data.editSource.metadata.source))))) {
122
129
  return;
@@ -130,8 +137,14 @@ let EditTelemetryReportEditArcForChatOrInlineChatSender = class EditTelemetryRep
130
137
  const data = edit.replacements[0].data.editSource;
131
138
  const uniqueEditId = this._randomService.generateUuid();
132
139
  const docWithJustReason = createDocWithJustReason(docWithAnnotatedEdits, this._store);
133
- const reporter = this._store.add(
134
- this._instantiationService.createInstance(ArcTelemetryReporter, ( [0, 60, 300].map(s => s * 1000)), _prev, docWithJustReason, scmRepoBridge, edit, res => {
140
+ const reporter = this._store.add(this._instantiationService.createInstance(
141
+ ArcTelemetryReporter,
142
+ [0, 60, 300].map(s => s * 1000),
143
+ _prev,
144
+ docWithJustReason,
145
+ scmRepoBridge,
146
+ edit,
147
+ res => {
135
148
  res.telemetryService.publicLog2("editTelemetry.reportEditArc", {
136
149
  sourceKeyCleaned: data.toKey(Number.MAX_SAFE_INTEGER, {
137
150
  $extensionId: false,
@@ -164,10 +177,11 @@ let EditTelemetryReportEditArcForChatOrInlineChatSender = class EditTelemetryRep
164
177
  currentDeletedLineCount: res.currentDeletedLineCount,
165
178
  ...forwardToChannelIf(isCopilotLikeExtension(data.props.$extensionId))
166
179
  });
167
- }, () => {
180
+ },
181
+ () => {
168
182
  this._store.delete(reporter);
169
- })
170
- );
183
+ }
184
+ ));
171
185
  }));
172
186
  }
173
187
  };
@@ -55,7 +55,7 @@ let EditTrackingFeature = class EditTrackingFeature extends Disposable {
55
55
  const extensions = observableFromEvent(this._extensionService.onDidChangeExtensions, () => {
56
56
  return this._extensionService.extensions;
57
57
  });
58
- const extensionIds = derived(reader => ( new Set(( extensions.read(reader).map(e => e.identifier.value.toLowerCase())))));
58
+ const extensionIds = derived(reader => ( new Set(extensions.read(reader).map(e => e.identifier.value.toLowerCase()))));
59
59
  function getExtensionInfoObs(extensionId) {
60
60
  const extIdLowerCase = extensionId.toLowerCase();
61
61
  return derived(reader => ( extensionIds.read(reader).has(extIdLowerCase)));
@@ -111,13 +111,13 @@ let EditTrackingFeature = class EditTrackingFeature extends Disposable {
111
111
  return [];
112
112
  }
113
113
  const ranges = (docsState.longtermTracker.read(reader)?.getTrackedRanges(reader)) ?? [];
114
- return ( ranges.map(r => ({
114
+ return ranges.map(r => ({
115
115
  range: doc.value.read(undefined).getTransformer().getRange(r.range),
116
116
  options: {
117
117
  description: "editSourceTracking",
118
118
  inlineClassName: decorations.get(r.source)
119
119
  }
120
- })));
120
+ }));
121
121
  })));
122
122
  }
123
123
  }).recomputeInitiallyAndOnChange(reader.store);
@@ -160,7 +160,7 @@ let EditTrackingFeature = class EditTrackingFeature extends Disposable {
160
160
  if (data.totalModifiedCharactersInFinalState === 0) {
161
161
  continue;
162
162
  }
163
- editSources.push(...( trackedRanges.map(r => r.source)));
163
+ editSources.push(...trackedRanges.map(r => r.source));
164
164
  const filteredData = Object.fromEntries(
165
165
  Object.entries(data).filter(([_, value]) => !(typeof value === "number") || value !== 0)
166
166
  );
@@ -220,9 +220,9 @@ let EditTrackingFeature = class EditTrackingFeature extends Disposable {
220
220
  });
221
221
  }
222
222
  }
223
- const agendaItems = ( editSourceInfo.map(
223
+ const agendaItems = editSourceInfo.map(
224
224
  info => `<span style="background-color:${info.color};border-radius:3px;">${info.name}</span>`
225
- ));
225
+ );
226
226
  return agendaItems.join(" ");
227
227
  }
228
228
  };
@@ -79,7 +79,7 @@ let EditSourceTrackingImpl = class EditSourceTrackingImpl extends Disposable {
79
79
  this._agentHostEditMarkerService
80
80
  ))];
81
81
  });
82
- this.docsState = ( this._states.map(entries => ( new Map(entries))));
82
+ this.docsState = this._states.map(entries => ( new Map(entries)));
83
83
  this.docsState.recomputeInitiallyAndOnChange(this._store);
84
84
  }
85
85
  };
@@ -31,7 +31,7 @@ class DocumentEditSourceTracker extends Disposable {
31
31
  this._invalidatedExternalObservationIds = ( new Set());
32
32
  this._reattributedExternalObservations = ( new Map());
33
33
  this._documentStore.add(runOnChange(this._doc.value, (_val, _prevVal, edits) => {
34
- let eComposed = AnnotatedStringEdit.compose(( edits.map(e => e.edit)));
34
+ let eComposed = AnnotatedStringEdit.compose(edits.map(e => e.edit));
35
35
  if (eComposed.replacements.every(e => e.data.source.category === "external")) {
36
36
  if (this._edits.isEmpty() && !this._externalEditCorrelation)
37
37
  ; else {
@@ -139,13 +139,13 @@ class DocumentEditSourceTracker extends Disposable {
139
139
  getTrackedRanges(reader, includeSuppressed = false) {
140
140
  this._update.read(reader);
141
141
  const ranges = this._edits.getNewRanges();
142
- return ( ranges.map((r, idx) => {
142
+ return ranges.map((r, idx) => {
143
143
  const e = this._edits.replacements[idx];
144
144
  const representative = this.getRepresentative(e.data.key) ?? e.data.representative;
145
145
  const source = representative === e.data.representative ? e.data.source : EditSourceBase.create(representative);
146
146
  const te = ( new TrackedEdit(e.replaceRange, r, e.data.key, source, representative));
147
147
  return te;
148
- })).filter(edit => this._shouldIncludeKey(edit.sourceKey, includeSuppressed));
148
+ }).filter(edit => this._shouldIncludeKey(edit.sourceKey, includeSuppressed));
149
149
  }
150
150
  isEmpty() {
151
151
  return this.getAllKeys().length === 0;
@@ -190,12 +190,12 @@ class DocumentEditSourceTracker extends Disposable {
190
190
  $fileExtension: "text.w"
191
191
  },
192
192
  "value": txt,
193
- "decorations": ( ranges.map(r => {
193
+ "decorations": ranges.map(r => {
194
194
  return {
195
195
  range: [r.range.start, r.range.endExclusive],
196
196
  color: r.source.getColor()
197
197
  };
198
- }))
198
+ })
199
199
  };
200
200
  }
201
201
  }
@@ -23,11 +23,11 @@ class ArcTracker {
23
23
  }
24
24
  function toArcTextEdit(edit) {
25
25
  return {
26
- replacements: ( edit.replacements.map(replacement => ({
26
+ replacements: edit.replacements.map(replacement => ({
27
27
  start: replacement.replaceRange.start,
28
28
  endExclusive: replacement.replaceRange.endExclusive,
29
29
  text: replacement.newText
30
- })))
30
+ }))
31
31
  };
32
32
  }
33
33
 
@@ -176,7 +176,7 @@ let TelemetryContribution = class TelemetryContribution extends Disposable {
176
176
  constructor() {
177
177
  super({
178
178
  id: "workbench.action.showTelemetry",
179
- title: ( localize2(16803, "Show Telemetry")),
179
+ title: ( localize2(18946, "Show Telemetry")),
180
180
  category: Categories.Developer,
181
181
  f1: true
182
182
  });