Add privacy notice slash command (#2059)

This commit is contained in:
Tommaso Sciortino
2025-06-27 12:07:38 -07:00
committed by GitHub
parent 4fbffdf617
commit a2a46c7c67
13 changed files with 468 additions and 15 deletions

View File

@@ -6,28 +6,30 @@
import { AuthClient } from 'google-auth-library';
import {
LoadCodeAssistResponse,
CodeAssistGlobalUserSettingResponse,
LoadCodeAssistRequest,
OnboardUserRequest,
LoadCodeAssistResponse,
LongrunningOperationResponse,
OnboardUserRequest,
SetCodeAssistGlobalUserSettingRequest,
} from './types.js';
import {
GenerateContentResponse,
GenerateContentParameters,
CountTokensParameters,
EmbedContentResponse,
CountTokensResponse,
EmbedContentParameters,
EmbedContentResponse,
GenerateContentParameters,
GenerateContentResponse,
} from '@google/genai';
import * as readline from 'readline';
import { ContentGenerator } from '../core/contentGenerator.js';
import {
CaCountTokenResponse,
CaGenerateContentResponse,
toGenerateContentRequest,
fromCountTokenResponse,
fromGenerateContentResponse,
toCountTokenRequest,
fromCountTokenResponse,
CaCountTokenResponse,
toGenerateContentRequest,
} from './converter.js';
import { PassThrough } from 'node:stream';
@@ -93,6 +95,21 @@ export class CodeAssistServer implements ContentGenerator {
);
}
async getCodeAssistGlobalUserSetting(): Promise<CodeAssistGlobalUserSettingResponse> {
return await this.getEndpoint<CodeAssistGlobalUserSettingResponse>(
'getCodeAssistGlobalUserSetting',
);
}
async setCodeAssistGlobalUserSetting(
req: SetCodeAssistGlobalUserSettingRequest,
): Promise<CodeAssistGlobalUserSettingResponse> {
return await this.callEndpoint<CodeAssistGlobalUserSettingResponse>(
'setCodeAssistGlobalUserSetting',
req,
);
}
async countTokens(req: CountTokensParameters): Promise<CountTokensResponse> {
const resp = await this.callEndpoint<CaCountTokenResponse>(
'countTokens',
@@ -126,6 +143,20 @@ export class CodeAssistServer implements ContentGenerator {
return res.data as T;
}
async getEndpoint<T>(method: string, signal?: AbortSignal): Promise<T> {
const res = await this.auth.request({
url: `${CODE_ASSIST_ENDPOINT}/${CODE_ASSIST_API_VERSION}:${method}`,
method: 'GET',
headers: {
'Content-Type': 'application/json',
...this.httpOptions.headers,
},
responseType: 'json',
signal,
});
return res.data as T;
}
async streamEndpoint<T>(
method: string,
req: object,

View File

@@ -173,3 +173,13 @@ export interface HelpLinkUrl {
description: string;
url: string;
}
export interface SetCodeAssistGlobalUserSettingRequest {
cloudaicompanionProject?: string;
freeTierDataCollectionOptin: boolean;
}
export interface CodeAssistGlobalUserSettingResponse {
cloudaicompanionProject?: string;
freeTierDataCollectionOptin: boolean;
}