@theia/ai-copilot 1.76.0-next.4 → 1.76.0-next.42
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/README.md +87 -14
- package/lib/browser/copilot-auth-dialog.d.ts.map +1 -1
- package/lib/browser/copilot-auth-dialog.js +19 -11
- package/lib/browser/copilot-auth-dialog.js.map +1 -1
- package/lib/browser/copilot-frontend-application-contribution.d.ts +21 -1
- package/lib/browser/copilot-frontend-application-contribution.d.ts.map +1 -1
- package/lib/browser/copilot-frontend-application-contribution.js +129 -26
- package/lib/browser/copilot-frontend-application-contribution.js.map +1 -1
- package/lib/common/copilot-auth-service.d.ts +27 -24
- package/lib/common/copilot-auth-service.d.ts.map +1 -1
- package/lib/common/copilot-language-models-manager.d.ts +6 -22
- package/lib/common/copilot-language-models-manager.d.ts.map +1 -1
- package/lib/common/copilot-language-models-manager.js +1 -13
- package/lib/common/copilot-language-models-manager.js.map +1 -1
- package/lib/common/copilot-preferences.d.ts +1 -0
- package/lib/common/copilot-preferences.d.ts.map +1 -1
- package/lib/common/copilot-preferences.js +24 -6
- package/lib/common/copilot-preferences.js.map +1 -1
- package/lib/common/index.d.ts +0 -1
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +0 -1
- package/lib/common/index.js.map +1 -1
- package/lib/node/copilot-auth-service-impl.d.ts +25 -16
- package/lib/node/copilot-auth-service-impl.d.ts.map +1 -1
- package/lib/node/copilot-auth-service-impl.js +67 -183
- package/lib/node/copilot-auth-service-impl.js.map +1 -1
- package/lib/node/copilot-auth-service-impl.spec.js +104 -168
- package/lib/node/copilot-auth-service-impl.spec.js.map +1 -1
- package/lib/node/copilot-backend-module.d.ts.map +1 -1
- package/lib/node/copilot-backend-module.js +10 -2
- package/lib/node/copilot-backend-module.js.map +1 -1
- package/lib/node/copilot-cli-auth-provider.d.ts +146 -0
- package/lib/node/copilot-cli-auth-provider.d.ts.map +1 -0
- package/lib/node/copilot-cli-auth-provider.js +430 -0
- package/lib/node/copilot-cli-auth-provider.js.map +1 -0
- package/lib/node/copilot-cli-auth-provider.spec.d.ts +2 -0
- package/lib/node/copilot-cli-auth-provider.spec.d.ts.map +1 -0
- package/lib/node/copilot-cli-auth-provider.spec.js +249 -0
- package/lib/node/copilot-cli-auth-provider.spec.js.map +1 -0
- package/lib/node/copilot-cli-locator.d.ts +120 -0
- package/lib/node/copilot-cli-locator.d.ts.map +1 -0
- package/lib/node/copilot-cli-locator.js +348 -0
- package/lib/node/copilot-cli-locator.js.map +1 -0
- package/lib/node/copilot-cli-locator.spec.d.ts +2 -0
- package/lib/node/copilot-cli-locator.spec.d.ts.map +1 -0
- package/lib/node/copilot-cli-locator.spec.js +327 -0
- package/lib/node/copilot-cli-locator.spec.js.map +1 -0
- package/lib/node/copilot-credential-store.d.ts +45 -0
- package/lib/node/copilot-credential-store.d.ts.map +1 -0
- package/lib/node/copilot-credential-store.js +96 -0
- package/lib/node/copilot-credential-store.js.map +1 -0
- package/lib/node/copilot-credential-store.spec.d.ts +2 -0
- package/lib/node/copilot-credential-store.spec.d.ts.map +1 -0
- package/lib/node/copilot-credential-store.spec.js +93 -0
- package/lib/node/copilot-credential-store.spec.js.map +1 -0
- package/lib/node/copilot-language-models-manager-impl.d.ts +44 -20
- package/lib/node/copilot-language-models-manager-impl.d.ts.map +1 -1
- package/lib/node/copilot-language-models-manager-impl.js +112 -65
- package/lib/node/copilot-language-models-manager-impl.js.map +1 -1
- package/lib/node/copilot-language-models-manager-impl.spec.d.ts +2 -0
- package/lib/node/copilot-language-models-manager-impl.spec.d.ts.map +1 -0
- package/lib/node/copilot-language-models-manager-impl.spec.js +162 -0
- package/lib/node/copilot-language-models-manager-impl.spec.js.map +1 -0
- package/lib/node/copilot-runtime-env.d.ts +20 -0
- package/lib/node/copilot-runtime-env.d.ts.map +1 -0
- package/lib/node/copilot-runtime-env.js +49 -0
- package/lib/node/copilot-runtime-env.js.map +1 -0
- package/lib/node/copilot-sdk-client-provider.d.ts +103 -0
- package/lib/node/copilot-sdk-client-provider.d.ts.map +1 -0
- package/lib/node/copilot-sdk-client-provider.js +247 -0
- package/lib/node/copilot-sdk-client-provider.js.map +1 -0
- package/lib/node/copilot-sdk-client-provider.spec.d.ts +2 -0
- package/lib/node/copilot-sdk-client-provider.spec.d.ts.map +1 -0
- package/lib/node/copilot-sdk-client-provider.spec.js +215 -0
- package/lib/node/copilot-sdk-client-provider.spec.js.map +1 -0
- package/lib/node/copilot-sdk-language-model.d.ts +85 -0
- package/lib/node/copilot-sdk-language-model.d.ts.map +1 -0
- package/lib/node/copilot-sdk-language-model.js +301 -0
- package/lib/node/copilot-sdk-language-model.js.map +1 -0
- package/lib/node/copilot-sdk-language-model.spec.d.ts +2 -0
- package/lib/node/copilot-sdk-language-model.spec.d.ts.map +1 -0
- package/lib/node/copilot-sdk-language-model.spec.js +315 -0
- package/lib/node/copilot-sdk-language-model.spec.js.map +1 -0
- package/lib/node/copilot-sdk-loader.d.ts +57 -0
- package/lib/node/copilot-sdk-loader.d.ts.map +1 -0
- package/lib/node/copilot-sdk-loader.js +133 -0
- package/lib/node/copilot-sdk-loader.js.map +1 -0
- package/lib/node/copilot-sdk-loader.spec.d.ts +2 -0
- package/lib/node/copilot-sdk-loader.spec.d.ts.map +1 -0
- package/lib/node/copilot-sdk-loader.spec.js +113 -0
- package/lib/node/copilot-sdk-loader.spec.js.map +1 -0
- package/lib/node/copilot-sdk-mappers.d.ts +54 -0
- package/lib/node/copilot-sdk-mappers.d.ts.map +1 -0
- package/lib/node/copilot-sdk-mappers.js +158 -0
- package/lib/node/copilot-sdk-mappers.js.map +1 -0
- package/lib/node/copilot-sdk-mappers.spec.d.ts +2 -0
- package/lib/node/copilot-sdk-mappers.spec.d.ts.map +1 -0
- package/lib/node/copilot-sdk-mappers.spec.js +168 -0
- package/lib/node/copilot-sdk-mappers.spec.js.map +1 -0
- package/lib/node/copilot-sdk-types.d.ts +208 -0
- package/lib/node/copilot-sdk-types.d.ts.map +1 -0
- package/lib/{common/copilot-oauth-config.js → node/copilot-sdk-types.js} +2 -13
- package/lib/node/copilot-sdk-types.js.map +1 -0
- package/lib/node/index.d.ts +9 -1
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +9 -1
- package/lib/node/index.js.map +1 -1
- package/package.json +4 -6
- package/src/browser/copilot-auth-dialog.tsx +20 -16
- package/src/browser/copilot-frontend-application-contribution.ts +144 -31
- package/src/common/copilot-auth-service.ts +28 -24
- package/src/common/copilot-language-models-manager.ts +6 -29
- package/src/common/copilot-preferences.ts +24 -5
- package/src/common/index.ts +0 -1
- package/src/node/copilot-auth-service-impl.spec.ts +122 -207
- package/src/node/copilot-auth-service-impl.ts +63 -218
- package/src/node/copilot-backend-module.ts +11 -2
- package/src/node/copilot-cli-auth-provider.spec.ts +315 -0
- package/src/node/copilot-cli-auth-provider.ts +444 -0
- package/src/node/copilot-cli-locator.spec.ts +386 -0
- package/src/node/copilot-cli-locator.ts +363 -0
- package/src/node/copilot-credential-store.spec.ts +106 -0
- package/src/node/copilot-credential-store.ts +99 -0
- package/src/node/copilot-language-models-manager-impl.spec.ts +188 -0
- package/src/node/copilot-language-models-manager-impl.ts +131 -84
- package/src/node/copilot-runtime-env.ts +46 -0
- package/src/node/copilot-sdk-client-provider.spec.ts +253 -0
- package/src/node/copilot-sdk-client-provider.ts +241 -0
- package/src/node/copilot-sdk-language-model.spec.ts +377 -0
- package/src/node/copilot-sdk-language-model.ts +330 -0
- package/src/node/copilot-sdk-loader.spec.ts +126 -0
- package/src/node/copilot-sdk-loader.ts +142 -0
- package/src/node/copilot-sdk-mappers.spec.ts +190 -0
- package/src/node/copilot-sdk-mappers.ts +172 -0
- package/src/node/copilot-sdk-types.ts +290 -0
- package/src/node/index.ts +9 -1
- package/lib/common/copilot-oauth-config.d.ts +0 -33
- package/lib/common/copilot-oauth-config.d.ts.map +0 -1
- package/lib/common/copilot-oauth-config.js.map +0 -1
- package/lib/node/copilot-language-model.d.ts +0 -34
- package/lib/node/copilot-language-model.d.ts.map +0 -1
- package/lib/node/copilot-language-model.js +0 -236
- package/lib/node/copilot-language-model.js.map +0 -1
- package/lib/node/copilot-language-model.spec.d.ts +0 -2
- package/lib/node/copilot-language-model.spec.d.ts.map +0 -1
- package/lib/node/copilot-language-model.spec.js +0 -89
- package/lib/node/copilot-language-model.spec.js.map +0 -1
- package/src/common/copilot-oauth-config.ts +0 -55
- package/src/node/copilot-language-model.spec.ts +0 -106
- package/src/node/copilot-language-model.ts +0 -273
|
@@ -3,19 +3,13 @@ export declare const COPILOT_AUTH_SERVICE_PATH = "/services/copilot/auth";
|
|
|
3
3
|
export declare const CopilotAuthService: unique symbol;
|
|
4
4
|
export declare const CopilotAuthServiceClient: unique symbol;
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* The device code flow information reported by the Copilot CLI for the UI to display.
|
|
7
7
|
*/
|
|
8
8
|
export interface DeviceCodeResponse {
|
|
9
9
|
/** URL where user should enter the code (e.g., https://github.com/login/device) */
|
|
10
10
|
verification_uri: string;
|
|
11
11
|
/** Code to display to the user (e.g., XXXX-XXXX) */
|
|
12
12
|
user_code: string;
|
|
13
|
-
/** Device code used for polling */
|
|
14
|
-
device_code: string;
|
|
15
|
-
/** Polling interval in seconds */
|
|
16
|
-
interval: number;
|
|
17
|
-
/** Expiration time in seconds */
|
|
18
|
-
expires_in: number;
|
|
19
13
|
}
|
|
20
14
|
/**
|
|
21
15
|
* Current authentication state.
|
|
@@ -27,7 +21,10 @@ export interface CopilotAuthState {
|
|
|
27
21
|
accountLabel?: string;
|
|
28
22
|
/** GitHub Enterprise URL if using enterprise */
|
|
29
23
|
enterpriseUrl?: string;
|
|
30
|
-
/**
|
|
24
|
+
/**
|
|
25
|
+
* True when the credentials of a previous version were found and discarded, so that the user can
|
|
26
|
+
* be told why they have to sign in again.
|
|
27
|
+
*/
|
|
31
28
|
migrationRequired?: boolean;
|
|
32
29
|
}
|
|
33
30
|
/**
|
|
@@ -37,36 +34,42 @@ export interface CopilotAuthServiceClient {
|
|
|
37
34
|
onAuthStateChanged(state: CopilotAuthState): void;
|
|
38
35
|
}
|
|
39
36
|
/**
|
|
40
|
-
* Service for
|
|
37
|
+
* Service for signing the GitHub Copilot CLI in, which serves all Copilot requests.
|
|
38
|
+
*
|
|
39
|
+
* The sign-in is a device code flow that the CLI runs and polls itself. This service starts it and
|
|
40
|
+
* reports its progress, so that it can be presented like any other device code flow.
|
|
41
41
|
*/
|
|
42
42
|
export interface CopilotAuthService {
|
|
43
43
|
/**
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
44
|
+
* Tells the backend where the Copilot CLI is, as configured by the user.
|
|
45
|
+
*
|
|
46
|
+
* The CLI is not shipped with the application and has to be found on the machine hosting the
|
|
47
|
+
* backend, which cannot read the preferences of the user itself.
|
|
48
|
+
* @param path Location of the CLI executable, or `undefined` to search for it
|
|
47
49
|
*/
|
|
48
|
-
|
|
50
|
+
setExecutablePath(path: string | undefined): Promise<void>;
|
|
49
51
|
/**
|
|
50
|
-
*
|
|
51
|
-
* @param deviceCode The device code from initiateDeviceFlow
|
|
52
|
-
* @param interval Polling interval in seconds
|
|
52
|
+
* Starts the sign-in and resolves once the code the user has to enter is known.
|
|
53
53
|
* @param enterpriseUrl Optional GitHub Enterprise domain
|
|
54
|
-
* @returns true if authentication succeeded, false if expired/denied
|
|
55
54
|
*/
|
|
56
|
-
|
|
55
|
+
startSignIn(enterpriseUrl?: string): Promise<DeviceCodeResponse>;
|
|
57
56
|
/**
|
|
58
|
-
*
|
|
57
|
+
* Waits for the sign-in started by {@link startSignIn} to complete.
|
|
58
|
+
* @returns true if the sign-in succeeded, false if it was denied or expired
|
|
59
59
|
*/
|
|
60
|
-
|
|
60
|
+
waitForSignIn(): Promise<boolean>;
|
|
61
61
|
/**
|
|
62
|
-
*
|
|
63
|
-
* @returns The access token or undefined if not authenticated
|
|
62
|
+
* Aborts a sign-in that is still in progress, if any.
|
|
64
63
|
*/
|
|
65
|
-
|
|
64
|
+
cancelSignIn(): Promise<void>;
|
|
66
65
|
/**
|
|
67
|
-
*
|
|
66
|
+
* Discards the stored credentials of this application.
|
|
68
67
|
*/
|
|
69
68
|
signOut(): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Get the current authentication state.
|
|
71
|
+
*/
|
|
72
|
+
getAuthState(): Promise<CopilotAuthState>;
|
|
70
73
|
/**
|
|
71
74
|
* Set the client to receive auth state change notifications.
|
|
72
75
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-auth-service.d.ts","sourceRoot":"","sources":["../../src/common/copilot-auth-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAClE,eAAO,MAAM,kBAAkB,eAA+B,CAAC;AAC/D,eAAO,MAAM,wBAAwB,eAAqC,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,mFAAmF;IACnF,gBAAgB,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"copilot-auth-service.d.ts","sourceRoot":"","sources":["../../src/common/copilot-auth-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAClE,eAAO,MAAM,kBAAkB,eAA+B,CAAC;AAC/D,eAAO,MAAM,wBAAwB,eAAqC,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,mFAAmF;IACnF,gBAAgB,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,wCAAwC;IACxC,eAAe,EAAE,OAAO,CAAC;IACzB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACrD;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;;;;;OAMG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3D;;;OAGG;IACH,WAAW,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEjE;;;OAGG;IACH,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAElC;;OAEG;IACH,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9B;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;OAEG;IACH,YAAY,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE1C;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,wBAAwB,GAAG,SAAS,GAAG,IAAI,CAAC;IAE9D;;OAEG;IACH,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;CACxD"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
+
import { ModelDiscoveryResult } from '@theia/ai-core/lib/common';
|
|
1
2
|
export declare const COPILOT_LANGUAGE_MODELS_MANAGER_PATH = "/services/copilot/language-model-manager";
|
|
2
3
|
export declare const CopilotLanguageModelsManager: unique symbol;
|
|
3
4
|
export declare const COPILOT_PROVIDER_ID = "copilot";
|
|
4
|
-
export declare const COPILOT_API_BASE_URL = "https://api.githubcopilot.com";
|
|
5
|
-
/**
|
|
6
|
-
* Returns the Copilot API base URL, taking an optional GitHub Enterprise domain into account.
|
|
7
|
-
*/
|
|
8
|
-
export declare function getCopilotApiBaseUrl(enterpriseUrl?: string): string;
|
|
9
5
|
export interface CopilotModelDescription {
|
|
10
6
|
/**
|
|
11
7
|
* The identifier of the model which will be shown in the UI.
|
|
@@ -13,17 +9,9 @@ export interface CopilotModelDescription {
|
|
|
13
9
|
*/
|
|
14
10
|
id: string;
|
|
15
11
|
/**
|
|
16
|
-
* The model ID as used by the Copilot API (e.g., 'gpt-
|
|
12
|
+
* The model ID as used by the Copilot API (e.g., 'gpt-5.5', 'claude-sonnet-5').
|
|
17
13
|
*/
|
|
18
14
|
model: string;
|
|
19
|
-
/**
|
|
20
|
-
* Indicate whether the streaming API shall be used.
|
|
21
|
-
*/
|
|
22
|
-
enableStreaming: boolean;
|
|
23
|
-
/**
|
|
24
|
-
* Flag to configure whether the model supports structured output.
|
|
25
|
-
*/
|
|
26
|
-
supportsStructuredOutput: boolean;
|
|
27
15
|
/**
|
|
28
16
|
* Maximum number of retry attempts when a request fails.
|
|
29
17
|
*/
|
|
@@ -38,19 +26,15 @@ export interface CopilotLanguageModelsManager {
|
|
|
38
26
|
* Remove language models from the registry.
|
|
39
27
|
*/
|
|
40
28
|
removeLanguageModels(...modelIds: string[]): void;
|
|
41
|
-
/**
|
|
42
|
-
* Set the GitHub Enterprise URL for Copilot API requests.
|
|
43
|
-
*/
|
|
44
|
-
setEnterpriseUrl(url: string | undefined): void;
|
|
45
29
|
/**
|
|
46
30
|
* Refresh the status of all Copilot models (e.g., after authentication state changes).
|
|
47
31
|
*/
|
|
48
32
|
refreshModelsStatus(): Promise<void>;
|
|
49
33
|
/**
|
|
50
|
-
* Fetches the
|
|
51
|
-
*
|
|
52
|
-
* or
|
|
34
|
+
* Fetches the models the Copilot CLI offers. Requires the CLI to be signed in; a failure is
|
|
35
|
+
* reported as {@link ModelDiscoveryResult.error} with no models rather than thrown, since the
|
|
36
|
+
* CLI being absent or signed out is an expected state rather than a fault.
|
|
53
37
|
*/
|
|
54
|
-
|
|
38
|
+
fetchAvailableModels(): Promise<ModelDiscoveryResult>;
|
|
55
39
|
}
|
|
56
40
|
//# sourceMappingURL=copilot-language-models-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-language-models-manager.d.ts","sourceRoot":"","sources":["../../src/common/copilot-language-models-manager.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,oCAAoC,6CAA6C,CAAC;AAC/F,eAAO,MAAM,4BAA4B,eAAyC,CAAC;AAEnF,eAAO,MAAM,mBAAmB,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"copilot-language-models-manager.d.ts","sourceRoot":"","sources":["../../src/common/copilot-language-models-manager.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,eAAO,MAAM,oCAAoC,6CAA6C,CAAC;AAC/F,eAAO,MAAM,4BAA4B,eAAyC,CAAC;AAEnF,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAE7C,MAAM,WAAW,uBAAuB;IACpC;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IACzC;;OAEG;IACH,4BAA4B,CAAC,GAAG,MAAM,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF;;OAEG;IACH,oBAAoB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClD;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC;;;;OAIG;IACH,oBAAoB,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACzD"}
|
|
@@ -15,20 +15,8 @@
|
|
|
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.
|
|
19
|
-
exports.getCopilotApiBaseUrl = getCopilotApiBaseUrl;
|
|
18
|
+
exports.COPILOT_PROVIDER_ID = exports.CopilotLanguageModelsManager = exports.COPILOT_LANGUAGE_MODELS_MANAGER_PATH = void 0;
|
|
20
19
|
exports.COPILOT_LANGUAGE_MODELS_MANAGER_PATH = '/services/copilot/language-model-manager';
|
|
21
20
|
exports.CopilotLanguageModelsManager = Symbol('CopilotLanguageModelsManager');
|
|
22
21
|
exports.COPILOT_PROVIDER_ID = 'copilot';
|
|
23
|
-
exports.COPILOT_API_BASE_URL = 'https://api.githubcopilot.com';
|
|
24
|
-
/**
|
|
25
|
-
* Returns the Copilot API base URL, taking an optional GitHub Enterprise domain into account.
|
|
26
|
-
*/
|
|
27
|
-
function getCopilotApiBaseUrl(enterpriseUrl) {
|
|
28
|
-
if (enterpriseUrl) {
|
|
29
|
-
const domain = enterpriseUrl.replace(/^https?:\/\//, '').replace(/\/$/, '');
|
|
30
|
-
return `https://copilot-api.${domain}`;
|
|
31
|
-
}
|
|
32
|
-
return exports.COPILOT_API_BASE_URL;
|
|
33
|
-
}
|
|
34
22
|
//# sourceMappingURL=copilot-language-models-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-language-models-manager.js","sourceRoot":"","sources":["../../src/common/copilot-language-models-manager.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":"copilot-language-models-manager.js","sourceRoot":"","sources":["../../src/common/copilot-language-models-manager.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;;;AAGnE,QAAA,oCAAoC,GAAG,0CAA0C,CAAC;AAClF,QAAA,4BAA4B,GAAG,MAAM,CAAC,8BAA8B,CAAC,CAAC;AAEtE,QAAA,mBAAmB,GAAG,SAAS,CAAC"}
|
|
@@ -2,5 +2,6 @@ import { PreferenceSchema } from '@theia/core';
|
|
|
2
2
|
export declare const COPILOT_ENABLED_PREF = "ai-features.copilot.enabled";
|
|
3
3
|
export declare const COPILOT_MODEL_OVERRIDES_PREF = "ai-features.copilot.modelOverrides";
|
|
4
4
|
export declare const COPILOT_ENTERPRISE_URL_PREF = "ai-features.copilot.enterpriseUrl";
|
|
5
|
+
export declare const COPILOT_EXECUTABLE_PATH_PREF = "ai-features.copilot.executablePath";
|
|
5
6
|
export declare const CopilotPreferencesSchema: PreferenceSchema;
|
|
6
7
|
//# sourceMappingURL=copilot-preferences.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-preferences.d.ts","sourceRoot":"","sources":["../../src/common/copilot-preferences.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAO,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,eAAO,MAAM,oBAAoB,gCAAgC,CAAC;AAClE,eAAO,MAAM,4BAA4B,uCAAuC,CAAC;AACjF,eAAO,MAAM,2BAA2B,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"copilot-preferences.d.ts","sourceRoot":"","sources":["../../src/common/copilot-preferences.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAO,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,eAAO,MAAM,oBAAoB,gCAAgC,CAAC;AAClE,eAAO,MAAM,4BAA4B,uCAAuC,CAAC;AACjF,eAAO,MAAM,2BAA2B,sCAAsC,CAAC;AAC/E,eAAO,MAAM,4BAA4B,uCAAuC,CAAC;AAEjF,eAAO,MAAM,wBAAwB,EAAE,gBAiDtC,CAAC"}
|
|
@@ -15,21 +15,26 @@
|
|
|
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.CopilotPreferencesSchema = exports.COPILOT_ENTERPRISE_URL_PREF = exports.COPILOT_MODEL_OVERRIDES_PREF = exports.COPILOT_ENABLED_PREF = void 0;
|
|
18
|
+
exports.CopilotPreferencesSchema = exports.COPILOT_EXECUTABLE_PATH_PREF = exports.COPILOT_ENTERPRISE_URL_PREF = exports.COPILOT_MODEL_OVERRIDES_PREF = exports.COPILOT_ENABLED_PREF = void 0;
|
|
19
19
|
const ai_core_preferences_1 = require("@theia/ai-core/lib/common/ai-core-preferences");
|
|
20
20
|
const core_1 = require("@theia/core");
|
|
21
21
|
exports.COPILOT_ENABLED_PREF = 'ai-features.copilot.enabled';
|
|
22
22
|
exports.COPILOT_MODEL_OVERRIDES_PREF = 'ai-features.copilot.modelOverrides';
|
|
23
23
|
exports.COPILOT_ENTERPRISE_URL_PREF = 'ai-features.copilot.enterpriseUrl';
|
|
24
|
+
exports.COPILOT_EXECUTABLE_PATH_PREF = 'ai-features.copilot.executablePath';
|
|
24
25
|
exports.CopilotPreferencesSchema = {
|
|
25
26
|
properties: {
|
|
26
27
|
[exports.COPILOT_ENABLED_PREF]: {
|
|
27
28
|
type: 'boolean',
|
|
28
29
|
typeDetails: { [ai_core_preferences_1.MODEL_PROVIDER_TYPE_DETAIL]: { label: 'GitHub Copilot' } },
|
|
29
30
|
markdownDescription: core_1.nls.localize('theia/ai/copilot/enabled/mdDescription', 'Enable the GitHub Copilot provider. When enabled, a status bar entry '
|
|
30
|
-
+ 'appears for authentication and available models are discovered from your Copilot subscription
|
|
31
|
+
+ 'appears for authentication and available models are discovered from your Copilot subscription.\n\n'
|
|
32
|
+
+ 'Requests are routed through the official GitHub Copilot CLI, which runs as a background process on the '
|
|
33
|
+
+ 'machine hosting the backend. It is given the credentials of your Copilot sign-in and nothing else, so a '
|
|
34
|
+
+ 'token in the environment or an existing sign-in of the GitHub CLI is not used.'),
|
|
31
35
|
title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
|
|
32
|
-
default: true
|
|
36
|
+
default: true,
|
|
37
|
+
tags: ['experimental']
|
|
33
38
|
},
|
|
34
39
|
[exports.COPILOT_MODEL_OVERRIDES_PREF]: {
|
|
35
40
|
type: 'array',
|
|
@@ -40,13 +45,26 @@ exports.CopilotPreferencesSchema = {
|
|
|
40
45
|
default: [],
|
|
41
46
|
items: {
|
|
42
47
|
type: 'string'
|
|
43
|
-
}
|
|
48
|
+
},
|
|
49
|
+
tags: ['experimental']
|
|
44
50
|
},
|
|
45
51
|
[exports.COPILOT_ENTERPRISE_URL_PREF]: {
|
|
46
52
|
type: 'string',
|
|
47
|
-
markdownDescription: core_1.nls.localize('theia/ai/copilot/enterpriseUrl/mdDescription', 'GitHub Enterprise domain
|
|
53
|
+
markdownDescription: core_1.nls.localize('theia/ai/copilot/enterpriseUrl/mdDescription', 'GitHub Enterprise domain to authenticate and send requests against (e.g., `github.mycompany.com`). '
|
|
54
|
+
+ 'Leave empty for GitHub.com.'),
|
|
48
55
|
title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
|
|
49
|
-
default: ''
|
|
56
|
+
default: '',
|
|
57
|
+
tags: ['experimental']
|
|
58
|
+
},
|
|
59
|
+
[exports.COPILOT_EXECUTABLE_PATH_PREF]: {
|
|
60
|
+
type: 'string',
|
|
61
|
+
markdownDescription: core_1.nls.localize('theia/ai/copilot/executablePath/mdDescription', 'Location of the GitHub Copilot CLI executable on the machine hosting the backend. '
|
|
62
|
+
+ 'When empty (default), the CLI is searched for in the installation of the application, on the `PATH` '
|
|
63
|
+
+ 'and in the global `npm` directory. Set this when the CLI is installed somewhere else.\n\n'
|
|
64
|
+
+ 'The CLI is not shipped with the application, install it with `npm install -g @github/copilot`.'),
|
|
65
|
+
title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
|
|
66
|
+
default: '',
|
|
67
|
+
tags: ['experimental']
|
|
50
68
|
}
|
|
51
69
|
}
|
|
52
70
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-preferences.js","sourceRoot":"","sources":["../../src/common/copilot-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,uFAA+I;AAC/I,sCAAoD;AAEvC,QAAA,oBAAoB,GAAG,6BAA6B,CAAC;AACrD,QAAA,4BAA4B,GAAG,oCAAoC,CAAC;AACpE,QAAA,2BAA2B,GAAG,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"copilot-preferences.js","sourceRoot":"","sources":["../../src/common/copilot-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,uFAA+I;AAC/I,sCAAoD;AAEvC,QAAA,oBAAoB,GAAG,6BAA6B,CAAC;AACrD,QAAA,4BAA4B,GAAG,oCAAoC,CAAC;AACpE,QAAA,2BAA2B,GAAG,mCAAmC,CAAC;AAClE,QAAA,4BAA4B,GAAG,oCAAoC,CAAC;AAEpE,QAAA,wBAAwB,GAAqB;IACtD,UAAU,EAAE;QACR,CAAC,4BAAoB,CAAC,EAAE;YACpB,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,EAAE,CAAC,gDAA0B,CAAC,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAoC,EAAE;YAC5G,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,wCAAwC,EACtE,uEAAuE;kBACrE,oGAAoG;kBACpG,yGAAyG;kBACzG,0GAA0G;kBAC1G,gFAAgF,CAAC;YACvF,KAAK,EAAE,+CAAyB;YAChC,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,CAAC,cAAc,CAAC;SACzB;QACD,CAAC,oCAA4B,CAAC,EAAE;YAC5B,IAAI,EAAE,OAAO;YACb,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,+CAA+C,EAC7E,+DAA+D;kBAC7D,wFAAwF;kBACxF,oDAAoD,CAAC;YAC3D,KAAK,EAAE,+CAAyB;YAChC,OAAO,EAAE,EAAE;YACX,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;aACjB;YACD,IAAI,EAAE,CAAC,cAAc,CAAC;SACzB;QACD,CAAC,mCAA2B,CAAC,EAAE;YAC3B,IAAI,EAAE,QAAQ;YACd,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,8CAA8C,EAC5E,qGAAqG;kBACnG,6BAA6B,CAAC;YACpC,KAAK,EAAE,+CAAyB;YAChC,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,CAAC,cAAc,CAAC;SACzB;QACD,CAAC,oCAA4B,CAAC,EAAE;YAC5B,IAAI,EAAE,QAAQ;YACd,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,+CAA+C,EAC7E,oFAAoF;kBAClF,sGAAsG;kBACtG,2FAA2F;kBAC3F,gGAAgG,CAAC;YACvG,KAAK,EAAE,+CAAyB;YAChC,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,CAAC,cAAc,CAAC;SACzB;KACJ;CACJ,CAAC"}
|
package/lib/common/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAgBA,cAAc,mCAAmC,CAAC;AAClD,cAAc,wBAAwB,CAAC;AACvC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAgBA,cAAc,mCAAmC,CAAC;AAClD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
|
package/lib/common/index.js
CHANGED
|
@@ -18,6 +18,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
const tslib_1 = require("tslib");
|
|
19
19
|
tslib_1.__exportStar(require("./copilot-language-models-manager"), exports);
|
|
20
20
|
tslib_1.__exportStar(require("./copilot-auth-service"), exports);
|
|
21
|
-
tslib_1.__exportStar(require("./copilot-oauth-config"), exports);
|
|
22
21
|
tslib_1.__exportStar(require("./copilot-preferences"), exports);
|
|
23
22
|
//# sourceMappingURL=index.js.map
|
package/lib/common/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.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,4EAAkD;AAClD,iEAAuC;AACvC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.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,4EAAkD;AAClD,iEAAuC;AACvC,gEAAsC"}
|
|
@@ -1,31 +1,40 @@
|
|
|
1
1
|
import { Emitter, Event, ILogger } from '@theia/core';
|
|
2
|
-
import { KeyStoreService } from '@theia/core/lib/common/key-store';
|
|
3
2
|
import { CopilotAuthService, CopilotAuthServiceClient, CopilotAuthState, DeviceCodeResponse } from '../common/copilot-auth-service';
|
|
4
|
-
import {
|
|
3
|
+
import { CopilotCliAuthProvider } from './copilot-cli-auth-provider';
|
|
4
|
+
import { CopilotCliLocator } from './copilot-cli-locator';
|
|
5
|
+
import { CopilotCredentialStore } from './copilot-credential-store';
|
|
5
6
|
/**
|
|
6
|
-
* Backend implementation of the GitHub Copilot
|
|
7
|
-
*
|
|
7
|
+
* Backend implementation of the GitHub Copilot authentication service.
|
|
8
|
+
*
|
|
9
|
+
* All Copilot requests are served by the official Copilot CLI, which owns its credentials, so this
|
|
10
|
+
* service only drives the sign-in of the CLI and reports its state, see {@link CopilotCliAuthProvider}.
|
|
8
11
|
*/
|
|
9
12
|
export declare class CopilotAuthServiceImpl implements CopilotAuthService {
|
|
10
|
-
protected readonly
|
|
13
|
+
protected readonly cliAuthProvider: CopilotCliAuthProvider;
|
|
14
|
+
protected readonly credentialStore: CopilotCredentialStore;
|
|
15
|
+
protected readonly cliLocator: CopilotCliLocator;
|
|
11
16
|
protected readonly logger: ILogger;
|
|
12
|
-
protected readonly oauthConfig: CopilotOAuthConfig;
|
|
13
17
|
protected client: CopilotAuthServiceClient | undefined;
|
|
14
18
|
protected cachedState: CopilotAuthState | undefined;
|
|
19
|
+
protected migrationRequired: boolean;
|
|
20
|
+
protected legacyCleanup: Promise<void>;
|
|
21
|
+
protected init(): void;
|
|
15
22
|
protected readonly onAuthStateChangedEmitter: Emitter<CopilotAuthState>;
|
|
16
23
|
readonly onAuthStateChanged: Event<CopilotAuthState>;
|
|
17
24
|
setClient(client: CopilotAuthServiceClient | undefined): void;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
initiateDeviceFlow(enterpriseUrl?: string): Promise<DeviceCodeResponse>;
|
|
23
|
-
pollForToken(deviceCode: string, interval: number, enterpriseUrl?: string): Promise<boolean>;
|
|
24
|
-
protected fetchAccountLabel(accessToken: string, enterpriseUrl?: string): Promise<string | undefined>;
|
|
25
|
-
getAuthState(): Promise<CopilotAuthState>;
|
|
26
|
-
getAccessToken(): Promise<string | undefined>;
|
|
25
|
+
setExecutablePath(path: string | undefined): Promise<void>;
|
|
26
|
+
startSignIn(enterpriseUrl?: string): Promise<DeviceCodeResponse>;
|
|
27
|
+
waitForSignIn(): Promise<boolean>;
|
|
28
|
+
cancelSignIn(): Promise<void>;
|
|
27
29
|
signOut(): Promise<void>;
|
|
30
|
+
getAuthState(): Promise<CopilotAuthState>;
|
|
31
|
+
/**
|
|
32
|
+
* The state as it currently is, with the request for a new sign-in attached when the credentials
|
|
33
|
+
* of the previous integration had to be discarded and none have been established since.
|
|
34
|
+
*
|
|
35
|
+
* Does not await the cleanup, so that it can be used from it.
|
|
36
|
+
*/
|
|
37
|
+
protected computeAuthState(): Promise<CopilotAuthState>;
|
|
28
38
|
protected updateAuthState(state: CopilotAuthState): void;
|
|
29
|
-
protected delay(ms: number): Promise<void>;
|
|
30
39
|
}
|
|
31
40
|
//# sourceMappingURL=copilot-auth-service-impl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-auth-service-impl.d.ts","sourceRoot":"","sources":["../../src/node/copilot-auth-service-impl.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"copilot-auth-service-impl.d.ts","sourceRoot":"","sources":["../../src/node/copilot-auth-service-impl.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EACH,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE;;;;;GAKG;AACH,qBACa,sBAAuB,YAAW,kBAAkB;IAG7D,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,sBAAsB,CAAC;IAG3D,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,sBAAsB,CAAC;IAG3D,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IAGjD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnC,SAAS,CAAC,MAAM,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACvD,SAAS,CAAC,WAAW,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACpD,SAAS,CAAC,iBAAiB,UAAS;IACpC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAGvC,SAAS,CAAC,IAAI,IAAI,IAAI;IAYtB,SAAS,CAAC,QAAQ,CAAC,yBAAyB,4BAAmC;IAC/E,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAwC;IAE5F,SAAS,CAAC,MAAM,EAAE,wBAAwB,GAAG,SAAS,GAAG,IAAI;IAIvD,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D,WAAW,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIhE,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IASjC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxB,YAAY,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAW/C;;;;;OAKG;cACa,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAK7D,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;CAK3D"}
|