@theia/ai-core 1.71.0-next.8 → 1.71.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 (79) hide show
  1. package/lib/browser/ai-activation-service.d.ts +9 -0
  2. package/lib/browser/ai-activation-service.d.ts.map +1 -1
  3. package/lib/browser/ai-activation-service.js +5 -0
  4. package/lib/browser/ai-activation-service.js.map +1 -1
  5. package/lib/browser/ai-core-frontend-module.d.ts.map +1 -1
  6. package/lib/browser/ai-core-frontend-module.js +5 -1
  7. package/lib/browser/ai-core-frontend-module.js.map +1 -1
  8. package/lib/browser/ai-settings-service.d.ts +2 -0
  9. package/lib/browser/ai-settings-service.d.ts.map +1 -1
  10. package/lib/browser/ai-settings-service.js +8 -1
  11. package/lib/browser/ai-settings-service.js.map +1 -1
  12. package/lib/browser/frontend-language-model-alias-registry.d.ts +2 -0
  13. package/lib/browser/frontend-language-model-alias-registry.d.ts.map +1 -1
  14. package/lib/browser/frontend-language-model-alias-registry.js +18 -9
  15. package/lib/browser/frontend-language-model-alias-registry.js.map +1 -1
  16. package/lib/browser/frontend-language-model-service.d.ts +6 -4
  17. package/lib/browser/frontend-language-model-service.d.ts.map +1 -1
  18. package/lib/browser/frontend-language-model-service.js +34 -16
  19. package/lib/browser/frontend-language-model-service.js.map +1 -1
  20. package/lib/browser/frontend-prompt-customization-service.d.ts +7 -0
  21. package/lib/browser/frontend-prompt-customization-service.d.ts.map +1 -1
  22. package/lib/browser/frontend-prompt-customization-service.js +39 -13
  23. package/lib/browser/frontend-prompt-customization-service.js.map +1 -1
  24. package/lib/browser/product-name-variable-contribution.d.ts +9 -0
  25. package/lib/browser/product-name-variable-contribution.d.ts.map +1 -0
  26. package/lib/browser/product-name-variable-contribution.js +49 -0
  27. package/lib/browser/product-name-variable-contribution.js.map +1 -0
  28. package/lib/browser/product-name-variable-contribution.spec.d.ts +2 -0
  29. package/lib/browser/product-name-variable-contribution.spec.d.ts.map +1 -0
  30. package/lib/browser/product-name-variable-contribution.spec.js +50 -0
  31. package/lib/browser/product-name-variable-contribution.spec.js.map +1 -0
  32. package/lib/browser/skill-prompt-coordinator.d.ts +1 -1
  33. package/lib/browser/skill-prompt-coordinator.d.ts.map +1 -1
  34. package/lib/browser/skill-prompt-coordinator.js +3 -1
  35. package/lib/browser/skill-prompt-coordinator.js.map +1 -1
  36. package/lib/browser/skill-service.d.ts +5 -0
  37. package/lib/browser/skill-service.d.ts.map +1 -1
  38. package/lib/browser/skill-service.js +6 -0
  39. package/lib/browser/skill-service.js.map +1 -1
  40. package/lib/browser/skills-variable-contribution.spec.js +2 -1
  41. package/lib/browser/skills-variable-contribution.spec.js.map +1 -1
  42. package/lib/browser/trust-aware-preference-reader.d.ts +38 -0
  43. package/lib/browser/trust-aware-preference-reader.d.ts.map +1 -0
  44. package/lib/browser/trust-aware-preference-reader.js +114 -0
  45. package/lib/browser/trust-aware-preference-reader.js.map +1 -0
  46. package/lib/browser/trust-aware-preference-reader.spec.d.ts +2 -0
  47. package/lib/browser/trust-aware-preference-reader.spec.d.ts.map +1 -0
  48. package/lib/browser/trust-aware-preference-reader.spec.js +251 -0
  49. package/lib/browser/trust-aware-preference-reader.spec.js.map +1 -0
  50. package/lib/common/ai-core-preferences.d.ts +5 -7
  51. package/lib/common/ai-core-preferences.d.ts.map +1 -1
  52. package/lib/common/ai-core-preferences.js +34 -37
  53. package/lib/common/ai-core-preferences.js.map +1 -1
  54. package/lib/common/language-model.d.ts +25 -4
  55. package/lib/common/language-model.d.ts.map +1 -1
  56. package/lib/common/language-model.js.map +1 -1
  57. package/lib/common/settings-service.d.ts +7 -1
  58. package/lib/common/settings-service.d.ts.map +1 -1
  59. package/lib/node/backend-language-model-registry.d.ts.map +1 -1
  60. package/lib/node/backend-language-model-registry.js +1 -0
  61. package/lib/node/backend-language-model-registry.js.map +1 -1
  62. package/package.json +12 -12
  63. package/src/browser/ai-activation-service.ts +16 -0
  64. package/src/browser/ai-core-frontend-module.ts +6 -1
  65. package/src/browser/ai-settings-service.ts +10 -1
  66. package/src/browser/frontend-language-model-alias-registry.ts +17 -9
  67. package/src/browser/frontend-language-model-service.ts +36 -20
  68. package/src/browser/frontend-prompt-customization-service.ts +38 -15
  69. package/src/browser/product-name-variable-contribution.spec.ts +68 -0
  70. package/src/browser/product-name-variable-contribution.ts +47 -0
  71. package/src/browser/skill-prompt-coordinator.ts +4 -1
  72. package/src/browser/skill-service.ts +10 -0
  73. package/src/browser/skills-variable-contribution.spec.ts +2 -1
  74. package/src/browser/trust-aware-preference-reader.spec.ts +304 -0
  75. package/src/browser/trust-aware-preference-reader.ts +108 -0
  76. package/src/common/ai-core-preferences.ts +38 -41
  77. package/src/common/language-model.ts +28 -4
  78. package/src/common/settings-service.ts +7 -1
  79. package/src/node/backend-language-model-registry.ts +1 -0
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 EclipseSource GmbH.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.TrustAwarePreferenceReader = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("@theia/core/shared/inversify");
21
+ const core_1 = require("@theia/core");
22
+ const promise_util_1 = require("@theia/core/lib/common/promise-util");
23
+ const preferences_1 = require("@theia/core/lib/common/preferences");
24
+ const workspace_trust_service_1 = require("@theia/workspace/lib/browser/workspace-trust-service");
25
+ /**
26
+ * Helper for reading AI preferences that must ignore workspace/folder scopes
27
+ * when the current workspace is not trusted.
28
+ *
29
+ * Writes should continue to go through `PreferenceService` directly; trust only
30
+ * affects reads.
31
+ */
32
+ let TrustAwarePreferenceReader = class TrustAwarePreferenceReader {
33
+ constructor() {
34
+ /**
35
+ * Cached trust flag updated via `onDidChangeWorkspaceTrust`. Defaults to
36
+ * `false` (fail closed): until the initial trust state has resolved, reads
37
+ * return only user/default scope values. Asynchronous callers should
38
+ * `await ready` before their first read.
39
+ */
40
+ this.trusted = false;
41
+ this._ready = new promise_util_1.Deferred();
42
+ this.onDidChangeTrustEmitter = new core_1.Emitter();
43
+ this.onDidChangeTrust = this.onDidChangeTrustEmitter.event;
44
+ }
45
+ /**
46
+ * Resolves once the initial workspace trust state has been resolved.
47
+ * Callers that need a deterministic trust state before their first read can
48
+ * await this promise.
49
+ */
50
+ get ready() {
51
+ return this._ready.promise;
52
+ }
53
+ init() {
54
+ let initialized = false;
55
+ this.trust.onDidChangeWorkspaceTrust(t => {
56
+ if (!initialized) {
57
+ initialized = true;
58
+ this.trusted = t;
59
+ this._ready.resolve();
60
+ return;
61
+ }
62
+ if (this.trusted === t) {
63
+ return;
64
+ }
65
+ this.trusted = t;
66
+ this.onDidChangeTrustEmitter.fire(t);
67
+ });
68
+ this.trust.getWorkspaceTrust().then(t => {
69
+ if (initialized) {
70
+ return;
71
+ }
72
+ initialized = true;
73
+ this.trusted = t;
74
+ this._ready.resolve();
75
+ }, err => {
76
+ if (initialized) {
77
+ return;
78
+ }
79
+ initialized = true;
80
+ this._ready.reject(err);
81
+ });
82
+ }
83
+ /**
84
+ * Reads the preference, ignoring workspace/folder scopes when the workspace
85
+ * is untrusted. Returns `globalValue ?? defaultValue ?? fallback`.
86
+ */
87
+ get(preferenceName, fallback, resourceUri) {
88
+ if (this.trusted) {
89
+ return this.preferences.get(preferenceName, fallback, resourceUri);
90
+ }
91
+ const inspection = this.preferences.inspect(preferenceName, resourceUri);
92
+ const value = inspection?.globalValue ?? inspection?.defaultValue;
93
+ return value ?? fallback;
94
+ }
95
+ };
96
+ exports.TrustAwarePreferenceReader = TrustAwarePreferenceReader;
97
+ tslib_1.__decorate([
98
+ (0, inversify_1.inject)(preferences_1.PreferenceService),
99
+ tslib_1.__metadata("design:type", Object)
100
+ ], TrustAwarePreferenceReader.prototype, "preferences", void 0);
101
+ tslib_1.__decorate([
102
+ (0, inversify_1.inject)(workspace_trust_service_1.WorkspaceTrustService),
103
+ tslib_1.__metadata("design:type", workspace_trust_service_1.WorkspaceTrustService)
104
+ ], TrustAwarePreferenceReader.prototype, "trust", void 0);
105
+ tslib_1.__decorate([
106
+ (0, inversify_1.postConstruct)(),
107
+ tslib_1.__metadata("design:type", Function),
108
+ tslib_1.__metadata("design:paramtypes", []),
109
+ tslib_1.__metadata("design:returntype", void 0)
110
+ ], TrustAwarePreferenceReader.prototype, "init", null);
111
+ exports.TrustAwarePreferenceReader = TrustAwarePreferenceReader = tslib_1.__decorate([
112
+ (0, inversify_1.injectable)()
113
+ ], TrustAwarePreferenceReader);
114
+ //# sourceMappingURL=trust-aware-preference-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust-aware-preference-reader.js","sourceRoot":"","sources":["../../src/browser/trust-aware-preference-reader.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,4DAAiF;AAEjF,sCAA6C;AAC7C,sEAA+D;AAC/D,oEAAuE;AACvE,kGAA6F;AAE7F;;;;;;GAMG;AAEI,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAAhC;QAQH;;;;;WAKG;QACO,YAAO,GAAG,KAAK,CAAC;QAEP,WAAM,GAAG,IAAI,uBAAQ,EAAQ,CAAC;QAW9B,4BAAuB,GAAG,IAAI,cAAO,EAAW,CAAC;QAC3D,qBAAgB,GAAmB,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;IAgDnF,CAAC;IA1DG;;;;OAIG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC/B,CAAC;IAMS,IAAI;QACV,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE;YACrC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,WAAW,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtB,OAAO;YACX,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;gBACrB,OAAO;YACX,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACpC,IAAI,WAAW,EAAE,CAAC;gBACd,OAAO;YACX,CAAC;YACD,WAAW,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC,EAAE,GAAG,CAAC,EAAE;YACL,IAAI,WAAW,EAAE,CAAC;gBACd,OAAO;YACX,CAAC;YACD,WAAW,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACH,GAAG,CAAI,cAAsB,EAAE,QAAY,EAAE,WAAoB;QAC7D,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAI,cAAc,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAY,cAAc,EAAE,WAAW,CAAC,CAAC;QACpF,MAAM,KAAK,GAAG,UAAU,EAAE,WAAW,IAAI,UAAU,EAAE,YAAY,CAAC;QAClE,OAAQ,KAAuB,IAAI,QAAQ,CAAC;IAChD,CAAC;CACJ,CAAA;AA5EY,gEAA0B;AAGhB;IADlB,IAAA,kBAAM,EAAC,+BAAiB,CAAC;;+DACwB;AAG/B;IADlB,IAAA,kBAAM,EAAC,+CAAqB,CAAC;sCACJ,+CAAqB;yDAAC;AAyBtC;IADT,IAAA,yBAAa,GAAE;;;;sDAgCf;qCA9DQ,0BAA0B;IADtC,IAAA,sBAAU,GAAE;GACA,0BAA0B,CA4EtC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=trust-aware-preference-reader.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust-aware-preference-reader.spec.d.ts","sourceRoot":"","sources":["../../src/browser/trust-aware-preference-reader.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,251 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 EclipseSource GmbH.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const jsdom_1 = require("@theia/core/lib/browser/test/jsdom");
19
+ const disableJSDOM = (0, jsdom_1.enableJSDOM)();
20
+ const frontend_application_config_provider_1 = require("@theia/core/lib/browser/frontend-application-config-provider");
21
+ frontend_application_config_provider_1.FrontendApplicationConfigProvider.set({});
22
+ const chai_1 = require("chai");
23
+ const inversify_1 = require("@theia/core/shared/inversify");
24
+ const core_1 = require("@theia/core");
25
+ const promise_util_1 = require("@theia/core/lib/common/promise-util");
26
+ const preferences_1 = require("@theia/core/lib/common/preferences");
27
+ const workspace_trust_service_1 = require("@theia/workspace/lib/browser/workspace-trust-service");
28
+ const trust_aware_preference_reader_1 = require("./trust-aware-preference-reader");
29
+ disableJSDOM();
30
+ class StubPreferenceService {
31
+ get(_preferenceName, fallback, _resourceUri) {
32
+ return (this.effectiveValue ?? fallback);
33
+ }
34
+ inspect(_preferenceName, _resourceUri) {
35
+ return this.inspectResult;
36
+ }
37
+ }
38
+ class StubWorkspaceTrustService {
39
+ constructor() {
40
+ this.trustDeferred = new promise_util_1.Deferred();
41
+ this.emitter = new core_1.Emitter();
42
+ this.onDidChangeWorkspaceTrust = this.emitter.event;
43
+ }
44
+ getWorkspaceTrust() {
45
+ return this.trustDeferred.promise;
46
+ }
47
+ fireTrustChange(trusted) {
48
+ this.emitter.fire(trusted);
49
+ }
50
+ }
51
+ const PREFERENCE_NAME = 'some.preference';
52
+ describe('TrustAwarePreferenceReader', () => {
53
+ let preferences;
54
+ let trust;
55
+ let reader;
56
+ beforeEach(() => {
57
+ preferences = new StubPreferenceService();
58
+ trust = new StubWorkspaceTrustService();
59
+ const container = new inversify_1.Container();
60
+ container.bind(preferences_1.PreferenceService).toConstantValue(preferences);
61
+ container.bind(workspace_trust_service_1.WorkspaceTrustService).toConstantValue(trust);
62
+ container.bind(trust_aware_preference_reader_1.TrustAwarePreferenceReader).toSelf().inSingletonScope();
63
+ reader = container.get(trust_aware_preference_reader_1.TrustAwarePreferenceReader);
64
+ });
65
+ describe('fail-closed default', () => {
66
+ it('returns only user/default/fallback before ready resolves', () => {
67
+ preferences.effectiveValue = 'workspace';
68
+ preferences.inspectResult = {
69
+ defaultValue: 'default',
70
+ globalValue: 'user',
71
+ workspaceValue: 'workspace'
72
+ };
73
+ const value = reader.get(PREFERENCE_NAME, 'fallback');
74
+ (0, chai_1.expect)(value).to.equal('user');
75
+ });
76
+ it('returns defaultValue when only workspace value exists before ready', () => {
77
+ preferences.effectiveValue = 'workspace';
78
+ preferences.inspectResult = {
79
+ defaultValue: 'default',
80
+ workspaceValue: 'workspace'
81
+ };
82
+ const value = reader.get(PREFERENCE_NAME, 'fallback');
83
+ (0, chai_1.expect)(value).to.equal('default');
84
+ });
85
+ it('returns fallback when nothing is set before ready', () => {
86
+ preferences.effectiveValue = undefined;
87
+ preferences.inspectResult = {};
88
+ const value = reader.get(PREFERENCE_NAME, 'fallback');
89
+ (0, chai_1.expect)(value).to.equal('fallback');
90
+ });
91
+ });
92
+ describe('after ready resolves with trusted = true', () => {
93
+ beforeEach(async () => {
94
+ trust.trustDeferred.resolve(true);
95
+ await reader.ready;
96
+ });
97
+ it('delegates to preferences.get and returns the workspace value', () => {
98
+ preferences.effectiveValue = 'workspace';
99
+ preferences.inspectResult = {
100
+ defaultValue: 'default',
101
+ globalValue: 'user',
102
+ workspaceValue: 'workspace'
103
+ };
104
+ const value = reader.get(PREFERENCE_NAME, 'fallback');
105
+ (0, chai_1.expect)(value).to.equal('workspace');
106
+ });
107
+ });
108
+ describe('after ready resolves with trusted = false', () => {
109
+ beforeEach(async () => {
110
+ trust.trustDeferred.resolve(false);
111
+ await reader.ready;
112
+ });
113
+ it('returns globalValue when both global and workspace values exist', () => {
114
+ preferences.effectiveValue = 'workspace';
115
+ preferences.inspectResult = {
116
+ defaultValue: 'default',
117
+ globalValue: 'user',
118
+ workspaceValue: 'workspace'
119
+ };
120
+ const value = reader.get(PREFERENCE_NAME, 'fallback');
121
+ (0, chai_1.expect)(value).to.equal('user');
122
+ });
123
+ it('falls back to defaultValue when only workspace value exists', () => {
124
+ preferences.effectiveValue = 'workspace';
125
+ preferences.inspectResult = {
126
+ defaultValue: 'default',
127
+ workspaceValue: 'workspace'
128
+ };
129
+ const value = reader.get(PREFERENCE_NAME, 'fallback');
130
+ (0, chai_1.expect)(value).to.equal('default');
131
+ });
132
+ it('returns the supplied fallback when nothing is set', () => {
133
+ preferences.effectiveValue = undefined;
134
+ preferences.inspectResult = {};
135
+ const value = reader.get(PREFERENCE_NAME, 'fallback');
136
+ (0, chai_1.expect)(value).to.equal('fallback');
137
+ });
138
+ });
139
+ describe('onDidChangeTrust', () => {
140
+ beforeEach(async () => {
141
+ trust.trustDeferred.resolve(false);
142
+ await reader.ready;
143
+ });
144
+ it('fires with the new value when the underlying service emits a change', () => {
145
+ const received = [];
146
+ reader.onDidChangeTrust(value => received.push(value));
147
+ trust.fireTrustChange(true);
148
+ (0, chai_1.expect)(received).to.deep.equal([true]);
149
+ });
150
+ it('does not fire when the value is unchanged', () => {
151
+ const received = [];
152
+ reader.onDidChangeTrust(value => received.push(value));
153
+ trust.fireTrustChange(false);
154
+ (0, chai_1.expect)(received).to.deep.equal([]);
155
+ });
156
+ it('has updated the cached trusted flag by the time listeners run', () => {
157
+ preferences.effectiveValue = 'workspace';
158
+ preferences.inspectResult = {
159
+ defaultValue: 'default',
160
+ globalValue: 'user',
161
+ workspaceValue: 'workspace'
162
+ };
163
+ let observedDuringListener;
164
+ reader.onDidChangeTrust(() => {
165
+ observedDuringListener = reader.get(PREFERENCE_NAME, 'fallback');
166
+ });
167
+ trust.fireTrustChange(true);
168
+ (0, chai_1.expect)(observedDuringListener).to.equal('workspace');
169
+ });
170
+ });
171
+ describe('ready', () => {
172
+ it('does not resolve until the initial getWorkspaceTrust promise resolves', async () => {
173
+ let resolved = false;
174
+ reader.ready.then(() => { resolved = true; });
175
+ // Allow microtasks to settle without resolving the deferred.
176
+ await Promise.resolve();
177
+ (0, chai_1.expect)(resolved).to.equal(false);
178
+ trust.trustDeferred.resolve(true);
179
+ await reader.ready;
180
+ (0, chai_1.expect)(resolved).to.equal(true);
181
+ });
182
+ it('resolves via an early change event when it arrives before the initial promise', async () => {
183
+ const received = [];
184
+ reader.onDidChangeTrust(value => received.push(value));
185
+ trust.fireTrustChange(true);
186
+ await reader.ready;
187
+ // The first signal acts as the initial resolution and must not
188
+ // be reported as a change event.
189
+ (0, chai_1.expect)(received).to.deep.equal([]);
190
+ preferences.effectiveValue = 'workspace';
191
+ preferences.inspectResult = {
192
+ defaultValue: 'default',
193
+ globalValue: 'user',
194
+ workspaceValue: 'workspace'
195
+ };
196
+ (0, chai_1.expect)(reader.get(PREFERENCE_NAME, 'fallback')).to.equal('workspace');
197
+ });
198
+ });
199
+ describe('race between initial promise and change event', () => {
200
+ it('ignores a stale getWorkspaceTrust resolution after a change event has initialised the reader', async () => {
201
+ const received = [];
202
+ reader.onDidChangeTrust(value => received.push(value));
203
+ // Change event arrives first and initialises the reader.
204
+ trust.fireTrustChange(false);
205
+ // The (now stale) initial promise resolves to a different value.
206
+ trust.trustDeferred.resolve(true);
207
+ await reader.ready;
208
+ // Allow the stale .then callback to run.
209
+ await Promise.resolve();
210
+ await Promise.resolve();
211
+ preferences.effectiveValue = 'workspace';
212
+ preferences.inspectResult = {
213
+ defaultValue: 'default',
214
+ globalValue: 'user',
215
+ workspaceValue: 'workspace'
216
+ };
217
+ // Cached trust must still reflect the change event (false), not
218
+ // the stale promise resolution (true).
219
+ (0, chai_1.expect)(reader.get(PREFERENCE_NAME, 'fallback')).to.equal('user');
220
+ // No change event should have been fired for the initial value
221
+ // and none for the stale resolution either.
222
+ (0, chai_1.expect)(received).to.deep.equal([]);
223
+ });
224
+ it('ignores a stale getWorkspaceTrust rejection after a change event has initialised the reader', async () => {
225
+ const received = [];
226
+ reader.onDidChangeTrust(value => received.push(value));
227
+ // Avoid an unhandled rejection warning for the (now stale) initial promise.
228
+ trust.getWorkspaceTrust().catch(() => { });
229
+ // Change event arrives first and initialises the reader.
230
+ trust.fireTrustChange(true);
231
+ // The (now stale) initial promise rejects.
232
+ trust.trustDeferred.reject(new Error('stale failure'));
233
+ // ready must resolve (not reject) because the event already initialised it.
234
+ await reader.ready;
235
+ // Allow the stale rejection callback to run.
236
+ await Promise.resolve();
237
+ await Promise.resolve();
238
+ preferences.effectiveValue = 'workspace';
239
+ preferences.inspectResult = {
240
+ defaultValue: 'default',
241
+ globalValue: 'user',
242
+ workspaceValue: 'workspace'
243
+ };
244
+ // Cached trust must reflect the change event (true).
245
+ (0, chai_1.expect)(reader.get(PREFERENCE_NAME, 'fallback')).to.equal('workspace');
246
+ // No change event should have been fired for the initial value.
247
+ (0, chai_1.expect)(received).to.deep.equal([]);
248
+ });
249
+ });
250
+ });
251
+ //# sourceMappingURL=trust-aware-preference-reader.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust-aware-preference-reader.spec.js","sourceRoot":"","sources":["../../src/browser/trust-aware-preference-reader.spec.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  import { PreferenceProxy } from '@theia/core/lib/common';
2
2
  import { interfaces } from '@theia/core/shared/inversify';
3
3
  import { NotificationType } from './notification-types';
4
+ import { ReasoningSettings } from './language-model';
4
5
  import { PreferenceSchema } from '@theia/core/lib/common/preferences/preference-schema';
5
6
  export declare const AI_CORE_PREFERENCES_TITLE: string;
6
7
  export declare const PREFERENCE_NAME_PROMPT_TEMPLATES = "ai-features.promptTemplates.promptTemplatesFolder";
7
8
  export declare const PREFERENCE_NAME_REQUEST_SETTINGS = "ai-features.modelSettings.requestSettings";
8
- export declare const PREFERENCE_NAME_THINKING_MODE = "ai-features.thinkingMode.defaults";
9
+ export declare const PREFERENCE_NAME_REASONING = "ai-features.reasoning.defaults";
9
10
  export declare const PREFERENCE_NAME_MAX_RETRIES = "ai-features.modelSettings.maxRetries";
10
11
  export declare const PREFERENCE_NAME_DEFAULT_NOTIFICATION_TYPE = "ai-features.notifications.default";
11
12
  export declare const PREFERENCE_NAME_SKILL_DIRECTORIES = "ai-features.skills.skillDirectories";
@@ -14,7 +15,7 @@ export declare const aiCorePreferenceSchema: PreferenceSchema;
14
15
  export interface AICoreConfiguration {
15
16
  [PREFERENCE_NAME_PROMPT_TEMPLATES]: string | undefined;
16
17
  [PREFERENCE_NAME_REQUEST_SETTINGS]: Array<RequestSetting> | undefined;
17
- [PREFERENCE_NAME_THINKING_MODE]: Array<ThinkingModeSetting> | undefined;
18
+ [PREFERENCE_NAME_REASONING]: Array<ReasoningPreferenceEntry> | undefined;
18
19
  [PREFERENCE_NAME_MAX_RETRIES]: number | undefined;
19
20
  [PREFERENCE_NAME_DEFAULT_NOTIFICATION_TYPE]: NotificationType | undefined;
20
21
  [PREFERENCE_NAME_SKILL_DIRECTORIES]: string[] | undefined;
@@ -34,12 +35,9 @@ export interface Scope {
34
35
  providerId?: string;
35
36
  agentId?: string;
36
37
  }
37
- export interface ThinkingModeSetting {
38
+ export interface ReasoningPreferenceEntry {
38
39
  scope?: Scope;
39
- thinkingMode?: {
40
- enabled: boolean;
41
- budgetTokens?: number;
42
- };
40
+ reasoning?: ReasoningSettings;
43
41
  }
44
42
  export declare const AICorePreferences: unique symbol;
45
43
  export type AICorePreferences = PreferenceProxy<AICoreConfiguration>;
@@ -1 +1 @@
1
- {"version":3,"file":"ai-core-preferences.d.ts","sourceRoot":"","sources":["../../src/common/ai-core-preferences.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAKH,gBAAgB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AAExF,eAAO,MAAM,yBAAyB,QAAiE,CAAC;AACxG,eAAO,MAAM,gCAAgC,sDAAsD,CAAC;AACpG,eAAO,MAAM,gCAAgC,8CAA8C,CAAC;AAC5F,eAAO,MAAM,6BAA6B,sCAAsC,CAAC;AACjF,eAAO,MAAM,2BAA2B,yCAAyC,CAAC;AAClF,eAAO,MAAM,yCAAyC,sCAAsC,CAAC;AAC7F,eAAO,MAAM,iCAAiC,wCAAwC,CAAC;AAEvF,eAAO,MAAM,iCAAiC,qCAAqC,CAAC;AAEpF,eAAO,MAAM,sBAAsB,EAAE,gBAmMpC,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAChC,CAAC,gCAAgC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvD,CAAC,gCAAgC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IACtE,CAAC,6BAA6B,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;IACxE,CAAC,2BAA2B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClD,CAAC,yCAAyC,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC1E,CAAC,iCAAiC,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAC7D;AAED,MAAM,WAAW,cAAc;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,cAAc,CAAC,EAAE;QAAE,aAAa,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,CAAC;IACnE,eAAe,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CAChD;AAED,MAAM,WAAW,KAAK;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAChC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,YAAY,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D;AAED,eAAO,MAAM,iBAAiB,eAA8B,CAAC;AAC7D,MAAM,MAAM,iBAAiB,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;AAErE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CAKjE;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,4BAA4B,GAAI,SAAS,cAAc,EAAE,QAAQ,KAAK,KAAG,MA0CrF,CAAC"}
1
+ {"version":3,"file":"ai-core-preferences.d.ts","sourceRoot":"","sources":["../../src/common/ai-core-preferences.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAKH,gBAAgB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AAExF,eAAO,MAAM,yBAAyB,QAAiE,CAAC;AACxG,eAAO,MAAM,gCAAgC,sDAAsD,CAAC;AACpG,eAAO,MAAM,gCAAgC,8CAA8C,CAAC;AAC5F,eAAO,MAAM,yBAAyB,mCAAmC,CAAC;AAC1E,eAAO,MAAM,2BAA2B,yCAAyC,CAAC;AAClF,eAAO,MAAM,yCAAyC,sCAAsC,CAAC;AAC7F,eAAO,MAAM,iCAAiC,wCAAwC,CAAC;AAEvF,eAAO,MAAM,iCAAiC,qCAAqC,CAAC;AAEpF,eAAO,MAAM,sBAAsB,EAAE,gBA+LpC,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAChC,CAAC,gCAAgC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvD,CAAC,gCAAgC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IACtE,CAAC,yBAAyB,CAAC,EAAE,KAAK,CAAC,wBAAwB,CAAC,GAAG,SAAS,CAAC;IACzE,CAAC,2BAA2B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClD,CAAC,yCAAyC,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC1E,CAAC,iCAAiC,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAC7D;AAED,MAAM,WAAW,cAAc;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,cAAc,CAAC,EAAE;QAAE,aAAa,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,CAAC;IACnE,eAAe,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CAChD;AAED,MAAM,WAAW,KAAK;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IACrC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,EAAE,iBAAiB,CAAC;CACjC;AAED,eAAO,MAAM,iBAAiB,eAA8B,CAAC;AAC7D,MAAM,MAAM,iBAAiB,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;AAErE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CAKjE;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,4BAA4B,GAAI,SAAS,cAAc,EAAE,QAAQ,KAAK,KAAG,MA0CrF,CAAC"}
@@ -15,14 +15,14 @@
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.getRequestSettingSpecificity = exports.AICorePreferences = exports.aiCorePreferenceSchema = exports.LANGUAGE_MODEL_ALIASES_PREFERENCE = exports.PREFERENCE_NAME_SKILL_DIRECTORIES = exports.PREFERENCE_NAME_DEFAULT_NOTIFICATION_TYPE = exports.PREFERENCE_NAME_MAX_RETRIES = exports.PREFERENCE_NAME_THINKING_MODE = exports.PREFERENCE_NAME_REQUEST_SETTINGS = exports.PREFERENCE_NAME_PROMPT_TEMPLATES = exports.AI_CORE_PREFERENCES_TITLE = void 0;
18
+ exports.getRequestSettingSpecificity = exports.AICorePreferences = exports.aiCorePreferenceSchema = exports.LANGUAGE_MODEL_ALIASES_PREFERENCE = exports.PREFERENCE_NAME_SKILL_DIRECTORIES = exports.PREFERENCE_NAME_DEFAULT_NOTIFICATION_TYPE = exports.PREFERENCE_NAME_MAX_RETRIES = exports.PREFERENCE_NAME_REASONING = exports.PREFERENCE_NAME_REQUEST_SETTINGS = exports.PREFERENCE_NAME_PROMPT_TEMPLATES = exports.AI_CORE_PREFERENCES_TITLE = void 0;
19
19
  exports.bindAICorePreferences = bindAICorePreferences;
20
20
  const core_1 = require("@theia/core");
21
21
  const notification_types_1 = require("./notification-types");
22
22
  exports.AI_CORE_PREFERENCES_TITLE = core_1.nls.localize('theia/ai-core/preferences/title', 'AI Features');
23
23
  exports.PREFERENCE_NAME_PROMPT_TEMPLATES = 'ai-features.promptTemplates.promptTemplatesFolder';
24
24
  exports.PREFERENCE_NAME_REQUEST_SETTINGS = 'ai-features.modelSettings.requestSettings';
25
- exports.PREFERENCE_NAME_THINKING_MODE = 'ai-features.thinkingMode.defaults';
25
+ exports.PREFERENCE_NAME_REASONING = 'ai-features.reasoning.defaults';
26
26
  exports.PREFERENCE_NAME_MAX_RETRIES = 'ai-features.modelSettings.maxRetries';
27
27
  exports.PREFERENCE_NAME_DEFAULT_NOTIFICATION_TYPE = 'ai-features.notifications.default';
28
28
  exports.PREFERENCE_NAME_SKILL_DIRECTORIES = 'ai-features.skills.skillDirectories';
@@ -133,18 +133,29 @@ exports.aiCorePreferenceSchema = {
133
133
  },
134
134
  default: []
135
135
  },
136
- [exports.PREFERENCE_NAME_THINKING_MODE]: {
137
- title: core_1.nls.localize('theia/ai/core/thinkingMode/title', 'Thinking Mode Settings'),
138
- markdownDescription: core_1.nls.localize('theia/ai/core/thinkingMode/mdDescription', 'Allows specifying thinking mode settings for models that support extended thinking capabilities.\n\
139
- Each setting consists of:\n\
140
- - `scope`: Defines when the setting applies:\n\
141
- - `modelId` (optional): The model ID to match\n\
142
- - `providerId` (optional): The provider ID to match\n\
143
- - `agentId` (optional): The agent ID to match\n\
144
- - `thinkingMode`: Thinking mode configuration:\n\
145
- - `enabled` (boolean): Whether thinking mode is enabled\n\
146
- - `budgetTokens` (number, optional): Maximum tokens for thinking (if supported by the model)\n\
147
- Settings are matched based on specificity (agent: 100, model: 10, provider: 1 points).'),
136
+ [exports.PREFERENCE_NAME_REASONING]: {
137
+ title: core_1.nls.localize('theia/ai/core/reasoning/title', 'Reasoning Defaults'),
138
+ markdownDescription: core_1.nls.localize('theia/ai/core/reasoning/mdDescription', 'Default value for the chat input\'s reasoning selector, applied to models that support reasoning.\n\n'
139
+ + 'This is a UI-level setting: the chosen level is translated to the provider\'s native API parameters'
140
+ + ' at request time (e.g. Anthropic `thinking` / `output_config.effort`, OpenAI `reasoning.effort`,'
141
+ + ' Gemini `thinkingConfig`) and takes precedence over any raw values supplied via'
142
+ + ' `#ai-features.modelSettings.requestSettings#` for the same fields.\n\n'
143
+ + 'Each entry consists of:\n'
144
+ + '- `scope`: Defines when the setting applies (`modelId`, `providerId`, `agentId`).\n'
145
+ + '- `reasoning.level`: One of `off`, `minimal`, `low`, `medium`, `high`, `auto`.\n\n'
146
+ + 'Precedence at runtime (highest first): session override via the selector this preference →'
147
+ + ' the model\'s declared default. Whichever the selector displays is what gets sent. To override'
148
+ + ' a provider\'s reasoning field manually via `#ai-features.modelSettings.requestSettings#`, set'
149
+ + ' `reasoning.level` to `off` here so the level-based translation is disabled.\n\n'
150
+ + 'Entries are matched based on scope specificity (agent: 100, model: 10, provider: 1 points).\n\n'
151
+ + 'Example:\n'
152
+ + '```json\n'
153
+ + '[\n'
154
+ + ' { "scope": { "providerId": "anthropic" }, "reasoning": { "level": "medium" } },\n'
155
+ + ' { "scope": { "modelId": "openai/gpt-5" }, "reasoning": { "level": "high" } },\n'
156
+ + ' { "scope": { "agentId": "Coder" }, "reasoning": { "level": "off" } }\n'
157
+ + ']\n'
158
+ + '```'),
148
159
  type: 'array',
149
160
  items: {
150
161
  type: 'object',
@@ -152,36 +163,22 @@ exports.aiCorePreferenceSchema = {
152
163
  scope: {
153
164
  type: 'object',
154
165
  properties: {
155
- modelId: {
156
- type: 'string',
157
- description: core_1.nls.localize('theia/ai/core/thinkingMode/scope/modelId/description', 'The (optional) model id')
158
- },
159
- providerId: {
160
- type: 'string',
161
- description: core_1.nls.localize('theia/ai/core/thinkingMode/scope/providerId/description', 'The (optional) provider id to apply the settings to.')
162
- },
163
- agentId: {
164
- type: 'string',
165
- description: core_1.nls.localize('theia/ai/core/thinkingMode/scope/agentId/description', 'The (optional) agent id to apply the settings to.')
166
- }
166
+ modelId: { type: 'string' },
167
+ providerId: { type: 'string' },
168
+ agentId: { type: 'string' }
167
169
  }
168
170
  },
169
- thinkingMode: {
171
+ reasoning: {
170
172
  type: 'object',
171
173
  additionalProperties: false,
172
- description: core_1.nls.localize('theia/ai/core/thinkingMode/thinkingMode/description', 'Thinking mode configuration.'),
173
174
  properties: {
174
- enabled: {
175
- type: 'boolean',
176
- default: false,
177
- description: core_1.nls.localize('theia/ai/core/thinkingMode/thinkingMode/enabled/description', 'Whether thinking mode is enabled.')
178
- },
179
- budgetTokens: {
180
- type: 'number',
181
- description: core_1.nls.localize('theia/ai/core/thinkingMode/thinkingMode/budgetTokens/description', 'Maximum tokens to use for thinking. Only applicable if the model supports thinking budget.')
175
+ level: {
176
+ type: 'string',
177
+ enum: ['off', 'minimal', 'low', 'medium', 'high', 'auto'],
178
+ default: 'auto'
182
179
  }
183
180
  },
184
- required: ['enabled']
181
+ required: ['level']
185
182
  }
186
183
  },
187
184
  additionalProperties: false
@@ -1 +1 @@
1
- {"version":3,"file":"ai-core-preferences.js","sourceRoot":"","sources":["../../src/common/ai-core-preferences.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-core-preferences.js","sourceRoot":"","sources":["../../src/common/ai-core-preferences.ts"],"names":[],"mappings":"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"}