@theia/ai-openai 1.76.0-next.28 → 1.76.0-next.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/browser/openai-frontend-application-contribution.d.ts +18 -10
- package/lib/browser/openai-frontend-application-contribution.d.ts.map +1 -1
- package/lib/browser/openai-frontend-application-contribution.js +65 -63
- package/lib/browser/openai-frontend-application-contribution.js.map +1 -1
- package/lib/common/openai-language-models-manager.d.ts +18 -1
- package/lib/common/openai-language-models-manager.d.ts.map +1 -1
- package/lib/common/openai-preferences.d.ts +2 -1
- package/lib/common/openai-preferences.d.ts.map +1 -1
- package/lib/common/openai-preferences.js +16 -13
- package/lib/common/openai-preferences.js.map +1 -1
- package/lib/node/openai-language-model.d.ts +21 -1
- package/lib/node/openai-language-model.d.ts.map +1 -1
- package/lib/node/openai-language-model.js +26 -13
- package/lib/node/openai-language-model.js.map +1 -1
- package/lib/node/openai-language-models-manager-impl.d.ts +38 -1
- package/lib/node/openai-language-models-manager-impl.d.ts.map +1 -1
- package/lib/node/openai-language-models-manager-impl.js +87 -3
- package/lib/node/openai-language-models-manager-impl.js.map +1 -1
- package/lib/node/openai-language-models-manager-impl.spec.js +171 -0
- package/lib/node/openai-language-models-manager-impl.spec.js.map +1 -1
- package/package.json +6 -6
- package/src/browser/openai-frontend-application-contribution.ts +76 -67
- package/src/common/openai-language-models-manager.ts +19 -2
- package/src/common/openai-preferences.ts +17 -12
- package/src/node/openai-language-model.ts +40 -14
- package/src/node/openai-language-models-manager-impl.spec.ts +178 -0
- package/src/node/openai-language-models-manager-impl.ts +104 -6
|
@@ -1,19 +1,27 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DiscoveringProviderContribution, ModelDiscoveryMessages } from '@theia/ai-core/lib/browser';
|
|
2
|
+
import { DiscoveredModel } from '@theia/ai-core/lib/common';
|
|
2
3
|
import { OpenAiLanguageModelsManager, OpenAiModelDescription } from '../common';
|
|
3
4
|
import { AICorePreferences } from '@theia/ai-core/lib/common/ai-core-preferences';
|
|
4
|
-
import {
|
|
5
|
-
export declare class OpenAiFrontendApplicationContribution
|
|
6
|
-
protected
|
|
7
|
-
protected manager: OpenAiLanguageModelsManager;
|
|
5
|
+
import { PreferenceChange } from '@theia/core';
|
|
6
|
+
export declare class OpenAiFrontendApplicationContribution extends DiscoveringProviderContribution<OpenAiModelDescription> {
|
|
7
|
+
protected readonly manager: OpenAiLanguageModelsManager;
|
|
8
8
|
protected aiCorePreferences: AICorePreferences;
|
|
9
|
-
protected
|
|
9
|
+
protected readonly providerId = "openAiOfficial";
|
|
10
|
+
protected readonly providerLabel = "OpenAI";
|
|
11
|
+
protected readonly modelOverridesPreference = "ai-features.openAiOfficial.modelOverrides";
|
|
12
|
+
protected readonly allowEnvironmentApiKeyPreference = "ai-features.openAiOfficial.allowEnvironmentApiKey";
|
|
13
|
+
/** The registered ids carry the `openai/` prefix, while the provider node is `openAiOfficial`. */
|
|
14
|
+
protected get modelIdPrefix(): string;
|
|
10
15
|
protected prevCustomModels: Partial<OpenAiModelDescription>[];
|
|
11
|
-
|
|
12
|
-
protected
|
|
16
|
+
protected get discoveryMessages(): ModelDiscoveryMessages;
|
|
17
|
+
protected initializeProvider(): void;
|
|
18
|
+
protected handlePreferenceChange(event: PreferenceChange): void;
|
|
13
19
|
protected handleCustomModelChanges(newCustomModels: Partial<OpenAiModelDescription>[]): void;
|
|
14
|
-
protected
|
|
20
|
+
protected updateDiscoveredModels(): void;
|
|
21
|
+
/** Re-applies the model descriptions of the configured custom endpoints. */
|
|
22
|
+
protected updateCustomModels(): void;
|
|
15
23
|
/** Per-model capabilities are resolved by the backend from the model id; see `openai-model-defaults.ts`. */
|
|
16
|
-
protected
|
|
24
|
+
protected createModelDescription(model: DiscoveredModel): OpenAiModelDescription;
|
|
17
25
|
protected createCustomModelDescriptionsFromPreferences(preferences: Partial<OpenAiModelDescription>[]): OpenAiModelDescription[];
|
|
18
26
|
}
|
|
19
27
|
//# sourceMappingURL=openai-frontend-application-contribution.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-frontend-application-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/openai-frontend-application-contribution.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"openai-frontend-application-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/openai-frontend-application-contribution.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,+BAA+B,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAsB,MAAM,WAAW,CAAC;AAKpG,OAAO,EACH,iBAAiB,EAEpB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAO,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAKpD,qBACa,qCAAsC,SAAQ,+BAA+B,CAAC,sBAAsB,CAAC;IAG9G,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;IAGxD,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAE/C,SAAS,CAAC,QAAQ,CAAC,UAAU,oBAA+B;IAC5D,SAAS,CAAC,QAAQ,CAAC,aAAa,YAAY;IAC5C,SAAS,CAAC,QAAQ,CAAC,wBAAwB,+CAAwB;IACnE,SAAS,CAAC,QAAQ,CAAC,gCAAgC,uDAA0B;IAE7E,kGAAkG;IAClG,cAAuB,aAAa,IAAI,MAAM,CAE7C;IAED,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,sBAAsB,CAAC,EAAE,CAAM;IAEnE,SAAS,KAAK,iBAAiB,IAAI,sBAAsB,CAYxD;cAEkB,kBAAkB,IAAI,IAAI;cAe1B,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAqBxE,SAAS,CAAC,wBAAwB,CAAC,eAAe,EAAE,OAAO,CAAC,sBAAsB,CAAC,EAAE,GAAG,IAAI;cA2BzE,sBAAsB,IAAI,IAAI;IAKjD,4EAA4E;IAC5E,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAKpC,4GAA4G;IAC5G,SAAS,CAAC,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG,sBAAsB;IAwBhF,SAAS,CAAC,4CAA4C,CAClD,WAAW,EAAE,OAAO,CAAC,sBAAsB,CAAC,EAAE,GAC/C,sBAAsB,EAAE;CAkC9B"}
|
|
@@ -19,69 +19,70 @@ exports.OpenAiFrontendApplicationContribution = void 0;
|
|
|
19
19
|
const tslib_1 = require("tslib");
|
|
20
20
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
21
|
const ai_core_1 = require("@theia/ai-core");
|
|
22
|
+
const browser_1 = require("@theia/ai-core/lib/browser");
|
|
22
23
|
const common_1 = require("../common");
|
|
23
24
|
const openai_preferences_1 = require("../common/openai-preferences");
|
|
24
25
|
const ai_core_preferences_1 = require("@theia/ai-core/lib/common/ai-core-preferences");
|
|
25
26
|
const core_1 = require("@theia/core");
|
|
26
|
-
|
|
27
|
+
/** Provider node id (matches the `ai-features.openAiOfficial.*` configuration segment). */
|
|
28
|
+
const OPENAI_OFFICIAL_PROVIDER_ID = 'openAiOfficial';
|
|
29
|
+
let OpenAiFrontendApplicationContribution = class OpenAiFrontendApplicationContribution extends browser_1.DiscoveringProviderContribution {
|
|
27
30
|
constructor() {
|
|
28
|
-
|
|
31
|
+
super(...arguments);
|
|
32
|
+
this.providerId = OPENAI_OFFICIAL_PROVIDER_ID;
|
|
33
|
+
this.providerLabel = 'OpenAI';
|
|
34
|
+
this.modelOverridesPreference = openai_preferences_1.MODEL_OVERRIDES_PREF;
|
|
35
|
+
this.allowEnvironmentApiKeyPreference = openai_preferences_1.ALLOW_ENV_API_KEY_PREF;
|
|
29
36
|
this.prevCustomModels = [];
|
|
30
37
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
this.updateAllModels();
|
|
56
|
-
}
|
|
57
|
-
else if (event.preferenceName === openai_preferences_1.SERVER_SIDE_COMPACTION_PREF) {
|
|
58
|
-
this.updateAllModels();
|
|
59
|
-
}
|
|
60
|
-
else if (event.preferenceName === ai_core_preferences_1.PREFERENCE_NAME_SERVER_SIDE_COMPACTION ||
|
|
61
|
-
event.preferenceName === openai_preferences_1.SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD_PREF ||
|
|
62
|
-
event.preferenceName === ai_core_preferences_1.PREFERENCE_NAME_SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD) {
|
|
63
|
-
this.updateAllModels();
|
|
64
|
-
}
|
|
65
|
-
else if (event.preferenceName === 'http.proxy') {
|
|
66
|
-
this.manager.setProxyUrl(this.preferenceService.get('http.proxy', undefined));
|
|
67
|
-
this.updateAllModels();
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
this.aiCorePreferences.onPreferenceChanged(event => {
|
|
71
|
-
if (event.preferenceName === ai_core_preferences_1.PREFERENCE_NAME_MAX_RETRIES) {
|
|
72
|
-
this.updateAllModels();
|
|
73
|
-
}
|
|
74
|
-
});
|
|
38
|
+
/** The registered ids carry the `openai/` prefix, while the provider node is `openAiOfficial`. */
|
|
39
|
+
get modelIdPrefix() {
|
|
40
|
+
return common_1.OPENAI_PROVIDER_ID;
|
|
41
|
+
}
|
|
42
|
+
get discoveryMessages() {
|
|
43
|
+
return {
|
|
44
|
+
noCredentials: core_1.nls.localize('theia/ai/openai/discovery/noKey', 'No OpenAI API key set. Add a key to discover models.'),
|
|
45
|
+
consentRequired: core_1.nls.localize('theia/ai/openai/discovery/consentRequired', 'An OpenAI API key was found in the environment. Confirm its use to discover models.'),
|
|
46
|
+
consentPrompt: core_1.nls.localize('theia/ai/openai/discovery/consentPrompt', 'An OpenAI API key was found in the environment (OPENAI_API_KEY). Allow Theia to use it to discover and call OpenAI models?'),
|
|
47
|
+
useEnvironmentKey: core_1.nls.localize('theia/ai/openai/discovery/useEnvKey', 'Use key'),
|
|
48
|
+
overridden: core_1.nls.localize('theia/ai/openai/discovery/overridden', 'The model list is configured manually. Clear the model overrides to discover the models from the provider again.'),
|
|
49
|
+
cached: error => core_1.nls.localize('theia/ai/openai/discovery/cached', 'Showing cached models; last refresh failed: {0}', error)
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
initializeProvider() {
|
|
53
|
+
this.manager.setApiKey(this.preferenceService.get(openai_preferences_1.API_KEY_PREF, undefined));
|
|
54
|
+
this.manager.setProxyUrl(this.preferenceService.get('http.proxy', undefined));
|
|
55
|
+
const customModels = this.preferenceService.get(openai_preferences_1.CUSTOM_ENDPOINTS_PREF, []);
|
|
56
|
+
this.manager.createOrUpdateLanguageModels(...this.createCustomModelDescriptionsFromPreferences(customModels));
|
|
57
|
+
this.prevCustomModels = [...customModels];
|
|
58
|
+
this.aiCorePreferences.onPreferenceChanged(event => {
|
|
59
|
+
if (event.preferenceName === ai_core_preferences_1.PREFERENCE_NAME_MAX_RETRIES) {
|
|
60
|
+
this.updateDiscoveredModels();
|
|
61
|
+
}
|
|
75
62
|
});
|
|
76
63
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
64
|
+
handlePreferenceChange(event) {
|
|
65
|
+
if (event.preferenceName === openai_preferences_1.API_KEY_PREF) {
|
|
66
|
+
this.manager.setApiKey(this.preferenceService.get(openai_preferences_1.API_KEY_PREF, undefined));
|
|
67
|
+
this.discoverAndRegisterModels();
|
|
68
|
+
}
|
|
69
|
+
else if (event.preferenceName === openai_preferences_1.CUSTOM_ENDPOINTS_PREF) {
|
|
70
|
+
this.handleCustomModelChanges(this.preferenceService.get(openai_preferences_1.CUSTOM_ENDPOINTS_PREF, []));
|
|
71
|
+
}
|
|
72
|
+
else if (event.preferenceName === openai_preferences_1.USE_RESPONSE_API_PREF ||
|
|
73
|
+
event.preferenceName === openai_preferences_1.SERVER_SIDE_COMPACTION_PREF ||
|
|
74
|
+
event.preferenceName === ai_core_preferences_1.PREFERENCE_NAME_SERVER_SIDE_COMPACTION ||
|
|
75
|
+
event.preferenceName === openai_preferences_1.SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD_PREF ||
|
|
76
|
+
event.preferenceName === ai_core_preferences_1.PREFERENCE_NAME_SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD) {
|
|
77
|
+
this.updateDiscoveredModels();
|
|
78
|
+
}
|
|
79
|
+
else if (event.preferenceName === 'http.proxy') {
|
|
80
|
+
this.manager.setProxyUrl(this.preferenceService.get('http.proxy', undefined));
|
|
81
|
+
// A model keeps the proxy it was registered with, so the custom endpoints have to be
|
|
82
|
+
// re-registered as well: discovery only covers the models it registers itself.
|
|
83
|
+
this.updateCustomModels();
|
|
84
|
+
this.discoverAndRegisterModels();
|
|
85
|
+
}
|
|
85
86
|
}
|
|
86
87
|
handleCustomModelChanges(newCustomModels) {
|
|
87
88
|
const oldModels = this.createCustomModelDescriptionsFromPreferences(this.prevCustomModels);
|
|
@@ -105,14 +106,18 @@ let OpenAiFrontendApplicationContribution = class OpenAiFrontendApplicationContr
|
|
|
105
106
|
this.manager.createOrUpdateLanguageModels(...modelsToAddOrUpdate);
|
|
106
107
|
this.prevCustomModels = [...newCustomModels];
|
|
107
108
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
this.
|
|
109
|
+
updateDiscoveredModels() {
|
|
110
|
+
super.updateDiscoveredModels();
|
|
111
|
+
this.updateCustomModels();
|
|
112
|
+
}
|
|
113
|
+
/** Re-applies the model descriptions of the configured custom endpoints. */
|
|
114
|
+
updateCustomModels() {
|
|
111
115
|
const customModels = this.preferenceService.get(openai_preferences_1.CUSTOM_ENDPOINTS_PREF, []);
|
|
112
116
|
this.manager.createOrUpdateLanguageModels(...this.createCustomModelDescriptionsFromPreferences(customModels));
|
|
113
117
|
}
|
|
114
118
|
/** Per-model capabilities are resolved by the backend from the model id; see `openai-model-defaults.ts`. */
|
|
115
|
-
|
|
119
|
+
createModelDescription(model) {
|
|
120
|
+
const modelId = model.id;
|
|
116
121
|
const id = `${common_1.OPENAI_PROVIDER_ID}/${modelId}`;
|
|
117
122
|
const maxRetries = this.aiCorePreferences.get(ai_core_preferences_1.PREFERENCE_NAME_MAX_RETRIES) ?? 3;
|
|
118
123
|
const useResponseApi = this.preferenceService.get(openai_preferences_1.USE_RESPONSE_API_PREF, false);
|
|
@@ -130,7 +135,8 @@ let OpenAiFrontendApplicationContribution = class OpenAiFrontendApplicationContr
|
|
|
130
135
|
maxRetries: maxRetries,
|
|
131
136
|
useResponseApi: useResponseApi,
|
|
132
137
|
serverSideCompactionEnabledByDefault,
|
|
133
|
-
serverSideCompactionTokenThresholdByDefault
|
|
138
|
+
serverSideCompactionTokenThresholdByDefault,
|
|
139
|
+
released: model.released
|
|
134
140
|
};
|
|
135
141
|
}
|
|
136
142
|
createCustomModelDescriptionsFromPreferences(preferences) {
|
|
@@ -169,10 +175,6 @@ let OpenAiFrontendApplicationContribution = class OpenAiFrontendApplicationContr
|
|
|
169
175
|
}
|
|
170
176
|
};
|
|
171
177
|
exports.OpenAiFrontendApplicationContribution = OpenAiFrontendApplicationContribution;
|
|
172
|
-
tslib_1.__decorate([
|
|
173
|
-
(0, inversify_1.inject)(core_1.PreferenceService),
|
|
174
|
-
tslib_1.__metadata("design:type", Object)
|
|
175
|
-
], OpenAiFrontendApplicationContribution.prototype, "preferenceService", void 0);
|
|
176
178
|
tslib_1.__decorate([
|
|
177
179
|
(0, inversify_1.inject)(common_1.OpenAiLanguageModelsManager),
|
|
178
180
|
tslib_1.__metadata("design:type", Object)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-frontend-application-contribution.js","sourceRoot":"","sources":["../../src/browser/openai-frontend-application-contribution.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;;;;
|
|
1
|
+
{"version":3,"file":"openai-frontend-application-contribution.js","sourceRoot":"","sources":["../../src/browser/openai-frontend-application-contribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ReasoningSupport } from '@theia/ai-core';
|
|
1
|
+
import { ApiKeySource, ModelDiscoveryResult, ReasoningSupport } from '@theia/ai-core';
|
|
2
2
|
export declare const OPENAI_LANGUAGE_MODELS_MANAGER_PATH = "/services/open-ai/language-model-manager";
|
|
3
3
|
export declare const OpenAiLanguageModelsManager: unique symbol;
|
|
4
4
|
export declare const OPENAI_PROVIDER_ID = "openai";
|
|
@@ -38,13 +38,30 @@ export interface OpenAiModelDescription {
|
|
|
38
38
|
serverSideCompactionEnabledByDefault?: boolean;
|
|
39
39
|
/** Resolved default input-token threshold for server-side compaction. `undefined` preserves the provider default. */
|
|
40
40
|
serverSideCompactionTokenThresholdByDefault?: number;
|
|
41
|
+
/** Release date (ms since epoch) reported by discovery, surfaced as {@link LanguageModelMetaData.released}. */
|
|
42
|
+
released?: number;
|
|
41
43
|
}
|
|
42
44
|
export interface OpenAiLanguageModelsManager {
|
|
43
45
|
apiKey: string | undefined;
|
|
44
46
|
setApiKey(key: string | undefined): void;
|
|
47
|
+
/**
|
|
48
|
+
* Allows or refuses the use of an API key found in the environment. Refused by default: an
|
|
49
|
+
* environment key is only used once the user has confirmed it, and setting this back to `false`
|
|
50
|
+
* stops it being used immediately, wherever it would have been used.
|
|
51
|
+
*/
|
|
52
|
+
setAllowEnvironmentApiKey(allowed: boolean): void;
|
|
45
53
|
setApiVersion(version: string | undefined): void;
|
|
46
54
|
setProxyUrl(proxyUrl: string | undefined): void;
|
|
47
55
|
createOrUpdateLanguageModels(...models: OpenAiModelDescription[]): Promise<void>;
|
|
48
56
|
removeLanguageModels(...modelIds: string[]): void;
|
|
57
|
+
/**
|
|
58
|
+
* Fetches the ids of the text-chat models OpenAI currently offers from its `/v1/models` endpoint,
|
|
59
|
+
* retrying transient connection failures and caching a snapshot for offline use. The endpoint
|
|
60
|
+
* exposes no capability metadata, so non-chat models are filtered out heuristically. Returns an
|
|
61
|
+
* empty result when no key is configured; falls back to the cached snapshot on failure.
|
|
62
|
+
*/
|
|
63
|
+
fetchAvailableModels(): Promise<ModelDiscoveryResult>;
|
|
64
|
+
/** Reports where the effective API key comes from (preference, environment, or none). */
|
|
65
|
+
getApiKeySource(): Promise<ApiKeySource>;
|
|
49
66
|
}
|
|
50
67
|
//# sourceMappingURL=openai-language-models-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-language-models-manager.d.ts","sourceRoot":"","sources":["../../src/common/openai-language-models-manager.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"openai-language-models-manager.d.ts","sourceRoot":"","sources":["../../src/common/openai-language-models-manager.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEtF,eAAO,MAAM,mCAAmC,6CAA6C,CAAC;AAC9F,eAAO,MAAM,2BAA2B,eAAwC,CAAC;AAEjF,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,MAAM,WAAW,sBAAsB;IACnC,iEAAiE;IACjE,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,8HAA8H;IAC9H,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2FAA2F;IAC3F,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,6FAA6F;IAC7F,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;IACnB,+HAA+H;IAC/H,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,gGAAgG;IAChG,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,+FAA+F;IAC/F,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,+BAA+B,GAAG,MAAM,CAAC;IACtG,4HAA4H;IAC5H,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,4FAA4F;IAC5F,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,0JAA0J;IAC1J,oCAAoC,CAAC,EAAE,OAAO,CAAC;IAC/C,qHAAqH;IACrH,2CAA2C,CAAC,EAAE,MAAM,CAAC;IACrD,+GAA+G;IAC/G,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AACD,MAAM,WAAW,2BAA2B;IACxC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACzC;;;;OAIG;IACH,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAClD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACjD,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAChD,4BAA4B,CAAC,GAAG,MAAM,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,oBAAoB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClD;;;;;OAKG;IACH,oBAAoB,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACtD,yFAAyF;IACzF,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;CAC5C"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PreferenceSchema } from '@theia/core';
|
|
2
2
|
export declare const API_KEY_PREF = "ai-features.openAiOfficial.openAiApiKey";
|
|
3
|
-
export declare const
|
|
3
|
+
export declare const ALLOW_ENV_API_KEY_PREF = "ai-features.openAiOfficial.allowEnvironmentApiKey";
|
|
4
|
+
export declare const MODEL_OVERRIDES_PREF = "ai-features.openAiOfficial.modelOverrides";
|
|
4
5
|
export declare const USE_RESPONSE_API_PREF = "ai-features.openAiOfficial.useResponseApi";
|
|
5
6
|
export declare const SERVER_SIDE_COMPACTION_PREF = "ai-features.openAiOfficial.serverSideCompaction";
|
|
6
7
|
export declare const SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD_PREF = "ai-features.openAiOfficial.serverSideCompactionTokenThreshold";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-preferences.d.ts","sourceRoot":"","sources":["../../src/common/openai-preferences.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAuB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpE,eAAO,MAAM,YAAY,4CAA4C,CAAC;AACtE,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"openai-preferences.d.ts","sourceRoot":"","sources":["../../src/common/openai-preferences.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAuB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpE,eAAO,MAAM,YAAY,4CAA4C,CAAC;AACtE,eAAO,MAAM,sBAAsB,sDAAsD,CAAC;AAC1F,eAAO,MAAM,oBAAoB,8CAA8C,CAAC;AAChF,eAAO,MAAM,qBAAqB,8CAA8C,CAAC;AACjF,eAAO,MAAM,2BAA2B,oDAAoD,CAAC;AAC7F,eAAO,MAAM,2CAA2C,kEAAkE,CAAC;AAC3H,eAAO,MAAM,qBAAqB,gDAAgD,CAAC;AAEnF,eAAO,MAAM,uBAAuB,EAAE,gBAqLrC,CAAC"}
|
|
@@ -15,12 +15,13 @@
|
|
|
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.OpenAiPreferencesSchema = exports.CUSTOM_ENDPOINTS_PREF = exports.SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD_PREF = exports.SERVER_SIDE_COMPACTION_PREF = exports.USE_RESPONSE_API_PREF = exports.
|
|
18
|
+
exports.OpenAiPreferencesSchema = exports.CUSTOM_ENDPOINTS_PREF = exports.SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD_PREF = exports.SERVER_SIDE_COMPACTION_PREF = exports.USE_RESPONSE_API_PREF = exports.MODEL_OVERRIDES_PREF = exports.ALLOW_ENV_API_KEY_PREF = exports.API_KEY_PREF = void 0;
|
|
19
19
|
const ai_core_preferences_1 = require("@theia/ai-core/lib/common/ai-core-preferences");
|
|
20
20
|
const language_model_1 = require("@theia/ai-core/lib/common/language-model");
|
|
21
21
|
const core_1 = require("@theia/core");
|
|
22
22
|
exports.API_KEY_PREF = 'ai-features.openAiOfficial.openAiApiKey';
|
|
23
|
-
exports.
|
|
23
|
+
exports.ALLOW_ENV_API_KEY_PREF = 'ai-features.openAiOfficial.allowEnvironmentApiKey';
|
|
24
|
+
exports.MODEL_OVERRIDES_PREF = 'ai-features.openAiOfficial.modelOverrides';
|
|
24
25
|
exports.USE_RESPONSE_API_PREF = 'ai-features.openAiOfficial.useResponseApi';
|
|
25
26
|
exports.SERVER_SIDE_COMPACTION_PREF = 'ai-features.openAiOfficial.serverSideCompaction';
|
|
26
27
|
exports.SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD_PREF = 'ai-features.openAiOfficial.serverSideCompactionTokenThreshold';
|
|
@@ -34,20 +35,22 @@ exports.OpenAiPreferencesSchema = {
|
|
|
34
35
|
on the machine running Theia. Use the environment variable `OPENAI_API_KEY` to set the key securely.') + core_1.LINUX_ENV_HINT,
|
|
35
36
|
title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
|
|
36
37
|
},
|
|
37
|
-
[exports.
|
|
38
|
-
type: '
|
|
39
|
-
|
|
38
|
+
[exports.ALLOW_ENV_API_KEY_PREF]: {
|
|
39
|
+
type: 'boolean',
|
|
40
|
+
default: false,
|
|
40
41
|
title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
|
|
41
|
-
|
|
42
|
-
'
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
],
|
|
42
|
+
markdownDescription: core_1.nls.localize('theia/ai/openai/allowEnvApiKey/description', 'Allow Theia to use an OpenAI API key found in the environment (`OPENAI_API_KEY`). '
|
|
43
|
+
+ 'You are asked to confirm this once before the key is used; set it back to `false` to revoke consent.'),
|
|
44
|
+
},
|
|
45
|
+
[exports.MODEL_OVERRIDES_PREF]: {
|
|
46
|
+
type: 'array',
|
|
47
|
+
default: [],
|
|
48
48
|
items: {
|
|
49
49
|
type: 'string'
|
|
50
|
-
}
|
|
50
|
+
},
|
|
51
|
+
title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
|
|
52
|
+
markdownDescription: core_1.nls.localize('theia/ai/openai/modelOverrides/description', 'Override the models discovered from OpenAI. When empty (default), the available models are discovered from the provider. '
|
|
53
|
+
+ 'Set explicit model ids to use exactly those instead; discovery is then not used at all.')
|
|
51
54
|
},
|
|
52
55
|
[exports.USE_RESPONSE_API_PREF]: {
|
|
53
56
|
type: 'boolean',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-preferences.js","sourceRoot":"","sources":["../../src/common/openai-preferences.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,uFAEuD;AACvD,6EAA0G;AAC1G,sCAAoE;AAEvD,QAAA,YAAY,GAAG,yCAAyC,CAAC;AACzD,QAAA,
|
|
1
|
+
{"version":3,"file":"openai-preferences.js","sourceRoot":"","sources":["../../src/common/openai-preferences.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,25 @@ export declare class MistralFixedOpenAI extends OpenAI {
|
|
|
11
11
|
}
|
|
12
12
|
export declare const OpenAiModelIdentifier: unique symbol;
|
|
13
13
|
export type DeveloperMessageSettings = 'user' | 'system' | 'developer' | 'mergeWithFollowingUserMessage' | 'skip';
|
|
14
|
+
/** Options for {@link createOpenAiClient}. */
|
|
15
|
+
export interface OpenAiClientOptions {
|
|
16
|
+
/** The key to authenticate with. A custom endpoint may need none. */
|
|
17
|
+
readonly apiKey: string | undefined;
|
|
18
|
+
/** Base URL of a custom endpoint; the SDK's own default is used without one. */
|
|
19
|
+
readonly baseURL?: string;
|
|
20
|
+
/** Azure API version. Its presence is what selects the Azure client over the plain one. */
|
|
21
|
+
readonly apiVersion?: string;
|
|
22
|
+
readonly deployment?: string;
|
|
23
|
+
readonly proxyUrl?: string;
|
|
24
|
+
/** Additional HTTP headers sent with every request, e.g. headers required by a gateway in front of the API. */
|
|
25
|
+
readonly headers?: Record<string, string>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The single place an OpenAI SDK client is built, so that a chat request and the model discovery
|
|
29
|
+
* reach the provider the same way: through the configured proxy, with a key the SDK accepts, and
|
|
30
|
+
* with the Azure client where an API version says so.
|
|
31
|
+
*/
|
|
32
|
+
export declare function createOpenAiClient(options: OpenAiClientOptions): OpenAI;
|
|
14
33
|
export declare class OpenAiModel implements LanguageModel {
|
|
15
34
|
readonly id: string;
|
|
16
35
|
model: string;
|
|
@@ -34,6 +53,7 @@ export declare class OpenAiModel implements LanguageModel {
|
|
|
34
53
|
serverSideCompactionEnabledByDefault: boolean;
|
|
35
54
|
serverSideCompactionTokenThresholdByDefault?: number | undefined;
|
|
36
55
|
headers?: Record<string, string> | undefined;
|
|
56
|
+
released?: number | undefined;
|
|
37
57
|
readonly vendor = "openai";
|
|
38
58
|
/**
|
|
39
59
|
* The options for the OpenAI runner.
|
|
@@ -52,7 +72,7 @@ export declare class OpenAiModel implements LanguageModel {
|
|
|
52
72
|
* @param serverSideCompactionSupport whether this model supports server-side compaction (only available via the Response API)
|
|
53
73
|
* @param serverSideCompactionEnabledByDefault resolved default enablement of server-side compaction (global preference folded with the per-provider override)
|
|
54
74
|
*/
|
|
55
|
-
constructor(id: string, model: string, status: LanguageModelStatus, enableStreaming: boolean, apiKey: () => string | undefined, apiVersion: () => string | undefined, supportsStructuredOutput: boolean, url: string | undefined, deployment: string | undefined, openAiModelUtils: OpenAiModelUtils, responseApiUtils: OpenAiResponseApiUtils, developerMessageSettings?: DeveloperMessageSettings, maxRetries?: number, useResponseApi?: boolean, proxy?: string | undefined, reasoningSupport?: ReasoningSupport | undefined, maxInputTokens?: number | undefined, serverTools?: ServerToolDescriptor[] | undefined, serverSideCompactionSupport?: boolean, serverSideCompactionEnabledByDefault?: boolean, serverSideCompactionTokenThresholdByDefault?: number | undefined, headers?: Record<string, string> | undefined);
|
|
75
|
+
constructor(id: string, model: string, status: LanguageModelStatus, enableStreaming: boolean, apiKey: () => string | undefined, apiVersion: () => string | undefined, supportsStructuredOutput: boolean, url: string | undefined, deployment: string | undefined, openAiModelUtils: OpenAiModelUtils, responseApiUtils: OpenAiResponseApiUtils, developerMessageSettings?: DeveloperMessageSettings, maxRetries?: number, useResponseApi?: boolean, proxy?: string | undefined, reasoningSupport?: ReasoningSupport | undefined, maxInputTokens?: number | undefined, serverTools?: ServerToolDescriptor[] | undefined, serverSideCompactionSupport?: boolean, serverSideCompactionEnabledByDefault?: boolean, serverSideCompactionTokenThresholdByDefault?: number | undefined, headers?: Record<string, string> | undefined, released?: number | undefined);
|
|
56
76
|
/** Reasoning-level translation lives in {@link openAiReasoningFor}. */
|
|
57
77
|
protected getSettings(request: LanguageModelRequest, forResponseApi?: boolean): Record<string, unknown>;
|
|
58
78
|
request(request: UserRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-language-model.d.ts","sourceRoot":"","sources":["../../src/node/openai-language-model.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,aAAa,EACb,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,WAAW,EAEX,mBAAmB,EACnB,gBAAgB,EAGhB,oBAAoB,EAEvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAe,MAAM,QAAQ,CAAC;AAE7C,OAAO,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAuC,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAGnG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAyB,MAAM,6BAA6B,CAAC;AAI5F,qBAAa,kBAAmB,SAAQ,MAAM;cACjB,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAoBvF;AAED,eAAO,MAAM,qBAAqB,eAAkC,CAAC;AAErE,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,+BAA+B,GAAG,MAAM,CAAC;AAElH,qBAAa,WAAY,YAAW,aAAa;aA4BzB,EAAE,EAAE,MAAM;IACnB,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,mBAAmB;IAC3B,eAAe,EAAE,OAAO;IACxB,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS;IAChC,UAAU,EAAE,MAAM,MAAM,GAAG,SAAS;IACpC,wBAAwB,EAAE,OAAO;IACjC,GAAG,EAAE,MAAM,GAAG,SAAS;IACvB,UAAU,EAAE,MAAM,GAAG,SAAS;IAC9B,gBAAgB,EAAE,gBAAgB;IAClC,gBAAgB,EAAE,sBAAsB;IACxC,wBAAwB,EAAE,wBAAwB;IAClD,UAAU,EAAE,MAAM;IAClB,cAAc,EAAE,OAAO;IACvB,KAAK,CAAC,EAAE,MAAM;IACd,gBAAgB,CAAC,EAAE,gBAAgB;IACnC,cAAc,CAAC,EAAE,MAAM;IACvB,WAAW,CAAC,EAAE,oBAAoB,EAAE;IACpC,2BAA2B,EAAE,OAAO;IACpC,oCAAoC,EAAE,OAAO;IAC7C,2CAA2C,CAAC,EAAE,MAAM;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"openai-language-model.d.ts","sourceRoot":"","sources":["../../src/node/openai-language-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.OpenAiModelUtils = exports.OpenAiModel = exports.OpenAiModelIdentifier = exports.MistralFixedOpenAI = void 0;
|
|
19
|
+
exports.createOpenAiClient = createOpenAiClient;
|
|
19
20
|
const tslib_1 = require("tslib");
|
|
20
21
|
const ai_core_1 = require("@theia/ai-core");
|
|
21
22
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
@@ -50,6 +51,21 @@ class MistralFixedOpenAI extends openai_1.OpenAI {
|
|
|
50
51
|
}
|
|
51
52
|
exports.MistralFixedOpenAI = MistralFixedOpenAI;
|
|
52
53
|
exports.OpenAiModelIdentifier = Symbol('OpenAiModelIdentifier');
|
|
54
|
+
/**
|
|
55
|
+
* The single place an OpenAI SDK client is built, so that a chat request and the model discovery
|
|
56
|
+
* reach the provider the same way: through the configured proxy, with a key the SDK accepts, and
|
|
57
|
+
* with the Azure client where an API version says so.
|
|
58
|
+
*/
|
|
59
|
+
function createOpenAiClient(options) {
|
|
60
|
+
// The SDK refuses to be constructed without a key, so an endpoint that needs none still gets one.
|
|
61
|
+
const apiKey = options.apiKey ?? 'no-key';
|
|
62
|
+
const proxyFetch = (0, node_1.createProxyFetch)(options.proxyUrl);
|
|
63
|
+
return options.apiVersion
|
|
64
|
+
? new openai_1.AzureOpenAI({
|
|
65
|
+
apiKey, baseURL: options.baseURL, apiVersion: options.apiVersion, deployment: options.deployment, fetch: proxyFetch, defaultHeaders: options.headers
|
|
66
|
+
})
|
|
67
|
+
: new MistralFixedOpenAI({ apiKey, baseURL: options.baseURL, fetch: proxyFetch, defaultHeaders: options.headers });
|
|
68
|
+
}
|
|
53
69
|
class OpenAiModel {
|
|
54
70
|
/**
|
|
55
71
|
* @param id the unique id for this language model. It will be used to identify the model in the UI.
|
|
@@ -64,7 +80,7 @@ class OpenAiModel {
|
|
|
64
80
|
* @param serverSideCompactionSupport whether this model supports server-side compaction (only available via the Response API)
|
|
65
81
|
* @param serverSideCompactionEnabledByDefault resolved default enablement of server-side compaction (global preference folded with the per-provider override)
|
|
66
82
|
*/
|
|
67
|
-
constructor(id, model, status, enableStreaming, apiKey, apiVersion, supportsStructuredOutput, url, deployment, openAiModelUtils, responseApiUtils, developerMessageSettings = 'developer', maxRetries = 3, useResponseApi = false, proxy, reasoningSupport, maxInputTokens, serverTools, serverSideCompactionSupport = false, serverSideCompactionEnabledByDefault = false, serverSideCompactionTokenThresholdByDefault, headers) {
|
|
83
|
+
constructor(id, model, status, enableStreaming, apiKey, apiVersion, supportsStructuredOutput, url, deployment, openAiModelUtils, responseApiUtils, developerMessageSettings = 'developer', maxRetries = 3, useResponseApi = false, proxy, reasoningSupport, maxInputTokens, serverTools, serverSideCompactionSupport = false, serverSideCompactionEnabledByDefault = false, serverSideCompactionTokenThresholdByDefault, headers, released) {
|
|
68
84
|
this.id = id;
|
|
69
85
|
this.model = model;
|
|
70
86
|
this.status = status;
|
|
@@ -87,6 +103,7 @@ class OpenAiModel {
|
|
|
87
103
|
this.serverSideCompactionEnabledByDefault = serverSideCompactionEnabledByDefault;
|
|
88
104
|
this.serverSideCompactionTokenThresholdByDefault = serverSideCompactionTokenThresholdByDefault;
|
|
89
105
|
this.headers = headers;
|
|
106
|
+
this.released = released;
|
|
90
107
|
this.vendor = 'openai';
|
|
91
108
|
/**
|
|
92
109
|
* The options for the OpenAI runner.
|
|
@@ -206,18 +223,14 @@ class OpenAiModel {
|
|
|
206
223
|
if (!apiKey && !(this.url)) {
|
|
207
224
|
throw new Error('Please provide OPENAI_API_KEY in preferences or via environment variable');
|
|
208
225
|
}
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
}
|
|
218
|
-
else {
|
|
219
|
-
return new MistralFixedOpenAI({ apiKey: key, baseURL: this.url, fetch: proxyFetch, defaultHeaders: this.headers });
|
|
220
|
-
}
|
|
226
|
+
return createOpenAiClient({
|
|
227
|
+
apiKey,
|
|
228
|
+
baseURL: this.url,
|
|
229
|
+
apiVersion: this.apiVersion(),
|
|
230
|
+
deployment: this.deployment,
|
|
231
|
+
proxyUrl: this.proxy,
|
|
232
|
+
headers: this.headers
|
|
233
|
+
});
|
|
221
234
|
}
|
|
222
235
|
/**
|
|
223
236
|
* Augments the Response API settings with the server-side compaction directive when compaction is enabled for the
|